天天看點

Linux必知詞彙:GNU作業系統

GNU是一個自由的作業系統,其内容軟體完全以GPL方式釋出。這個作業系統是GNU計劃的主要目标,名稱來自GNU's Not Unix!的遞歸縮寫,因為GNU的設計類似Unix,但它不包含具著作權的Unix代碼。GNU的創始人,理查德·馬修·斯托曼,将GNU視為“達成社會目的技術方法”。

作為作業系統,GNU的發展仍未完成,其中最大的問題是具有完備功能的核心尚未被開發成功。GNU的核心,稱為Hurd,是自由軟體基金會發展的重點,但是其發展尚未成熟。在實際使用上,多半使用Linux核心、FreeBSD等替代方案,作為系統核心,其中主要的作業系統是Linux的發行版。Linux作業系統包涵了Linux核心與其他自由軟體項目中的GNU元件和軟體,可以被稱為GNU/Linux(見GNU/Linux命名争議)。

許多UNIX系統上也安裝了GNU軟體,因為GNU軟體的品質比之前UNIX的軟體還要好。GNU工具還被廣泛地移植到Windows和Mac OS上。GNU 包含3個協定條款,即GPL:GNU通用公共許可證(GNU General Public License);LGPL:GNU較寬松公共許可證 (GNU Lesser General Public License), ) ,舊稱 GNU Library General Public License (GNU 庫通用公共許可證);GFDL :GNU自由文檔許可證(GNU Free Documentation License )的縮寫形式。

這裡指的自由,并不是價格免費,這和價格無關而是使用軟體對所有的使用者來說是自由的GPL。Linux核心的締造者Linus Torvalds通過如下途徑實作這一目标:

1) 它要求軟體以源代碼的形式釋出,并規定任何使用者能夠以源代碼的形式将軟體複制或釋出給别的使用者。

2) 如果使用者的軟體使用了受 GPL 保護的任何軟體的一部分,那麼該軟體就繼承了 GPL 軟體,并是以而成為 GPL 軟體,也就是說必須随應用程式一起釋出源代碼。

3) GPL 并不排斥對自由軟體進行商業性質的包裝和發行,也不限制在自由軟體的基礎上打包發行其他非自由軟體。

由于GPL很難被商業軟體所應用,它要求調用它的庫的代碼也得GPL,全部開放,并且一同釋出,不能直接連接配接。是以後來GNU推出了LGPL許可證。在GPL與LGPL許可證保護下釋出源代碼的結果很相似,對舊代碼所做的任何修改對于想知道這些代碼的人必須是公開的,唯一真正的不同之處在于私人版權代碼是否可以與開放源代碼互相連接配接,LGPL允許實體連接配接私人代碼到開放源代碼,并可以在任何形式下釋出這些合成的二進制代碼。隻要這些代碼是動态連接配接的就沒有限制。(使用動态連結時,即使是程式在運作中調用函數庫中的函數時,應用程式本身和函數庫也是不同的實體)

資料來源:

• 陳肖. Linux:自由的作業系統[J]. 微電腦世界, 2004(18):184-185.

繼續閱讀