<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Linux2.4內核為我們帶來(lái)了什么?

Linux2.4內核為我們帶來(lái)了什么?

作者: 時(shí)間:2006-12-12 來(lái)源:網(wǎng)絡(luò ) 收藏
□ 中科紅旗軟件技術(shù)有限公司技術(shù)副總監 葉以民
  
  支持更多的體系結構
  以純代碼行的觀(guān)點(diǎn)來(lái)看,Linux內核主要是一些驅動(dòng)程序。事實(shí)上,對于最近發(fā)行的幾個(gè)版本來(lái)說(shuō),Linux核心的容量增加得并不太多。有些驅動(dòng)程序具有獨立的結構,例如驅動(dòng)程序。也就是說(shuō),這些程序可以在多個(gè)平臺上運行。其他的驅動(dòng)程序則依賴(lài)于一個(gè)特定的結構。例如,ADB(蘋(píng)果桌面總線(xiàn))鼠標驅動(dòng)程序就不適用于也不支持i386端口。Linux內核開(kāi)發(fā)者努力使驅動(dòng)程序盡可能通用化,以便獲得一個(gè)設備時(shí),很容易就能使驅動(dòng)程序在不同的平臺上重復利用。將Linux內核視為一個(gè)整體是最方便的,不過(guò)有些功能會(huì )根據平臺的不同而不同。
  Linux2.4增加了對三個(gè)新架構的支持:IA64(Itanium)、S/390和SuperH(WindowsCE硬件)。Linux2.4也包含了對更新的64位MIPS處理器的支持。
  Linux2.4能支持最新的PentiumIV處理器,也支持2。并且還增加了對所有處理器的最優(yōu)化指令來(lái)加速Linux,尤其對較新的處理器,如PentiumIII處理器的優(yōu)化。它還支持與Intel兼容的芯片,例如那些由AMD和Cyrix生產(chǎn)的CPU。另外,Linux2.4將包含對其他硬件的支持,這些硬件經(jīng)常出現在更新的芯片上,包括非Intel的各種各樣的MTRR(Memory Type Range Registers),這些MTRR將在一些高帶寬的設備上改進(jìn)性能。Linux2.2包含了在多處理器系統上對于IO-APIC(高級可編程的中斷控制器)的支持,Linux2.4也將支持這些在多功能處理器系統上的新技術(shù),并且也支持帶有多IO-APIC的機器。對于多IO-APIC系統的支持將允許Linux2.4具有比先前的基于高端硬件的Linux版本更好的量身定制的功能。
  隨著(zhù)處理器的不斷升級,Linux內核也需要隨之發(fā)展。2.4內核中新添加的功能是對2G以上處理器的支持。
  在產(chǎn)品發(fā)布給期待已久的用戶(hù)之前,Intel的64位處理器芯片就已經(jīng)開(kāi)始取代X86生產(chǎn)線(xiàn)了。在沒(méi)有得到芯片以前,支持這些芯片以及它們后續芯片的補丁已經(jīng)被包含在Linux的主流內核版本中了,同時(shí)Linux也移植了一些對64位芯片(如康柏的Alpha和SPARC64)的支持。
  
  內部功能的擴充與優(yōu)化
  Linux 2.2是在Linux 2.0和Linux1.x基礎上的重大突破。它支持許多新的文件系統,一個(gè)新的文件緩沖系統,并且容易升級。Linux 2.4就是在這樣的基礎上建立起來(lái)的,幾乎是可以運行在各種環(huán)境中的內核。
  Linux的內核可以看作是各種模塊和子系統的集合,這些模塊和子系統包括驅動(dòng)程序、協(xié)議以及其他部件。它們通過(guò)API和編程接口,粘合在內核周?chē)?,然后由API和編程接口提供調用內核的標準方法。本文的大部分篇幅將集中在Linux的這些部件上,因為大部分任務(wù)都是由這些部件完成的:驅動(dòng)磁盤(pán)、讀取文件和其他顯然是物理性的工作。Linux2.4還遠不止這些,這些模塊圍繞在Linux內核的中心周?chē)?。這個(gè)中心結構的基本特征就是調度、內存管理、虛擬文件系統和資源分配。
  Linux2.4是第一個(gè)具有全功能的資源管理子系統的Linux版本。我們現在熟悉的“即插即用”的功能在以前的Linux版本中被認為是很不支持或者僅僅有一點(diǎn)支持的痕跡。跟其他的內部變化不同,很多用戶(hù)可以直接感受到這種變化使內核分配資源并報告的過(guò)程變得簡(jiǎn)單了。由于這個(gè)變化的緣故,在Linux2.2里不能識別的PCI卡數據庫又被重新啟用,因此所有的資源可以有一個(gè)與之相關(guān)聯(lián)的設備名,而勝于只是一個(gè)關(guān)聯(lián)的驅動(dòng)程序。
  Linux2.4修正了一些VFS層(虛擬文件系統)的問(wèn)題并對文件緩沖區做了修改。在舊版本的Linux中,文件緩沖獨立于一個(gè)雙緩沖區系統之上,這個(gè)系統簡(jiǎn)化了很多問(wèn)題,但是卻使那些不得不保證緩沖區同步的程序員感到頭痛。另外,冗余緩沖的使用加大了內存的開(kāi)銷(xiāo),并且使系統不得不做額外的工作來(lái)保證這些緩沖的同步,降低了性能。Linux2.4用一個(gè)簡(jiǎn)單的單緩沖系統解決了這個(gè)問(wèn)題。
  很多Linux2.4的變化被稱(chēng)為是“企業(yè)級”的。這意味著(zhù)這些加強系統整體的變化對于桌面系統的用戶(hù)來(lái)說(shuō),不會(huì )立即體現出它們的效用。在大多數情況下,這些附加的性能不會(huì )明顯降低Linux在普通環(huán)境下的性能。首先,Linux2.4可以通過(guò)升級到多處理器系統或者提供一個(gè)可配置的線(xiàn)程限制,處理更多的并發(fā)線(xiàn)程。其次,一個(gè)更新的更高效率的調度器能處理更多的并發(fā)線(xiàn)程。第三,更新的Linux內核可以處理驚人數量的用戶(hù)和組――大約42億。另外,新的內核支持更多強大的硬件。2G的文件大小的限制也被突破了。這一切變化都表明,Linux可以勝任更多的環(huán)境。
  Linux2.4使改進(jìn)后的共享內存的處理更加符合標準。改動(dòng)后的副作用是,Linux2.4必須加載一個(gè)特殊的“共享內存”文件系統才能使POSIX類(lèi)型的共享內存片斷正常工作。而SysV型共享內存則不需要另外的文件系統。該文件系統的加載需要Linux2.4發(fā)行時(shí)提供。
  Linux內核的這個(gè)新版本中的另一個(gè)“老”變動(dòng)是對VFS層的改進(jìn)。以前的版本甚至是Unix的每個(gè)版本,每次都只能加載一個(gè)文件系統,但Linux2.4現在則允許任何文件系統加載多次,并使所有改動(dòng)立即顯示在其他加載點(diǎn)上。這對像/proc這樣需要在initrd中加載多次的文件系統是非常適用的。此外,它還允許統一加載,即同時(shí)加載包含多個(gè)文件系統的文件。
  一個(gè)經(jīng)常被提到的問(wèn)題是Linux 2.4需要多少內存。很多操作系統似乎隨著(zhù)他們的成熟而需要越來(lái)越多的內存和資源。但是,Linux2.4有力地遏制了這種趨勢。在特定的環(huán)境下,Linux2.4需要更少的內存。當然,Linux2.4包含了比Linux2.2更多的功能,而很多的新特性都需要資源。
  
  支持更多的系統總線(xiàn)
  Linux2.2支持Intel硬件內部的所有主要總線(xiàn),包括(E)ISA、VLB、PCI以及MCA。Linux2.4除此以外還包括對ISA即插即用設備(這種方案使ISA設備幾乎與PCI一樣智能)和智能輸入/輸出(I2O)設備的支持。最重要的是,Linux2.4是首個(gè)提供資源管理的強大系統的Linux內核版本。在開(kāi)發(fā)Linux2.4的過(guò)程中發(fā)現,要使Linux完全支持USB、PC卡或其他先進(jìn)的硬件,這是Linux作為一個(gè)“現代的”操作系統所必需的。
  ISA PnP一直是Linux用戶(hù)的主要問(wèn)題。雖然由于更強大的PCI硬件的出現,對ISA硬件的支持已經(jīng)縮小,但使用ISA PnP的設備仍在銷(xiāo)售。以前,Linux用戶(hù)使用ISA PnP硬件都是用pnp實(shí)用程序,它通常需要幾個(gè)小時(shí)才能完成。有些版本試圖自動(dòng)完成這個(gè)過(guò)程,但都沒(méi)有成功。而Linux2.4將ISA PnP支持同資源管理器結合在一起,從而解決了這一問(wèn)題。不過(guò)對不太普遍的PnP硬件來(lái)說(shuō),Linux 2.4對ISA PnP的內核級支持還沒(méi)有實(shí)現。
  Linux 2.4也包括對I2O的支持,I2O是PIC的超集,PIC提供對內存、寄存器的集中管理。而I2O設備更深一層,可以在設備級上提供API,從而為設備提供操作系統的獨立驅動(dòng)程序。底層的操作系統需要識別“通配”的I2O API,而不是指定的硬件。由于這項技術(shù)還比較新,沒(méi)有多少設備使用了該項技術(shù),但這種產(chǎn)品一旦投放市場(chǎng),Linux能馬上做好準備。
  目前對設備進(jìn)行的主要工作并不是內部總線(xiàn),而是外部總線(xiàn),如PC卡總線(xiàn)和各種串行總線(xiàn)。Linux2.4也增強了對外部設備的PC卡支持。很多發(fā)行版本已經(jīng)包含它了。不過(guò)為了更好地使用這些設備,Linux 2.4仍然需要一個(gè)外部的daemon(進(jìn)程)和其他一些部件。
  USB是許多新設備很歡迎的選件,包括非Intel的硬件。雖然,Linux對這些設備的支持還處于初期階段,但是Linux內核已經(jīng)支持大部分的通用USB硬件(包括鍵盤(pán)、鼠標、話(huà)筒等)。
  Linux 2.4還增加了對Firewire(IEEE1394)的支持,Firewire一直以來(lái)受到很多高帶寬設備的青睞。然而,至今很多現有的驅動(dòng)程序或者設備不支持這些硬件體系結構,但是隨著(zhù)時(shí)間的推移,當該體系結構成熟的時(shí)候,這些支持將很可能得到改善。
  
  改進(jìn)的塊設備支持
  在簡(jiǎn)單的列表中,塊設備被描述為一個(gè)可以不連續訪(fǎng)問(wèn)的字節數組。這將包括磁盤(pán)(你可以讀你想要的任何扇區),但不是串口(因為你只能在線(xiàn)的末端讀?。?。延伸這個(gè)概念(例如彈出磁盤(pán)等)在Linux中通過(guò)ioctls(I/O控制)變得很容易。但是塊設備的概念很長(cháng)時(shí)間沒(méi)有改變,第一個(gè)Linux內核修訂本就支持已存在的磁盤(pán)驅動(dòng)器。
  在Linux2.4中,所有塊設備的驅動(dòng)程序都重寫(xiě)了一些,塊設備API從接口中去掉了一些遺留的垃圾,并在內核級將模塊API完全同文件API分開(kāi)。但是如果模塊維護人員運用了主子目錄之外的模塊,則需要對源碼進(jìn)行更新(沒(méi)有人假定API與主要修訂版內核完全兼容)。
  在臺式機中,普遍使用的是總線(xiàn)磁盤(pán)驅動(dòng)器。Linux從早期內核就開(kāi)始支持IDE,Linux2.4在許多方法上增強了對這些設備的支持。首先,擁有多個(gè)IDE控制器的高端系統,如果將IDE控制器數從4增加到10個(gè),則效果會(huì )更好。大多數的主板最多只有2個(gè)IDE控制器,這并不會(huì )對臺式機的使用者產(chǎn)生多大的影響。其次,這些IDE驅動(dòng)程序的改動(dòng)提高Linux2.4對PCI和即插即用IDE控制器的支持,包括IDE軟盤(pán)和磁帶機、DVD和CD-ROM;最后,Linux 2.4包括了可以逐步解決一些IDE芯片驅動(dòng)程序更新的問(wèn)題,并且更好地支持其他先進(jìn)的特性,例如ATA66。
  看起來(lái)似乎子系統沒(méi)有IDE子系統改動(dòng)的多,子系統在外殼中進(jìn)行了大量的重寫(xiě),另外,這個(gè)版本中支持了許多新的SCSI控制器。
  Linux2.4內核中一個(gè)全新的特性是實(shí)現了raw I/O設備,raw設備不通過(guò)高速緩存層處理,自動(dòng)尋找到低級設備。萬(wàn)一一個(gè)復雜的程序要求完全的控制,用緩存方式無(wú)法滿(mǎn)足,這時(shí)可以使用raw設備。raw設備能夠用于數據要求嚴格的情況下,例如:我們確保數據立即寫(xiě)入磁盤(pán),系統失敗時(shí)不會(huì )遺失數據。以前的版本沒(méi)有合適的方法,包括它們字面上需要加倍設備節點(diǎn)數以使每個(gè)塊設備都有一個(gè)raw設備節點(diǎn)(這是一些商業(yè)Unix使用的方法),本版本使用一組設備節點(diǎn)來(lái)實(shí)現,它可以連接任意的塊設備。
  Linux 2.4一個(gè)主要改進(jìn)是在主流內核中加入了LVM(邏輯卷管理)子系統。這在一些企業(yè)級的Unix,如HP-UX和Tru64 Unix中是一個(gè)系統和標準,它完全重新考慮管理文件系統和卷的方法。


關(guān)鍵詞: MMX MMX2 SCSI IDE

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>