<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è) > 嵌入式系統 > 設計應用 > 透視:Linux有待提高的七個(gè)領(lǐng)域

透視:Linux有待提高的七個(gè)領(lǐng)域

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

對Linux的商業(yè)用戶(hù)來(lái)說(shuō),Linux內核的開(kāi)發(fā)可能非常復雜神秘,因為由幾十個(gè)人維護著(zhù)不同的部分,有幾百名志愿者提交代碼,你很難判斷新功能的走向。

本文引用地址:http://dyxdggzs.com/article/201609/304785.htm

從本質(zhì)上來(lái)說(shuō)Linux的開(kāi)發(fā)也沒(méi)有線(xiàn)路圖。要一窺全豹,以下是7個(gè)值得關(guān)注的開(kāi)發(fā)熱點(diǎn),基于對開(kāi)發(fā)人員和內核維護人員的采訪(fǎng)。不是所有的新功能都進(jìn)展順利,下文展現了各新功能進(jìn)入內核的崎嶇之道。

1 虛擬化

認識到虛擬化在這十年里日益成為“大趨勢”,Linux內核維護者把它作為優(yōu)先考慮的功能,加快了虛擬化技術(shù)添加到內核的進(jìn)程。由初創(chuàng )公司Qumranet的Avi Kivity提供的KVM虛擬管理程序,就包含在2006年末發(fā)布的內核中并在上個(gè)月的發(fā)布中繼續升級。這個(gè)例子很好地展現了快速內核發(fā)布和緩慢企業(yè)版進(jìn)展之間矛盾。

Novell公司的副總裁霍爾格•杜爾夫(Holger Dryoff)表示“我們認為KVM還不適合企業(yè)使用。”他補充說(shuō),在KVM能被加到SUSE Linux之前,它需要在內核子系統包括調度器的交互上經(jīng)過(guò)更多的測試。

最近被Citrix Systems耗費5千萬(wàn)美元收購的商業(yè)開(kāi)源虛擬化公司XenSource,一直在游說(shuō)想把自己架構的Xen虛擬機管理程序(Hypervisor)加入到內核里。內核維護人員認為添加這種虛擬化功能會(huì )大大增加維護工作量。最終XenSource的工程師放棄了,但仍繼續調整Xen以配合內核的運行。它暫時(shí)還進(jìn)不了內核,只能先增加了一些支持,使Linux在運行虛擬環(huán)境時(shí)可以識別它。

其他的虛擬化功能發(fā)展迅速,包括KVM和Lguest。Lguest是由IBM工程師Rusty Russell開(kāi)發(fā)的一個(gè)只有5000行代碼的精簡(jiǎn)hypervisor(虛擬機管理程序),它已經(jīng)包括在最近版本的內核里了。和KVM相似,它支持Intel和AMD芯片的最新虛擬化技術(shù)。但又與VMware公司的ESX Server不同,在Lguest創(chuàng )建的虛擬機里的操作系統知道自己是被虛擬出來(lái)的。所以在調用CPU周期時(shí)它可以直接向真正的硬件發(fā)出請求,而不是作為中間媒介而降低了效率,因此這種架構大大提高了效率。

2 實(shí)時(shí)操作

Linux在實(shí)時(shí)操作上獲得了長(cháng)足的提升,因為現在它常常被用作手機和其它設備上的嵌入式系統。但最近發(fā)布的2.6.23內核顯示它在實(shí)時(shí)操作上“稍有退步”,商業(yè)嵌入式Linux廠(chǎng)商MontaVista 的首席技術(shù)長(cháng)官(CTO)和創(chuàng )始人吉姆•瑞爾迪(Jim Ready)抱怨說(shuō)。這個(gè)新的進(jìn)程調度器更強調“公平”——這意味著(zhù)要由最終用戶(hù)告訴處理器哪些待處理的任務(wù)可以獲得更高的優(yōu)先級。

“實(shí)時(shí)用戶(hù)不需要公平,”瑞爾迪認為,因為實(shí)時(shí)要求無(wú)論CPU在做什么,都可以插入一個(gè)新的優(yōu)先級以中斷操作。一個(gè)簡(jiǎn)單的例子是,在醫療設備里監控病人呼吸的軟件在發(fā)現病人呼吸停頓時(shí),能發(fā)送一個(gè)即時(shí)警告,軟件無(wú)論在處理什么任務(wù)都要先中斷停下來(lái)。瑞爾迪表示,除非實(shí)時(shí)性能有改善,否則MontaVista不會(huì )把新的內核整合到自己的產(chǎn)品中來(lái)。Gartner分析師喬治•維斯(George Weiss)預測標準版的Linux要到2008年才能成為有競爭力的實(shí)時(shí)系統

3 中斷處理

