① 有誰可以提供一些linux系統概述的資料,要快,非常感謝。
Linux概述
1.1 什麼是linux?
最節儉地說,linux是一個操作系統。它使得計算機上的軟體和硬體之間協調工作,就好像Microsoft Windows(MS windows,微軟的windows系統)系列操作系統(MS Windows和linux之間又有著巨大的差別。不僅差別巨大,甚至互相對立,互相攻擊。緣何對立?緣何攻擊?盡在本章中。)。至於linux具體特性,很難用一句或者一段話來表述清楚。但可以有一個大概了解:linux是一個多任務的多用戶的多平台的在保護模式下的遵守POSIX標準的遵守SYSV和BSD擴展的遵守GPL許可的32位(也有64位)的類UNIX的開放源代碼的免費操作系統。這句話基本上涵概了當今linux最流行最重要最主要的特性。可能讀者對以上的一些名詞雲里霧里,不知所雲,簡單介紹:
1.多任務
計算機在同一時刻運行多個應用程序的能力。
2.多用戶
計算機在同一時刻被多個用戶訪問的能力。如網路上的伺服器必須是多用戶的。因為網路上的伺服器需要能夠同時接受多個用戶的同時訪問。除了linux系統,比較熟悉的Win2000也是多用戶的操作系統。多用戶操作系統最主要的特點是:同一時刻不同的用戶訪問。例:一台windows98機器,雖然可以有好幾個不同的帳號,但不能同時訪問,所以它並不是多用戶的。
3.多平台
可以在不同種類的CPU下工作。不要以為世界上就只有intel ,AMD這樣的兼容CPU,還有很多種類的CPU。如:Alpha、Sparc。
4.保護模式
在linux下應用軟體無法訪問系統分配的內存以外的內存區域。如此,一個軟體的錯誤不會造成整個系統的癱瘓。有些人沒事在那裡叫囂:linux理論上永遠也不會死機,就是這個原因。(但事實上還是會死的)
5.POSIX
POSIX表示可移植操作系統介面(Portable Operating System Interface ,縮寫為 POSIX 是為了讀音更像UNIX)。電氣和電子工程師協會(Institute of Electrical and Electronics Engineers,IEEE) 最初開發 POSIX 標准,是為了提高 UNIX 環境下應用程序的可移植性。然而,POSIX 並不局限於 UNIX。 許多其它的操作系統,例如 WinNT,都支持 POSIX 標准,尤其是 POSIX.1。POSIX.1 提供了源代碼級別的C 語言應用編程介面(API)給操作系統的服務程序,例如讀寫文件。POSIX.1 已經被國際標准化組織(International Standards Organization,ISO)所接受,被命名為 ISO/IEC 9945-1:1990 標准。
6.SYSV和BSD擴展
可以理解為和SYSV和BSD源代碼級的兼容。簡單一點,就是Linux下的應用程序同時也能在這兩個系統上運行。SYSV和BSD也是兩個操作系統,不知道這兩個系統是什麼?那就往下看。
7.GPL(General Public License)
公用許可證,下文會有詳解。
1.2發音問題
1.2.1 linux的發音
linux發音是五花八門版本頗多,就筆者見到和聽到的不下10種。對這種情況,據說,linux的創始人Linus(Linus Torvalds)針對讀音分歧較多的情況,特意錄了一段他對Linux的發音。這段錄音的內容是這樣的:「Hello,this is Linus Torvalds and I pronounce Linux as Linux」。我聽出來的是/'li:nэks/,綜合網上和linus自己的讀音,概括出幾個自認為最合適也最通用的讀法:/Li'nQks/(「里那克斯」)或/'li:nэks/(「里呢克斯」)或/Li'nu:ks?/(「里紐克斯」)。這幾個應該是誰都聽得懂的。至於哪個比較正宗,當然是linus的原音。但事實上似乎使用linus那種讀發的人並不在多數。
提示:上面的這段錄音可以在RedHat中調試音效卡的時候可以聽到,如果你的音效卡調試成功,系統會播放上面一段聲音以示成功。
1.2.2 Linus Torvalds的發音
我們還應該了解一下其作者名子的發音。畢竟是一個人的名子,沒人敢隨便念。基本上比較統一。在英語中,Linus Torvalds(/li'nus 'tRwR:z/)中文就是「李紐斯·托沃茲」,也有翻成「李納斯·托沃茲」的。但是你有機會聽上面提到的那段錄音,可以發現他念的是「李紐斯·托沃茲」。一般我們稱他為linus先生,也就是「李牛死」。
2、體系結構概述
按照Garlan和Shaw提出的Linux操作系統分層方法:Linux操作系統分為4層次,即四個子系統,分別是用戶進程、系統調用介面、Linux內核、硬體控制器。下面簡單介紹一下這四個組成部分。
用戶進程:用戶應用程序是運行在Linux操作系統最高層的一個龐大的軟體及核。當一個用戶程序在操作系統之上運行時,它就是操作系統的一個進程。計算機不同,程序的集合大小會有所變化。
系統調用介面:為了在應用程序中實現特定的任務,可以通過系統調用來調用操作系統內核中特定的過程,以實現特定的服務。一般認為,這些調用和服務業時操作系統的一部分,內和編程介面也屬於這一部分。系統調用本身也是由若干條指令組成的,但與一般過程不同的是:系統調用運行在內核模式,而一般的進程運行在用戶模式。
Linux內核:內核式操作系統的靈魂,包括內核抽象核對硬體資源(如cpu)的間接訪問,它負責管理磁碟上的文件、內存,負責啟動系統並運行程序,負責從網路上接收和發送數據包等等
硬體:這個子系統包括了Linux安裝時需要的所有可能的物理設備。
3、Linux內核
從程序員的角度來講,操作系統的內核提供了一個虛擬的機器介面。它抽象了許多硬體細節,程序可以以某種統一的方式來進行數據管理,而內核將所有的硬體抽象成統一的虛擬借口。
Linux以統一的方式支持多任務,而這種方式對用戶進程是透明的,每一個進程運行起來就好像只有它一個進程在計算機上運行一樣,獨占內存和其他的硬體資源。實際上內核在並發的運行幾個進程。並且能夠讓幾個進程公平合理地使用硬體資源,也能使各個進程之間互不幹擾安全的運行。讀到這里你就明白了為什麼linux不會象windows那樣常死機、藍屏。linux如果使用圖形界面可能會發現計算機好像死機了,其實沒有死,而是某個進程死了,可能就是你的kde,gnome.殺死這個進程就可以了不必reset.
Linux內核也要完成一般操作系統必須完成的任務:
對文件系統的讀寫進行管理,把對文件系統的操作映射成對磁碟或者其他塊設備的操作,Linux系統把所有的設備對定義為文件了,哈哈,這可與windows不同。
管理程序的運行,為程序分配資源,並且處理程序之間的通訊。
管理存儲器,為程序分配內存,並且管理虛擬內存
管理輸入輸出,將設備映射成文件。
管理網路:有「網路之子」之稱的Linux,對網路的管理可是她的強項。使用Linux你就會感受到它的網路功能的強大,可以使用Linux模擬強大的Csico高級路由器,那種感覺真實太棒了,只要幾百塊錢買一台486的計算機哦,就可以在上面自己構造強大功能的路由器,是不是動心了,哈哈,不過軟體實現的路由器性能肯定比不上硬體路由器。
內核必須包含虛擬文件系統(VFS)管理程序以及各種具體文件系統映射成VFS的程序。這可是Linux較有特設的一部分,這就是為什麼Linux支持的文件系統(minix文件系統、ext2/ext3文件系統、msdos/vfat/ntfs文件系統、iso9600CD-ROM的標准文件系統、hpfs OS/2用的文件系統、ufs/sysv 文件系統)很多的原因。對於內存的管理,Linux使用虛擬存儲管理方式,利用現代處理器的頁面映射能力,在x86處理器上,Linux使用4GB的地址空間,操作系統處理利用物理存儲器外還支持將硬碟空間映射成虛擬內存。所有的存儲器(物理內存和虛擬內存)被分成大小相等的頁面,系統通過給出頁號和頁面內偏移量對某個內存地址進行訪問。物理內存緊張的時候,操作系統把某些沒有使用的頁面從內存移動到硬碟上以便騰出空閑的頁面供程序使用,這個過程叫做交換(SWAP).Linux使用交換分區來處理交換需要的虛擬存儲空間,在硬碟上開設一個獨立的分區專門用於映射虛擬內存,交換分區可以有多個,之所以這樣是因為早期的Linux核心要求每一個交換分區不能超過128MB.對於較重負荷的伺服器,交換內存用到256MB甚至更多都是很正常的事情,因此那時的系統經常有多個交換分區。目前這個限制已經去除。
內核的另外一個任務是執行用戶程序,為此核心必須支持可執行格式。Linux使用多種可執行文件個時,諸如elf、aout等等,這可與windows不同,沒有辦法從名字上區分一個文件到底是什麼格式,核心只關心二進制文件的具體形式。
linux內核由五個主要的子系統組成:進程調度(SCHED)、內存管理(MM)、虛擬文件系統(VFS)、網路介面(NET)、進程間通信(IPC)。進程調度處於核心位置,所有的子系統都依賴於它,因為每一個子系統都需要掛起或者恢復進程。一般情況下,當一個進程等待硬體操作完成時,它會被掛起;當操作真正完成時,進程恢復執行。各個子系統之間的依賴關系如下:
進程調度與內存管理之間的關系:這兩個子系統互相依賴。在多道程序環境下,程序運行必須為之創建進程,而創建進程的第一件事就是要將程序和數據裝入內存。
進程間通信與內存管理的關系:進程間通信子系統要依賴內存管理支持共享內存通信機制。這種機制尤許兩個進程除了擁有自己的私有內存外,還可存取共同的內存區域。
虛擬文件系統與網路介面之間的關系:虛擬文件系統利用網路介面支持網路文件系統(NFS),也利用內存管理支持RAMDISK設備
內存管理與虛擬文件系統之間的關系:內存管理利用虛擬文件系統支持交換,交換進程定期地由調度程序調度。
也可參照以下網址:http://ew.gqjy.net/kcgg/zczn/Win2000/200608/22649.html