【IT168 技術分析】對於一個Linux的企業用戶來說,它的內核開發可能顯得過於復雜了,有許多人在維護不同的代碼,而且有更多志願者在提交代碼,這種亂花漸欲迷人眼式的“熱鬧”景象卻讓我們很難看清未來將有什麼樣的新功能。
就其本身而言,Linux的發展沒有路線圖。為了對Linux發展方向有一個簡單的認識,作者根據與開發者和內核維護者的交流,以及從www.kernelnewbies.org網站上了解的知識,提出了值得關注的七個開發領域。當然,這七個方面的發展也不會順風順水,和眾多其他進入Linux內核的功能一樣,會按照一條曲折的道路前進。
1、虛擬化技術
由於認識到虛擬化技術是本世紀最大的趨勢,Linux內核維護者已經破例以飛快的速度將虛擬化功能加入到它的內核中。由新興公司Qumranet的Avi Kivity所貢獻的系統管理程序KVM已經被在2006年底被加入到內核中,並在最近的版本中進行了更新。在迅速的內核版本發布和緩慢前進的企業版Linux之間之間存在鮮明對比,KVM則是一個典型的例子。
Novell負責管理的副總裁Holger Dryoff表示,“企業還沒有為很多功能做好接受的准備,KVM就是非常好的例子,”在KVM進入SUSE Linux企業服務器版之前,它還需要更多的測試工作,以驗證它將與內核其他子系統之間如何交互,同樣的情況還有調度器,他表示。
最近剛剛被Citrix系統以5億美元收購的商業化開源虛擬技術公司XenSource一直在上下活動來讓內核中的Xen管理程序使用它自己的體系架構。內核維護者認為,增加一個虛擬化功能是一個維護量很重的工作。XenSource工程師已經讓步,但是使Xen與內核操作結盟的工作依然在繼續。它還沒有真正成為內核組件,只是增加一些支持,可以讓當Linux運行在一個虛擬化環境的時候可以識別它。
其他虛擬化功能正在飛速的發展,其中包括KVM和Lguest,後者是由IBM工程師Rusty Russell編寫的迷你型管理程序,代碼只有5000行,它已經被包含在多數最近的內核中。和KVM一樣,它可以利用來自英特爾和AMD最近芯片中的虛擬化技術。但是,與VMware的ESX服務器不一樣的是,Lguest創建了一個虛擬機器,它的操作系統能意識到它已經被虛擬化。這種體系架構讓這個操作系統可以更高效的忽略某些針對CPU周期的呼叫,直接讓其指向硬件,而不用扮演一個仲裁者使其速度變慢。
2、實時操作
在實時操作方面Linux已經取得了迅速的提高,已經成為一個在一些移動電話和其他設備中被頻繁使用的嵌入式操作系統。但是,據商業化嵌入式Linux的作者之一,MontaVista的創始人兼首席技術官Jim Ready表示,在最近發布的2.6.23內核中,在實時操作方面卻顯示出了“一點點倒退”的跡象。一個新的過程調度器開始更多的傾向於更“公平”,它主張由終端用戶告訴處理器進行的任務應該獲得更多的優先權。
Ready表示,“一個實時系統的用戶並不需要這種公平,”因為實時系統主張其操作系統可以隨時中斷處理器正在進行的工作,並增加一個新的優先操作。一個簡單的例子是,一個用於監視病人呼吸狀況的醫療設備中的軟件如果發現呼吸停止的情況,就應該中斷這個軟件正在做的任何工作,並立即發送一個緊急告警。MontaVista不會將這個新的內核應用到它的產品線中,除非其性能被恢復,Ready表示。Gartner分析師George Weiss預測,在2008年標准Linux將作為一個具有競爭力的實時操作系統。
3、中斷處理程序
Weiss之所以如此說的原因之一是,內核開發人員正在研究讓這個調度器具備又一個實時特點。這個操作系統的一個關鍵角色是用來管理中斷的,來決定哪一個任務應該引起CPU的注意,以及如何比其他操作具有優先權。如果所有的中斷處理器可以被結合到它們自己的線程中,那個線程可以被調度並設置優先,而不是不可預知的發生和延遲實時響應。
在這個方向的研究已經進行了三年的時間。MontaVista的Sven-Thorsten Dietrich在2004年提交了一個程序,希望防止中斷處理程序因為常規任務中斷內核,因為它們影響了實時響應。但是這個程序與內核調度器領域專家Ingo Molnar的觀點分歧太大。這個程序影響了一個關鍵的內核功能,自旋鎖(spinlocks),當一個過程等待一個需要的數據或事件的時候它會阻擋CPU。許多程序需要使用自旋鎖功能。而Dietrich的代碼將數百個自旋鎖降低到30個;Molnar的修訂保留了90個自旋鎖,是一個具有更少破壞性的改變。
中斷處理器集合到一個單獨的線程的想法現在看上去已經做了進入內核的准備。Ready表示,“Ingo替換了我們所做的操作,但是他的工作是非常有效的,”MontaVista不會在意是否因為它做的工作而得到多少榮譽,Ready知道這就是開源協作的方式,因此他將接受正在進入內核的實時功能的修改。
4、安全
每一個人都希望使用更安全的系統。Novell在其SUSE Linux企業服務器版10中集成了AppArmor,作為限制一個應用程序可以訪問多少操作系統功能的方法,因此如果一個應用程序未經授權被訪問,可以限制其破壞性。不過,現在看來它還沒有被加入到內核中的時間計劃。
Stephen Smalley是一個關鍵的Linux安全權威,也是另一個安全方案SELinux的開發者,他認為AppArmor不能被合並到內核中,因為它的保護機制是基於“路徑名”方式,實質上是一個白名單方式,AppArmor只允許一個應用程序訪問那些指定的文件,所有其他文件都被排除在外。根據去年Jonathan Corbet的一個報告,Smalley認為一個狡猾的入侵者可以使用被認可的路徑名來猜測其他名稱,從而得到人們不想暴露的內容。
內核維護者Andrew Morton對此表示認可,認為這種路徑名方式是使AppArmor不能進入內核的最根本的理由。
5、系統診斷
Solaris可以使用DTrace工具來探測在操作系統核心中正在進行的工作,但是Linux缺少一個具有友好用戶界面的診斷工具。少數僅有的工具之一是ptrace,它可以讓一個過程跟蹤另一個的行為。但是ptrace使用起來非常笨拙,且容易出錯,現在有一個替代者utrace,它已經成功進入Morton的內容管理樹中,距離提交給Linus Torvalds只有一步之遙。在一個進程被一個程序執行執行的時候,Utrace可以跟蹤它的行為,而且不會發生ptrace的問題,但是它依然會導致內核鎖定問題。Corbet預測在下一個內核版本中還不會包含這個功能。
6、文件系統
Reiser4文件系統目前已經被開始考慮加入到內核中,它已經包含了30個文件系統。根據Hans Reiser的文檔,它是一個打星文件管理系統,擅長處理大量的小文件,而使用最小化的磁盤空間。
這個文件系統要求一個文件操作或者被完成,或者被禁止,減少了文件被完成了一半操作所破壞的風險。對很多Linux用戶它似乎非常不錯,但是經過數年的爭論,Reiser4還有沒有進入內核中。它不能很好的與內核的很多部分保持協調,而Reiser已經不再是一個領先的開發者。Corbet在最近他的前景預測中寫到,“如果它想最終成為傳統Linux的一部分,它將需要一個新的支持者。”
Sun公司的128位文件系統ZFS,除了滿足今天正在使用的大型系統的需要外,正在引起Linux界的關注。支持它的團體指出它的開源代碼應該被內核所考慮。但是它目前的許可協議與Linux通用公共許可GPL不兼容。
7、電源管理
在電源管理方面Linux已經落後了,在這方面Windows筆記本已經給人們留下了深刻的印象,這刺激著英特爾工程師、內核開發者Molnar和Thomas Gleixner和其他人正在這個領域努力。一年前,內核實現了“tick-less idle”機制,當沒有工作可做的時候告訴處理器處於空閒狀態。沒有它,CPU的時鐘將會每秒詢問內核1000次是否有什麼事情可做,從而浪費大量電能。
英特爾的首席Linux技術專家Dirk Hohndel預計在電源管理方面會有更多的完善。但是在內核和系統時鐘之間的任何改變會威脅許多其他的交互。他表示,“這些事情可能會非常困難,需要花費長期的時間來完成,但是我認為這是一個正確的發展方向。”