歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

Linux及其將來


Linux 及其將來 作者:Husain Al-Mohssen  譯者:Sundayy

因特網近十年來的迅速發展給自由軟件的開發帶來深遠意義的影響.一夜之間,因為是自由軟件,許多人能夠站在一起合作開發大型的軟件項目,而不是限制在一個大公司或是一所大學裡.通過郵件列表和FTP站點,人們能夠在業余時間編制他們從來不敢想象的大型程序.從根本上說,因特網技術是一門生產技術,一門實現軟件產品大規模低成本生產的技術,正如紡織機械的出現帶來衣物的革命一般.

時至今日,自由軟件已經由當初僅僅是高質量內核(Linux及其它)以及寥寥幾個應用程序發展到完整的系統.事實上,我們不僅僅擁有實現許多商業軟件功能的自由軟件,在許多場合,我們擁有不止一個功能類似自由軟件項目(也就是,它們僅僅是角度不同或是觀點不一).這種免費,完全而且質量過硬的系統正引起許多商業公司的關注.不僅僅Linux和其它自由軟件有著日益壯大的市場,而且與他們自己的產品發生直接的對抗,甚至在許多方面還穩站上風.這些公司需要銷售基於這一平台的軟件,更需要摸索出與這一新生軟件開發方式相抗衡的道路.

 

未來Linux所必須面對的潛在問題

Linux及其它自由軟件應用范圍的不斷擴展,促成商業,非商業開發隊伍的不斷壯大.這就導致了人力物力投入的過增長.在這場巨大變革中,我意識到一系列阻礙Linux及其它自由軟件發展的因數.下面我將一一道出:

1. 偏見

在樂意采用自由軟件的人與傾向於使用商業軟件的人之間似乎存在某種特定的偏見.這點,根據我的判斷,是相當危險的,因為商業軟件是軟件創新的最佳來源,因為許多商界人士可致力於其發展.軟件不會一直放任自流,因為商家必須創造價值,收回成本.同樣,有時一些商家變商業軟件為自由軟件時會損失慘重,比方說,一個驅動程序的研發費用可能高達上百萬,而且可以向其競爭對手公布某些硬件上的機密.當商業軟件變得不再商業時,專利擁有者不再進行競爭,軟件的質量便降低了.如果自由軟件和商業軟件能夠找到一條共同生存的道路,那將意味著我們可以分享兩個不同世界中最美妙的部分.一種類似的偏見是對自由軟件可以以不同許可的形式出現,這也是要不得的,因為自由軟件的最大特征就是可以自由地選擇.

2.停滯

Linux(或者泛指Unix)確實是針對特定的時間特定的用戶度身定造,然而用戶和應用的需求日新月異,因而也要求其持續變化.在應付這種不斷變化的局面上,Linux比其它UNIX系統先進得多,例如,FHS(文件層次標准)就比許多商業UNIX系統更貼切用戶的需求.在我看來,這點還存在極大的改善的空間.在這點上很重要一點是,強調改進,標准的建立是為其提供通用的工作平台,而不是成為其絆腳石.

3.故障的過分簡單化

受Linux應用簡易化潮流的推動,大量應用程序仿效其它操作系統實現計算機管理的自動化,用戶無需知道事實上發生什麼而只要觀察.這種缺乏系統不同部分間的理解和區別阻止用戶以新的富有創造性的途徑應用各種程序.事實上,這種靈活性正是Linux的最大優點之一.當然.這並不意味著不需要圖形化界面—恰恰相反,我想這是我們不惜一切代價希望獲得的—當然這僅僅意味著其應該能獲得.我們應該好好反省一下,是不是典型的Linux系統就應該是將所有程序集合,同時留有余地以使不同部件能在以後很好地加進來.

 

Linux可以獲得持續成功的因素

我感覺到太多的因素可使自由軟件廣受歡迎.這許多因素只是人們已經做了或正在做的事情的延伸.

1. 標准化

