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

GNU操作系統與自由軟件運動

  最初的軟件共享群體    1971年,當我開始在麻省理工學院人工智能(AI)實驗室工作時,我成了那裡 的軟件共享群體的一分子,這個軟件共享群體已經存在多年。其實,軟件的共享並 不限於我們這一特定的群體,它的歷史與計算機一樣長久,這兩者之間的關系就像 人類很早就交換食譜與烹饪一樣。但我們做得比大多數人都做得更多。    AI實驗室當時使用了一種稱為99vS(Incompatible Timesharing System,非兼 容分時系統)的分時操作系統,這是我們實驗室工作人員專為Digital PDP-10(那 個時代的大型計算機)設計的操作系統,而且是用匯編語言開發的。作為這個群體 的成員,我是一個AI實驗室的系統黑客,我的工作就是完善這一系統。    當時我們並不把我們的軟件稱為“自由軟件”(free software),因為這個詞 語當時還不存在,但事實上那就是自由軟件。每當其他大學或者公司的人要求移植 或者使用我們的某個程序時,我們總是應允的。如果你看到某人在使用一個陌生而 且有趣的程序時,你總可以要求查看它的源代碼,以便可以讀代碼、對源代碼進行 修改、或者套用原代碼的一部分來創作新程序。 群體的崩潰    八十年代年代初,Digital公司停止了對PDP-11系列的開發,那時情況發生了巨 變。以六十年代的標准來看,PDP-11系列的體系結構是精巧和強大的,但無法自然 地適應八十年代的技術所允許的更大尋址空間。這意味著,幾乎我們所有的程序, 包括99vS,都一下子報廢了。    在這前不久,AI實驗室的黑客群體已經分崩離析。1981年,從實驗室分離出去 了一個公司,名為“Symbolics”,幾乎雇走了所有的黑客,剩下的群體盛況難再。 Steve Levy編寫過《黑客》一書,這本著作十分傳神地描述了這個群體鼎盛時期的 情況。當AI實驗室於1982年購置了一台新的PDP-11機器時,系統管理員決定使用 Digital的非自由分時系統,而不是99vS。    那個時代的流行計算機系統,如VAX和68020,都有自己的操作系統,但這些系 統都不是自由軟件:即使為了獲得機器碼可執行程序的拷貝,也應該簽署不公開協 議(nondisclosure agreement)。    這就意味著,你開始使用計算機的第一步就是要保證不幫助你身邊的人。相互 協作的群體是被禁止的。專有軟件(proprietary software)所有者制訂的規則是: “與他人共享軟件就是盜版行為;如果你需要對程序作任何修改,磕頭央求我們吧。”    專有軟件社會系統(即聲明用戶不能分享或修改軟件的系統)的觀念是反社會 的、不道德的、完全錯誤的。這一觀點可能會讓一些讀者驚詫不已。但是,對於一 個基於分裂公眾、使用戶孤立無援的價值系統,我們還能說些什麼呢?對這一觀點 感到難以接受的讀者,可能早已對專有軟件熟視無睹,或者從專有軟件工業的角度 出發才作出了這樣的判斷。這也難怪,因為軟件出版商已經長期為此努力工作,以 使人確信對於這一事情只能有一個觀察角度。    當軟件出版商談到“確保”他們的“權益”,或“禁止盜版行為”時,他們實 際上所說的東西是次要的。他們在版權聲明中真正傳遞的信息卻是他們認為不言自 明的假設,公眾似乎應該不加批判地接受之。現在讓我們來逐條地檢查這些假設。    假設之一,是軟件公司具備無可置疑的自然權力占有軟件,從而有權凌駕於所 有用戶之上。如果這確實是一種自然權力的話,那麼無論它對公眾有多大的傷害, 我們都無法反對。有趣的是,美國的憲法和司法傳統拒絕這種看法;版權並非一種 自然權力,而是一種人為的、由政府強行實施的一種壟斷,以限制用戶拷貝的自然 權力。    另一種沒有挑明的假設是,軟件的唯一重要意義在於軟件可以允許用戶做什麼 ——而我們計算機用戶不應該關心我們必須接受什麼樣的社會。    第三種假設是,如果不允許某個公司凌駕於其軟件產品的用戶之上,我們就不 會有任何可用的軟件,或者永遠不會有所需要的軟件去完成這樣或那樣的特別任務。 這個假設一度顯得頗有道理,但是後來的自由軟件運動表明,我們可以創造出足夠 多的有用軟件,而無須加以一連串的限制。    如果我們拒絕接受上述假設,並將用戶置於優先的地位,從普通的、常識性的 道德價值出發審視這些問題,我們就會得到截然不同的結論。計算機用戶應該可以 自由地修改程序以適應他們自己的需求,可以自由地共享軟件,因為幫助他人是社 會存在的基礎。    這裡沒有足夠的篇幅容納得出這一結論的詳細邏輯推理,因此我推薦你閱讀我 們的Web主頁,http://www.gnu.org/philosophy/why-free.Html。


