精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久
注冊(cè)
|
提交需求
|
訂閱
|
English
首 頁(yè)
解決方案
產(chǎn) 品
服 務(wù)
支 持
EDN系統(tǒng)
成功案例
關(guān)于我們
聯(lián)系我們
樹結(jié)構(gòu)圖
EDN系統(tǒng)
圖形圖像
網(wǎng)絡(luò)安全
項(xiàng)目專題
WEB開發(fā)
辦公系列
操作系統(tǒng)
數(shù)據(jù)庫(kù)
程序設(shè)計(jì)
TOP 10
在Foxmail中如何使…
Ftp 子命令
BigDecimal
MSN在線客服功能模塊使…
會(huì)員卡使用方法說明
DataInputStr…
留言板功能說明
CScript
BufferedInpu…
設(shè)置打印機(jī)
您現(xiàn)在的位置:
>
技術(shù)沙龍
>
操作系統(tǒng)
>
Linux
>
GNU操作系統(tǒng)與自由軟件運(yùn)動(dòng)
相關(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)文章
前一則:
初學(xué)者安裝RPM包快速應(yīng)急手冊(cè)
后一則:
Linux核心安裝
本頁(yè)查看次數(shù):
公司公告
|
客戶調(diào)查
|
法律聲明
|
誠(chéng)聘英才
|
給我們投稿
|
繁
閃
頭像
京ICP備05031245號(hào)
Copyright @ REDCOME.com ALL Rights Reserved
北京怡康軟件科技有限公司 地址:北京市昌平區(qū)東小口立湯路188號(hào)北方明珠大廈1號(hào)樓2708 郵編:102218 電話:84909966 傳真:84909900 QQ:335601661