這是通過Internet開發軟件獲得成功最關鍵的因素,正因為它使得許多人合作開發的程序才能運行在統一的平台上.自由軟件一直有著標准化的傳統.比方說,Linux最初是作為POSIX兼容的操作系統出現的.此外還有許多自由的操作,NFS(用於網絡互連),X(用於窗口),OpenGL(用於3D圖像)以及其它. 依照這一傳統,出現像 " 需要RedHat Linux"一類文章是很不應該的 (盡管我認為RedHat是最好的發行版本這一 ). 軟件和硬件的開放標准,必須及時的發布和維護. 我建議必須建立一個標准 ("Linux 2000"或許是很好的名字 ),定義確定的是那麼給...下定義每件事一種硬件或者軟件開發者要需要擔保他的規劃或者這駕駛員要對任何系統那樣是意見起作用。 這個標准化不應該唯一的包括東西喜歡 FHS而且標准插件要是需要。 實現那個燃料分配器和制造者要急著要開啟標准化是很重要的,如果他們是不公布被這自由軟件社團維護的進行與操作,並且假使那樣,這控制意志不是被支配於這社團。

2. 組件化

組件化旨在以功能獨立的組件構造整個系統,這樣做的好處在於可以自由地增加/刪除組件,而不必理會其是否與其它組件相關聯.這可以通過以下途徑實現:強調不同的組件如何集成到系統中的標准化工作;將有關應用特性的配置文件與非應用相關數據區分開來,這樣類似的應用軟件或者服務可以應用相同的信息.組件化的最終目標是構建自由軟件的所有主體組件.在談到自由軟件時, Richard Stallman提倡"免費的演說,但不是免費的酒會"思想,作為這一觀點的延伸,我提倡將自由軟件看作自由空氣,它無處不在,人們無所不需.

一個例子

為了證明上一節中我所表述的觀點可以付諸實用,我想舉個例子.我打算以上述觀點構建我的Linux桌面系統.我盡量使我的系統標准化,但也同時是個不折不扣看似奢侈的完整的桌面系統(其包括Man頁面,X窗口,KDE桌面,大量的編程語言以及其它許多東西).

1. 我是如何實現的?

在我的系統中,我采用超過500MB的分區作為根分區,而另一個50MB分區作為交換分區.它以一個臨時的虛擬RAM磁盤啟動,然後通過回饋設備(/dev/loop0)安裝根文件系統和交換文件系統.這種安裝方法的好處之一--在不同的計算機上安裝非常容易,因為這樣等於是往新機器上拷貝一個目錄. 根磁盤是可以自啟動的,因為其包含來自/bin,/sbin,以及/lib的某些文件,同時也在/etc下創建了某些目錄和文件.至此系統處於啟動過程中,我必須編譯系統的其它組件.第一步我必須擁有編譯器,這我就拷貝了gcc 2.7.7.3,編譯並安裝了egcs 1.1.1.緊接著許多其它組件就可以依次編譯和安裝了,先是一些基本的組件(X窗口,一些通用的庫文件和工具軟件),然後是應用軟件(KDE桌面,xv編輯器,GNUStep,Kaffe,等等).

2. 系統描述

在檢驗文件系統結構的過程中,你可以清楚地看到我在其中貫徹了上一章中提到的觀點.盡管其與FHS2.0幾乎完全兼容,大量的特性使其迥然不同.首先,/usr中文件的層次要求分外嚴格. /usr下只有三種主要類型的文件.第一種是二進制文件,這同樣存在任何現代UNIX系統中(例如,head,telnet,ftp,等等).第二種是程序或者庫文件,它們或是其它許多程序所必須,或是為其正確安裝提供特別的文件存取.這類文件包括/usr/lib,/usr/local/lib下許多庫文件,/usr/X11R6下X窗口文件.第三種結構獨立,共享的數據文件,正如FHS推薦的那樣它們被放置在/usr/share下.我的系統重點在於共享目錄,它必須是同一系統中不同應用程序共享數據的一個場所.因此,許多文件將被符號鏈接為程序所在目錄的數據.