艱難的道德選擇    雖然我原來的群體已經消失,但繼往開來並非不可能,只是我面臨一個道德選 擇。    一條簡單的出路是加入專有軟件世界,簽署不公開協議,並許諾不再幫助我同 事中的黑客。這樣做的結果很可能是我也開發軟件,而且軟件也以不公開協議的形 式發布,從而對其他不願意背叛同伴的人進一步施加壓力。    我有可能由此而發財,而且也從編寫代碼中獲得樂趣。但我明白,在我的職業 生涯結束時,我回過頭來看到的景象將是這些年來築起高牆林立,並將人們分隔開 來,我會覺得自己的一生努力的結果會把這個世界搞得更糟。    在此之前,我已有過接受不公開協議的經驗。當時,別人拒絕向M99v人工智能 實驗室和我提供我們打印機的控制程序的源代碼。該程序缺乏某些功能,打印機的 使用起來極端麻煩。因此,我不能對自己說不公開協議是清白的。他拒絕與我們共 享代碼,當時我非常憤怒。我不可能轉頭對其他每一個人都如法炮制同一作法。    另一種選擇,直截了當但令人不快,是離開計算機領域。如果那樣,我的技能 就不會被濫用,但我的才能仍然會被浪費掉。我個人不會成為分隔、限制計算機用 戶的幫凶,但社會上的分隔和限制依舊在發生。    因此,我要尋求一種解決之道,使我作為一個程序員能夠做些好事。我扪心自 問,我是否能寫出一個或一些程序,能使我所珍視的群體再生呢?    答案很清楚:最急需的首先是一個操作系統。這是開始使用計算機最至關重要 的軟件——有了操作系統,可以做許多事情;沒有操作系統,你連計算機都使用不 了。一個自由的操作系統,會使我們可以再度擁有一個相互合作的黑客群體,而且 進一步邀請其他任何人參與進來。每個人都可以安心使用計算機,而無須變成剝奪 自己朋友權益的同謀。    作為操作系統開發人員,我擁有的技能正適合這項工作。因此,盡管我不認為 成功唾手可得,但是我覺得這是我的天賦。我決定將系統設計得與UNIX兼容以便移 植,同時也便於UNIX用戶的移民到這一新的操作系統上來。我按照一項黒客的傳統 選擇了GNU這個名字,GNU是“Gnu's not UNIX”(GNU不是UNIX)的遞歸同義 詞。    操作系統並不僅僅意味著一個恰好只能運行其他程序的內核。在70年代,任何 排得上號的操作系統都包括有命令解釋器、匯編器、編譯器、解釋器、調試器、文 本編輯器和電子郵件軟件包等等。99vS包括這些東西,Multics有,VMS有,UNIX有, GNU操作系統也應該含有這些東西。很久之後我看到了以下的詩句,據傳來自Hillel*: 如果我不為自己打算,誰會為我考慮? 如果我只為自己打算,我又變成了什麼東西? 如果現在不動手,還要等到什麼時候? 啟動GNU工程的決定,正是基於同樣的精神。 * 腳注:作為無神論者,我不盲從任何宗教領袖,但有時我不得不贊賞他們中某些 人的箴言。 Freedom中的自由    “free software”這種術語有時會被誤解——事實上它和價格毫無關系。它 的涵義是自由。這是自由軟件的定義所決定的。對於你,某個特定的用戶來說,如 果某個程序稱為自由軟件,那麼:    你擁有運行該程序的自由,而且可以用於任何目的。    你擁有修改該程序以適應你個人需要的自由。(為了在實踐中使這一自由成為 可能,你必須能夠獲得源代碼,因為沒有源代碼而試圖修改程序是極端困難的。)    你擁有再發行拷貝的自由,可以是無償的,也可以收費。    你擁有發行該程序修改後版本的自由,從而使社團可以從你所作的改進中獲益。    因為這裡“free”的涵義是自由而非價格,自由軟件和銷售拷貝之間並沒有矛 盾。事實上,銷售拷貝的自由是至關重要的:把自由軟件收集到CD-ROM上出售對整 個社團都很重要,而銷售它們又是為開發自由軟件籌集資金的重要手段。因此,如 果人們無法將某個程序自由地收集到這些集合中時,這個軟件就不是自由軟件。    由於“free”一詞具有歧義,人們長久以來都在尋找另外的詞來替代它,但直 到現在還沒有找到其合適的替代詞。英語的單詞與單詞之間的細微差別比世界上其 他的語言更多,然而它卻缺少一個簡單明了、沒有歧義的單詞表示自由(freedom) 中的“free”。“unfettered”(除去鐐铐的)也許是詞意與之最接近的詞了。其 他諸如“liberated”(被解放



   你擁有再發行拷貝的自由,可以是無償的,也可以收費。    你擁有發行該程序修改後版本的自由,從而使社團可以從你所作的改進中獲益。    因為這裡“free”的涵義是自由而非價格,自由軟件和銷售拷貝之間並沒有矛 盾。事實上,銷售拷貝的自由是至關重要的:把自由軟件收集到CD-ROM上出售對整 個社團都很重要,而銷售它們又是為開發自由軟件籌集資金的重要手段。因此,如 果人們無法將某個程序自由地收集到這些集合中時,這個軟件就不是自由軟件。    由於“free”一詞具有歧義,人們長久以來都在尋找另外的詞來替代它,但直 到現在還沒有找到其合適的替代詞。英語的單詞與單詞之間的細微差別比世界上其 他的語言更多,然而它卻缺少一個簡單明了、沒有歧義的單詞表示自由(freedom) 中的“free”。“unfettered”(除去鐐铐的)也許是詞意與之最接近的詞了。其 他諸如“liberated”(被解放



Copyright © Linux教程網 All Rights Reserved