GNU是什麼
引自官網(http://www.gnu.org/)的定義:
GNU 是一個由 自由軟體 構成的類 Unix 作業系統 — 自由軟體尊重你的自由。你可以選擇安裝一個完全由自由軟體構成的 基於 Linux 核心的 GNU 系統。
GNU 工程 創始於一九八四年,旨在開發一個完整 GNU 系統。GNU這個名字是 “GNU's Not Unix!” 的遞迴首字母縮寫詞。 "GNU" 的發音為 g'noo,只有一個音節,發音很像 “grew”,但需要把其中的 r 音替換為 n 音。
類 Unix 作業系統是由一系列應用程式、系統庫和開發工具構成的 軟體集合 , 並加上用於資源分派和硬體管理的核心。
使用 Linux 核心。這樣的組合即為 GNU/Linux 作業系統。已經有上百萬人在使用 GNU/Linux,但他們中的很多人把它誤稱為“Linux”。
同時我們可以發現GNU的官網上寫提GNU作業系統。GNU的終極目標也就是用自由軟體構成一個完整的作業系統,而在Linux核心開始之前,請記住一點Linux只是一個核心,類Unix系統核心,這也就是為什麼通常我們所用的GNU/Linux系統被稱為類Unix系統的原因之一。在Linux核心開始之前,GNU計劃已經完成了除作業系統核心以外的大部分軟體,其中包括了一個殼程式(shell),C語言程式庫以及一個C語言編譯器。但請記住另外一點Linux核心並不是GNU計劃的一部分。
GPL
由於前面所介紹的,那麼不由得不一提GPL,GNU 通用公用許可協議(英語:GNU General Public License,簡稱GNU GPL或GPL)(詳細資料參見:http://www.fsf.org/):
GPL由斯托曼撰寫,用於GNU計劃。它以GNU Emacs、GDB、GCC的許可證的早期版本為藍本。這些許可證都包含有一些GPL的著作權思想,但僅只針對特定程式。斯托曼的目標就是創造出一種四海之內皆可使用的許可證,這樣就能為許多原始碼共用計劃帶來福音。這裡轉載了一份來自維基百科對於GPL條款的一個通俗易懂的總結(原文:http://zh.wikipedia.org/wiki/GNU%E9%80%9A%E7%94%A8%E5%85%AC%E5%85%B1%E8%AE%B8%E5%8F%AF%E8%AF%81)。
授予的權利
此GPL的條款及條件適用於任何收到GPL下的作品的人(即“許可證接受人”)。任何接受這些條款及條件的許可證接受人都有修改、複製、再發行作品或作品的演繹版本的授權。許可證接受人可以對此項服務收取費用 ,反之亦然。這一點是GPL與其他禁止商業用途的自由軟體許可證最大的不同。Stallman認為自由軟體不應限制其商業用途,同時GPL清楚地說明了這一點。
但GPL又規定發行者不能限制GPL授予的權利。例如,這禁止對軟體在單純沉默(消極默示)式協議或合約下的發行。GPL下的發行者同時也同意在軟體中使用的專利可以在其它GPL軟體中使用。
Copyleft
GPL不會授予許可證接受人無限的權利。再發行權的授予需要許可證接受人開放軟體的原始碼,及所有修改。且複製件、修改版本,都必須以GPL為許可證。
這些要求就是copyleft,它的基礎就是作品在法律上著作權。由於它著作權,許可證接受人就無權進行修改和再發行(除合理使用),除非它有一個copyleft條款。如果某人想行使通常被法律所禁止的權利,只需同意GPL的條款。相反地,如果某人發行軟體違反了GPL(比如不開放原始碼),他就有可能被原作者起訴。
copyleft利用著作權法來達到與其相反的目的:copyleft給人不可剝奪的權利,而不是著作權法所規定的諸多限制。這也是GPL被稱作“被黑的著作權法”的原因。
許多GPL軟體發行者都把原始碼與可執行程式捆綁起來。另一方式就是以物理介質(比如CD)為載體提供原始碼。在實踐中,許多GPL軟體都是在互連網上發行的,原始碼也有許多可以方式得到。
copyleft只在程式再發行時發生效力。對軟體的修改可以不公開或開放原始碼,只要不發行。注意copyleft只對軟體有效力,而對軟體的輸出並無效力(除非輸出的是軟體本身)。不過這在GPL版本3中可能會有改動。
GPL是許可證
GPL設計為一種許可證,而不是合約。在英美法系國家,許可證與合約有法律上的明確區別:合約由合約法保障效力,而GPL作為一種許可證由著作權法保障效力。不過在許多採用歐陸法系的國家並無此種區別。
GPL原理簡單:在著作權法下,你不遵守GPL的條款及條件你就沒有相應權利。而作品在沒有GPL的情況下,著作權法作為預設條款發生效力,而不是作品進入公有領域。
自由軟體
“自由軟體” 是權利問題,不是價格問題。要理解這個概念,自由應該是“言論自由”中的“自由”,而不是“免費啤酒”中的“免費”。
自由軟體關乎使用者運行、複製、發布、研究、修改和改進該軟體的自由。 更精確地說,自由軟體賦予軟體使用者四種自由:
- 不論目的為何,有運行該軟體的自由(自由之零)。
- 有研究該軟體如何運行,以及按需改寫該軟體的自由(自由之一)。取得該軟體原始碼為達成此目的之前提。
- 有重新發布拷貝的自由,這樣你可以藉此來敦親睦鄰(自由之二)。
- 有改進該軟體,以及向公眾發布改進的自由,這樣整個社群都可受惠(自由之三)。取得該軟體源碼為達成此目的之前提。
GNU作業系統
構成GNU作業系統的一些核心組件:
項目名 |
用途 |
coreboot |
前身LinuxBIOS,提供類似於BIOS的硬體初始化 |
GRUB |
多作業系統啟動程式 |
GNU Hurd |
系統核心 |
Bash
|
Shell |
GCC |
程式設計語言編譯器,支援c ada fortan java等語言 |
這樣子一個系統就勉強可以上路了,至於案頭的選擇等等就多種多樣了,也沒有足夠的資料顯示會使用哪個案頭。
GNU HURD
GNU Hurd 是一系列基於GNU Mach或者L4微核心的守護進程,這一套守護進程最終形成了GNU作業系統。GNU計劃從1990年開始開發GNU Hurd,並且將它作為一個遵循GPL的自由軟體發布。Hurd的目標是從功能、安全性和穩定性上全面超越Unix核心,而同時又能保持對其的相容性,為此Hurd遵守POSIX標準。
“HURD”是一個間接遞迴縮寫,來自“HIRD of Unix Replacing Daemons”,其中“HIRD”表示“HURD of Interfaces Representing Depth”。
基於GNU/HURD的GNU作業系統發行版
- Bee GNU/Hurd
- Debian GNU/Hurd
- Superunprivileged.org GNU/Hurd Live CD