GNU宣言
GNU宣言(如下所示)由理查·史托曼於1985年撰寫,旨在請求支持開發GNU作業系統。部分文字取自1983年的原始公告。在1987年之前,它進行了微小的更新以說明進展;從那時起,最好保持不變。
自那時以來,我們了解了一些常見的誤解,不同的措辭可以幫助避免這些誤解。自1993年以來添加的腳註有助於闡明這些要點。
如果您想安裝GNU/Linux系統,我們建議您使用100%自由軟體的GNU/Linux發行版之一。有關如何貢獻,請參閱gnu.org/help。
GNU計畫是自由軟體運動的一部分,這是一場為軟體使用者爭取自由的運動。將GNU與「開放原始碼」一詞聯繫起來是錯誤的——這個詞是1998年由那些不同意自由軟體運動的道德價值觀的人創造的。他們用它來推廣對同一領域的非道德取向。
什麼是GNU?GNU's Not Unix!
GNU,代表GNU's Not Unix,是我正在編寫的完整Unix相容軟體系統的名稱,以便我可以免費贈送給每個可以使用它的人[1]。還有幾位志願者在幫助我。非常需要時間、金錢、程式和設備的貢獻。
到目前為止,我們有一個Emacs文字編輯器,帶有用於編寫編輯器命令的Lisp,一個原始碼級除錯器,一個yacc相容的剖析器產生器,一個連結器,以及大約35個實用程式。一個shell(命令直譯器)即將完成。一個新的可移植最佳化C編譯器已經編譯了自身,並可能在今年發布。一個初始核心已經存在,但需要更多功能來模擬Unix。當核心和編譯器完成後,就可以發布一個適用於程式開發的GNU系統。我們將使用TeX作為我們的文字格式化器,但正在開發nroff。我們也將使用免費、可移植的X Window系統。在此之後,我們將添加一個可移植的Common Lisp、一個Empire遊戲、一個試算表和數百種其他東西,以及線上文件。我們希望最終提供通常隨Unix系統附帶的所有有用東西,以及更多。
GNU將能夠運行Unix程式,但不會與Unix完全相同。我們將根據我們在其他作業系統上的經驗,進行所有方便的改進。特別是,我們計劃擁有更長的檔案名稱、檔案版本號、一個防崩潰的檔案系統、可能還有檔案名稱完成、獨立於終端的顯示支持,以及最終可能通過一個基於Lisp的視窗系統,讓幾個Lisp程式和普通的Unix程式可以共享一個螢幕。C和Lisp都將作為系統程式設計語言提供。我們將嘗試支持UUCP、MIT Chaosnet和Internet協定進行通信。
GNU最初的目標是配備虛擬記憶體的68000/16000等級的機器,因為它們是最容易讓它運行的機器。讓它在較小機器上運行的額外努力將留給想要在這些機器上使用它的人。
為了避免可怕的混淆,當「GNU」是這個計畫的名稱時,請發出「g」的音。
我為什麼必須編寫GNU
我認為黃金法則要求,如果我喜歡一個程式,我必須與其他喜歡它的人分享。軟體賣家想要分裂使用者並征服他們,讓每個使用者都同意不與他人分享。我拒絕以這種方式破壞與其他使用者的團結。我不能昧著良心簽署保密協議或軟體授權協議。多年來,我在人工智慧實驗室工作,以抵制這種趨勢和其他不友善的行為,但最終它們走得太遠了:我無法留在一個為我做出這些違背我意願的事情的機構中。
為了讓我能夠繼續使用電腦而不感到羞恥,我決定組裝一個足夠多的自由軟體主體,以便我能夠在沒有任何非自由軟體的情況下生活。我已從人工智慧實驗室辭職,以拒絕麻省理工學院任何阻止我贈送GNU的法律藉口[2]。
為什麼GNU將與Unix相容
Unix不是我理想的系統,但它還不算太糟。Unix的基本功能似乎是不錯的,我認為我可以填補Unix的不足之處,而不會破壞它們。並且與Unix相容的系統對於許多其他人來說都很方便採用。
GNU將如何提供
GNU不是公共領域軟體。每個人都將被允許修改和重新發布GNU,但不允許任何發行商限制其進一步的重新發布。也就是說,不允許專有修改。我想確保所有版本的GNU都保持自由。
為什麼許多其他程式設計師想要幫助
我發現許多其他程式設計師對GNU感到興奮並想要提供幫助。
許多程式設計師對系統軟體的商業化感到不滿。它可能使他們賺更多的錢,但它要求他們感到與一般的其他程式設計師處於衝突之中,而不是感到像同志一樣。程式設計師之間友誼的基本行為是程式的分享;現在通常使用的行銷安排基本上禁止程式設計師將他人視為朋友。軟體的購買者必須在友誼和遵守法律之間做出選擇。自然地,許多人認為友誼更重要。但是那些相信法律的人通常對這兩種選擇都感到不安。他們變得憤世嫉俗,認為程式設計只是一種賺錢的方式。
通過致力於和使用GNU而不是專有程式,我們可以對每個人都友善並遵守法律。此外,GNU作為一個榜樣來激勵和一個旗幟來號召其他人加入我們分享。這可以給我們一種和諧的感覺,如果我們使用非自由軟體,這是無法實現的。對於我交談過的大約一半的程式設計師來說,這是一種金錢無法替代的重要幸福。
您如何貢獻
我正在向電腦製造商請求捐贈機器和金錢。我正在向個人請求捐贈程式和工作。
如果您捐贈機器,您可以預期的一個結果是GNU將在早期在這些機器上運行。這些機器應該是完整的、可以使用的系統,經批准可在住宅區使用,並且不需要複雜的冷卻或電源。
我發現很多程式設計師渴望為GNU貢獻兼職工作。對於大多數專案,這種兼職分散式工作將很難協調;獨立編寫的部分將無法協同工作。但是對於替換Unix的特定任務,這個問題是不存在的。一個完整的Unix系統包含數百個實用程式,每個實用程式都有單獨的文件記錄。大多數介面規範都由Unix相容性確定。如果每個貢獻者都可以為單個Unix實用程式編寫一個相容的替代品,並使其在Unix系統上代替原始實用程式正常工作,那麼這些實用程式放在一起時將正常工作。即使考慮到墨菲定律會造成一些意外問題,組裝這些組件也是一項可行的任務。(核心將需要更密切的溝通,並將由一個小型、緊密的團隊進行開發。)
如果我獲得金錢捐款,我或許可以聘請一些全職或兼職人員。按照程式設計師的標準,薪水不會很高,但我正在尋找那些將建立社群精神與賺錢同等重要的人。我認為這是使敬業的人能夠將全部精力投入到GNU工作上的一種方式,從而使他們不必以其他方式謀生。
為什麼所有電腦使用者都將受益
一旦GNU編寫完成,每個人都將能夠免費獲得良好的系統軟體,就像空氣一樣[3]。
這意味著遠遠超過僅僅為每個人節省Unix授權的價格。這意味著可以避免系統程式設計工作中的大量浪費性重複。這種努力可以轉而用於推進技術水平。
完整的系統原始碼將提供給每個人。因此,需要更改系統的使用者將始終可以自由地自己進行更改,或者聘請任何可用的程式設計師或公司為他進行更改。使用者將不再受制於擁有原始碼並處於獨家地位進行更改的程式設計師或公司。
學校將能夠通過鼓勵所有學生學習和改進系統程式碼來提供更具教育意義的環境。哈佛大學的電腦實驗室曾經有一項政策,即如果程式的原始碼沒有公開展示,則不得將其安裝在系統上,並且通過實際拒絕安裝某些程式來維護該政策。我深受這項政策的啟發。
最後,考慮誰擁有系統軟體以及一個人有權或無權對其做什麼的額外負擔將被解除。
讓人們付費使用程式的安排,包括副本授權,總是會通過必要的繁瑣機制來計算一個人必須支付多少費用(即哪些程式)而給社會帶來巨大的成本。只有警察國家才能強迫每個人都遵守它們。考慮一個太空站,在那裡必須以巨大的成本製造空氣:按每升空氣向每個呼吸者收費可能是公平的,但即使每個人都負擔得起空氣費用,整天整夜都戴著計量氣罩也是難以忍受的。到處都是監視器,看看你是否摘下口罩是令人髮指的。最好用人頭稅來支持空氣工廠,然後扔掉口罩。
複製程式的全部或部分對於程式設計師來說就像呼吸一樣自然,並且同樣富有成效。它應該是自由的。
一些容易駁斥的對GNU目標的異議
- 「如果它是免費的,就沒有人會使用它,因為這意味著他們無法依靠任何支持。」
- 「你必須為程式收費才能支付提供支持的費用。」
-
如果人們寧願為GNU加服務付費,也不願免費獲得沒有服務的GNU,那麼一家僅向免費獲得GNU的人提供服務的公司應該是有利可圖的[4]。
我們必須區分真實程式設計工作的形式的支持和僅僅是手把手指導。前者是人們無法從軟體供應商那裡獲得的東西。如果你的問題沒有被足夠多的人分享,供應商會告訴你滾開。
如果您的企業需要能夠依靠支持,唯一的辦法是擁有所有必要的原始碼和工具。然後你可以聘請任何可用的人來解決你的問題;你不會受制於任何人。對於Unix,原始碼的價格使大多數企業都無法考慮這一點。有了GNU,這將很容易。仍然有可能沒有可用的合格人員,但是這個問題不能歸咎於發行安排。GNU並沒有消除世界上所有的問題,只消除了一部分。
同時,對電腦一無所知的使用者需要手把手指導:為他們做他們可以輕鬆完成但不知道如何做的事情。
此類服務可以由僅銷售手把手指導和維修服務的公司提供。如果使用者確實寧願花錢並獲得帶有服務的產品,那麼他們也願意在免費獲得產品後購買服務。服務公司將在品質和價格上競爭;使用者將不會被綁定到任何特定的公司。同時,我們這些不需要服務的人應該能夠在不支付服務費用的情況下使用該程式。
- 「沒有廣告,你就無法接觸到很多人,你必須為程式收費才能支持廣告。」
- 「廣告人們可以免費獲得的程式是沒有用的。」
-
有各種形式的免費或非常廉價的宣傳可以用來告知大量電腦使用者關於GNU之類的東西。但是,通過廣告可以接觸到更多的微電腦使用者可能是真的。如果真是這樣,一家以收費方式廣告複製和郵寄GNU服務的企業應該足以成功地支付其廣告費用以及更多費用。這樣,只有從廣告中受益的使用者才為廣告付費。
另一方面,如果許多人從他們的朋友那裡獲得GNU,而這些公司沒有成功,這將表明廣告對於傳播GNU並不是真正必要的。為什麼自由市場倡導者不希望讓自由市場決定這一點呢?[5]
- 「我的公司需要一個專有作業系統才能獲得競爭優勢。」
-
GNU將從競爭領域中移除作業系統軟體。您將無法在這個領域獲得優勢,但您的競爭對手也將無法在您身上獲得優勢。您和他們將在其他領域競爭,同時在這個領域互惠互利。如果您的業務是銷售作業系統,您將不喜歡GNU,但這對您來說很難。如果您的業務是其他業務,GNU可以讓您免於被推入昂貴的銷售作業系統業務。
我希望看到GNU的開發得到許多製造商和使用者的禮品支持,從而降低每個人的成本[6]。
- 「難道程式設計師不應該因其創造力而獲得獎勵嗎?」
-
如果說有什麼值得獎勵的,那就是社會貢獻。創造力可以是一種社會貢獻,但前提是社會可以自由使用其成果。如果程式設計師因創建創新的程式而應獲得獎勵,那麼同樣地,如果他們限制這些程式的使用,他們也應受到懲罰。
- 「程式設計師難道不應該能夠要求因其創造力而獲得獎勵嗎?」
-
想要為工作獲得報酬或尋求最大化自己的收入並沒有錯,只要不使用具有破壞性的手段即可。但是,當今軟體領域慣用的手段是基於破壞的。
通過限制使用者對程式的使用來從他們那裡榨取金錢是具有破壞性的,因為這些限制減少了程式可以使用的數量和方式。這減少了人類從該程式中獲得的財富數量。當有意識地選擇限制時,有害的後果是故意的破壞。
一個優秀的公民不使用這種破壞性手段來變得更富有的原因是,如果每個人都這樣做,我們都會因相互破壞而變得更窮。這是康德倫理學;或者,黃金法則。由於我不喜歡如果每個人都囤積資訊所造成的後果,因此我認為一個人這樣做是錯誤的。具體而言,渴望因自己的創造力而獲得獎勵並不能證明剝奪世界大眾全部或部分創造力是合理的。
- 「程式設計師不會餓死嗎?」
-
我可以回答說,沒有人被迫成為程式設計師。我們大多數人都無法通過站在街上做鬼臉來賺到任何錢。但是,因此,我們並沒有因此而被判處一生站在街上做鬼臉和挨餓。我們做其他事情。
但這是一個錯誤的答案,因為它接受了提問者隱含的假設:如果沒有軟體的所有權,程式設計師就不可能獲得一分錢的報酬。據說這是非黑即白的。
程式設計師不會餓死的真正原因是他們仍然有可能因程式設計而獲得報酬;只是沒有現在那麼多。
限制複製並不是軟體業務的唯一基礎。它是最常見的基礎[7],因為它可以帶來最多的錢。如果它被禁止或被客戶拒絕,軟體業務將轉向現在較少使用的其他組織基礎。總是有許多方法來組織任何類型的業務。
在新基礎上,程式設計可能不會像現在這樣有利可圖。但這並不是反對這種改變的理由。銷售員的工資與他們現在的工資相同,這並不被認為是不公正的。如果程式設計師的工資相同,那也不會是不公正的。(實際上,他們的收入仍然會遠遠超過這個數字。)
- 「難道人們沒有權利控制如何使用他們的創造力嗎?」
-
「控制一個人想法的使用」實際上構成了對他人生活的控制;它通常被用來使他們的生活更加困難。
仔細研究過智慧財產權問題[8]的人(例如律師)說,智慧財產權沒有內在的權利。政府承認的所謂智慧財產權是由於特定目的而通過具體立法行為創建的。
例如,專利制度的建立是為了鼓勵發明人公開其發明的細節。其目的是幫助社會,而不是幫助發明人。當時,專利17年的壽命與技術水平的進步速度相比很短。由於專利僅在製造商之間存在問題,對於製造商而言,許可協議的成本和精力與建立生產相比微不足道,因此專利通常不會造成太大損害。它們不會阻礙大多數使用專利產品的個人。
古代不存在著作權的概念,當時作者經常在非小說作品中大量複製其他作者的作品。這種做法很有用,並且是許多作者的作品即使只部分倖存下來的唯一途徑。著作權制度的創建明確是為了鼓勵創作。在其發明領域——書籍,只有通過印刷機才能經濟地複製——它幾乎沒有造成損害,也沒有阻礙大多數閱讀書籍的個人。
所有智慧財產權都只是社會授予的許可證,因為人們認為(無論對錯)社會整體都將從授予這些許可證中受益。但是在任何特定情況下,我們都必須問:授予此類許可證對我們真的更好嗎?我們正在許可一個人做什麼樣的行為?
今天的程式情況與一百年前的書籍情況截然不同。複製程式最簡單的方法是從一個鄰居到另一個鄰居,程式既有原始碼又有目標碼,並且它們是不同的,以及程式是使用而不是閱讀和欣賞的事實,結合起來創造了一種情況,即執行著作權的人在物質和精神上都在損害整個社會;在這種情況下,無論法律是否允許他這樣做,一個人都不應該這樣做。
- 「競爭使事情做得更好。」
-
競爭的範例是一場比賽:通過獎勵獲勝者,我們鼓勵每個人跑得更快。當資本主義真正以這種方式運作時,它做得很好;但是它的捍衛者認為它總是這樣運作是錯誤的。如果跑步者忘記了提供獎勵的原因,而只想贏,無論如何,他們可能會找到其他策略——例如,攻擊其他跑步者。如果跑步者發生肢體衝突,他們都會遲到終點。
專有和秘密軟體在道德上等同於肢體衝突中的跑步者。可悲的是,我們擁有的唯一裁判似乎並不反對打架;他只是規範它們(「每跑十碼,你就可以開一槍」)。他真的應該制止他們,並懲罰試圖打架的跑步者。
- 「如果沒有金錢激勵,難道每個人都會停止程式設計嗎?」
-
實際上,許多人會完全沒有金錢激勵地進行程式設計。程式設計對某些人來說具有不可抗拒的魅力,通常是對此最擅長的人。不乏專業音樂家繼續從事音樂事業,即使他們沒有希望以此為生。
但實際上,這個問題雖然經常被問到,但並不適合這種情況。程式設計師的報酬不會消失,只會減少。因此,正確的問題是,是否有人會在金錢激勵減少的情況下進行程式設計?我的經驗表明,他們會的。
十多年來,世界上許多最優秀的程式設計師在人工智慧實驗室工作,收入遠低於他們在其他任何地方可以獲得的收入。他們獲得了許多非金錢獎勵:例如,名聲和讚賞。而且創造力也很有趣,本身就是一種獎勵。
然後,當他們有機會以更多的錢做同樣有趣的工作時,他們中的大多數人就離開了。
事實表明,人們會因為金錢以外的原因而進行程式設計;但是,如果給予他們賺大錢的機會,他們就會期望並要求它。低薪組織在與高薪組織的競爭中表現不佳,但如果禁止高薪組織,它們就不必表現糟糕。
- 「我們非常需要程式設計師。如果他們要求我們停止幫助我們的鄰居,我們就必須服從。」
-
你永遠不會如此絕望,以至於必須服從這種要求。記住:國防可以花費數百萬美元,但進貢一分錢也不行!
- 「程式設計師需要以某種方式謀生。」
-
從短期來看,這是真的。但是,程式設計師有很多種謀生的方式,而無需出售使用程式的權利。這種方式現在很普遍,因為它可以為程式設計師和商人帶來最多的錢,而不是因為它是謀生的唯一途徑。如果你想找到其他方式,很容易找到。
一家推出新電腦的製造商將為將作業系統移植到新硬體上付費。
銷售教學、手把手指導和維護服務也可以僱用程式設計師。
有新想法的人可以將程式作為免費軟體發布[9],向滿意的使用者請求捐款,或銷售手把手指導服務。我遇到過一些已經成功以這種方式工作的人。
有相關需求的使用者可以組成使用者組,並支付會費。一個小組將與程式設計公司簽訂合同,以編寫該組成員想要使用的程式。
各種開發都可以通過軟體稅來資助
假設每個購買電腦的人都必須支付價格的x百分比作為軟體稅。政府將這筆錢交給像NSF這樣的機構來用於軟體開發。
但是,如果電腦購買者自己向軟體開發捐款,他可以從稅款中獲得抵免。他可以向自己選擇的專案捐款——通常,選擇是因為他希望在完成後使用結果。他可以將任何捐款金額抵免到他必須支付的總稅款。
總稅率可以由納稅人投票決定,投票權重根據他們將被徵收的稅款金額確定。
後果
- 電腦使用社群支持軟體開發。
- 這個社群決定需要什麼程度的支持。
- 關心他們的份額用於哪些專案的使用者可以自己選擇。
從長遠來看,使程式免費是朝著後稀缺世界邁出的一步,在那裡,沒有人需要非常努力地工作才能謀生。人們將可以自由地投入到有趣的活動中,例如程式設計,在每週花費必要的十個小時用於必要的任務(例如立法、家庭諮商、機器人維修和小行星探勘)之後。將不需要能夠通過程式設計謀生。
我們已經大大減少了整個社會為其實際生產力所必須做的工作量,但只有一小部分轉化為工人的休閒時間,因為許多非生產性活動是伴隨生產性活動所必需的。造成這種情況的主要原因是官僚主義和反對競爭的等距鬥爭。自由軟體將大大減少軟體生產領域的這些消耗。我們必須這樣做,才能使生產力的技術進步轉化為我們更少的工作。
腳註
- 這裡的措辭很粗心。本意是沒有人需要為使用GNU系統的許可付費。但是這些詞語沒有明確說明這一點,人們經常將它們解釋為GNU的副本應始終以少量或不收費的方式分發。這從來都不是本意;稍後,宣言提到了公司提供分發服務以獲取利潤的可能性。隨後,我學會了仔細區分自由意義上的「自由」和價格意義上的「免費」。自由軟體是使用者有自由分發和更改的軟體。一些使用者可以免費獲得副本,而另一些使用者付費獲得副本——如果這些資金有助於改進軟體,那就更好了。重要的是,每個擁有副本的人都有自由與他人合作使用它。
- 「贈送」這個表達方式是另一個表明我尚未清楚地區分價格問題和自由問題的跡象。我們現在建議在談論自由軟體時避免使用此表達方式。有關更多說明,請參閱「令人困惑的詞語和短語」。
- 這是另一個我未能仔細區分「自由」的兩種不同含義的地方。現有的陳述並非不真實——你可以從你的朋友或通過網路免費獲得GNU軟體的副本。但它確實暗示了錯誤的想法。
- 現在已經存在幾家這樣的公司。
- 儘管自由軟體基金會是一個慈善機構而不是一家公司,但在過去的10年中,它的大部分資金來自其分發服務。您可以從FSF訂購商品以支持其工作。
- 大約在1991年,一群電腦公司聚集資金來支持GNU C編譯器的維護。
- 我認為我說專有軟體是軟體賺錢的最常見基礎是錯誤的。似乎實際上最常見的商業模式過去和現在都是客製化軟體的開發。這不提供收取租金的可能性,因此企業必須不斷從事實際工作才能繼續獲得收入。客製化軟體業務將在自由軟體世界中繼續存在,或多或少保持不變。因此,我不再期望大多數付費程式設計師在自由軟體世界中的收入會減少。
- 在1980年代,我還沒有意識到談論「智慧財產」的「問題」有多麼令人困惑。這個詞顯然帶有偏見;更微妙的是,它將各種不同的法律歸為一類,這些法律提出了非常不同的問題。如今,我敦促人們完全拒絕「智慧財產權」這個詞,以免它導致其他人認為這些法律構成一個連貫的問題。清晰的方法是分別討論專利、著作權和商標。請參閱進一步解釋這個詞如何傳播混亂和偏見。
- 隨後,我們學會了區分「自由軟體」和「免費軟體」。「免費軟體」一詞是指您可以自由重新發布的軟體,但通常您不能自由地研究和更改原始碼,因此大多數免費軟體都不是自由軟體。有關更多說明,請參閱「令人困惑的詞語和短語」。
(如今,對於要處理的軟體任務,請參閱高優先級專案列表和GNU徵求幫助列表,GNU軟體套件的通用任務列表。有關其他幫助方式,請參閱GNU作業系統幫助指南。)