當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]以純代碼行的觀點(diǎn)來(lái)看,Linux內(nèi)核主要是一些驅(qū)動(dòng)程序。事實(shí)上,對(duì)于最近發(fā)行的幾個(gè)版本來(lái)說(shuō),Linux核心的容量增加得并不太多。有些驅(qū)動(dòng)程序具有獨(dú)立的結(jié)構(gòu),例如IDE驅(qū)動(dòng)程序。也就是說(shuō),這些程序可以在多個(gè)平臺(tái)上運(yùn)行。其他的驅(qū)動(dòng)程序則依賴于一個(gè)特定的結(jié)構(gòu)。例如,ADB(蘋果桌面總線)鼠標(biāo)驅(qū)動(dòng)程序就不適用于也不支持i386端口。Linux內(nèi)核開(kāi)發(fā)者努力使驅(qū)動(dòng)程序盡可能通用化,以便獲得一個(gè)設(shè)備時(shí),很容易就能使驅(qū)動(dòng)程序在不同的平臺(tái)上重復(fù)利用。將Linux內(nèi)核視為一個(gè)整體是最方便的,不過(guò)有些功能會(huì)根據(jù)平臺(tái)的不同而不

□ 中科紅旗軟件技術(shù)有限公司技術(shù)副總監(jiān) 葉以民

支持更多的體系結(jié)構(gòu)
以純代碼行的觀點(diǎn)來(lái)看,Linux內(nèi)核主要是一些驅(qū)動(dòng)程序。事實(shí)上,對(duì)于最近發(fā)行的幾個(gè)版本來(lái)說(shuō),Linux核心的容量增加得并不太多。有些驅(qū)動(dòng)程序具有獨(dú)立的結(jié)構(gòu),例如IDE驅(qū)動(dòng)程序。也就是說(shuō),這些程序可以在多個(gè)平臺(tái)上運(yùn)行。其他的驅(qū)動(dòng)程序則依賴于一個(gè)特定的結(jié)構(gòu)。例如,ADB(蘋果桌面總線)鼠標(biāo)驅(qū)動(dòng)程序就不適用于也不支持i386端口。Linux內(nèi)核開(kāi)發(fā)者努力使驅(qū)動(dòng)程序盡可能通用化,以便獲得一個(gè)設(shè)備時(shí),很容易就能使驅(qū)動(dòng)程序在不同的平臺(tái)上重復(fù)利用。將Linux內(nèi)核視為一個(gè)整體是最方便的,不過(guò)有些功能會(huì)根據(jù)平臺(tái)的不同而不同。
Linux2.4增加了對(duì)三個(gè)新架構(gòu)的支持:IA64(Itanium)、S/390和SuperH(WindowsCE硬件)。Linux2.4也包含了對(duì)更新的64位MIPS處理器的支持。
Linux2.4能支持最新的PentiumIV處理器,也支持MMX和MMX2。并且還增加了對(duì)所有處理器的最優(yōu)化指令來(lái)加速Linux,尤其對(duì)較新的處理器,如PentiumIII處理器的優(yōu)化。它還支持與Intel兼容的芯片,例如那些由AMD和Cyrix生產(chǎn)的CPU。另外,Linux2.4將包含對(duì)其他硬件的支持,這些硬件經(jīng)常出現(xiàn)在更新的芯片上,包括非Intel的各種各樣的MTRR(Memory Type Range Registers),這些MTRR將在一些高帶寬的設(shè)備上改進(jìn)性能。Linux2.2包含了在多處理器系統(tǒng)上對(duì)于IO-APIC(高級(jí)可編程的中斷控制器)的支持,Linux2.4也將支持這些在多功能處理器系統(tǒng)上的新技術(shù),并且也支持帶有多IO-APIC的機(jī)器。對(duì)于多IO-APIC系統(tǒng)的支持將允許Linux2.4具有比先前的基于高端硬件的Linux版本更好的量身定制的功能。
隨著處理器的不斷升級(jí),Linux內(nèi)核也需要隨之發(fā)展。2.4內(nèi)核中新添加的功能是對(duì)2G以上處理器的支持。
在產(chǎn)品發(fā)布給期待已久的用戶之前,Intel的64位處理器芯片就已經(jīng)開(kāi)始取代X86生產(chǎn)線了。在沒(méi)有得到芯片以前,支持這些芯片以及它們后續(xù)芯片的補(bǔ)丁已經(jīng)被包含在Linux的主流內(nèi)核版本中了,同時(shí)Linux也移植了一些對(duì)64位芯片(如康柏的Alpha和SPARC64)的支持。

