歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

選擇GPL還是BSD?

  簡介 什麼是GPL軟件授權許可證? GNU通用公共許可證(GPL,The GNU General Public License)的全文非常煩瑣冗長,其主要宗旨是在程序員社區內保證和促進可以連續自由和開放地保證軟件源代碼的共享。它的出現混淆了"free"和"freedom"的含義,因為其實際上限制了那些不希望開放共享那些從GPL授權的軟件進行二次開發的程序員的自由。Rick Holbert建議我們使用解放軟件(liberated software)這個名詞來替代自由軟件(free software)這個名詞。但這仍然使我感到迷惑,因為GNU軟件並不是真正的解放軟件,其實你並不能任意處理GPL軟件的源代碼,但是"解放"這個詞仍然要比"自由"這個詞來的准確一些。GPL許可證強迫用戶將對開放共享的GPL軟件的修改後的源代碼繼續公開。因此,GPL保證了那些軟件使用者自由的連續性,而不是那些修改軟件的程序員。如果仔細分析可以發現,GPL有一些令人混淆的地方,一方面它保證了以後軟件"接受者"的自由,而剝奪了軟件開發者任意處置自己編寫的代碼的權利。總的來說,對於那些希望將自己的軟件貢獻出來的人來GPL是令人滿意的,因為在GPL授權許可下,軟件在整個開發中都保證了源碼的開放和所有的人都可以使用和添加修改軟件。 但是從商業角度來說,當然是希望使用那些可以可以關閉源碼共享的軟件,因為你往往是希望根據其開發一個具有潛在價值的產品。如果你關閉了具有價值的軟件的源碼,並且對其進行改進和二次開發,使其具有更高的價值,這樣你才能向那些沒有能力自行開發的軟件使用者使收費,那麼你就應該考慮使用具有BSD授權許可的軟件作為起點。 考慮另外一種情況下,如果你更著重於服務而不是軟件產品,那麼GPL軟件對你來說就沒有什麼缺陷了。例如,IBM在其各種服務器中使用Linux。如果你是在GPL軟件平台之上開發一個商業軟件,你也不必擔心GPL對你的影響。另外,任何從頭開發的軟件或者是使用BSD軟件作為基礎來開發的軟件,你都可以封閉自己的源代碼。仍然有很多方法可以利用GPL軟件而不威脅你的商務活動。一般來說客戶並不真正關心事情是如何完成的,他們僅僅關心事情完成的結果。一個最好的例子是在最流行的桌面操作系統之上運行的各種軟件,使用這些糟糕的軟件的用戶中99%都不知道,也不關心他們使用的軟件是如何的垃圾和糟糕。只要看看用戶是如何樂於下載和安裝那些號稱是最可靠和穩定的保證向後兼容的操作系統的補丁就可以理解這一點了。為什麼一開始這些操作系統不能保證穩定和可靠的呢?並且如果最穩定和可靠的當前版本仍然時常崩潰並且有巨多的bug,那麼以前的版本是不是垃圾呢?我一直在對人們強調那些比垃圾更加穩定和可靠的東西,實際上仍然是垃圾,只不過是稍稍更加穩定和可靠一些罷了。這並沒有太多的意義。在商業上,重要的不是被賣的產品的可靠性和穩定性,如果你能滿足使用者的最低要求,並且你能以便宜的價格占有主要市場,或者你能實現壟斷,並且對用戶進行洗腦宣傳,大量進行廣告金錢宣傳,那麼你的產品就是最"棒"的。如果你由於商業的原因害怕GPL許可證,那麼你可能並沒有足夠地深入和仔細地考慮你的商業模型。在US最流行的Linux發布並不是最好的,其缺乏很多應該具有的特色,但是它仍然是最流行的,因為它已經占有了市場,並且每次版本升級其產品都有改進,這樣使得它們的客戶感的很開心,即使用戶並不知道軟件實際上應該有多好。 什麼是BSD授權許可證? BSD授權許可證(FreeBSD Copyright Information)具有多種授權許可證。總的來說你可以對軟件任意處理,只要你在軟件中注明其是來自於那個項目的就可以了。也就是說你具有更大的自由度來處置軟件。如果你對軟件進行了修改,你可以限制其他使用者得到你修改的軟件的自由。 BSD授權許可證沒有實現"通透性"自由,也就是其不保證軟件源代碼開放的連續性。這樣如果你希望采用別人開發的BSD軟件,進行一些修改,然後作為產品賣,或者僅僅保密自己的做的一些除了軟件開發以外的工作,那麼你就可以從中得利。 當一個非程序員僅僅理解一個程序的功能,但是不了解程序是如何做的時,即使你沒有在開發軟件中做任何工作那你就可以通過高超的市場技巧將軟件賣給該用戶。比如拿最流行的桌面操作系統作為例子,你就能很好的理解一個沒有很好的程序技巧的軟件公司只要具有高超的市場營銷策略同樣可以將垃圾賣給客戶。如果你不具有很強大的編程能力,但是具有很強的市場能力和能將其他開發者的軟件包括到自己的系統,而同時不將自己的修改開放出來將是非常強大的能力。從賺錢為目的的商務角度看來,如果你使用了BSD授權許可證的軟件,那麼你就可以任意進行。你可以更好地控制你的OS系統,並且防止其他人拷貝你的商業產品。 就我看來,只要是開放源碼的東西,就都不是垃圾,因為只要是開放的其就可能被修改,發生變化;而一旦變成封閉源碼的東西,它馬上就成為了垃圾,因為我不知道它是如何實現的。所有BSD授權聲明的開放源碼的軟件都是很棒的東西。