維斯那樣說(shuō)其中一個(gè)原因是因為內核開(kāi)發(fā)人員正致力于使進(jìn)程調度器具有實(shí)時(shí)功能。操作系統的關(guān)鍵環(huán)節是中斷的管理——它決定了哪些任務(wù)能獲得CPU的處理權,如何排列不同行為之間的優(yōu)先級。如果所有的中斷處理器都可以被結合到自己的線(xiàn)程中去,那個(gè)線(xiàn)程就可以被調度并設置優(yōu)先級,而不是無(wú)法預知地運行和延遲的實(shí)時(shí)響應。

過(guò)去三年來(lái)這樣的努力一直沒(méi)有停歇過(guò)。MontaVista的斯文•托斯滕•迪特里奇(Sven-Thorsten Dietrich)在2004年就提交了代碼,希望防止中斷處理程序為了常規任務(wù)而中斷內核,因為它們干擾了實(shí)時(shí)響應。但這些代碼的破壞性太大,以致無(wú)法獲得內核調度領(lǐng)域的專(zhuān)家Ingo Molnar的認可。這些代碼影響了一個(gè)關(guān)鍵內核功能自旋鎖(spinlock),當進(jìn)程在等待需要的數據或事件時(shí),它可以鎖定CPU。許多進(jìn)程依賴(lài)于自旋鎖。Dietrich的代碼把幾百個(gè)自旋鎖減少到30個(gè);Molnar的修訂保留了90個(gè)自旋鎖,比前者破壞性要來(lái)得少些。

把中斷處理器集合到一個(gè)統一的獨立線(xiàn)程的想法看來(lái)已開(kāi)始成熟并準備進(jìn)入內核了。“Ingo替換了我們的做法,但他做得很棒,” 瑞爾迪說(shuō)道。MontaVista并不在乎自己的努力是否能獲得更多的榮譽(yù),瑞爾迪理解這就是開(kāi)源合作的方式,因此他接受正在進(jìn)入內核的實(shí)時(shí)功能的修改。

4 安 全

人人都希望有個(gè)更安全的系統。Novell在發(fā)布SUSE Linux Enterprise Server 10的同時(shí)一起發(fā)布了AppArmor,它是一個(gè)限定應用程序可以訪(fǎng)問(wèn)操作系統哪些資源的軟件,這樣可以限制應用因非法授權訪(fǎng)問(wèn)而造成的危害。然而在近期內它還不太可能會(huì )被加進(jìn)內核。

Linux安全的權威專(zhuān)家、另一套安全機制SELinux 的開(kāi)發(fā)人員斯蒂芬•斯瑪萊(Stephen Smalley)則認為AppArmor不能被加進(jìn)內核是因為它的保護機制是基于“路徑名稱(chēng)”的方式,它本質(zhì)上就是一個(gè)白名單設置,AppArmor只允許應用程序訪(fǎng)問(wèn)在名單上的文件,所有其他的文件都不能訪(fǎng)問(wèn)了。根據去年喬納森•科貝特(Jonathan Corbet)的一份報告,斯瑪萊認為一個(gè)狡猾的入侵者可以利用合法路徑名稱(chēng)而猜出其他的名字,制造不必要的暴露。

內核維護人員安德魯•莫頓同意是因為這種路徑名機造成AppArmor不能進(jìn)入內核的根本原因。“我不是個(gè)安全程序員,”他說(shuō)。“我不知道可以怎樣解決這個(gè)問(wèn)題。”

5 系統診斷

Solaris可以使用DTrace工具檢測操作系統核心的運行狀況,但Linux缺乏用戶(hù)界面友好的檢測工具。目前僅有的幾個(gè)工具之一是ptrace,該程序可以讓一個(gè)進(jìn)程跟蹤另一個(gè)進(jìn)程的行為。但ptrace使用起來(lái)非常笨拙并容易發(fā)生錯誤,現在有了替代品utrace,它已經(jīng)進(jìn)入Morton的內存管理代碼樹(shù),即將會(huì )被提交給李納斯•托沃茲。當Utrace被一個(gè)程序執行時(shí)它可以跟蹤該進(jìn)程的行為,卻沒(méi)有ptrace的那些問(wèn)題,但它仍然會(huì )導致內核里的鎖問(wèn)題??曝愄仡A測在下一版本的內核里仍然不可能包含該工具。

6 文件系統

Reiser4文件系統已被考慮額外增加到內核里去,內核現在已經(jīng)包含30多種文件系統。Reiser4是一個(gè)大型的文件管理系統,根據漢斯•瑞塞爾(Hans Reiser)的文檔,它的優(yōu)勢在于只需要最少的磁盤(pán)空間,就能處理數量眾多的小文件。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞:

評論


相關(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>