精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久

  • 相關(guān)軟件
    >GNU操作系統(tǒng)與自由軟件運(yùn)動(dòng) 創(chuàng)建者:webmaster 更新時(shí)間:2005-05-17 23:15

    最初的軟件共享群體

       1971年,當(dāng)我開始在麻省理工學(xué)院人工智能(AI)實(shí)驗(yàn)室工作時(shí),我成了那里
    的軟件共享群體的一分子,這個(gè)軟件共享群體已經(jīng)存在多年。其實(shí),軟件的共享并
    不限于我們這一特定的群體,它的歷史與計(jì)算機(jī)一樣長(zhǎng)久,這兩者之間的關(guān)系就像
    人類很早就交換食譜與烹飪一樣。但我們做得比大多數(shù)人都做得更多。
       AI實(shí)驗(yàn)室當(dāng)時(shí)使用了一種稱為ITS(Incompatible Timesharing System,非兼
    容分時(shí)系統(tǒng))的分時(shí)操作系統(tǒng),這是我們實(shí)驗(yàn)室工作人員專為Digital PDP-10(那
    個(gè)時(shí)代的大型計(jì)算機(jī))設(shè)計(jì)的操作系統(tǒng),而且是用匯編語(yǔ)言開發(fā)的。作為這個(gè)群體
    的成員,我是一個(gè)AI實(shí)驗(yàn)室的系統(tǒng)黑客,我的工作就是完善這一系統(tǒng)。
       當(dāng)時(shí)我們并不把我們的軟件稱為“自由軟件”(free software),因?yàn)檫@個(gè)詞
    語(yǔ)當(dāng)時(shí)還不存在,但事實(shí)上那就是自由軟件。每當(dāng)其他大學(xué)或者公司的人要求移植
    或者使用我們的某個(gè)程序時(shí),我們總是應(yīng)允的。如果你看到某人在使用一個(gè)陌生而
    且有趣的程序時(shí),你總可以要求查看它的源代碼,以便可以讀代碼、對(duì)源代碼進(jìn)行
    修改、或者套用原代碼的一部分來創(chuàng)作新程序。

    群體的崩潰

       八十年代年代初,Digital公司停止了對(duì)PDP-11系列的開發(fā),那時(shí)情況發(fā)生了巨
    變。以六十年代的標(biāo)準(zhǔn)來看,PDP-11系列的體系結(jié)構(gòu)是精巧和強(qiáng)大的,但無(wú)法自然
    地適應(yīng)八十年代的技術(shù)所允許的更大尋址空間。這意味著,幾乎我們所有的程序,
    包括ITS,都一下子報(bào)廢了。
       在這前不久,AI實(shí)驗(yàn)室的黑客群體已經(jīng)分崩離析。1981年,從實(shí)驗(yàn)室分離出去
    了一個(gè)公司,名為“Symbolics”,幾乎雇走了所有的黑客,剩下的群體盛況難再。
    Steve Levy編寫過《黑客》一書,這本著作十分傳神地描述了這個(gè)群體鼎盛時(shí)期的
    情況。當(dāng)AI實(shí)驗(yàn)室于1982年購(gòu)置了一臺(tái)新的PDP-11機(jī)器時(shí),系統(tǒng)管理員決定使用
    Digital的非自由分時(shí)系統(tǒng),而不是ITS。
       那個(gè)時(shí)代的流行計(jì)算機(jī)系統(tǒng),如VAX和68020,都有自己的操作系統(tǒng),但這些系
    統(tǒng)都不是自由軟件:即使為了獲得機(jī)器碼可執(zhí)行程序的拷貝,也應(yīng)該簽署不公開協(xié)
    議(nondisclosure agreement)。
       這就意味著,你開始使用計(jì)算機(jī)的第一步就是要保證不幫助你身邊的人。相互
    協(xié)作的群體是被禁止的。專有軟件(proprietary software)所有者制訂的規(guī)則是:
    “與他人共享軟件就是盜版行為;如果你需要對(duì)程序作任何修改,磕頭央求我們吧?!?
       專有軟件社會(huì)系統(tǒng)(即聲明用戶不能分享或修改軟件的系統(tǒng))的觀念是反社會(huì)
    的、不道德的、完全錯(cuò)誤的。這一觀點(diǎn)可能會(huì)讓一些讀者驚詫不已。但是,對(duì)于一
    個(gè)基于分裂公眾、使用戶孤立無(wú)援的價(jià)值系統(tǒng),我們還能說些什么呢?對(duì)這一觀點(diǎn)
    感到難以接受的讀者,可能早已對(duì)專有軟件熟視無(wú)睹,或者從專有軟件工業(yè)的角度
    出發(fā)才作出了這樣的判斷。這也難怪,因?yàn)檐浖霭嫔桃呀?jīng)長(zhǎng)期為此努力工作,以
    使人確信對(duì)于這一事情只能有一個(gè)觀察角度。
       當(dāng)軟件出版商談到“確?!彼麄兊摹皺?quán)益”,或“禁止盜版行為”時(shí),他們實(shí)
    際上所說的東西是次要的。他們?cè)诎鏅?quán)聲明中真正傳遞的信息卻是他們認(rèn)為不言自
    明的假設(shè),公眾似乎應(yīng)該不加批判地接受之。現(xiàn)在讓我們來逐條地檢查這些假設(shè)。
       假設(shè)之一,是軟件公司具備無(wú)可置疑的自然權(quán)力占有軟件,從而有權(quán)凌駕于所
    有用戶之上。如果這確實(shí)是一種自然權(quán)力的話,那么無(wú)論它對(duì)公眾有多大的傷害,
    我們都無(wú)法反對(duì)。有趣的是,美國(guó)的憲法和司法傳統(tǒng)拒絕這種看法;版權(quán)并非一種
    自然權(quán)力,而是一種人為的、由政府強(qiáng)行實(shí)施的一種壟斷,以限制用戶拷貝的自然
    權(quán)力。
       另一種沒有挑明的假設(shè)是,軟件的唯一重要意義在于軟件可以允許用戶做什么
    ——而我們計(jì)算機(jī)用戶不應(yīng)該關(guān)心我們必須接受什么樣的社會(huì)。
       第三種假設(shè)是,如果不允許某個(gè)公司凌駕于其軟件產(chǎn)品的用戶之上,我們就不
    會(huì)有任何可用的軟件,或者永遠(yuǎn)不會(huì)有所需要的軟件去完成這樣或那樣的特別任務(wù)。
    這個(gè)假設(shè)一度顯得頗有道理,但是后來的自由軟件運(yùn)動(dòng)表明,我們可以創(chuàng)造出足夠
    多的有用軟件,而無(wú)須加以一連串的限制。
       如果我們拒絕接受上述假設(shè),并將用戶置于優(yōu)先的地位,從普通的、常識(shí)性的
    道德價(jià)值出發(fā)審視這些問題,我們就會(huì)得到截然不同的結(jié)論。計(jì)算機(jī)用戶應(yīng)該可以
    自由地修改程序以適應(yīng)他們自己的需求,可以自由地共享軟件,因?yàn)閹椭耸巧?
    會(huì)存在的基礎(chǔ)。
       這里沒有足夠的篇幅容納得出這一結(jié)論的詳細(xì)邏輯推理,因此我推薦你閱讀我
    們的Web主頁(yè),http://www.gnu.org/philosophy/why-free.html。

    艱難的道德選擇

       雖然我原來的群體已經(jīng)消失,但繼往開來并非不可能,只是我面臨一個(gè)道德選
    擇。
       一條簡(jiǎn)單的出路是加入專有軟件世界,簽署不公開協(xié)議,并許諾不再幫助我同
    事中的黑客。這樣做的結(jié)果很可能是我也開發(fā)軟件,而且軟件也以不公開協(xié)議的形
    式發(fā)布,從而對(duì)其他不愿意背叛同伴的人進(jìn)一步施加壓力。
       我有可能由此而發(fā)財(cái),而且也從編寫代碼中獲得樂趣。但我明白,在我的職業(yè)
    生涯結(jié)束時(shí),我回過頭來看到的景象將是這些年來筑起高墻林立,并將人們分隔開
    來,我會(huì)覺得自己的一生努力的結(jié)果會(huì)把這個(gè)世界搞得更糟。
       在此之前,我已有過接受不公開協(xié)議的經(jīng)驗(yàn)。當(dāng)時(shí),別人拒絕向MIT人工智能
    實(shí)驗(yàn)室和我提供我們打印機(jī)的控制程序的源代碼。該程序缺乏某些功能,打印機(jī)的
    使用起來極端麻煩。因此,我不能對(duì)自己說不公開協(xié)議是清白的。他拒絕與我們共
    享代碼,當(dāng)時(shí)我非常憤怒。我不可能轉(zhuǎn)頭對(duì)其他每一個(gè)人都如法炮制同一作法。
       另一種選擇,直截了當(dāng)?shù)钊瞬豢?,是離開計(jì)算機(jī)領(lǐng)域。如果那樣,我的技能
    就不會(huì)被濫用,但我的才能仍然會(huì)被浪費(fèi)掉。我個(gè)人不會(huì)成為分隔、限制計(jì)算機(jī)用
    戶的幫兇,但社會(huì)上的分隔和限制依舊在發(fā)生。
       因此,我要尋求一種解決之道,使我作為一個(gè)程序員能夠做些好事。我捫心自
    問,我是否能寫出一個(gè)或一些程序,能使我所珍視的群體再生呢?
       答案很清楚:最急需的首先是一個(gè)操作系統(tǒng)。這是開始使用計(jì)算機(jī)最至關(guān)重要
    的軟件——有了操作系統(tǒng),可以做許多事情;沒有操作系統(tǒng),你連計(jì)算機(jī)都使用不
    了。一個(gè)自由的操作系統(tǒng),會(huì)使我們可以再度擁有一個(gè)相互合作的黑客群體,而且
    進(jìn)一步邀請(qǐng)其他任何人參與進(jìn)來。每個(gè)人都可以安心使用計(jì)算機(jī),而無(wú)須變成剝奪
    自己朋友權(quán)益的同謀。
       作為操作系統(tǒng)開發(fā)人員,我擁有的技能正適合這項(xiàng)工作。因此,盡管我不認(rèn)為
    成功唾手可得,但是我覺得這是我的天賦。我決定將系統(tǒng)設(shè)計(jì)得與UNIX兼容以便移
    植,同時(shí)也便于UNIX用戶的移民到這一新的操作系統(tǒng)上來。我按照一項(xiàng)黒客的傳統(tǒng)
    選擇了GNU這個(gè)名字,GNU是“Gnu's not UNIX”(GNU不是UNIX)的遞歸同義
    詞。
       操作系統(tǒng)并不僅僅意味著一個(gè)恰好只能運(yùn)行其他程序的內(nèi)核。在70年代,任何
    排得上號(hào)的操作系統(tǒng)都包括有命令解釋器、匯編器、編譯器、解釋器、調(diào)試器、文
    本編輯器和電子郵件軟件包等等。ITS包括這些東西,Multics有,VMS有,UNIX有,
    GNU操作系統(tǒng)也應(yīng)該含有這些東西。很久之后我看到了以下的詩(shī)句,據(jù)傳來自Hillel*:

    如果我不為自己打算,誰(shuí)會(huì)為我考慮?
    如果我只為自己打算,我又變成了什么東西?
    如果現(xiàn)在不動(dòng)手,還要等到什么時(shí)候?

    啟動(dòng)GNU工程的決定,正是基于同樣的精神。

    * 腳注:作為無(wú)神論者,我不盲從任何宗教領(lǐng)袖,但有時(shí)我不得不贊賞他們中某些
    人的箴言。

    Freedom中的自由

       “free software”這種術(shù)語(yǔ)有時(shí)會(huì)被誤解——事實(shí)上它和價(jià)格毫無(wú)關(guān)系。它
    的涵義是自由。這是自由軟件的定義所決定的。對(duì)于你,某個(gè)特定的用戶來說,如
    果某個(gè)程序稱為自由軟件,那么:
       你擁有運(yùn)行該程序的自由,而且可以用于任何目的。
       你擁有修改該程序以適應(yīng)你個(gè)人需要的自由。(為了在實(shí)踐中使這一自由成為
    可能,你必須能夠獲得源代碼,因?yàn)闆]有源代碼而試圖修改程序是極端困難的。)
       你擁有再發(fā)行拷貝的自由,可以是無(wú)償?shù)?,也可以收費(fèi)。
       你擁有發(fā)行該程序修改后版本的自由,從而使社團(tuán)可以從你所作的改進(jìn)中獲益。
       因?yàn)檫@里“free”的涵義是自由而非價(jià)格,自由軟件和銷售拷貝之間并沒有矛
    盾。事實(shí)上,銷售拷貝的自由是至關(guān)重要的:把自由軟件收集到CD-ROM上出售對(duì)整
    個(gè)社團(tuán)都很重要,而銷售它們又是為開發(fā)自由軟件籌集資金的重要手段。因此,如
    果人們無(wú)法將某個(gè)程序自由地收集到這些集合中時(shí),這個(gè)軟件就不是自由軟件。
       由于“free”一詞具有歧義,人們長(zhǎng)久以來都在尋找另外的詞來替代它,但直
    到現(xiàn)在還沒有找到其合適的替代詞。英語(yǔ)的單詞與單詞之間的細(xì)微差別比世界上其
    他的語(yǔ)言更多,然而它卻缺少一個(gè)簡(jiǎn)單明了、沒有歧義的單詞表示自由(freedom)
    中的“free”?!皍nfettered”(除去鐐銬的)也許是詞意與之最接近的詞了。其
    他諸如“l(fā)iberated”(被解放的)、“freedom”(自由的)和 “open”(開放
    的)也被考慮過,但是這樣替代詞要么語(yǔ)義不對(duì),要么就是存在其他缺陷。

    GNU軟件與GNU系統(tǒng)

       開發(fā)一個(gè)操作系統(tǒng)是一個(gè)非常龐大的工程??紤]到可行性,我決定只要有可能
    就采用和使用現(xiàn)成的自由軟件。例如,最初我就決定使用TeX作為主要的文本格式
    化工具;幾年之后,我決定使用X Window系統(tǒng),而不是另起爐灶為GNU寫一個(gè)窗口
    系統(tǒng)?!                                ?
       由于這些決定,GNU系統(tǒng)不等價(jià)于所有GNU軟件的集合。GNU系統(tǒng)中包括非
    GNU軟件、由其他人或者其他開發(fā)項(xiàng)目出于各自目的而編寫的程序,但正因?yàn)樗鼈?
    是自由軟件,所以我們可以使用。

    工程之發(fā)軔

       1984年1月,我辭去了在MIT的職務(wù),開始專心致志編寫GNU 軟件。離開MIT是
    必要的,這樣MIT就無(wú)法干涉我將GNU作為自由軟件發(fā)行。如果我繼續(xù)在學(xué)校的工作,
    那么MIT可以聲稱擁有我的工作成果,可以實(shí)施他們自己的軟件發(fā)行條件,甚至可
    以將它們變成專有軟件。我無(wú)意在付出大量的勞動(dòng)后,最終只是看到結(jié)果對(duì)自己的
    初衷沒有幫助。我的初衷是:創(chuàng)造一個(gè)新的軟件共享群體。
       不過,當(dāng)時(shí)MIT人工智能實(shí)驗(yàn)室的領(lǐng)導(dǎo),溫斯頓教授(Prof. Winston),卻友
    善地邀請(qǐng)我繼續(xù)使用實(shí)驗(yàn)室的設(shè)備。

    最初的步驟

       啟動(dòng)GNU工程之前不久,我聽說荷蘭自由大學(xué)有一種編譯器軟件包(又稱VUCK,
    荷蘭語(yǔ)中表示“自由”的詞以字母“V”開始)。這是一個(gè)為處理多種編程語(yǔ)言(
    包括C和Pascal)而設(shè)計(jì)的編譯器,并且支持多種目標(biāo)機(jī)。我給它的創(chuàng)作者寫了一
    封信,詢問GNU工程是否可以使用它。
       他的回信不無(wú)嘲弄,聲稱大學(xué)是自由的,但他的編譯器不是。因此我決定為GNU
    開發(fā)的第一個(gè)程序是一個(gè)支持多語(yǔ)言、多平臺(tái)的編譯器。
       我希望避免單槍匹馬地開發(fā)整個(gè)編譯器,我獲取了在勞倫斯·利福摩實(shí)驗(yàn)室(
    Laurence Livermore Lab)開發(fā)的多平臺(tái)編譯器,即Pastel的源代碼。它支持Pascal,
    本身就是專為系統(tǒng)編程而設(shè)計(jì),而且是Pascal語(yǔ)言的一個(gè)擴(kuò)展版本。我加上了一個(gè)C
    的前端(frontend),然后開始將它移植到摩托羅拉68000計(jì)算機(jī)計(jì)算機(jī)上去。但我
    不得不放棄,因?yàn)槲液髞戆l(fā)現(xiàn)該編譯器需要許多兆字節(jié)的??臻g,而當(dāng)時(shí)的68000
    UNIX系統(tǒng)只支持64K。
       于是,我判定該P(yáng)ascal編譯器的設(shè)計(jì)思想是將整個(gè)輸入文件處理成為一個(gè)語(yǔ)法
    樹,將整個(gè)語(yǔ)法樹轉(zhuǎn)化為一連串的“指令”,然后生成整個(gè)輸出文件,在全過程之
    中不會(huì)釋放任何內(nèi)存。從那時(shí)起,我決心從頭開始編寫一個(gè)完整的編譯器。這個(gè)新
    編譯器現(xiàn)在的名字就是GCC,它完全沒有使用任何Pastel編譯器的代碼,但我設(shè)法用
    上了我原來編寫的C前端,不過這卻是幾年以后的事情了。我首先完成了GNU Emacs。

    GNU Emacs

       我開發(fā)GNU Emacs的工作始于1984年,1985年初GNU Emacs便可以開始使用了。
    這使我可以在UNIX機(jī)器上進(jìn)行編輯工作。而在此之前,因?yàn)闆]有興趣使用vi或ed,
    我的文本編輯工作都是在其他系統(tǒng)上完成的。
       這時(shí),人們開始希望能使用GNU Emacs,這就引發(fā)了如何發(fā)行的問題。我將它放
    到了我所使用的MIT機(jī)器的匿名FTP服務(wù)器上(prep.ai.mit.edu這臺(tái)計(jì)算機(jī)從此成為
    GNUFTP發(fā)行的主站點(diǎn)。幾年之后機(jī)器不復(fù)使用時(shí),我們將它的名字轉(zhuǎn)到新的FTP服務(wù)
    器上)。但在當(dāng)時(shí),許多有興趣使用GNU Emacs的人都不在因特網(wǎng)上,也就無(wú)法利用
    FTP以獲得Emacs的拷貝。那么,我應(yīng)該告訴他們什么呢?
       我可以說:“找一個(gè)能上網(wǎng)的朋友,他會(huì)幫助你獲得拷貝的”?;蛘甙凑瘴易?
    初在PDP-10上發(fā)行Eamcs的方式,對(duì)他們說:“寄給我一盤磁帶和一個(gè)郵資已附的回
    信信封,我會(huì)把Eamcs寄回給你的”。但當(dāng)時(shí)我沒有工作,正在尋找通過自由軟件掙
    錢的方法。 因此我宣布會(huì)為所有希望得到它的人郵寄一份,定價(jià)是150美元。這樣,
    我開始了商業(yè)性自由軟件的發(fā)行業(yè)務(wù),這也是當(dāng)今眾多銷售完整的、基于Linux的GNU
    系統(tǒng)的公司之濫觴。

    程序?qū)γ總€(gè)使用者都自由嗎?

       一個(gè)程序作為自由軟件離開原作者之手后,并不一定意味著它對(duì)于每個(gè)擁有拷
    貝的人都是自由軟件。舉例來說,公用領(lǐng)域軟件(public domain software,沒有
    版權(quán)的軟件)是自由軟件,但任何人都可以將它稍作修改的版本變成專有軟件。同
    理,許多自由軟件雖然有版權(quán)聲明,但發(fā)行許可證過于簡(jiǎn)單寬縱,以至有人可以將
    它修改成為專有軟件。
       這個(gè)問題的例證之一是X Window系統(tǒng)。X Window系統(tǒng)是在MIT開發(fā)出來的,它以
    一種比較寬容的許可證發(fā)布之后,很快就被很多計(jì)算機(jī)廠商所采用。他們將二進(jìn)制
    碼的X Window系統(tǒng)附加到各自專有的UNIX系統(tǒng)中,加上了與UNIX同樣的不公開協(xié)議。
    這些X Window系統(tǒng)的拷貝與UNIX一樣,它們并不是自由軟件。
       X Window系統(tǒng)的開發(fā)者事先并不認(rèn)為這是一個(gè)問題——他們的意圖正是這樣,
    并且期望這樣的情況發(fā)生。他們的目的并非自由,而只是“成功”,即“擁有許多
    用戶”。他們不關(guān)心這些用戶是否擁有自由,而只要用戶數(shù)量眾多就可以了。
       這導(dǎo)致了一個(gè)自相矛盾的情況:對(duì)“這個(gè)程序自由嗎?”這一問題,按照兩種
    不同的自由程度計(jì)算方法會(huì)得出不同的答案。如果你按照基于MIT發(fā)行版發(fā)行條件來
    進(jìn)行判斷它所提供的自由,那么可以認(rèn)為X Window系統(tǒng)是自由軟件;但如果考慮一
    般X Window系統(tǒng)用戶的自由,你不得不認(rèn)為它是專有軟件。絕大多數(shù)X Window系統(tǒng)
    用戶以前是在使用UNIX系統(tǒng)附帶的專有版本,而不是自由版本。

    Copyleft與GNU GPL

       GNU 的目的是給用戶以自由, 而不僅是為了爭(zhēng)取大量用戶。因此我們必須使用
    某種發(fā)行條件,以避免將GNU軟件變成專有軟件。我們使用的方法稱為“Copyleft”
    (版權(quán)所無(wú))(注)。
       注:在1984和1985年,唐·霍普金斯(Don Hopkins,一個(gè)非常富于想象力的家
    伙)給我寄了一封信。在信封上他寫了一些逗樂的話,其中包括:“版權(quán)所無(wú)——
    所有權(quán)力都被逆轉(zhuǎn)(copyleft-all rights reversed)”。于是,我就使用了Copy-
    left一詞以命名當(dāng)時(shí)我正考慮的軟件發(fā)行概念。
       Copyleft利用了版權(quán)法,但反其道而行之,以達(dá)到與通常相反的目的:將一種
    將軟件私有化的手段轉(zhuǎn)變成了保持軟件自由的手段。
       Copyleft的中心思想,是我們給予任何人運(yùn)行、拷貝、修改以及發(fā)行改變后程
    序的許可,但不準(zhǔn)許附加他們自己的限制。從而保障了每個(gè)人都有獲得“自由軟件”
    的軟件拷貝的自由,它們成為了不可異化的權(quán)力。
       要保證Copyleft的有效性,那么修改后的版本出必須也是自由的。這保障了在
    我們工作的基礎(chǔ)上所完成的成果一旦公布后,也能為我們的社團(tuán)所用。當(dāng)專業(yè)編程
    人員自愿幫助改進(jìn)GNU軟件時(shí),“Copyleft”可以防止他們的雇主聲稱:“你不能
    和人共享這些改動(dòng),因?yàn)槲覀儠?huì)用它創(chuàng)建我們自己專有軟件的版本?!?
       所以為確保程序?qū)γ课挥脩舳甲杂桑敲此鞲膭?dòng)也必須保持自由這個(gè)前提是
    必不可少的。將X Window系統(tǒng)私有化的那些公司通常對(duì)程序做了某些修改,以便將
    X Window System移植到他們的系統(tǒng)和硬件上。這些改動(dòng)與整個(gè)X Window系統(tǒng)的廣
    泛內(nèi)容相比并不算大,但并非微不足道,如果這些修改可以作為拒絕給用戶以自由
    的借口,人們都會(huì)輕而易舉地利用這一借口。
       一個(gè)相關(guān)的問題涉及到將自由的程序與不自由的代碼相組合。這樣一個(gè)組合將
    不可避免地失去自由性;無(wú)論不自由的部分缺乏何種自由,都會(huì)使整個(gè)程序喪失自
    由。一旦允許這種漏洞存在,那么所造成的損失可以大于再沉一艘“泰坦尼克”號(hào)。
    因此,“Copyleft”的一個(gè)關(guān)鍵要求是封堵這一漏洞:任何添加或者組合到自由軟
    件上的部分都不允許附加其他限制,從而保證其結(jié)果的整體是自由的、版權(quán)所無(wú)的
    (Copylefted)。
       作為Copyleft的一種特定實(shí)現(xiàn)形式,我們用“GNU公眾許可證(簡(jiǎn)稱GPL)”來
    標(biāo)明絕大多數(shù)GNU軟件的許可證。我們還有在特殊情況下使用的其它種類的“Copy-
    left”許可證。GNU的使用手冊(cè)也采取了Copyleft許可證,但使用的一種大大簡(jiǎn)化
    的方式,因?yàn)槭謨?cè)不需要GNU GPL那樣的復(fù)雜度。

    自由軟件基金會(huì)(The Free Software Foundation)

       隨著人們使用Emacs的興趣日益增加,其他人也開始參與GNU工程,我們覺得這
    是再次尋求資助的時(shí)機(jī)。所以我們?cè)?985年創(chuàng)辦了自由軟件基金會(huì)(FSF),這是
    一個(gè)完全致力于自由軟件開發(fā)的免稅福利機(jī)構(gòu)。FSF同時(shí)也接管了Emacs磁帶發(fā)行
    業(yè)務(wù),接著FSF在磁帶上增加了GNU的和其他非GNU的自由軟件,并出售自由軟件的
    使用手冊(cè),F(xiàn)SF的業(yè)務(wù)得到了進(jìn)一步的擴(kuò)展。
       FSF接受捐贈(zèng),但它的絕大多數(shù)收入來源于銷售自由軟件拷貝以及其他服務(wù)。
    今天它銷售的產(chǎn)品包含含有源代碼的光盤,可執(zhí)行程序的光盤、印制精美的使用
    手冊(cè)(全都包括修改和再發(fā)行的自由)及其豪華版(我們?yōu)榭蛻糁付ǖ钠脚_(tái)制作
    完整的軟件包)。
       自由軟件基金會(huì)的雇員編寫了并維護(hù)著數(shù)量相當(dāng)多的GNU 軟件包。其中值得
    一提的兩種是C Library和shell(命令解釋器)。任何運(yùn)行于GNU/Linux系統(tǒng)之
    上的程序都用GNU C Library作為與Linux內(nèi)核通信的中介。它是由自由軟件基金
    會(huì)的一位工作人員Roland McGrath開發(fā)的。絕大多數(shù)GNU/Linux系統(tǒng)上使用的shell
    都是BASH (Bourne Again Shell)*,它由FSF雇員Brian Fox開發(fā)。
       * 腳注:Bourne Again Shell (Bourne Shell再世)是對(duì)UNIX上常見的shell
    “Bourne Shell”開的玩笑。
       我們資助了這些程序的開發(fā),因?yàn)镚NU工程的注意力并不只局限于工具和開發(fā)
    環(huán)境。我們的目的是一個(gè)完整的操作系統(tǒng),而這些程序是實(shí)現(xiàn)這一目的所必須的。

    自由軟件的支持

       自由軟件的哲學(xué)拒絕一種廣為流傳的特定商業(yè)行為,但它并非反對(duì)商業(yè),如果
    商業(yè)機(jī)構(gòu)尊重用戶的自由,那么我們希望他們成功。
       銷售Emacs的拷貝就展示了一種自由軟件的商業(yè)運(yùn)作方式。當(dāng)FSF接管了這項(xiàng)業(yè)
    務(wù)后,我需要另一種方法養(yǎng)家糊口。解決辦法是圍繞我原來開發(fā)的自由軟件來銷售
    服務(wù)。這包括教授如何使用GNU Emacs編程、如何定制GCC之類的課題,以及怎樣開
    發(fā)軟件(主要是將GCC移植到新的平臺(tái)上)。
       今天,上述的每一種自由軟件業(yè)務(wù)模式都被一些公司采用。其中一些發(fā)行自由
    軟件的集合(收集在CD-ROM上),另一些銷售支持(技術(shù)服務(wù)),支持級(jí)別很廣泛,
    從回答用戶的問題到解決軟件中的臭蟲,乃至增加重大的新特性。我們甚至開始看
    到市場(chǎng)上出現(xiàn)了發(fā)行自由軟件新產(chǎn)品的公司。
       但要注意,一些將自己與“開源軟件”(Open Source)概念相聯(lián)系起來的公
    司,事實(shí)上是將他們的業(yè)務(wù)建筑在與自由軟件一起工作的非自由軟件上。這不是自
    由軟件公司,而是專有軟件的公司,他們推出產(chǎn)品誘惑用戶遠(yuǎn)離自由。他們美其名
    曰“增值”,這個(gè)名字也反映出了他們希望我們接受他們的價(jià)值觀:方便超越自由。
    如果我們相比之下更珍視自由的話,我們可以把他們的產(chǎn)品稱之為“減少自由”的
    增值品。

    技術(shù)目標(biāo)

       GNU的基本目標(biāo)在于自由軟件。即使GNU在技術(shù)上對(duì)UNIX無(wú)優(yōu)勢(shì)可言,它仍然具
    有社團(tuán)意義上的優(yōu)勢(shì),允許用戶相互合作,還有道德意義上的優(yōu)勢(shì),尊重用戶的自
    由。
       但使用廣為接受的技術(shù)質(zhì)量標(biāo)準(zhǔn)來評(píng)判我們的成果,那也是自然而然的。例如,
    動(dòng)態(tài)地分配數(shù)據(jù)結(jié)構(gòu)以避免任意固定尺寸限制,同時(shí)在任何有意義的場(chǎng)合下都正確
    處理所有可能的8位代碼。
       在此之外,我們決定不支持16位的機(jī)器(當(dāng)時(shí)已經(jīng)清楚,GNU系統(tǒng)完成之時(shí),
    32位的機(jī)器即將普及),不致力縮減內(nèi)存使用量除非超過1兆字節(jié),這就否定了當(dāng)時(shí)
    UNIX對(duì)小內(nèi)存的關(guān)注,當(dāng)處理大文件并非關(guān)鍵問題時(shí),我們鼓勵(lì)程序員將整個(gè)輸入
    文件讀入內(nèi)存,然后遍歷它的內(nèi)容而不用去顧及輸入/輸出。
       這些決定使許多GNU程序同時(shí)在可靠性和速度上都超越了它們的UNIX競(jìng)爭(zhēng)對(duì)手。

    捐贈(zèng)的計(jì)算機(jī)

       隨著GNU工程的聲譽(yù)日益增長(zhǎng),人們開始向工程捐贈(zèng)運(yùn)行UNIX的機(jī)器。它們非
    常有用,因?yàn)殚_發(fā)GNU元件最簡(jiǎn)便的方式莫過于先在UNIX系統(tǒng)上編程,然后將系統(tǒng)
    的元件逐一替換,但它們也引發(fā)了一個(gè)倫理方面的問題:我們擁有一個(gè)UNIX拷貝是
    否正確。UNIX過去是,現(xiàn)在也是專有軟件。GNU工程的哲學(xué)認(rèn)為我們不應(yīng)該使用專
    有軟件。然而,與在正當(dāng)防衛(wèi)中使用暴力相似,我按照這一推理得出了一個(gè)結(jié)論:
    我確信,在為開發(fā)自由軟件去替代專有軟件,和幫助他人停止使用專有軟件時(shí),如
    果需要使用專有軟件的確是問題的關(guān)鍵的話,那么使用專有軟件是合乎情理的。
       但是,即使這樣做是有理的罪惡,它畢竟仍然是一種罪惡。今天我們不再擁有
    任何版本的UNIX,因?yàn)槲覀円呀?jīng)使用了自由的操作系統(tǒng)替代了它們。如果我們不能
    使用自由的操作系統(tǒng)去替代機(jī)器上的操作系統(tǒng),那么我們會(huì)替換機(jī)器本身。

    GNU任務(wù)清單

       隨著GNU工程的進(jìn)展,越來越多的系統(tǒng)元件被發(fā)現(xiàn)或者被開發(fā)出來。最后,列
    出一個(gè)剩下課題的清單對(duì)我們來說有了意義。我們使用這份任務(wù)清單招集開發(fā)者以
    編寫剩余所欠缺的部分。這一清單以GNU任務(wù)清單命名。除了尚缺的UNIX組成部分,
    我們還包括了各種各樣的、我們認(rèn)為一個(gè)真正完整的系統(tǒng)應(yīng)該具備的其他有用軟件
    以及文檔項(xiàng)目。
       時(shí)至今日,幾乎沒有任何UNIX的成分還遺留在GNU任務(wù)清單之中——那些工作已
    經(jīng)完成,某些不重要的除外。但清單現(xiàn)在充滿了可以稱為“應(yīng)用程序”的項(xiàng)目。任
    何程序,只要它的適用而不僅限于很小一部分用戶,都可以成為操作系統(tǒng)的有用組
    成部分。甚至游戲程序也包括在任務(wù)清單之內(nèi)——從工程一開始就這樣。UNIX包括
    了游戲程序,自然GNU自然也該這樣。但游戲沒有兼容性問題,因此我們無(wú)須原樣
    照搬UNIX的游戲。相反,我們列舉了用戶有可能會(huì)喜歡的各種類型的游戲。

    GNU Library GPL

       GNU C Library使用了一種特殊的“Copyleft”方式,稱為“GNU Library
    General Public License”(LGPL),允許專有軟件可以同Library鏈接,為什么要
    留這樣一個(gè)例外呢?這并非一個(gè)原則問題;沒有任何原則允許專有軟件有權(quán)包括我
    們的代碼(何必要為一個(gè)早已決心拒絕與我們共享的項(xiàng)目費(fèi)力?)。對(duì)于C Library
    應(yīng)用GPL,或者任何Library應(yīng)用GPL,屬于策略問題。
       C Library完成的是普遍性的工作;任何專有系統(tǒng)或者編譯器都伴隨著一個(gè)C
    Library,因此,限制我們的C Library只能為自由軟件使用不會(huì)為自由軟件帶來任
    何優(yōu)勢(shì) -- 這只能阻礙它被采用。
       有一種系統(tǒng)是例外:在GNU系統(tǒng)上(包括GNU/Linux),GNU C Library是唯一的
    C Library。因此,GNU C Library 的發(fā)行條件決定是否有可能為GNU系統(tǒng)編譯專有
    軟件,并沒有任何道義上的理由允許GNU系統(tǒng)上的專有應(yīng)用程序存在,但從策略上看,
    不允許它們的存在更多地是阻礙GNU系統(tǒng)的使用,而不是鼓勵(lì)自由應(yīng)用的發(fā)展。
       這就是為何 C Library應(yīng)用 Library GPL是一個(gè)好策略的緣由。對(duì)于其它的
    Library,則必須視具體情況具體分析,再作策略性的決定。如果一個(gè) Library具有
    特定的功能,足以幫助我們編寫某種類型的程序,那么以GPL將它發(fā)布、并僅限于自
    由程序使用,則不失為幫助其他自由軟件開發(fā)者的一種手段,可以給予他們某種優(yōu)
    勢(shì)去與專有軟件競(jìng)爭(zhēng)。
       考慮GNU Readline,這是專為BASH命令行編輯功能所開發(fā)的 Library。Readline
    是在通常的GNU GPL下發(fā)布的,而不是Library GPL。這或許降低了Readline被使用
    的頻率,但對(duì)我們不構(gòu)成損失。同時(shí),至少有一個(gè)有用的應(yīng)用程序,因?yàn)橐褂?
    Readline,所以被特別地轉(zhuǎn)化成了自由軟件。這是自由軟件社團(tuán)的一個(gè)真正勝利。
    專有軟件開發(fā)人員具有資金上的優(yōu)勢(shì),而自由軟件開發(fā)人員則需要相互之間共享長(zhǎng)
    處。我希望將來某天我們擁有大量的GPL涵蓋的Library具有專有軟件無(wú)法媲美的優(yōu)
    勢(shì),以提供有用的模塊能為構(gòu)建新的自由軟件添磚加瓦,并為未來的自由軟件運(yùn)動(dòng)
    增添某種優(yōu)勢(shì)。

    搔癢乎?

       Eric Raymond 說:“每一項(xiàng)好的軟件開發(fā)工作始于某個(gè)開發(fā)人員的搔癢”。
    這在某些場(chǎng)合下是真的,但是許多GNU軟件的基礎(chǔ)部分是為了擁有一個(gè)完整的自由
    操作系統(tǒng)為開發(fā)的。它們來自一種觀點(diǎn)和計(jì)劃,而不是一時(shí)的沖動(dòng)。
       例如,我們之所以開發(fā)了GNU C Library是因?yàn)橐粋€(gè)類UNIX的操作系統(tǒng)需要一
    個(gè)C Library,我們開發(fā)了BASH是因?yàn)轭怳NIX的操作系統(tǒng)需要一個(gè)外殼,我們開發(fā)
    了GNU tar 是因?yàn)橐粋€(gè)類UNIX的操作系統(tǒng)需要一個(gè)tar 程序。我之所以開發(fā)GNU C
    Compiler、GNU Emacs、GDB和GNU Make也是出于同樣的道理。
       有些GNU程序是為了應(yīng)付對(duì)我們的自由的威脅而開發(fā)的,因此,我們開發(fā)了
    gzip 提替代Compress 程序,因?yàn)镃ompress采用了LZW專利,自由軟件社團(tuán)不能使
    用它。我們找到了人開發(fā)LessTif,而且最近又找到了人開發(fā) GNOME 和 Harmony,
    以對(duì)付專有Library 的威脅(下面即將談到)。我們正在開發(fā) GNU Privacy Guard
    來替代流行的非自由的加密軟件,因?yàn)橛脩舨粦?yīng)該被迫在隱私和自由之間作出選擇。
    當(dāng)然,編寫這些程序的人也開始對(duì)工作產(chǎn)生興趣,而且各種人按照他們自己的需求
    和興趣給程序增添了許多特性。但是,這不是這些程序存在的原因。

    不期望的發(fā)展

       在GNU項(xiàng)目開始時(shí),我想象我們將先開發(fā)完整個(gè)GNU系統(tǒng),然后再發(fā)布它。但
    后來所發(fā)生的情況不是這樣。
       由于GNU系統(tǒng)的每一個(gè)元件都是在UNIX系統(tǒng)上實(shí)現(xiàn)的,每一個(gè)元件都可以在
    UNIX系統(tǒng)上運(yùn)行,而且在完成GNU系統(tǒng)之前早就大名鼎鼎。其中的有些軟件變得非
    常流行,用戶開始對(duì)它們進(jìn)行擴(kuò)充并移植——移植到各種不兼容的UNIX版本上,
    有時(shí)是到其他平臺(tái)上。
       這一進(jìn)程使得這些程序功能更加強(qiáng)大,并為GNU工程吸引了更多的基金和捐贈(zèng)。
    但是它也許將一個(gè)最小的可以運(yùn)行的系統(tǒng)的完成時(shí)間拖延了幾年,因?yàn)镚NU開發(fā)人
    員的時(shí)間花在了維護(hù)那些移植版本上,或者為已有元件的增添新的特性,而沒有把
    精力花在編寫GNU系統(tǒng)上面尚未完成的那些元件上。

    GNU HURD

       到1990年時(shí),GNU 系統(tǒng)幾乎接近完成。主要所缺的東西就是一個(gè)內(nèi)核。我們
    決定設(shè)計(jì)一組運(yùn)行在 Mach的基礎(chǔ)上的服務(wù)器來作為我們的內(nèi)核。Mach是在卡內(nèi)基
    ·梅隆大學(xué)開發(fā)出來的微內(nèi)核,后來在尤他大學(xué)得到了發(fā)展。GNU HURD是運(yùn)行在
    Mach之上的一組服務(wù)器的集合(或者稱為“herd of gnus”),這些服務(wù)器完成
    UNIX 內(nèi)核所完成的各種不同的任務(wù)。Mach曾經(jīng)許諾它將作為自由軟件發(fā)行,由于
    我們等待這一宣布,因此開發(fā)GNU HURD的啟動(dòng)時(shí)間被迫推遲了。
       選擇該設(shè)計(jì)的原因之一,是希望避免看似最為困難的工作:調(diào)試一個(gè)內(nèi)核程
    序而沒有相應(yīng)的源代碼級(jí)調(diào)試器。這部分工作在Mach中已經(jīng)完成了,而我們期望
    用GNU調(diào)試器(GDB)調(diào)試作為用戶程序的HURD服務(wù)器。 但我們耗費(fèi)了許多時(shí)間
    才使它成為可能,而且相互之間發(fā)送信息的多線程服務(wù)器也是非常難以調(diào)試的。
    使HURD穩(wěn)定運(yùn)行這一工作已多花了幾年的時(shí)間。

    Alix

       GNU內(nèi)核一開始并不準(zhǔn)備叫做HURD。它最初的名稱叫做Alix——當(dāng)時(shí)我所愛女
    人的名字。她,作為一個(gè)UNIX系統(tǒng)管理員,曾經(jīng)指出她的名字是如何吻合UNIX系
    統(tǒng)版本的命名規(guī)范;她對(duì)朋友說過這樣的玩笑話:“會(huì)有人用我的名字命名一個(gè)
    系統(tǒng)內(nèi)核?!碑?dāng)時(shí)我沒有說什么,但決心用一個(gè)名叫Alix的內(nèi)核讓她大吃一驚。
    這個(gè)名字并沒延續(xù)下來。Michael Buchneil,內(nèi)核的主要開發(fā)者(現(xiàn)在是Thomas),
    更喜歡HURD這個(gè)名字,并把Alix重新定義為內(nèi)核的一個(gè)組成部分——通過向各
    HURD服務(wù)器發(fā)送信息而捕提系統(tǒng)調(diào)用并進(jìn)行處理的那部分。
       最后,Alix和我分手了,她也改了姓名;同時(shí)與之無(wú)關(guān)的是HURD的設(shè)計(jì)也作
    了修改, C Library會(huì)向服務(wù)器直接發(fā)送信息,也就使Alix元件從設(shè)計(jì)中消失了。
    但在這些事情發(fā)生前,她的一個(gè)朋友在HURD源代碼中看到了Alix,并且告訴了她。
    所以這個(gè)名字還是起過作用的。

    Linux與GNU/ Linux

       GNU HURD還不能投入正式使用。 幸運(yùn)的是,有另一個(gè)內(nèi)核可用。 1991年,
    Linus Torvalds 開發(fā)了一個(gè)與UNIX兼容的內(nèi)核并稱之為L(zhǎng)inux。 1992年左右,
    Linux與尚未大功告成的GNU系統(tǒng)融合成為一個(gè)完整的自由操作系統(tǒng)(當(dāng)然,兩者
    之間的結(jié)合本身就是一項(xiàng)非常艱巨的工作)。有了Linux,我們今天有了一個(gè)真
    正的可以運(yùn)行的GNU系統(tǒng)版本。
       我們稱這個(gè)系統(tǒng)版本為GNU/Linux,以表示它由GNU系統(tǒng)與作為內(nèi)核的Linux組
    合而成。

    我們將來的挑戰(zhàn)

       我們已經(jīng)證實(shí),我們自己有能力開發(fā)一整套的自由軟件。但這并不意味著我們
    就不可戰(zhàn)勝,或者勢(shì)不可遏,我們正面臨著幾個(gè)挑戰(zhàn),它們使得自由軟件前途難卜;
    迎接這些挑戰(zhàn)需要持續(xù)不懈的努力和耐力,也許會(huì)要以年來計(jì)算。這要求人們表現(xiàn)
    出在珍視自由而不讓任何人奪走它時(shí)的那種決心。
       下面四個(gè)小節(jié)討論這些挑戰(zhàn)。

    秘而不宣的硬件

       硬件生產(chǎn)商日益趨向?qū)⒂布?guī)格說明秘而不宣。這給編寫自由的驅(qū)動(dòng)程序以讓
    Linux與X Free86支持新硬件帶來了困難。今天我們擁有完整的自由系統(tǒng),但如果
    我們不能支持明天的計(jì)算機(jī),我們明天就會(huì)失去它。
       有兩種方式來對(duì)付這一問題。一是程序員可以通過反向工程搞清楚如何支持硬
    件。另外,我們其他的人可以選擇使用那些自由軟件所支持的硬件,當(dāng)我們的人數(shù)
    增加時(shí),保密的規(guī)格說明書就會(huì)不攻自破。
       實(shí)施反向工程是一項(xiàng)繁重的工作,我們是否有程序員具有足夠的決心去承擔(dān)它
    呢?會(huì)有的——如果我們能夠建立這樣一種強(qiáng)烈的感性認(rèn)識(shí),即自由軟件是一個(gè)原
    則問題,而非自由的驅(qū)動(dòng)程序是不可容忍的。另外,我們大家會(huì)花費(fèi)額外的金錢,
    甚或是一點(diǎn)額外的時(shí)間以使用自由的驅(qū)動(dòng)程序嗎?會(huì)的,如果堅(jiān)持自由的決心被廣
    泛接受的話。

    非自由的Library

       在自由的操作系統(tǒng)上運(yùn)行的非自由的Library是針對(duì)自由軟件開發(fā)人員的一個(gè)陷
    井。這些Library吸引人的功能是誘餌;如果你使用了這些Library,你就掉進(jìn)了陷
    井,因?yàn)槟愕某绦虮悴荒艹蔀樽杂刹僮飨到y(tǒng)的一個(gè)有用組成部分(嚴(yán)格地說,我們
    可以收集你的程序,但它離開了Library而無(wú)法繼續(xù)“運(yùn)行”)。甚至更糟的是,如
    果一個(gè)使用專有Library的程序流行起來的話,它會(huì)引誘其他不存疑心的程序員自投
    羅網(wǎng)。
       這個(gè)問題的第一個(gè)例證是80年代的 Motif工具包。盡管當(dāng)時(shí)尚沒有自由的操作
    系統(tǒng),但情況已經(jīng)很清楚,Motif日后會(huì)給它們帶來問題。GNU工程的回應(yīng)有兩種方
    式:其一是請(qǐng)求各個(gè)自由軟件項(xiàng)目同時(shí)支持Motif和自由的X toolkit widget(X工
    具包窗口組件);其二是請(qǐng)求人們編寫一個(gè)自由的Motif替代品。這個(gè)工作花費(fèi)了許
    多年。Lesstif由“饑餓的程序員小組”(the Hungry Programmers)開發(fā),直到
    1997年才強(qiáng)大到足以支持絕大多數(shù)Motif應(yīng)用程序。
       大約是在相同的時(shí)間,另一個(gè)非自由的GUI工具包Library開始流行起來。這就
    是Troll Technologies公司的Qt。最后,Qt被用于一系列重要的自由軟件,KDE桌面
    系統(tǒng)。
       自由的GNU/Linux系統(tǒng)無(wú)法使用KDE,因?yàn)槲覀儫o(wú)法使用其Library。然而,某
    些不那么遵從自由軟件原則的GNU/Linux商業(yè)發(fā)行商將KDE添加到了他們的系統(tǒng)中—
    —結(jié)果得到了一個(gè)功能增強(qiáng)但自由減少的系統(tǒng)。KDE開發(fā)小組正積極地鼓勵(lì)更多的程
    序員使用Qt,而數(shù)以百萬(wàn)計(jì)的新“Linux用戶”從未有機(jī)會(huì)得到提醒,從而認(rèn)識(shí)這樣
    做是有問題的。情況相當(dāng)嚴(yán)峻。
       自由軟件社團(tuán)以兩種解決方法作出了反應(yīng):GNOME與Harmony。
       GNOME,即“GNU網(wǎng)絡(luò)化對(duì)象模式環(huán)境”,是GNU的桌面環(huán)境項(xiàng)目,在1997年由
    Mignel de Icaza發(fā)起,在Red Hat(紅帽子軟件公司)的支持下開展。GNOME的目
    標(biāo)是用完全的自由軟件實(shí)現(xiàn)與KDE相近的功能。它也有技術(shù)上的優(yōu)勢(shì),例如支持一
    組不同的語(yǔ)言,而不僅僅是C++。但它的主要目的在于自由:不再需要使用任何非
    自由軟件。Harmony是一個(gè)與KDE兼容的Library,使得不用Qt就運(yùn)行KDE軟件成為
    可能。
       在1998年11月,Qt的開發(fā)者宣布更改許可證協(xié)議,一旦實(shí)施,將使Qt成為自由
    軟件。雖然無(wú)法肯定,但我認(rèn)為這部分上是由于整個(gè)社團(tuán)對(duì)Qt作為非自由軟件而顯
    示的強(qiáng)烈不滿的態(tài)度使之作出了這個(gè)決定。(新的許可證不方便也不公正,因此將
    來避免使用Qt還是可取的。)
       我們將如何應(yīng)對(duì)下一個(gè)誘人的非自由Library呢?整個(gè)自由軟件社團(tuán)都能理解
    不受誘惑而掉進(jìn)陷阱的需要嗎?或者我們中的許多人會(huì)因放棄自由、追求方便而產(chǎn)
    生一個(gè)重大問題嗎?我們的前途取決于我們的哲學(xué)。

    軟件專利

       我們面臨最嚴(yán)重的危脅來自軟件專利,它可以在長(zhǎng)達(dá)二十年之久的時(shí)間內(nèi)禁止
    算法和特性為自由軟件所用。LZW壓縮算法的專利是1983年申請(qǐng)的,因此我們?nèi)耘f
    無(wú)法發(fā)行自由軟件以產(chǎn)生正確壓縮的GIF文件。1998年,一個(gè)生成MP3壓縮聲音文件
    的自由程序迫于起訴的威脅而撤消了發(fā)行。
       對(duì)付專利也有多種辦法:我們可以搜集某項(xiàng)專利無(wú)效的證據(jù),我們也可以尋求
    其它的途徑以完成工作。但這兩種方法都只適用于部分情況。當(dāng)兩者都失敗時(shí),一
    個(gè)專利也許會(huì)迫使所有自由軟件都缺乏用戶希望的一些特性。這種情況一旦發(fā)生,
    我們應(yīng)該如何處理?
       我們當(dāng)中為自由的緣故而珍視自由軟件的人總會(huì)堅(jiān)持與它站在一起。我們會(huì)想
    方設(shè)法完成任務(wù),而不用已申請(qǐng)專利的特性。但那些因?yàn)槠谕杂绍浖屑夹g(shù)優(yōu)勢(shì)
    而重視它的人,則有可能因?yàn)橐豁?xiàng)專利拖它的后腿而認(rèn)為自由軟件是失敗的。因此,
    盡管探討“大教堂"開發(fā)模式的實(shí)用有效性以及自由軟件的可靠性和力量大有裨益,
    我們不應(yīng)僅此而滿足。我們必須談自由,談原則。

    自由文檔

       我們的自由操作系統(tǒng)中最大的不足并不在軟件——而是我們可以包括在系統(tǒng)中
    優(yōu)秀的自由文檔不足。文檔是任何軟件包中基本的組成部分之一;一個(gè)重要的自由
    軟件包沒有相應(yīng)的優(yōu)秀自由文檔,那是一個(gè)大漏洞。今天我們有許多這樣的漏洞。
       自由文檔如同自由軟件,是自由的問題而不是價(jià)格問題。自由文檔的判斷準(zhǔn)則
    很大程度上與自由軟件相同:給予所有的用戶某種自由。再發(fā)行(包括商業(yè)銷售)
    必須被準(zhǔn)許,無(wú)論是聯(lián)機(jī)形式還是印刷品,以便使用手冊(cè)能與每個(gè)自由軟件的拷貝
    相依為伴。
       準(zhǔn)許修改也是很關(guān)鍵的。但是從整體上來說,我并不認(rèn)為準(zhǔn)許人們修改所有的
    文章與書籍是不可或缺的。例如,我就不認(rèn)為,你或者我有必要授權(quán)別人隨意改動(dòng)
    闡述我們的行動(dòng)和觀點(diǎn)的文章,就象這一篇。
       但準(zhǔn)許修改自由軟件文檔是有特殊理由的,當(dāng)人們使用自己的權(quán)利修改軟件,
    并增加或修改其特性時(shí),如果他們盡責(zé),他們也會(huì)修改文檔 -- 從而能夠?yàn)樾薷暮?
    的程序提供精確可用的文檔。如果使用手冊(cè)不允許程序員盡心盡力,善于始善終(
    修改文檔的話),那就不適應(yīng)我們社團(tuán)的需求。
       某些種類的限制修改不會(huì)構(gòu)成任何問題。例如,要求保存原作者的版權(quán)公告、
    發(fā)行條件,或者所有作者的列表等,都是可以的。要求改動(dòng)后的版本作出聲明,以
    表明它們已經(jīng)改動(dòng)也沒有問題,甚至可以要求整個(gè)的章節(jié)不被刪除或者修改也可以
    接受,只要這些章節(jié)圍繞非技術(shù)問題。
       這類限制之所以不構(gòu)成問題,是因?yàn)樗鼈儾环恋K盡責(zé)的程序員修改使用手冊(cè),
    以適應(yīng)修改后的程序。換言之,它們不阻礙自由軟件社團(tuán)最大限度地利用文檔。
       然而,必須能夠修改手冊(cè)的所有“技術(shù)”內(nèi)容,然后通過所有普通的介質(zhì)和所
    有普通的渠道,來發(fā)布修改后的結(jié)果;否則,這些限制就會(huì)阻礙社團(tuán),手冊(cè)就不再
    自由,我們就需要另一份使用手冊(cè)。
       自由軟件的開發(fā)者會(huì)有意識(shí)和決心以制作一整套的自由手冊(cè)嗎?再說一次,我
    們的前途取決于我們的哲學(xué)。

    我們必須談?wù)撟杂?

       今天估計(jì)約有一千萬(wàn)左右的用戶在使用GNU/Linux系統(tǒng),例如Debian GNU/Linux
    與Red Hat Linux。自由軟件已取得了這樣的實(shí)際優(yōu)勢(shì),以致于大量的用戶為了純
    粹實(shí)用的理由蜂擁而至。
       這一情況的良好影響是顯而易見的:具有開發(fā)自由軟件興趣的人更多了,自由
    軟件產(chǎn)業(yè)的顧客也更多了,還有更強(qiáng)的能力以鼓勵(lì)公司來開發(fā)商業(yè)化的自由軟件而
    不是專有的軟件產(chǎn)品。
       但人們對(duì)自由軟件的興趣增長(zhǎng),比對(duì)自由軟件的哲學(xué)基礎(chǔ)的認(rèn)知來得更迅速,
    這會(huì)引起麻煩。我們迎接上述機(jī)遇與挑戰(zhàn)的能力取決于我們堅(jiān)持自由的意志和毅力。
    為了保證我們的社團(tuán)具備這樣的意志和毅力,我們有必要在新用戶加入社團(tuán)的時(shí)候
    將這一觀念貫輸給他們。
       但是我們這樣的嘗試正在失?。何招掠脩艏尤脒@一我們社團(tuán)的努力要遠(yuǎn)大于
    將我們社團(tuán)宗旨傳授給他們的努力。這兩方面的工作都不可偏廢,而且我們需要把
    一碗水端平。

    “開源軟件”(Open Source)

       向新用戶傳授自由的概念在1998年變得更為困難,因?yàn)樯鐖F(tuán)的一部分決定停止
    使用“自由軟件”,而代之以“開源軟件”(open-source software)。
       傾向于這一說法的有些人希望能避免free的歧義性,即避免將“自由”與“免
    費(fèi)”相混淆——這是一個(gè)合理的目標(biāo)。但是,另一些人的目的則是把激勵(lì)自由軟件
    運(yùn)動(dòng)與GNU工程的原則精神擱置一旁,轉(zhuǎn)而去吸引公司經(jīng)理們和商業(yè)用戶們,他們
    中許多人所持的意識(shí)形態(tài)置利潤(rùn)于自由之上、社會(huì)之上、原則之上。因此,“開源
    軟件”的詞義著重于創(chuàng)造強(qiáng)大的、高質(zhì)量軟件的潛力,而回避了自由、社會(huì)和原則
    這些概念。
       “Linux”雜志是這一傾向的明顯代表——它上面充斥著可在GNU/Linux上運(yùn)行
    的專有軟件的廣告。當(dāng)下一個(gè)Motif或Qt出現(xiàn)時(shí),這些雜志是警告程序員們對(duì)它們
    敬而遠(yuǎn)之,還是為它們敲鑼打鼓呢?
       來自公司的支持可以在很多方面為社團(tuán)做出貢獻(xiàn),如果其他條件不變,它是大
    有裨益的。然而,通過少提自由與原則以獲取它們的支持將會(huì)是災(zāi)難性的;它會(huì)使
    在自由軟件外延的影響與對(duì)自由軟件內(nèi)涵的認(rèn)識(shí)之間業(yè)已存在的不平衡進(jìn)一步惡化。
       “自由軟件”與“開源軟件”多多少少描述了軟件的同一范疇,但強(qiáng)調(diào)了軟件
    的不同側(cè)面和價(jià)值觀。GNU工程將繼續(xù)使用“自由軟件”這一名詞,以表示自由、
    而不僅僅是技術(shù),才是重要的。

    嘗試!

       Yoda的哲學(xué)(沒有“嘗試”可言)聽起來不無(wú)道理,但它不適用于我。當(dāng)我憂
    郁自己是否有能力完成工作、而且我不能肯定我所做的一切是否能夠達(dá)到預(yù)期的目
    標(biāo)時(shí),我已經(jīng)完成了絕大部分工作。但無(wú)論如何,我仍舊嘗試了,因?yàn)槌宋乙酝猓?
    沒有其他人站在敵人和我的城市之間。讓我自己吃驚的是,有時(shí)我成功了。
       有時(shí)我會(huì)失敗,我的一些城市會(huì)陷落。接著我發(fā)現(xiàn)另一座城市正面臨威脅,我
    得隨之做好投入下一場(chǎng)戰(zhàn)斗的準(zhǔn)備。隨著時(shí)光流逝,我學(xué)會(huì)了探察威脅,并將自己
    置身于它們和我的城市之間,并呼吁其他黑客來與我并肩戰(zhàn)斗。
       時(shí)至今日,我常常不是唯一的戰(zhàn)士??匆姵扇航Y(jié)隊(duì)的黑客掘土加固戰(zhàn)壕,我既
    感到寬慰,也感到快樂,我明白城市會(huì)繼續(xù)矗立在這里——至少現(xiàn)在如此。但失陷
    的危險(xiǎn)與歲俱增?,F(xiàn)在微軟已明確地表示將我們的社團(tuán)列為打擊目標(biāo)。我們不能奢
    望未來的自由會(huì)從天上掉下來。天上是不會(huì)掉餡餅的!如果你希望維護(hù)你的自由,
    那么你必須做好準(zhǔn)備捍衛(wèi)它。
    相關(guān)文章
    本頁(yè)查看次數(shù):