哪種更適合你? 有一個信念你是必須理解的:授權許可之間並沒有好壞之分,除非你從你希望達到的目的的角度去看待問題。一個授權許可證是人們行為的基礎,就象法規一樣。從商務角度來說,美國有一個非常棒的政府,因為這裡是金錢統治一切;從人性角度看來,其他政府可能更具有理想主義一些。但是如果他們實現了他們人民希望達到的目標,它們之間是沒有好壞之分的。如果授權許可證保證了你希望的目標,那麼它對你來說就是好的,但是對於其他人來說可能並不是如此,但是你可能往往不會關心別人對該授權許可證的看法。因此,只有白癡才會認為一種授權許可證比另外一種授權許可更好。一旦我們知道了你創造程序的目標,那麼我們就可以判斷你的軟件更適合使用哪種授權許可。 無論什麼時候我和BSD人們交談,他們往往也承認GPL是一個不錯的東西。怎麼會這樣呢?正如前面討論的那樣,授權許可是為人們來使用的。沒有人強迫你對你的軟件使用GPL或者是BSD授權許可。因此如果你選擇使用GPL作為自己創造的軟件的授權許可,那麼不要在意人們對源代碼具有完全處理的權限。既然你選擇了GPL,那麼你就不應該在意,因為你沒有希望從其他封閉授權的軟件獲利,因此你就不希望其他人通過你的軟件獲利。GPL劃定了游戲范圍以保證每個人能平等地從同一個軟件獲利的權利。就象好的市場驅動競爭以促進商業發展一樣,大家都有平等的權利但只有最優秀的人可以獲勝一樣。同樣一旦你選擇了將自己的軟件平等地給所有人共享。如果有人不想象別人那樣共享代碼,他可以選擇投資幾百萬來開發自己的軟件,沒有人會阻止他這麼做。 可以對軟件定義若干種授權許可,例如Perl同時具有GPL授權許可和藝術性授權許可(Artistic Licenses)。如果你希望你的軟件和其他自由軟件一起配合使用,那麼你必須對其不僅僅定義GPL授權許可。但是GPL一般往往並不能和其他免費軟件授權許可很好的配合使用。 自由軟件社區對於GPL的一種批評是:它偷竊了自由(freedom)這個單詞。問題是這樣的:一個獨裁者有自由成為一個獨裁者嗎?答案:是可以的。自由和社區沒有任何關系。自由意味著你可以在任何時候隨意做你想做的任何事情。人們有自由選擇不自由(have the freedom not to be free)。困擾我的一件事情是:雖然我從政治角度理解為什麼他們要這麼做,但是FSF和GPL這些人則傾向於重新按照他們希望的目的來定義自由的含義,但其實他們只是看到了很狹義的自由的含義,而不是完全的自由。他們感興趣的是在社區內部共享軟件代碼,而不是個人對自己的軟件的任意處置的自由,例如將GPL化的一段代碼變成封閉代碼等等。因此GPL本身從自由真正的含義上並沒有真正地促進自由,而是限制了自由,僅僅保證了社區內共享代碼的自由。我不喜歡這些家伙,他們重新定義了自由的含義,而且如果你按照他們的意思定義自由他們往往就懶得答理你。但是我認為從政策意義上來說,他們是很好的,因為他強迫人們考慮自由,大多數人沒有時間去考慮自由的真正含義。 那麼對於BSD,它也是不壞的選擇。它對於那些希望編寫封閉代碼程序的程序員是很有意義的。我理解為什麼BSD授權許可這麼有吸引力和它對於一些人為什麼如此重要。但是也使我對從政治角度來看沒有意義的BSD有了更深入的理解: 如果有人以BSD授權許可發布軟件,那麼別人就可以利用該軟件創建一個封閉源碼版本,他不必向任何人公開自己做了哪些修改。因此一個項目組可能花費數年來開發一個很棒的軟件,而一個人或一個公司則可能"偷竊"該軟件,進行一些簡單的二次開發並形成一個封閉源碼的產品來盈利,卻和原始開發者則可能沒有從中得到任何利益。我就是不能理解為什麼這麼多人這麼辛苦的工作來努力使其他人成為百萬富翁。GPL則組織這種事情的發生,它保證了軟件開放性的連續和所有使用者具有平等的權利。 BSD授權許可危險性的一個明顯的例子就是:它如何使一個病毒擴散到整個世界。只要看看Kerberos的情況就可以了解情況是如何糟糕的。對於我自己來說,當一個邪惡的公司糟蹋了一個軟件,那麼就沒有任何辦法強迫它們和社會一起合作來改善情況,我個人是抵制所有這些軟件的。我不能承受擔心相互之間不兼容的版本到處出現。Kerberos就是這樣被糟蹋掉的,我永遠不會再使用它。為什麼說它被糟蹋了呢?被糟蹋的版本到處都是,而且影響很大之間又不相互兼容。我不會花時間去使用這樣的軟件:知道有一天它會變成封閉源碼的,但是而且會和我在使用的版本不兼容。對於我來說不兼容性是非常糟糕的和不能接受的,如果我能避免使用這樣的軟件我一定不會使用它。 既然GPL和BSD各有優缺點,那麼哪個更適合你呢?其中一個,沒有一個或者是都適合你。重要的是要理解授權許可的含義,如果你不重視結



既然GPL和BSD各有優缺點,那麼哪個更適合你呢?其中一個,沒有一個或者是都適合你。重要的是要理解授權許可的含義,如果你不重視結



Copyright © Linux教程網 All Rights Reserved