天天看點

《嵌入式Linux基礎教程(第2版)》——1.3 開源和GPL

本節書摘來自異步社群《嵌入式linux基礎教程(第2版)》一書中的第1章,第1.3節,作者:【美】christopher hallinan(克裡斯托弗 哈利南)著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

linux是開源軟體,這是促使linux廣泛使用的一個重要因素。如果你想了解更多開源運動的曆史和文化,請看eric s. raymod的書(見本章末尾),該書引人入勝且富有見地。

linux核心基于gnu gpl[1](general public license,通用公共許可證)的條款進行授權,這導緻了一個常見的誤區:linux是免費的。事實上,gnu gpl第3版[2]的第2段聲明:“當我們談論自由軟體時,我們指的是自由,而不是指價格上的免費。”大多數的職業開發經理都同意:你可以免費下載下傳linux,但是在一個嵌入式平台上開發和部署任何作業系統都是有代價的(這個代價通常很大)。在這方面,linux并不例外。

gpl非常簡短且通俗易懂。這裡列出了它的一些重要特點。

許可證是自我存續的。

許可證給予使用者運作程式的自由。

許可證給予使用者研究和修改源代碼的權利。

許可證允許使用者分發原來的代碼以及他所做的修改。

許可證有病毒的特性。也就是說,如果你把gpl軟體分發給某個人,gpl會給予他和你相同的權利。

如果軟體是基于gpl條款釋出的,它必須永遠附帶這個許可證[3]。即使代碼被大幅改動(這是許可證允許甚至是鼓勵的),gpl要求改動後的代碼也必須以相同的許可證釋出。這樣做的目的是為了保證軟體的自由使用,包括修改後的軟體(或通常所說的派生軟體)的自由使用。

不管軟體是如何擷取的,gpl允許無限制地分發該軟體,而無須支付任何專利費或按件收取的許可費。這并不意味着軟體廠商不能夠對gpl軟體收費——收費是合理和普遍的商業行為。這表明一旦擁有gpl軟體,你可以修改和重新分發這個軟體,不管這個軟體是否被修改過。然而gpl規定,軟體的修改者如果決定釋出修改後的軟體,則必須以gpl的條款釋出。無論以什麼形式釋出派生軟體,比如傳遞給客戶,都必須遵守這個規定。

免費和自由

在讨論開源軟體的自由特性(free nature)時,常常會提及兩個流行的短語:“free as in freedom”和“free as in beer”(本書作者非常喜歡後者)。[4]gpl的存在保證了軟體的自由。它確定了你使用、學習和修改這個軟體的自由。它也確定了當你分發修改後的代碼給某個人時,他同樣也獲得這些自由。這個概念已經被廣泛接受和了解。

很多人對linux存在一個誤解,那就是linux是免費的。你可以免費獲得linux,你也可以花幾分鐘的時間下載下傳一個linux核心。然而,正如任何一個職業開發經理所了解的,在産品設計中使用任何軟體都是有一定代價的。這些代價包括軟體的擷取、整合、修改、維護和支援。除此之外,你還需要花費其他費用,進而獲得和維護一個配置正确的工具鍊、程式庫、應用程式以及和你選擇的硬體架構相容的專用交叉開發工具。很快你會發現,為了開發和部署嵌入式linux系統,配置其所需的軟體工具和開發環境并不是件輕松的事情。

繼續閱讀