從1991年到2008年,Linux已經走過了17個春秋,但它依然是一個正在發展中的作品,依然難稱完美,還有好多方面需要完善,雖然不是致命缺陷,但是要想讓Linux鞏固現在取得的成就,並取得進一步發展,這些都需要得以解決。
軟件包管理各自為政 在Linux中,軟件通過“包”形式進行管理,包可以指整個應用程序、應用程序的支持庫、編程工具等等,舉例來說,在多數Linux操作系統中,火狐浏覽器和辦公軟件OpenOffice.org都是以包形式體現在其軟件庫中。 不同Linux廠商的包管理方式也有所不同。紅帽使用它自己的RPM系統,Debian有自己的.DEB格式。如果你只使用某一個廠商的Linux,這或許不是一個問題;但是當你需要跨廠商的時候,就會發現這很不方便。 這也是為什麼很多商用軟件廠商難於提供其產品Linux版的原因,沒有一種統一的包格式能夠克服跨廠商的問題。 面臨這種情況,潛在應用軟件廠商具有三種選擇:一是把時間、精力和金錢用在不同Linux系統上,例如讓自己的應用可以在紅帽、SUSE和Ubuntu上安裝和運行;二是只針對某一特定廠商Linux提供其應用;三是提供源代碼包,這樣用戶可以在任何目標平台上自己編譯代碼。 第三個辦法肯定不會被任何專有軟件廠商所考慮。第一個辦法則大大加重了應用軟件廠商的工作量,基本也不可行。這樣就僅僅剩下了第二個辦法,既可以讓用戶能夠迅速使用其應用程序,也降低了用戶安裝應用程序的工作量。 目前來看,Linux系統上的商用軟件需求還相對較少,解決這一問題的重要性還不是那麼明顯。但是從長遠來看,當商用軟件越來越多的進軍Linux市場的時候,這無疑是Linux的一個很大的缺陷。一個可能的解決辦法是,采用一種元包(meta-package)格式,用戶下載了這種格式的文件後,使用本地軟件將其處理成可以在指定系統上安裝的包。目前BitRock有一個類似的工具,可以將一個開源應用打包成一個可在多平台上安裝的程序,其中也包括對Linux的支持。 另一個解決此問題的主要方法是通過Linux標准庫(Linux Standards Base,LSB)。為了兼容LSB,Linux廠商必須同時使用或支持紅帽的RPM。由於目前最流行的Linux系統是基於Debian的Ubuntu,它對RPM的支持並不好,因此業界人士批評LSB過於以紅帽為中心。 配置文件語法混亂 任何一個Linux都是多個組件和模塊聚合起來的,這些軟件來自成千上萬個不同的程序員、項目和設計機構。這種情況導致了所有Linux系統都沒有或很少集中配置功能,系統中的每一個模塊都是通過一些雜亂無章的文件來進行設置,沒有什麼規定來約束和指導配置文件的語法。 如果你在工作僅僅用到少數幾個配置文件,並熟悉它們的內部格式,或許不會明顯的感覺到這個問題,但是這並非一個可以讓人接受的解決方案。造成該問題根源是,多數應用希望保持與老的UNIX應用的兼容。 從內核到用戶工具和應用程序,Linux整個系統內需要一個一致的配置系統。除了便於用戶(以及程序員)易於使用外,還可以簡化集中管理的問題。 僅僅通過規定實現這樣的事情幾乎是不可能的;更好的方法是,普及推廣一個可以讓應用程序配置更簡單的工具,從而實現統一的配置方式。GNOME項目的Gconf就是這樣的一個工具;盡管目前該工具的設置對象只是用戶習慣設置,而並非系統范圍內的配置選項,它依然為我們解決配置文件問題帶來了很好的啟示。 內核應用二進制接口 一直以來,在Linux開發領域,人們對內核應用二進制接口(Application Binary Interface,ABI)抱怨甚多。 Linux內核設計的思路是,在內核內部可以修改很多內容,但是用戶應用一定不要通過ABI去修改內核。這個問題不僅僅是理論性的,在實際開發中也是切實存在的:內核接口范圍的存在意味著,違背其規定的某些操作完全有可能發生,有時候即使通過非常嚴謹的代碼查閱也無法發現問題所在。 這樣,當違背規定的事情發生時,它將帶來兩個問題:它可能讓你無法確認一個問題的真正導致原因(例如它是一個內核的問題還是一個用戶應用的問題?);另外你需要花費時間和精力來修復它。 目前有一些方法來臨時解決這個問題。對於某些項目來說最迅速有效的辦法之一就是用戶空間文件系統(Filesystem in Userspace,FUSE),它是Linux系統平台上可加載的內核模塊,允許非特權用戶創建功能完備的文件系統,而不需要重新編譯內核。FUSE模塊僅僅提供內核模塊的接入口,本身的主要實現代碼位於用戶空間中。但是,從長期來看,Linux需要一個既穩定又能滿足長期增長需要的ABI,並且不會成為造成潛在兼容性問題的老鼠窩。 上一頁123下一頁查看全文 內容導航