系統另外一大特征是/etc結構的改進.與當前所有文件只有一層目錄的習慣不同,新系統中增加了許多路徑.這一措施有效減少了文件簇的開銷同時使得系統結構更加清晰.例如,/etc/man.conf現在存在於/etc/utils/man/man.conf,而/etc/rc.d存在於/etc/sys/init/rc.d,而符號鏈接用於保持與舊體制的兼容.正如FHS要求的那樣,/opt下程序的配置文件可存在於/etc/opt,但是有一點其下子目錄必須符合上述原則.根據我的判斷,這些有關/etc層次的細微修改能夠很容易地適應Linux注冊系統的要求.

在我的系統中,許多應用程序都存放在/opt路徑或其下一個子路徑中.譬如,Kafee(免費的Java VM)安裝在/opt/languaes/kafee路徑下,而KDE安裝在/opt/windows/kde路徑下.基於這種想法,一個包中的所有文件都存儲在/opt下專門為其指定的一個目錄中,而許多定義明確的指針將建立該應用程序包與系統其它部分聯系在一塊,包括/opt/bin,/usr/share的子目錄,以及其它許多目錄.

雖然它看起來與 FHS相似,但兩者目的迥然不同。 在我的系統中,每個包必須包含一種符號鏈接置於 /opt/bin中,鏈接所有公用的二進制代碼,以便它以命令行的形式正常工作。 同樣地,適當的符號鏈接必須設置在 /usr/share/man中以使包含幫助頁面的包文件正常運作。同樣的原則應用在其它許多的其它目錄上,包括配置文件/etc/opt以及調用initd服務的包 /etc/sys/init/rc.d/init.d.

例圖形象地展現了不同包之間的接口以及其具體細節.有必要闡述一下不厭其煩地引入這一方式的原因,就是限制不同包之間聯系的指針的數量並使其盡量的簡單,應用程序和服務都一視同仁,強調系統的中斷,是為了更好的定義組件,使其獨立,可以自由增減,甚至用其它組件替代.

最後,系統的一個新特征是系統新增加了/lib/vendor目錄.這是存放各種廠商的內核模塊以及其它驅動程序.其目的在於提供不同廠商一個存放驅動程序的標准場所,即使其以二進制格式出現.其在硬件性能優勢不明顯的情況下,鼓勵各個廠商發布基於Linux的驅動程序,最終達到拋棄驅動程序源碼的目的.縱使程序源碼不發布,更新一個現有驅動程序.

 

結論

過去數年來,Linux及相關軟件穩健有序地發展壯大,成為充滿活力的系統.這當中,標准化工作扮演了不可缺或的角色.而且隨著Linux的日益流行,其標准化過程更加重要.

我試圖闡明維護Linux以及其它自由軟件持續成功的絕對必要的幾點.最重要一點,盡管Linux已經非常完善,但遠不到完美的境界,必須保持持續不斷的演化.沒有東西可以一成不變,唯一的根本的目標就是速度,樸實,和高雅.

另外一點我想表明的是Linux的標准應該的商業公司開放,並且盡可能使Linux系統在安裝應用軟件,添加服務程序,安裝驅動程序方面做得盡善盡美,即使它們不是免費的.這樣將有助於保護一些獨立的小公司,免得它們給壟斷系統的大公司吃掉,因為它們可以獲得所需組件的替代品或是一些免費版本.在構造我自己的系統過程中,我極力體會如果所有這些想法付諸實施,這個系統會是什麼個樣子.不管Linux以及Linux的標准是否會演化到與我的系統幾分相似,我衷心希望我在本文中提出的能為廣大Linux社團考慮和接納.

 

資源

關於操作系統控件化的工作與計算機的研究聯系非常緊密,Eric Green在 http://www.linux-hw.com/~eric/commodity.html 中對二者有非常絕妙的討論.

版權所有 © 1999 NJLUG
出版於第47期《Linux公報》1999年12月 中文版第十三期


——摘自:Linux公報


Copyright © Linux教程網 All Rights Reserved