內(nèi)部功能的擴(kuò)充與優(yōu)化
Linux 2.2是在Linux 2.0和Linux1.x基礎(chǔ)上的重大突破。它支持許多新的文件系統(tǒng),一個(gè)新的文件緩沖系統(tǒng),并且容易升級(jí)。Linux 2.4就是在這樣的基礎(chǔ)上建立起來(lái)的,幾乎是可以運(yùn)行在各種環(huán)境中的內(nèi)核。
Linux的內(nèi)核可以看作是各種模塊和子系統(tǒng)的集合,這些模塊和子系統(tǒng)包括驅(qū)動(dòng)程序、協(xié)議以及其他部件。它們通過(guò)API和編程接口,粘合在內(nèi)核周圍,然后由API和編程接口提供調(diào)用內(nèi)核的標(biāo)準(zhǔn)方法。本文的大部分篇幅將集中在Linux的這些部件上,因?yàn)榇蟛糠秩蝿?wù)都是由這些部件完成的:驅(qū)動(dòng)磁盤、讀取文件和其他顯然是物理性的工作。Linux2.4還遠(yuǎn)不止這些,這些模塊圍繞在Linux內(nèi)核的中心周圍。這個(gè)中心結(jié)構(gòu)的基本特征就是調(diào)度、內(nèi)存管理、虛擬文件系統(tǒng)和資源分配。
Linux2.4是第一個(gè)具有全功能的資源管理子系統(tǒng)的Linux版本。我們現(xiàn)在熟悉的“即插即用”的功能在以前的Linux版本中被認(rèn)為是很不支持或者僅僅有一點(diǎn)支持的痕跡。跟其他的內(nèi)部變化不同,很多用戶可以直接感受到這種變化使內(nèi)核分配資源并報(bào)告的過(guò)程變得簡(jiǎn)單了。由于這個(gè)變化的緣故,在Linux2.2里不能識(shí)別的PCI卡數(shù)據(jù)庫(kù)又被重新啟用,因此所有的資源可以有一個(gè)與之相關(guān)聯(lián)的設(shè)備名,而勝于只是一個(gè)關(guān)聯(lián)的驅(qū)動(dòng)程序。
Linux2.4修正了一些VFS層(虛擬文件系統(tǒng))的問(wèn)題并對(duì)文件緩沖區(qū)做了修改。在舊版本的Linux中,文件緩沖獨(dú)立于一個(gè)雙緩沖區(qū)系統(tǒng)之上,這個(gè)系統(tǒng)簡(jiǎn)化了很多問(wèn)題,但是卻使那些不得不保證緩沖區(qū)同步的程序員感到頭痛。另外,冗余緩沖的使用加大了內(nèi)存的開(kāi)銷,并且使系統(tǒng)不得不做額外的工作來(lái)保證這些緩沖的同步,降低了性能。Linux2.4用一個(gè)簡(jiǎn)單的單緩沖系統(tǒng)解決了這個(gè)問(wèn)題。
很多Linux2.4的變化被稱為是“企業(yè)級(jí)”的。這意味著這些加強(qiáng)系統(tǒng)整體的變化對(duì)于桌面系統(tǒng)的用戶來(lái)說(shuō),不會(huì)立即體現(xiàn)出它們的效用。在大多數(shù)情況下,這些附加的性能不會(huì)明顯降低Linux在普通環(huán)境下的性能。首先,Linux2.4可以通過(guò)升級(jí)到多處理器系統(tǒng)或者提供一個(gè)可配置的線程限制,處理更多的并發(fā)線程。其次,一個(gè)更新的更高效率的調(diào)度器能處理更多的并發(fā)線程。第三,更新的Linux內(nèi)核可以處理驚人數(shù)量的用戶和組――大約42億。另外,新的內(nèi)核支持更多強(qiáng)大的硬件。2G的文件大小的限制也被突破了。這一切變化都表明,Linux可以勝任更多的環(huán)境。
Linux2.4使改進(jìn)后的共享內(nèi)存的處理更加符合標(biāo)準(zhǔn)。改動(dòng)后的副作用是,Linux2.4必須加載一個(gè)特殊的“共享內(nèi)存”文件系統(tǒng)才能使POSIX類型的共享內(nèi)存片斷正常工作。而SysV型共享內(nèi)存則不需要另外的文件系統(tǒng)。該文件系統(tǒng)的加載需要Linux2.4發(fā)行時(shí)提供。
Linux內(nèi)核的這個(gè)新版本中的另一個(gè)“老”變動(dòng)是對(duì)VFS層的改進(jìn)。以前的版本甚至是Unix的每個(gè)版本,每次都只能加載一個(gè)文件系統(tǒng),但Linux2.4現(xiàn)在則允許任何文件系統(tǒng)加載多次,并使所有改動(dòng)立即顯示在其他加載點(diǎn)上。這對(duì)像/proc這樣需要在initrd中加載多次的文件系統(tǒng)是非常適用的。此外,它還允許統(tǒng)一加載,即同時(shí)加載包含多個(gè)文件系統(tǒng)的文件。
一個(gè)經(jīng)常被提到的問(wèn)題是Linux 2.4需要多少內(nèi)存。很多操作系統(tǒng)似乎隨著他們的成熟而需要越來(lái)越多的內(nèi)存和資源。但是,Linux2.4有力地遏制了這種趨勢(shì)。在特定的環(huán)境下,Linux2.4需要更少的內(nèi)存。當(dāng)然,Linux2.4包含了比Linux2.2更多的功能,而很多的新特性都需要資源。

