Linux 2.4的精彩世界(2)(轉)

subid發表於2007-08-17
Linux 2.4的精彩世界(2)(轉)[@more@]作者:Joe Pranevich 編譯:Georgia

Linux 2.4和ia64(Itanium)

  在產品釋出給期待以久的使用者之前,Intel的64位處理器晶片就已經開始取代X86生產線了。在沒有得到晶片以前,支援這些晶片以及它們後續晶片的補丁已經被包含在Linux的主流核心版本中了,Linux已經移植了一些對64位晶片(如康柏的Alpha和Sparc64)的支援。這些工作無疑使得Linux支援Intel64變的比較容易。


Linux的內部

  Linux 2.2是Linux 2.0和Linux 1.x基礎上的重大突破。它支援許多新的檔案系統,一個新的檔案緩衝系統,並且是容易升級的(如果你需要了解Linux 2.2的新特性,你可以閱讀我有關的文章)。Linux 2.4就是在這樣的基礎上建立起來的,幾乎是可以執行在各種環境中最完美的核心。

  Linux的核心可以看作是各種模組和子系統的集合,這些模組和子系統包括驅動程式、協議以及其他部件。他們透過API和程式設計介面,粘合在核心周圍,然後由API和程式設計介面提供呼叫核心的標準方法。本文的大部分篇幅將集中在Linux的這些部件上,因為大部分任務都是由這些部件完成的:驅動磁碟、讀取檔案和其他顯然是物理性的工作。Linux 2.4還遠不止這些,這些模組圍繞在Linux核心的中心周圍。這個中心結構的基本特徵就是排程、記憶體管理、虛擬檔案系統和資源分配。

  Linux 2.4是第一個具有全功能的資源管理子系統的Linux版本。我們現在熟悉的"即插即用"的功能在以前的Linux版本中被認為是很不支援或者僅僅有一點支援的痕跡。跟其他的內部變化不同,很多使用者可以直接感受到這種變化--核心分配資源並報告的過程變得簡單了。由於這個變化的緣故,在Linux 2.2裡不能識別的PCI卡資料庫又被重新啟用,因此所有的資源可以有一個與之相關聯的裝置名,而勝於只是一個關聯的驅動程式。

  Linux 2.4是第一個具有全功能的資源管理子系統的Linux版本。我們現在熟悉的"即插即用"的功能在以前的Linux版本中被認為是很不支援或者僅僅有一點支援的痕跡。跟其他的內部變化不同,很多使用者可以直接感受到這種變化--核心分配資源並報告的過程變得簡單了。由於這個變化的緣故,在Linux 2.2裡不能識別的PCI卡資料庫又被重新啟用,因此所有的資源可以有一個與之相關聯的裝置名,而勝於只是一個關聯的驅動程式。 新的Linux修正了一些VFS層(虛擬檔案系統)的問題並對檔案緩衝區做了修改。在舊版本的Linux中,檔案緩衝獨立於一個雙緩衝區系統之上,這個系統簡化了很多的問題,但是卻使那些不得不保證緩衝區同步的程式設計師感到頭痛。另外,冗餘緩衝的使用加大了記憶體的開銷,並且使系統不得不做額外的工作來保證這些緩衝的同步,減低了效能。Linux2.4用一個簡單的單緩衝系統解決了這個問題。

  很多Linux 2.4的變化被稱為是"企業級"的。這意味著這些加強系統整體的變化對於桌面系統的使用者來說,不會立即體現出它們的效用。 在大多數情況下,這些附加的效能不會明顯降低Linux在普通環境下的效能。首先,Linux 2.4可以透過升級到多處理器系統或者提供一個可配置的執行緒限制,處理更多的併發執行緒。其次,一個更新的更高效率的排程器處理更多的併發執行緒。第三,更新的Linux核心可以處理驚人數量的使用者和組--大約42億。另外,新的核心支援更多強大的硬體,如Intel的64G記憶體,16位的乙太網卡,10個IDE控制器,多重IO-APICs,更多的其他硬體。2G的檔案大小的限制也被突破了。這一切變化都表明,Linux可以勝任更多的環境。Linux管理共享記憶體的方法也更符合標準。這一系列的改變的一個重要的影響是Linux 2.4需要掛載特殊的"共享記憶體"檔案系統以便使被共享的(POSIX型)記憶體段能夠正常工作。SysV型共享記憶體則不需要其他檔案系統就可以繼續工作。這項工作應該在發行Linux 2.4版本時得到處理。

  Linux 2.4使改進後的共享記憶體的處理更加符合標準。改動後的副作用是,Linux 2.4必須載入一個特殊的“共享記憶體”檔案系統才能使POSIX型別的共享記憶體片斷正常工作。而SysV型共享記憶體則不需要另外的檔案系統。該檔案系統的載入需要Linux 2.4發行時提供。

  Linux核心的這個新版本中的另一個“老”變動是對VFS層的改進。以前的版本甚至是UNIX的每個版本,每次都只能載入一個檔案系統,但Linux 2.4現在則允許任何檔案系統載入多次,並使所有改動立即顯示在其他載入點上。這對像/proc這樣需要在ini trd中載入多次的檔案系統是非常適用的。此外,它還允許統一載入,即同時包含多個檔案系統的檔案。

  以前的版本甚至是UNIX的每個版本,每次都只能載入一個檔案系統,但Linux 2.4現在則允許任何檔案系統載入多次。這對像/proc這樣需要在ini trd中載入多次的檔案系統是非常適用的。此外,它還允許統一載入,即同時包含多個檔案系統的檔案。 Linux 2.4還包括一個更大的驅動程式庫,比以前的版本支援更多的硬體,幾乎任何你叫得出名字的硬體都得到了支援(當然,我們建議你在出門購買新的硬體之前還是應該仔細閱讀有關的文件,萬一你要購買的硬體特殊而沒有得到支援呢?)

  一個經常被提到的問題是Linux 2.4需要多少記憶體。很多作業系統似乎隨著他們的成熟而需要越來越多的記憶體和資源。但是,Linux 2.4有力的遏制了這種趨勢。在特定的環境下,Linux 2.4需要更少的記憶體。當然,Linux 2.4包含了比Linux 2.2更多的功能,而很多的新特性都需要資源。(但是請記住,與其他的作業系統不同,Linux的很多部件在編譯時是可以關閉的。)

UNIX 裝置 - /dev/*

  我們在討論Linux 2.4的硬體支援之前,我不得不停下來關注Linux 2.4最近爭議最多的功能部件:DevFS :the device filesystem(裝置檔案系統)。雖然目前該部件還是可選的,但在啟用時,新的裝置檔案系統將對使用者和程式與硬體和其他裝置的互動產生兩個重大的影響。其一,也是最明顯的是,它將更改幾乎所有"標準"裝置的名稱。Linux 2.4的/dev子目錄下會有很多目錄,分別對應於控制器或帶有磁碟或裝置的通用組。其二,裝置節點不再由使用者建立並儲存在本地磁碟,而是由使用這些節點的驅動程式在裝載時建立。這樣不僅使/dev目錄更清晰,而且還能使Linux使用不能識別所有UNIX語法的根檔案系統(如DOS)。建議使用devfsd,它可以使舊型別的名稱繼續使用。

  但是對於高階使用者來說,這個系統還是有缺點的。例如,在該系統中對裝置名稱進行自定義,或者進行非標準性的授權都是比較困難的。不過這些問題可以透過更改使用者指令碼來解決。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10796304/viewspace-963214/,如需轉載,請註明出處,否則將追究法律責任。

相關文章