GNU宣言
From Cnic
本文版權為 Free Software Foundation, Inc. 所有, Copyright (C) 1985, 1993
目錄 |
Headline text
任何人在拿到這份文件的同時便已授予他通過任何媒體,不加更改的複製與傳播本文的副本的權利,前題是本版權宣告與授權聲明必須保留不動,而且散播者必須授予接受者如同本聲明一樣再次傳播的權利。
本文不許更改。
“GNU 宣言”一文乃是由 Richard Stallman 在 GNU 計劃剛開始進行時所撰寫,以爭取其它人的加入及支持。在剛開始的幾年,隨著計劃的發展,本文有些許的修訂,但是現在看來最好保持目前最多人所看過的版本而不再做修訂。
從那時起,我們慢慢熟悉不同的用字可以避免某些特定的誤解。在1993年所增加的註解可以澄清這些疑點。
想獲知 GNU 軟體的最新動態,請參考最新版的 GNU's Bulletin。這份列表因為太長,所以不在此引用。
什麼是GNU? Gnu's Not Unix!
(jpeg 8k) (jpeg 21k) 因專利權問題而沒有gif圖
GNU,Gnu's Not Unix 的縮寫,是我正在寫的一個與 UNIX 相容的軟體系統,目的在於我能夠自由的把此系統給想要用它的人。(1) 有一些自願者在給予我幫助。我們非常的需要(希望)您也能夠貢獻時間、金錢、程式或者是設備來參加此計劃。
到目前為止我們已經有了一個利用 Lisp 編寫的Emacs文本編輯器,一個原碼級的調試器,一個與 yacc 相容的語法分析器,一個連接器,和大概 35 個應用程式。有一個 shell (命令解釋器)已經接近完成。一個新的、具可移植性的、有優化功能的C編譯器已經可以自我編譯,並應可以在今年發佈。還有一個初具規模的內核但是需要更多的特性以模擬 UNIX。當內核和編譯器工作完成後,我們就能夠發佈一個適合軟體開發的 GNU 系統。我們會使用 TeX 作我們的文本編輯器,但是也正在編寫一個 nroff。我們也會用免費的、具可移植性的 X 視窗系統。之後我們會加一個可移植的 Common Lisp、一個 Empire 游戲、一個電子錶格軟體、和其他各式各樣的東西,以及線上的文檔。我們希望最後能提供普通 UNIX 系統所能提供的每一件有用的東西,甚至還要更多。
GNU 將能夠執行 Unix 的程式,但是不會和 Unix 完全一樣。我們會根據我們在其它操作系統上的經驗來改進所有可以增加便利性的地方。特別是我們計劃擁有支持更長文件名、文件版本號、一個不怕死機的文件系統,或許還要有自動文件名補全、與終端機無關的顯示支持、可能最後還要有一個基於Lisp的視窗系統,以使好幾個 Lisp 程式和普通的 Unix 程式能共用同一屏幕。C 和 Lisp 都將成為系統的程式語言。我們會設法支持 UUCP,MIT Chaosnet,及 Internet 的通訊協議。
GNU 最初的目標是在有虛擬記憶體的 68000/16000 系列機器上開發,因為這樣的環境是最容易開發程式來實現 GNU 的運行。剩下來讓 GNU 能在其它較小的機器上運行的工作,將會留給那些希望能在這些機器上使用的人。
為了避免令人不悅的混淆,請各位提到此計劃的名字‘GNU’時務必要把‘G’的音發出來。
我為什麼一定要寫GNU
我認為:如果我喜歡一個程式的話,那我就應該分享給其他喜歡這個程式的人。這句話是我的金科玉律。軟體商想各個擊破用戶,使他們同意不把軟體和他人分享。我拒絕以這種方式破壞用戶的團結。我的良心使我不會簽下一個不開放的合約或是軟體授權合約。有好幾年我一直在 MIT AI 實驗室對抗這種趨勢與冷漠,但是最後事情糟糕到:我沒辦法在一個處理事情的方法與我的意願相違的機構呆下去。
為了我能繼續使用電腦而不感到羞愧,我決定要收集足夠數量的自由軟體以使我能夠不使用那些沒有自由的軟體。我離開 AI 實驗室為的就是不給 MIT 有任何法律上的藉口來阻止我把 GNU 送給其他人。
為什麼GNU將會和UNIX相容
Unix並不是我理想的系統,但是它也不太差。Unix 基本的特性看來似乎是挺不錯的,而且我想我能夠在不犧牲原有特性之下加進 Unix 缺少的東西。況且一個和 Unix 相容的系統也比較容易讓較多的人接受。
如何獲取GNU
GNU不是公共的,毫無約束的軟體(public domain)。我們將會允許每一個人修改及傳播 GNU,但是絕不允許傳播者對他傳播的程式再加進其他的限制。也就是說,不允許將修改後的程式據為己有。我希望能確保 GNU 所有的版本都能保持自由。
為什麼有很多程式員願意幫忙
我
怎樣作出自己的貢獻
我請電腦製造商捐獻機器及金錢。我呼籲個人貢獻程式與精力。
如果你貢獻機器的話,你可以期待的一個結果就是 GNU 可以早些在你提供的機器上面運行。機器必須是完整的、馬上可用的系統,可以在住宅區內使用,而且不需要複雜的冷卻及電力系統。
我發現有很多的程式員渴望為 GNU 貢獻閑暇的精力。對大部分工程而言,象這樣業餘的、分散的工作非常難以協調;大家獨立寫的各部份可能無法合在一起工作。但是就這個特定的取代 Unix 的任務來說就沒有這個問題。一個完整的 Unix 系統包括了上百個工具程式,每一個程式都分別有各自的文檔。大部分的介面規格都因 Unix相容性的緣故而是固定的。如每一個貢獻者能夠寫一個某個 Unix 工具的相容替代品,讓它在 Unix 下能正確的取代原來程式的工作,那麼這些工具集合在一起時便能正常工作。即使允許 Murphy 再製造一些出乎意料的問題,把這些部份組合起來仍然是件可行的工作。(系統內核的工作就需要較密切的溝通,且只有一群緊密的小組能夠參加)
如果有人貢獻金錢,那麼我就能夠雇佣幾個全職或臨時的人。以程式員的標準來說,這薪水不是很高,但是我要找的是那些認為建立社群精神和賺錢同樣重要的人。我認為使參加者節制物欲,是使他們能夠全心全力投入 GNU 工作的一種方法。
為什麼所有的電腦用戶都會受益
只要 GNU 完成,每個人都能夠自由的取得優良的系統軟體,就像空氣一樣。(2) ?
這不只是僅僅省下大家一筆 Unix 的版權費而已。這更意味著大家可以避免白白浪費掉重覆設計系統的工作。這省下來的力氣可以轉而投入提高現有科技水準。
每一個人都能取得完整的程式源碼。因此,需要更改系統的用戶總是能自由的自行修改,或雇用任何能夠勝任的程式員或公司來替他做這件事。用戶不再需要看某一個擁有源碼的程式員或公司的臉色,且在修改程式這件事上,他處於獨立不受影響的地位。
學校將能夠通過鼓勵所有的學生學習與改進程式源碼的方式提供更富教育性的環境。哈佛的電腦實驗室曾經有這樣一個政策:不允許一個不能公開展示原碼的程式安裝到系統里,而且拒絕安裝某些程式以顯示貫徹的決心。我從這件事得到不少啟發。
最後,誰該擁有這個系統軟體的顧慮及誰被允許或不允許運用這軟體做什麼事的限制都會被解除。
為了讓使用程式者付費,包括授權數量,必須通過累贅的機制來決定用戶需要為哪個程式付出多少錢,這總是會使社會付出大量成本。而且只有警方纔能使每個人都遵守。想象一個必須用很高的成本製造空氣的太空站:對每呼吸一升空氣收費可能很公平,但是成天帶著空氣記錄器的口罩是無法忍受的,即使每個人都有能力付空氣費。而且到處都是監視器監視你是否為了逃避計費而拿掉呼吸罩,是很令人惱火的。倒不如拿開呼吸罩改收人頭稅以建設空氣製造廠。
拷貝全部或部份的程式對一個程式員而言是和呼吸一樣自然而有益的事。拷貝軟體就應該這麼自由。
就GNU的理想而言,一些容易澄清的反對意見
“如果它是免費的話就沒有人會用它,因為這表示他們沒有任何技術支持。” “你必須對程式收費,用來支付提供支持所需的費用。”
如果有人寧願花錢購買有售後服務的 GNU 而非免費得到沒有服務的 GNU ,一家專門為那些免費拿到 GNU 的人提供服務的公司應該會很賺錢。(3)
我們必須辨別真正的編程和僅做售後服務在支持方式上的不同。前者是軟體公司所不能依靠的。如果沒有足夠多的人和你有相同的問題,軟體公司可能會讓你陷入無助之地。
如果你的事業需要倚靠技術支持,唯一的方法就是準備好一切所需的原代碼和工具。然後你可以聘請任何一位可以勝任的人來解決你的問題。你不會任由某人擺佈。就 UNIX 而言,原代碼的價格讓大部分的企業無法考慮這種作法。用 GNU 的話這就很容易了。但是還是有可能出現找不到可以勝任的人的情況,但是這個問題不能歸罪於發佈方式。GNU 並不能解決世界上所有的問題,只是其中的一部份而已。
同時,對電腦一無所知的用戶須要幫助:為他們做一些他們自己能輕易做到,但不知道如何做的事。
這樣的服務可以由專門經營技術支持的公司提供。如果用戶真寧願花錢買一個有售後服務的軟體,他們也將願意為免費得到的軟體買些服務。這些服務公司會在品質和價錢上競爭;用戶將不會受限於特定的公司。同時,我們這些不須要服務的人也能夠自由的使用程式而不須要在服務上花錢。
“沒有廣告的話你就沒辦法讓很多人知道你的東西,而你必須對程式收錢以支付廣告經費。” “為一個可以免費得到的程式做廣告是沒有用的。”
有多種形式免費的或廉價的傳播媒介可以用來讓大量電腦用戶知道像 GNU 之類的東西。可是刊登廣告可以觸及更多PC用戶可能是真的。如果是這樣的話,一個刊登廣告提供拷貝及郵購 GNU 的企業應該可以賺到遠超過其投資的廣告費。在這種機制下,只有從廣告中獲益的用戶才須要為之付費。
另一方面,如果很多人通過朋友拿到 GNU,而上述的企業沒有成功,這就表明 GNU 並不須要藉助廣告來傳播。為什麼自由市場的擁護者不想要讓自由市場決定這件事?(4)
“我的公司需要一個專門的操作系統才能發揮有競爭力。”
GNU 將會把操作系統轉出競爭的領域。你將無法在這方面占有優勢,但同樣的你的對手也無法在這方面勝過你。你和他們會在其他方面競爭,而在這方面互相獲益。如果你的事業就是賣操作系統,你大概不會喜歡 GNU,不過這會很為難你。如果你的事業是在其他方面的話,GNU 可以讓你省下購買操作系統所需要的昂貴經費。
我希望能見到 GNU 的發展受到許多製造商及用戶的支持,以減低雙方的花費。(5)
“難道程式員不應該從他的創造力獲得回報嗎?”
如果有甚麼事值得回報的話,那非貢獻於社會莫數了。創造力可以是一種對社會的貢獻,但是必須以社會能夠自由使用其成果為前提。如果程式員因寫出有創意的程式就應得到報酬的話,同理如果他們對這些程式的使用設限的話,他們也該受到懲罰。
“難道程式員不能為他的創造力要求回報嗎?”
希望工作有所報酬,或是使自己有最大的收入並沒有什麼不對的,只要不要用破壞性的手段。但是在現今軟體領域內常用的手段卻都是以破壞為基礎的。
限制一個程式的使用,以從用戶身上獲取金錢是具有破壞性的,因為那些限制減少了程式的應用範圍。這減少了人類能由此程式所得到的財富。如果可以任意的設限,其惡果就是任意的破壞。
一個好公民不會用這麼有破壞性的手段來致富的原因是,如果大家都這樣做的話,我們會因為彼此的互相攻擊而變的更窮。這是不變的真理,或者說是金科玉律。因為我不願見到每個人都藏私的後果,所以我認為這樣做是不對的。特別是,想要由創造力獲得回饋的欲望,並不能作為剝奪世界的整個或部份創造力的 正當理由。
“難道程式設計師不會因此而挨餓嗎?”
我可以回答說,沒有人被強迫當程式員啊!我們一般人沒辦法靠站在街上扮鬼臉賺錢。但是我們也並不能因此而譴責選擇一輩子站在街上扮鬼臉,然後挨餓。我們能做其他的事。
可是這種回答是錯誤的,因為它認同問題本身隱含的假設:如果程式員沒有軟體的所有權的話,沒有人會付程式員一分錢。大家都這麼認為:完全是或完全不是。
讓程式員不會挨餓的真正原因是他們仍然可以靠設計程式賺錢。只是沒有像現在那麼多罷了。
限制軟體的拷貝並不是做軟體生意的基本條件。這常被視為基本條件的原因是因為這樣賺的錢最多。如果這種方法被禁止,或者被客戶拒絕的話,軟體事業就會用其他現在用的比較少的方法。世上永遠有多種方法來組織任何一種事業。
在此新的環境中,程式設計可能不再像現在有這麼高的利潤。但是這不是用來反對這種改變的理由。沒有人認為銷售人員目前的薪水是不公平的,如果程式員賺一樣多錢,那也不是一件不公平的事。(事實上,程式員仍然可以賺比這樣多得多的錢。)
“難道人沒有權力控制自己的創造力該如何運用嗎?”
“控制自己思想的運用”實際上包含了控制他人的生活;而且通常會使得他人的日子更難過。
像律師等仔細研究過知識產權問題的人認為,實際上知識產權並非固有的(天生的)權力。政府所認同的那種知識產權是為了特定的目的而通過特別的立法程式創造出來的。
例如, 專利制度是為了鼓勵發明者公開他們的發明的詳細內容而設的。他的目的是為了幫助整個社會,而不是發明者。在那時候 17 年的專利有效期相對於科技的進步是相當短的。因為專利權只是製造商之間的問題,而且對他們而言,簽一個專利合約的負擔,和組織生產比較起來可以說很小,所以專利權對他們而言通常不會有什麼傷害。他們沒有妨礙到使用專利產品的個人。
古時候並沒有知識產權的概念,那時在非文學的領域,作者常常大量引用他人的作品。這種做法是非常有用的,而且這也是很多作者的作品能夠部份被保留下來的唯一途徑。知識產權系統原是設立來鼓勵創作的。在原先產生知識產權的領域(書籍)內,在只有出版公司才能很經濟的大量複製的情況下,它並沒有什麼害處,並且沒有妨礙到大部份的讀者。
所有的知識產權只不過是社會所給予的權利,因為不管這個想法是否正確,一般認為給予這個權利可以對這整個社會有所幫助。但是在每一種個別狀況下,我們必須思考:我們給予這些權利後真的變的更好了嗎?我們到底給予了了什麼許可權?
以現在程式軟體的情況而言,與一百年前的書籍的情況迥然不同。拷貝一個程式最簡單的方法就是向鄰近的人索取;一個程式有本質互異的原代碼與目標代碼;以及一個程式是拿來用的,而不是用來閱讀與娛樂,這些事實結合在一起形成了一個特殊的情況:那就是一個人如果強行實施知識產權的話,就會對整個社會在物質上和精神上造成傷害。所以一個人不應該這樣做,不管法律是否允許。
“競爭可以促進進步”
競爭的典型例子是賽跑:通過給予勝利者獎品,我們鼓勵大家跑快一點。資本主義就是這樣運作的,而且這種機製做的不錯;但是他的支持者卻犯了一個錯誤,就是假設這種機制永遠是可行的。假設競跑者忘了授予獎品的功用,而只求勝利的話,無論如何,他們可能會使用其他的手段——如,攻擊其他的參賽者。如果賽跑變成了一場拳賽的話,那大家都會花更多的時間才會到達終點。
在道德上,軟體的私有和不公開就相當於拳賽中的賽跑者。我很難過的說,目前發現的唯一調停者好像並不反對打架;他僅僅節制他們而已(“你每跑十碼,就可以開一搶”)他真的應該把他們分開,然後懲罰那些甚至是意圖打架的參賽者。
“會不會因為沒有金錢上的觸動而讓大家都停止寫程式了呢?”
實際上,有很多的人即使沒有任何的酬勞也願意寫程式。寫程式對某些人而言有著難以抗拒的吸引力,通常是那群很精通寫程式人。就如同從來不缺乏堅持這種原則的專業級音樂家,即使這樣做幾乎不可能維持他們的生計。
但是雖然這個問題常常被問到,實際上卻並不會發生。付費給程式員的狀況不可能會消失,只是會變少而已。所以正確的問題應該是,有人願意為一個較少的酬勞寫程式嗎?我的經驗告訴我真的有人願意。
有十多年的時間,很多世界級的頂尖程式設計者在 MIT 的人工智慧實驗室工作,所獲得的報酬卻遠低於在別處所能得到的。他們得到了很多非金錢上的回抱,例如:名譽和賞識。而且創造也很有趣,樂趣本身就是一種報酬。
然而,當出現了一個既有樂趣,又能賺大錢的工作機會時,大部份的人就離去了。
這個事實顯示了人還是會為了財富以外的東西寫程式;但是如果有個賺大錢的機會,那他們就會期待、去爭取它。工資低的組織的競爭力一定比工資高的組織差,但是如果禁止高薪政策的話那就不一定會差。
“我們非常迫切的需要程式員。如果他們要我們停止幫助鄰近的夥伴的話,我們必須遵從”
你永遠不會迫切到必須遵從這種要求的地步。記住一句話:寧願花百防禦,不花一分進貢。millions for defense, but not a cent for tribute!) ?
“程式設計師也要設法維持生計啊!”
短期而言,這是對的。無論如何,程式員還有很多不需要販賣軟體使用權也可以維持生計的方法。販賣軟體使用權是目前普遍的方法是因為它幫程式員和商人賺最多的錢,而不是因為他是維持生計的唯一方法。如果你願意找其他方法的話也很容易。這裡就有幾個例子:
一個製造新電腦的廠商,要支付移植操作系統到新機器的錢。
教學、軟體維護等服務也需要程式員。
有新點子的人,可以把他們的程式以自由軟體的形式發佈,然後要求滿意的用戶捐獻,或者是提供支持服務等。我已遇過用這種方法闖出一片天地的人了。
有相同需求的用戶可以形成用戶組,然後繳會費。一個團體可以和程式設計公司簽合約,寫一些該組織成員有興趣使用的軟體。 ?
各種的開發可以由軟體稅基金支持:
假設每個買電腦的人都要加付售價的 x% 作為軟體稅。然後政府把這筆錢交給一個類似 NSF 的組織來負責軟體的開發。
但是如果電腦購買者對軟體的發展有所貢獻的話,那他可以減稅。他可 以自己選擇要捐贈哪個項目—通常選那些他最希望能夠做到的計項目。減 稅可以依貢獻程度減到抵消掉全部的稅為止。
而軟體稅率可依總納稅額決定,其比重可以由納稅人投票決定。
這樣的結果是:
電腦的用戶團體支持軟體的開發。
此團體決定該需要什麼樣程度的支持。
那些關心自己需求的項目的用戶可以參加該項目的進行。
長遠來看,免費提供軟體是邁向大同世界的一步,在那個世界里沒有人需要為了生計而辛勤工作。在每星期花固定的十小時做些必要的工作,如立法、家庭會議、修理機器人和探索小行星後,大家會有時間從事些有趣的活動,例如寫程式。那時候就不須要靠寫程式來過活了。
我們(利用現有的科技)已經大量減少了達到目前生產力所需要的工作量,但是只有其中的一部份轉化成工作者的閑暇,因為要達到有生產力的活動往往伴隨著很多沒有生產力的活動。主要的原因是官僚式的繁文褥節對競爭的糾葛。自由軟體的觀念在軟體的生產上可以大大的減少這些羈絆。為了使科技對生產力的增益能實質上減少我們的工作量,我們必須這麼做。
註釋
- 這裡的用字太粗心大意。本意是說,沒有人必須為“可以”使用 GNU 系統而付費。但這裡所用的文字卻沒有將這點說明清楚,所以一般被解釋成 GNU 軟體的傳播只能索取很少費用或甚至是免費的,這並非本意;在本文稍後有提到出現以軟體發佈服務賺錢的公司的可能性。後來我就知道必須小心的區分“free”這個字當“自由”跟“免費”時的使用。“Free Software”是指用戶可以自由散播及更改的軟體。有些用戶也許是免費拿到他們的軟體,也有些是付費的——如果這些款項是用來支付軟體的改進就更好了。重要的是,任何擁有軟體的人有與其它人合作使用它的自由。
- 這又是另一個我沒能仔細區分“free”這個字兩種不同意思的地方。這段敘述本身所代表的意思是沒有錯的——你可以通過你的朋友或從網路上,免費取得GNU 的軟體。但它的確產生了誤導。
- 幾家像這樣的公司已經存在。
- 雖然 Free Software Fundation 本身是慈善團體而非公司,但基金會靠提供服務來籌募經費。如果“沒有人”選擇由 FSF 訂購軟體,則基金會就無法運作。但這也不是強制每位用戶付費。如果有一小部份的用戶向 FSF 訂購,則足夠使基金會免於財務的困境。所以我們希望用戶以這種方式來支持我們。你做了你的工作了嗎?
- 一些電腦公司最近集資贊助 GNU C Compiler 的後續開發。



