自從
我們把內核版本之間內容較大的變化分為三個階段,第一階段為0.02~0.99.15j,第二階段為1.0~1.2.x,第三階段為1.2.x~2.x.x 。一般來說,一個軟件要到理論上已經完備或者已經沒有毛病時才給予1.0版本的版本號,而Linux2.0以後的版本比起1.2.x版本有了較大幅度的變化,請看站點http://www.linuxhq.com/的內容。
從Linux誕生開始,Linux內核就從來沒有停止過升級,從Linus第一次發布的0.02版本到1999年具有裡程碑意義的2.2版本,一直到我們現在看到的2.4版本,都凝聚了Linux內核開發人員大量辛苦的勞動。目前Linux在各種工作平台上,包括企業服務器和個人電腦上的廣泛應用,使得Linux成為了Windows的強勁對手。
本書所分析的Linux內核版本是2.4版的
1.廣泛的支持
· 處理器芯片的廣泛支持 :Linux 2.4 提供了大量的處理器芯片的支持。原先的Linux就可以支持多種處理器體系結構,如Intel x86、Motorola/IBM PowerPC、Compaq(DEC)Alpha等等,現在還增加了對IA 64、S/390、SuperH這3種體系結構的處理器的支持。對Intel的x86系列來說,AMD和Cyrix公司的系列處理器產品也是使用x86指令的,同樣也能獲得很好的支持。
· 對ISA 即插即用設備的支持: 過去在Linux核心開發小組裡面存在有兩種不同的觀點,一種是支持對ISA即插即用,另外一種持反對意見,認為對即插即用的支持簡直是多余的。因此過去在Linux裡對即插即用設置的通用做法只能是利用用戶級的工具(如isapnp tools),手動配置即插即用設備。現在的內核則有所不同了,在內核級實現了對即插即用的管理。我們可以看到系統會在啟動的時候自動完成對即插即用設備的檢測和自動配置,比如說,我們可以從一個即插即用的IDE控制器上啟動系統。
· 廣泛的文件系統支持:很少有一個操作系統能支持這麼多種文件系統。Linux使用的是VFS(虛擬文件系統)的技術,提供了對多種文件系統的支持。從Linux 1.x到Linux 2.2,Linux已經可以支持多種文件系統了。如Windows 9x的VFAT、DOS的FAT、Mac OS的HFS、OS/2的HPFS、Windows NT的NTFS(NTFS的支持還處於測試階段)等等;當然還包括Linux自己使用的高性能的Ext2文件系統。新版本的Linux新增支持現在的DVD使用的UDF文件系統和SGI的IRIX系統上的XFS文件系統。
在Windows裡面使用SMB協議來實現“網上鄰居”的共享訪問,Linux 2.4的內核裡會讓您自己選擇是否從Windows 98/NT下裝載驅動器,還可以自動檢測遠端的系統類型,使得您的Linux在Windows環境的局域網裡工作得更好。
對NFS(網絡文件系統)來說,Linux 2.4版本支持最近發布的NFS v3版本的網絡文件系統。
· 對軟貓的支持:軟貓實際上被人稱為WinModem,就是因為現有的這種軟貓的驅動都是由為Windows開發的軟件來完成的。這種Modem和一般Modem的處理方法不同,它的DSP處理並不是在硬件層次上做的,而是使用軟件通過CPU實現的,因此無法在現有的Linux中配置這種Modem上網。現在的Linux內核裡已經開始了這方面的支持。
2.新思路
· 新型的設備管理方法:Linux 2.4 引入了I2O(Intelligent Input/Output)的設備驅動管理方法。它的做法是,將驅動程序分成了兩個部分:一個是在操作系統模塊的部分,另外一個是在硬件模塊的部分。操作系統模塊的部分是獨立的,硬件模塊的部分是依賴於硬件結構的。這種新型的管理方法使得Linux 2.4可以更好地支持大部分的ISA和PCI設備。
· 對USB總線的支持:近年來,USB(通用串口總線)的技術是計算機界振奮人心的事情之一,現在已經出現了大量的使用這種接口的設備,如鍵盤、鼠標、音箱、Modem等等。使用USB接口使得計算機外設的安裝和使用變得更為簡單,自然成為了一種潮流。現在的Linux 也可以很好地支持這種總線接口的設備。
· 新型的二進制執行代碼類型(Binary Types): Linux是第一個在內核級提供內建Java解釋器的支持,從而進行Java代碼的執行的操作系統之一。這在Linux 2.2版本裡已經實現了。Linux 2.4版本又做了改進,將這種支持的方法改為對“Misc”二進制類型的支持。通過使用這種類型的二進制代碼類型,用戶甚至可以利用DOSEMU(MS DOS模擬器)或者WINE(MS Windows模擬器)來運行在DOS/Windows下的.exe或.com的程序。同樣用戶也可以自己配置出Java字節碼運行類型。
· 內核級的Web服務器:這種Web服務器和我們所謂的Apache用戶層上的Web服務器並不沖突。對HTTP請求首先由內核級的Web服務器進行處理,如果不能處理就將請求提交給Apache用戶級Web服務器來處理。像這樣的構思和實現在網絡操作系統中實屬一絕。
3.高性能
· 對虛擬文件系統(VFS)的修改:Linux 2.4版本的文件系統修改了VFS中的錯誤,尤其是在文件的緩存管理上。過去的文件系統的高速緩存管理是建立在復雜的雙緩沖池(dual-buffer pool) 上的,這種方法導致連開發人員都不知道什麼時候將雙緩沖池進行同步。這種處理方法並沒有給文件處理帶來好處,反而增加了內存的使用。因為要處理雙緩沖系統的同步,使得系統的處理速度降低。現在開發人員修改這段代碼,使用了簡單有效的單緩沖系統,提高了文件系統的處理效率。
· 對高端服務器的支持:Linux 2.4版本的內核可以支持在SMP(對稱多處理器系統)下的多個IO-APIC(輸入輸出的高級可編程中斷控制器),提高了對高端服務器的支持效率。
Linux 2.4版本可以支持多達10個IDE控制器。過去的Linux版本只能支持最多4個ID 控制器。一些強大的企業級Web服務器正需要這樣的硬件支持。
Linux 2.4版本可以支持Intel P6以上芯片的MTRR(內存類型范圍寄存器),對非Intel的如Cyrix 6x86、6x86MX、MII的ARR(地址范圍寄存器)也能有很好的支持,這使一些高帶寬的設備的運行性能得到提高。
現在的內核可以支持多達42億個用戶。在Intel架構上可以支持到多達4GB的內存。並且現在的內核還可以支持多達16塊以太網卡,同時支持最大容量為2GB的文件。
這些性能都使得Linux對高端設備的支持能力得到提高。
· 對高速網的支持:Linux 2.4版本支持ATM網絡適配器等高速網絡設備,為進一步的網絡發展做好了准備。對低端用戶來說,Linux提供的PPP層和ISDN層的結合,提供了在並口線上的PPP和在以太網上的PPP支持。