支持更多的系統(tǒng)總線
Linux2.2支持Intel硬件內(nèi)部的所有主要總線,包括(E)ISA、VLB、PCI以及MCA。Linux2.4除此以外還包括對(duì)ISA即插即用設(shè)備(這種方案使ISA設(shè)備幾乎與PCI一樣智能)和智能輸入/輸出(I2O)設(shè)備的支持。最重要的是,Linux2.4是首個(gè)提供資源管理的強(qiáng)大系統(tǒng)的Linux內(nèi)核版本。在開(kāi)發(fā)Linux2.4的過(guò)程中發(fā)現(xiàn),要使Linux完全支持USB、PC卡或其他先進(jìn)的硬件,這是Linux作為一個(gè)“現(xiàn)代的”操作系統(tǒng)所必需的。
ISA PnP一直是Linux用戶的主要問(wèn)題。雖然由于更強(qiáng)大的PCI硬件的出現(xiàn),對(duì)ISA硬件的支持已經(jīng)縮小,但使用ISA PnP的設(shè)備仍在銷售。以前,Linux用戶使用ISA PnP硬件都是用pnp實(shí)用程序,它通常需要幾個(gè)小時(shí)才能完成。有些版本試圖自動(dòng)完成這個(gè)過(guò)程,但都沒(méi)有成功。而Linux2.4將ISA PnP支持同資源管理器結(jié)合在一起,從而解決了這一問(wèn)題。不過(guò)對(duì)不太普遍的PnP硬件來(lái)說(shuō),Linux 2.4對(duì)ISA PnP的內(nèi)核級(jí)支持還沒(méi)有實(shí)現(xiàn)。
Linux 2.4也包括對(duì)I2O的支持,I2O是PIC的超集,PIC提供對(duì)內(nèi)存、寄存器的集中管理。而I2O設(shè)備更深一層,可以在設(shè)備級(jí)上提供API,從而為設(shè)備提供操作系統(tǒng)的獨(dú)立驅(qū)動(dòng)程序。底層的操作系統(tǒng)需要識(shí)別“通配”的I2O API,而不是指定的硬件。由于這項(xiàng)技術(shù)還比較新,沒(méi)有多少設(shè)備使用了該項(xiàng)技術(shù),但這種產(chǎn)品一旦投放市場(chǎng),Linux能馬上做好準(zhǔn)備。
目前對(duì)設(shè)備進(jìn)行的主要工作并不是內(nèi)部總線,而是外部總線,如PC卡總線和各種串行總線。Linux2.4也增強(qiáng)了對(duì)外部設(shè)備的PC卡支持。很多發(fā)行版本已經(jīng)包含它了。不過(guò)為了更好地使用這些設(shè)備,Linux 2.4仍然需要一個(gè)外部的daemon(進(jìn)程)和其他一些部件。
USB是許多新設(shè)備很歡迎的選件,包括非Intel的硬件。雖然,Linux對(duì)這些設(shè)備的支持還處于初期階段,但是Linux內(nèi)核已經(jīng)支持大部分的通用USB硬件(包括鍵盤、鼠標(biāo)、話筒等)。
Linux 2.4還增加了對(duì)Firewire(IEEE1394)的支持,F(xiàn)irewire一直以來(lái)受到很多高帶寬設(shè)備的青睞。然而,至今很多現(xiàn)有的驅(qū)動(dòng)程序或者設(shè)備不支持這些硬件體系結(jié)構(gòu),但是隨著時(shí)間的推移,當(dāng)該體系結(jié)構(gòu)成熟的時(shí)候,這些支持將很可能得到改善。

