<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 歷史 軟件分享自從軟件誕生的那一天起就出現了。在計算機工業的早期,廠商認為競爭的優勢在于對硬件的創新,因此并不太認真把軟件當成商業資產看待。這些早期機器用戶許多都是科學家或是技術人員,他們有能力自己修改和擴展隨機附送的軟件。有時用戶不僅將補丁反饋給廠商,而且分發給相似機器的其他用戶。廠商經常允許甚至鼓勵這么做:在他們眼里,無論是哪一種渠道,對軟件的改進都使得機器對其他的潛在消費者更有吸引力。 雖然今天的自由軟件文化在很多方面都和早期相似,但是有兩點重要的不同。首先,當時幾乎沒有硬件的標準—那是一個計算機設計創新的黃金時代,但是繁多的計算機架構也意味著所有的事情都無法同其他的兼通。因此,為一臺機器編寫的軟件一般無法在另一臺上工作。在一種特定的架構或是架構族上程序員需要專門的知識(今天程序員更多的是學習一種編程語言或是語言類型的專門知識,他們對他們的專業知識能移植任何一臺遇到的機器上非常自信)。因為個人的專門知識總是針對一種特定類型的計算機,這些專門知識的積累能讓計算機對他們以及同事變得越來越有趣。這就是為什么廠商對讓特定機器的代碼和知識盡可能廣的得到傳播感興趣的原因。 其次,當時沒有互聯網。雖然當時對分享的法律約束比今天少,但卻有更多的技術約束:也就是說,和說話相比,把數據從一個地方移到另一個地方是笨重不便的。在一些公司和實驗室里員工之間,可以通過一些不錯的小型的局域網共享信息。但當一個人想同不限地點的所有人分享時,問題依然存在。克服這些問題的途徑*有*很多。有時獨立的團體之間會互相聯系,通過郵局寄送磁盤或是磁帶,有時廠商扮演了補丁的中心情報交換所的角色。廠商還會幫助在大學里的早期計算機開發者,那里的氣氛是鼓勵知識傳播的。但是數據傳輸所必須的物理媒體意味著分享總會遇到阻力,和(實際上的或是組織上的)距離成正比的阻力。現在這種廣泛的,幾乎沒有阻力的分享,在那時還是不可能的。 ### 私有軟件和自由軟件的興起 隨著工業的成熟,接連發生了一系列相關的變化。眾多硬件設計中的贏家逐漸清晰起來—有技術優勢的贏家,有行銷優勢的贏家,或是兩者結合的贏家。與此同時,被稱為“高級”語言的編程語言的發展意味著一個用某種語言寫成的程序能夠轉移到(“編譯”)另一種類型的計算機上運行。硬件廠商不會忽視這其中的含義:現在客戶無須再把自己捆綁在一種特定的計算機架構上就可以開展一個大型的軟件工程項目。隨著各類計算機的性能差異日益變小,以及低效率設計的消失,硬件成了廠商為未來利潤率下降的唯一指望。原始的計算能力成了一種可替代的產品,而軟件成為差異化優勢。銷售軟件或至少將它視為硬件銷售不可分割的一部分,看起來是一種不錯的策略。 這意味著廠商必須開始更嚴格地在他們的代碼上強制執行版權。如果用戶之間繼續簡單地分享和修改代碼,他們可能會獨立完成一些改進,現在被供應商當成“附加價值”用來銷售。更糟的是,分享代碼可以落入競爭對手的手里。諷刺的是,這一切都發生在互聯網即將破殼而出之時。就在無障礙的軟件分享在技術是終于成為可能時,計算機行業內發生的變化則使它在經濟上無法受到歡迎,至少計算機公司的觀點是如此。供應商手段強硬,要么拒絕客戶訪問自己機器上的源代碼,要么是通過保密協議使方便的共享成為不可能。 ### 有意識的反抗 雖然無障礙代碼分享的世界正在慢慢凋零,但至少有一名程序員的心中保持著清醒。理查德·斯塔尓曼(Richard Stallman)在70年代和80年代早期一直為麻省理工學院的人工智能實驗室工作,那里是代碼分享黃金時代的黃金圣地。人工智能實驗室有很強的“黑客精神”,[[3](#)]那里的人對分享為系統做出的任何改進有狂熱的愛好。正如斯塔尓曼后來寫到的: > *我們沒有把我們的軟件稱為“自由軟件”,因為那時這個術語還不存在,但它確實是。無論外面的大學或是公司來的人來索要程序,我們都很高興這么做。如果你看到在用的一個少見還有趣的程序,你總可以要求看源代碼,所以你能讀它,修改它,或者用拆取部分寫一個新程序。 * > (來自**[http://www.gnu.org/gnu/thegnuproject.html](http://www.gnu.org/gnu/thegnuproject.html)**) 1980年之后不久工業界發生的變化最終影響到了人工智能實驗室,斯塔尓曼周圍伊甸園式的社區坍塌了。一家創業公司挖走了很多實驗室的程序員去開發一個操作系統,這個系統同實驗室正在開發的非常相似,但使用了獨占許可證。與此同時,人工智能實驗室購買了帶有私有操作系統的新設備。 斯塔尓曼見一葉落而知秋: > *那個時代的現代化計算機,比如VAX或68020都有自己的操作系統,但都不是自由軟件:為了得到一份能運行的拷貝,你甚至得簽署一份保密協議。* > *這就是說使用一臺計算機的第一步是承諾不幫你的鄰居。一個互助的社區是被禁止的。私有軟件的擁有者定下了規矩,“如果你和你的鄰居分享了,你就是強盜。如果你想要改變,來祈求我們做吧。”* 此時,他性格中的怪僻萌動了,他決定反抗這種趨勢。他既不想繼續留在人去樓空的人工智能實驗室,也不想在一家新公司里寫代碼,因為他寫出的代碼會被鎖在保密箱里,最終他從實驗室辭職,隨后創建了GNU項目和自由軟件基金會(FSF)。GNU[[4](#)]的目標是開發一個完全自由和開放的操作系統和配套的應用軟件,它們的用戶永遠不會阻止去破解或是分享它們的修改。本質上他是要重建人工實驗室內被摧毀的那些東西,但是這一次是在全世界的規模上,并且還要避免導致人工實驗室的文化被動搖破裂的那些弱點。 除了新操作系統的工作,斯塔尓曼還設計了一套確保他的代碼無限自由的版權許可證。GNU通用公共許可證(GPL)是法律博弈中的奇招:它聲明允許無限制地復制和修改代碼,同時拷貝和派生產物(即修改版本)必須在原始版本的相同許可證下發布,不得附加限制。實際上,它用版權法去達到一個同傳統版權法相反的目的:取消對軟件分發的限制,它阻止*任何人*,甚至是作者本人對此的限制。對斯塔尓曼來說,這要比簡單地把他的代碼分發到公共領域好得多。因為在公共領域,一份實際的拷貝有可能被包含在一個私有程序中(這樣的事情我們在使用寬松的版權許可證的代碼中聽到很多了)。雖然這種包含不會在任何方面減弱原始代碼的持續可用性,但它意味著斯塔尓曼的努力可能會幫助敵人—私有軟件。GPL為自由軟件提供了一套保護機制,因為它阻止了非自由軟件利用GPL許可證下代碼的優勢。GPL同其他自由軟件許可證關系的詳細討論在[Chapter?9, *許可證,版權和專利*](# "Chapter?9.?許可證,版權和專利")。 在很多程序員的幫助下──其中有些是認同斯塔尓曼的思想體系,有些只是為了能看到自由軟件的代碼──GNU項目開始發布操作系統中最重要組成部分的自由替代品。因為計算機硬件和軟件已經高度的標準化了,使用GNU替代其他的非自由操作系統成為可能,許多人也這么做了。GNU文字編輯器(Emacs)和C編譯器(GCC)特別的成功,它們獲得大量忠實的擁護者,這不是因為其理想主義的基礎,而是因為其技術價值。約在1990年GNU已經生產了一個自由操作系統的大部分,除了內核—實際負責引導計算機、管理內存、磁盤和系統其他資源的部分。 不幸的是,GNU項目選擇的內核設計要比預想的更難實現。隨后的延期使得自由軟件基金會沒能及時地發布一個徹底的自由操作系統。這缺失的部分最終由一個芬蘭的計算機科學系的大學生Linus Torvalds補完,在遍布全世界的志愿者的幫助下他用更加保守的設計完成了一個自由內核。他將其命名為Linux,當把內核同GNU項目的現存軟件組合在一起,結果就是一個完全自由的操作系統誕生了。第一次,你不再需要任何的私有軟件來啟動和使用你的計算機。[[5](#)] 這個操作系統上的很多軟件都不是GNU項目的產物。實際上,GNU不是唯一的開發自由操作系統的團體(例如,當時最終發展為NetBSD和FreeBSD的代碼已經開始編寫)。重要的不僅僅是自由軟件基金會產出的代碼,而且是它們的政治修辭。把自由軟件當成一個目標而并非一種手段討論,讓那些對此并*沒有*政治意識的程序員們很為難。即使那些并不認同自由軟件基金會的程序員也不得不面對這些問題,只要他們處于不同的位置。自由軟件基金會通過在他們的代碼上附帶有關GPL和其他文字的信息,成功地扮演了鼓動家的角色。隨著他們的代碼廣泛地被分發,思想也隨之流傳。 ### 意外的反抗 在自由軟件運動的早期還發生了很多其他事情,其中很少有如斯塔尓曼的GNU項目般清晰的思想體系。其中一個最重要的是*伯克利軟件發行版*(Berkeley Software Distribution,*BSD*)一個Unix操作系統的重新實現—這個項目可以一直追溯到1970年代晚期AT&T公司內由加州大學伯克利分校負責的一個松散的私有研究項目。BSD并沒有什么要程序員們聯合起來并且共同認可的政治信條,他們通過高度分散地開發方式從零開始重寫了Unix命令行工具和代碼庫,最終是操作系統內核本身,這一切的大部分都是由志愿者完成的,用天才和熱情*實踐*了這個信念。BSD項目成了非意識形態的自由軟件開發的主要例子,并且他們為那些在開源世界繼續保持活動的開發者提供了訓練場地。 另一個合作開發的重鎮是*X Window System*,一個由MIT聯合其他有興趣為客戶提供窗口系統的硬件廠商在80年代中期開發的自由的網絡透明的圖形計算環境。和私有軟件恰恰相反,X許可證故意允許在自由核心之上建立私有擴展—每一個成員都需要機會加強默認的X發布,這樣就會獲得了超越其他成員的競爭優勢。X Windows[[6](#)]自身是自由軟件,但其主要目的是為了平衡商業利益競爭中的差距,對終結私有軟件的統治沒有絲毫的訴求。還有一個早于GNU項目很多年的例子是TeX,Donald Knuth的自由排版系統。他使用的許可證允許任何人修改和分發代碼,但如果未能通過一個非常嚴格的兼容性測試,則不允許冠以"TeX"的名稱(這是自由許可證的“商標保護”的一個例子,更多的討論在[Chapter?9, *許可證,版權和專利*](# "Chapter?9.?許可證,版權和專利"))。Knuth并非對軟件應該是自由還是私有的問題有什么意見或是其他諸如此類的目的,他需要一個更好的排版系統是為了完成他*真正的*目標—一本計算機編程的書—當書完成了,沒有理由不把他的系統公之于眾。 雖然沒有列出每一個項目和每種許可證,但還是可以確信,在1980年代末,出現了許多基于各類許可證的項目。許可證的多樣性反映了動機的多樣性。即使是一些選擇GNU GPL的程序員也沒有和GNU項目同樣強烈的意識形態動機。盡管他們很享受為自由軟件工作,但是許多開發者并不把私有軟件視作社會惡魔。確實有些人是受到道德沖動的驅使要去消滅“囤積軟件”(斯塔尓曼對非自由軟件的稱呼)的世界,但其他人更多的是出于對技術的狂熱,或對能和志同道合者合作感到愉悅,甚至簡單地出于人類對榮耀的渴望。大體上說,這些不同的動機并沒有造成沖突。部分原因是和其他的創造性活動如散文和視覺藝術不同,軟件必須通過半客觀測試才能成功:它必須能運行,去除絕大部分的bug。這自動地給了一個項目的全部參與者一個共同的背景,一個理由,一個無需為除了技術以外的問題擔心的協同工作的框架。 開發者們還有另一個團結互助的原因:自由軟件世界生產了很多質量非常高的代碼。要么是令最接近的非自由對手都望塵莫及,要么是可以匹敵,或至少價廉物美。雖然也許會有一些人是出于嚴格的意識形態的背景才使用自由軟件,但絕大部分人是因為它更出色才使用自由軟件的。在這些人中,總有一定比例的人樂意將自己的時間和技術貢獻出來幫助維護和改進軟件。 這種產出優秀代碼的趨勢并非是普遍的,但在全球的自由軟件項目出現的頻率越來越高。這引起高度依賴軟件質量的商業公司的關注。其中的許多發覺他們其實早已經在日常的操作中使用自由軟件,只是并沒有意識到(管理層并不總是能意識到IT部門做的每件事)。公司開始在自由軟件項目中扮演越來活躍和公開的角色,他們向自由軟件的發展捐助時間和設備,有時甚至是直接的資助。在最好的情形下,這些投資能獲得數倍的回報。這些贊助商只需要為少數全職投入的專家級程序員支付工資,獲得的回報卻包括了無償的志愿者和領取其他公司薪水的程序員的*全部*工作成果。 ### “自由”還是“開源” 隨著商業世界越來越多的關注自由軟件,程序員們面臨新出現的問題。首先是單詞“自由”本身。第一次聽說“自由軟件”(free software,在英語中free既有自由的意思,也有免費的意思)這個詞的時候,許多人都錯把它理解成“免費軟件”。確實大部分的自由軟件都是免費的,[[7](#)]但不是所有的免費軟件都是自由的。例如在1990年代的瀏覽器大戰中,為了搶占市場份額,網景和微軟都無償地發布他們的網絡瀏覽器。這些瀏覽器都不是“自由軟件”。你無法得到源代碼,即使得到了也沒有權利修改和再發布。[[8](#)]你唯一能做的是下載一個運行文件,然后運行。這些瀏覽器的自由不會比從商店里購買的盒裝軟件更多;它們只是有較低的價格。 圍繞自由一詞發生的混亂,很不幸地完全是由于英語本身的多義性造成的。大部分的其他語種對“免費”和“自由”明確地區別對待(例如在羅曼斯語中*gratis*和*libre*的差別對聽眾而言是一清二楚的)。但英語是互聯網事實上的橋梁語言,所以一個英語的問題在某種程度上來說即是每個人的問題。圍繞自由一詞的誤解是如此之廣,以至于最終自由軟件程序員們發明了一個公式來應對:“It's *free* as in*freedom*—think *freespeech*, not *free beer*。”但一遍又一遍的解釋還是讓人厭倦。許多程序員認為,即使加以解釋,對自由的岐義正在阻礙公眾對這種軟件的理解。 但實際的問題更復雜。free一詞承載了一個無可避免的道德內涵:如果自由是它自身的最終目標,它同自由軟件是否被更多人接受,是否能從商業中賺取更多的利益無關。這個動機唯一的光明面從根本上說既不是技術也不是商業,而是道義。此外,“free as in freedom”的定位也迫使那些既想在生意的某一方面支持實用的自由程序,而另一方面又繼續推銷私有軟件的公司陷入前后矛盾的境地。 本已陷入身份危機的社區又迎來了這些困境。如果說自由軟件運動有一個總體目標的話,那些實際上寫自由軟件的程序員們并不都為了同一個目標而工作。甚至于從一個極端走向另外一個極端的觀點會引起誤解,因為我們會錯誤地以為只有兩種極端的觀點,而實際上存在著多層次的看法。然而,如果我們忽略其間的細微差別,他們都可以被歸入兩類信念。一個團體追隨斯塔尓曼的觀點,認為共享和修改的自由是最要的事,因此如果你不再談論自由,你就忽略了核心問題。另一些人認為軟件本身才是最重要的因素,并且對公開地宣布私有軟件本質上是壞的而感到不舒服。部分的,但非全部自由軟件程序員相信作者(或是雇主,如果是有償工作)*應該*有權利控制分發的條款,選擇何種條款不應該受到道德的審問。 在很長時間里這些分歧并不需要認真對待,但自由軟件在商業世界里的快速成功使得這些問題無法再回避。1998年一群程序員結成一個團體,也就是后來的開源促進會(Open Source Initiative,OSI)[[9](#)]創造了開源一詞來替代“自由”。OSI認為“自由軟件”不僅有潛在的岐義,而且“自由”一詞本身就是一系列問題的根源。運動本身需要一個在商業世界里的營銷程序,而談論道德和社會公益在公司董事會里是不受歡迎的。用他們自己的話說: > *開源宣言是自由軟件的一個營銷程序。用務實的基礎推動自由軟件遠比慷慨激昂大談理想有用得多。成功的本質沒有變,失敗的象征和看法已經變了。?...* > *需要告知大多數技術人的不是開源的概念,而是名字。為什么我們不再像從前那樣稱之為“自由軟件”呢?* > *一個直接的原因是“自由軟件”一詞容易以一種導致沖突的方式被誤解。?...* > *但真正更名的原因是營銷上的。我們現在想打入商業世界。我們有成功的產品,但在過去我們的定位是可怕的。自由軟件一詞被商人們誤解了,他們把這種描述理解成反商業主義,甚至更糟,賊。* > *主流公司的CEO和CTO們絕不會買"自由軟件"。但如果我們保持非常相似的傳統,人還是那些,相同的自由軟件許可證,只是換了一個“開源”標簽的話?他們會買。* > *一些黑客覺得這很難相信,但那是因為他們的技術化思維已經僵化,被條款所束縛,不能理解當你推銷某樣東西時形象有多重要。* > *做營銷時,外表是很現實的問題。我們打算用什么樣的形象來消除同公司打交道的障礙,和我們的行為,我們的信念,我們的軟件同樣重要。* > (來自**[http://opensource.feratech.com/advocacy/faq.php](http://opensource.feratech.com/advocacy/faq.php)**和**[http://opensource.feratech.com/advocacy/case_for_hackers.php#marketing](http://opensource.feratech.com/advocacy/case_for_hackers.php#marketing)**) 通過上面的文字我們可以一窺爭論的冰山一角。它提到了“我們的信念”,但是巧妙地回避了這些信念到底是什么。對有些人呢,這種信念也許是認為開放的開發過程將產出更好的代碼,對其他人也許是認為所有的信息都應該共享。他們用到了“賊”一詞(據推測是)影射非法的復制—許多人反對這一點,認為如果原持有人隨后仍然保留原件就不能視作賊。這里有一個明顯的暗示說自由軟件運動被錯誤地劃入了反商業主義,但它小心翼翼地回避了這種歸類是否有現實依據的問題。 其中沒有一條可以說明OSI的網站是自相矛盾或是誤導的。確實沒有。相反,這個例子表明了OSI所主張的,正是自由軟件運動所缺少的,也就是好的營銷,此處的“好”指的是“能在商業世界生存”。開源宣言給許多人帶來他們一直尋找的—一套將自由軟件作為開發的方法論和商業策略而不是道德圣戰的語匯。 開源促進會的出現改變了自由軟件的面貌。它將長久存在的矛盾擺上了桌面,迫使運動承認與外部一樣,其自身內部同樣有派系斗爭。由于大部分的項目都包括了來自兩個陣營的程序員,加上一些很難明確歸類的參與者,如今二者都已經找到了共同的基礎。這不意味著人們從不談論道德動機—例如,有時人們會討論傳統的“黑客精神”的流失的問題。但是很少有自由軟件/開源開發者在一個項目中公開地質疑他人的基本動機。作出貢獻遠比貢獻者本身重要。如果有人代碼寫的不錯,你不會問他們到底是出于道德原因還是因為雇主付給他們工資或是為了在推薦信上添加砝碼,或其他什么原因。你從技術角度評估貢獻,從技術角度反饋。甚至Debian這樣毫不諱言政治的組織(他們的目標是提供一個100%自由的操作環境),也已經不再那么嚴格的對待集成非自由代碼和同目標不一致的程序員共事了。 [[2](#)] SourceForge.net,一個著名的代碼存放站點,截至到2004年4月中旬,總共有79225個項目注冊。雖然這只是選擇使用SourceForge的項目數量,但已經非常接近互聯網上全部自由軟件項目的數量了。 [[3](#)] 斯塔尓曼的“黑客”指的是“喜歡程序并且喜歡用它炫耀聰明的人”,不是近些年來的新含義“非法進入計算機的人。” [[4](#)] “GNU's Not Unix”的縮寫,擴展后短語中的GNU其實是同一意思。 [[5](#)] 從技術上來說Linux不是第一個。在Linux之前不久已經有了一個能在IBM兼容機上運行的自由操作系統,386BSD。然而386BSD的啟動和運行還不太穩定。Linux的飛速發展不僅因為它是自由軟件,而是因為安裝之后你有更大的幾率能啟動計算機 。 [[6](#)] 正式的稱呼是“X Windows System”,但實際中人們通常稱之為“X Windows”,因為三個單詞太繁瑣了。 [[7](#)] 發放自由軟件的人可以收取一定的拷貝費用,但是由于他無法阻止受領者去免費地再發放,價格還是會很快接近于零。 [[8](#)] 網景Navigator瀏覽器的源代碼最終*在*1998年在一個開源許可證下發布,成為后來的Mozilla網絡瀏覽器的基礎。參見[http://www.mozilla.org/](http://www.mozilla.org/)。 [[9](#)] OSI的主頁[http://www.opensource.org/](http://www.opensource.org/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看