自由項目實施
2024-07-21 02:37:28
供稿:網友
摘要"這篇文章分析自由軟件項目的常用實施工具和方法流程,以及已有的成熟建議,但不是從技術角度介紹軟件使用方法(讀者可以在“joyfire linux筆記”的其他部分或者joyfire.net找到有關技術的資料)。本文要討論的更接近法律、文化以及社團傳統。 我不會探討常見的自由軟件理念和純粹的哲學問題,這方面已有很多經典作品,例如Eric S. Raymond的五部曲?! ∵@篇文章是提供一些自由軟件項目實施的經驗和建議,合適的讀者應該是已經對自由軟件熟悉并感愛好,認同自由軟件理念,希望在這中間做點什么的人。換句話說,不是“Why”和“What”,而是“HOW”。 假如您發現的任何問題,請mail:joyfire@sina.com,http://211.71.69.201/joyfire/下栽它的最新版本。 本文是“joyfire linux筆記”的一部分,同樣是“開源的”,也就是說你可以修改傳播它(包括紙質出版物),但是你無權限制別人在此基礎上繼續修改和傳播它(包括影印您出版的書籍)。
1.平臺
GNU首先是指GNU項目的各種軟件,以及由它們組成的軟件環境或者平臺,例如linux、bash、gcc等等。
顯然,假如新的自由軟件可以建立在以前的自由軟件的基礎上,或者和眾多其他自由軟件相互支持,那么無疑會增加成功的機會。同時相似的自由軟件的環境也有利于宣傳和改進。當然,沒有必要一定采用哪種環境,但是因為很多系統基本工具本身就不是開源的(open source),所以會出現問題。例如Windows平臺下的很多編譯工具,API和COM控件,也許是免費的,但是它是專有的,不答應自由修改和二次發布。
舉個例子,Win32 API是Windows平臺下最基本的API,在一般情況下,它的確是可以無條件使用的。假如你的程序僅僅是應用(application),那么沒有問題,你使用的僅僅是Win32 API的“界面”。但是假如你的程序是一個編譯器或者類似的東西,你就必須得到微軟的許可,因為嚴格講,你已經把Win32重新包裝發布了。由于這樣的原因,VC的競爭對手,例如聞名的編程工具Delphi,要把Win32 API包裝到自己的類庫,就得支付使用費用,而且無法調用很多Windows操作系統默認的對話框(例如“打開對話框”“存儲對話框”“查詢對話框”),必須在類庫里重新實現一遍,這就是Delphi生成的可執行程序比同類VC的要稍微大幾十K的原因。這是微不足道的損失,但是這種專有形式的阻礙可能會對你的軟件性能產生障礙。
當然,在MS Windows和其他非自由的平臺下同樣擁有很多優秀的自由軟件。只是這需要你更加小心,避免在技術上或者法律上進入尷尬境地。
2.GPL協議
GNU重要的核心就是GPL協議,它是自由軟件的法律基礎。接受這個慣例,是標明自己open source的立場的最直接方法。這份文件的作者已經為自由軟件體系建立了一套完備邏輯的法律體系,可以使一個自由軟件在保證自己“free”(注重,這個詞是雙關的,即表示自由,又表示免費)的初衷不會被其他人因為私人利益而改變,又可以保護大多數的用戶可以不受限制的充分使用,甚至可以通過保護一種游戲規則保護以發布自由軟件賺錢的軟件商的利益。
這個協議形成的版權系統(copyleft)和普通的私有軟件版權協議(copyright)是完全不同的,假如你一但在前人的基礎上開發,就必須公開源代碼,否則你就失去了使用前人代碼的資格,這是遞歸的過程.至于對程序收費,GPL沒有禁止,但是公開代碼本身就決定發布者不能把價格定的太高(你的競爭對手可以重新編譯你發布的源代碼然后比你更低價出售,只要它對自己的修改公開源代碼,就不違法)。
現存的linux或者自由軟件商業模式都是建立在提供服務上的,也就是替企業制作非凡的解決方案,或者為硬件廠商開發非凡的版本。例如為手持設備廠家開發嵌入系統,為工業控制設計工控系統,或者為企業提供咨詢服務。這種工作的客戶就要求源代碼的控制權。MS也對自己的大的非凡客戶提供有限的共享代碼服務。但是他們的軟件對企業級用戶限制太多了。
自由軟件是一種信仰,更是一種商業潮流,是利益而不是其他使IBM等企業強力支持Linux,因為他們本來就不是靠release賺錢,他們的核心都是對用戶的服務。
建議閱讀Eric S. Raymond五部曲最后的The Magic Cauldron,生動描述了這種商業模式怎樣占領幾十億美元的IT市場的。
要說明兩點。首先,不只GPL一種自由軟件發布協議,很多聞名的自由軟件,例如Apache、X系統等,都采用自己的獨特的自由軟件發布協議,當然具體條款的約束是不同的,例如X就很松(答應使用者修改源代碼但是不公布,把這變成自己的私有財產),而Apache就比較民主(它的社團通過投票決定下一版本的工作)。其次,不要把自由軟件和盜版聯系起來,自由軟件和私有軟件僅僅是兩種不同法律體系、世界觀和商業模式,Gates和Linus都是值得尊敬的知識英雄(當然,你可以對某人有自己的看法,實際上我也有,但不管怎么說,他的成功不該被貶低,實際上很多非議夾雜著個人潛意識里的嫉妒)。而盜版,就是剽竊。不管無知之輩如何把盜版和Free相提并論(一般還會加上對MS的種種攻擊),盜版不符合Free精神,就好象把偷竊和共產主義并列一樣滑稽。