改進(jìn)的塊設(shè)備支持
在簡(jiǎn)單的列表中,塊設(shè)備被描述為一個(gè)可以不連續(xù)訪問(wèn)的字節(jié)數(shù)組。這將包括磁盤(你可以讀你想要的任何扇區(qū)),但不是串口(因?yàn)槟阒荒茉诰€的末端讀?。Q由爝@個(gè)概念(例如彈出磁盤等)在Linux中通過(guò)ioctls(I/O控制)變得很容易。但是塊設(shè)備的概念很長(zhǎng)時(shí)間沒(méi)有改變,第一個(gè)Linux內(nèi)核修訂本就支持已存在的IDE和SCSI磁盤驅(qū)動(dòng)器。
在Linux2.4中,所有塊設(shè)備的驅(qū)動(dòng)程序都重寫了一些,塊設(shè)備API從接口中去掉了一些遺留的垃圾,并在內(nèi)核級(jí)將模塊API完全同文件API分開(kāi)。但是如果模塊維護(hù)人員運(yùn)用了主子目錄之外的模塊,則需要對(duì)源碼進(jìn)行更新(沒(méi)有人假定API與主要修訂版內(nèi)核完全兼容)。
在臺(tái)式機(jī)中,普遍使用的是IDE總線磁盤驅(qū)動(dòng)器。Linux從早期內(nèi)核就開(kāi)始支持IDE,Linux2.4在許多方法上增強(qiáng)了對(duì)這些設(shè)備的支持。首先,擁有多個(gè)IDE控制器的高端系統(tǒng),如果將IDE控制器數(shù)從4增加到10個(gè),則效果會(huì)更好。大多數(shù)的主板最多只有2個(gè)IDE控制器,這并不會(huì)對(duì)臺(tái)式機(jī)的使用者產(chǎn)生多大的影響。其次,這些IDE驅(qū)動(dòng)程序的改動(dòng)提高Linux2.4對(duì)PCI和即插即用IDE控制器的支持,包括IDE軟盤和磁帶機(jī)、DVD和CD-ROM;最后,Linux 2.4包括了可以逐步解決一些IDE芯片驅(qū)動(dòng)程序更新的問(wèn)題,并且更好地支持其他先進(jìn)的特性,例如ATA66。
看起來(lái)似乎SCSI子系統(tǒng)沒(méi)有IDE子系統(tǒng)改動(dòng)的多,SCSI子系統(tǒng)在外殼中進(jìn)行了大量的重寫,另外,這個(gè)版本中支持了許多新的SCSI控制器。
Linux2.4內(nèi)核中一個(gè)全新的特性是實(shí)現(xiàn)了raw I/O設(shè)備,raw設(shè)備不通過(guò)高速緩存層處理,自動(dòng)尋找到低級(jí)設(shè)備。萬(wàn)一一個(gè)復(fù)雜的程序要求完全的控制,用緩存方式無(wú)法滿足,這時(shí)可以使用raw設(shè)備。raw設(shè)備能夠用于數(shù)據(jù)要求嚴(yán)格的情況下,例如:我們確保數(shù)據(jù)立即寫入磁盤,系統(tǒng)失敗時(shí)不會(huì)遺失數(shù)據(jù)。以前的版本沒(méi)有合適的方法,包括它們字面上需要加倍設(shè)備節(jié)點(diǎn)數(shù)以使每個(gè)塊設(shè)備都有一個(gè)raw設(shè)備節(jié)點(diǎn)(這是一些商業(yè)Unix使用的方法),本版本使用一組設(shè)備節(jié)點(diǎn)來(lái)實(shí)現(xiàn),它可以連接任意的塊設(shè)備。
Linux 2.4一個(gè)主要改進(jìn)是在主流內(nèi)核中加入了LVM(邏輯卷管理)子系統(tǒng)。這在一些企業(yè)級(jí)的Unix,如HP-UX和Tru64 Unix中是一個(gè)系統(tǒng)和標(biāo)準(zhǔn),它完全重新考慮管理文件系統(tǒng)和卷的方法。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