在學習Linux系統之前,我們先來了解以下UNIX系統。
(一)UNIX系統介紹
在介紹Linux系統之前,我們先來了解以下UNIX系統。
1、UNIX系統發展歷史
- 1965年,美國麻省理工學院(MIT)、通用電氣公司(GE)及AT&T的貝爾實驗室聯合開發Multics工程計劃,其目標是開發一種互動式的具有多道程式處理能力的分時作業系統,但因Multics追求的目標過於龐大複雜,專案進度遠遠落後於計劃,最後貝爾實驗室宣佈退出。
- 1969年,美國貝爾實驗室的肯·湯普森在
DEC PDP-7
機器上(效能低)開發出了UNIX系統。- 1971年,肯·湯普森的同事丹尼斯·裡奇發明了C語言;1973年,UNIX系統的絕大部分原始碼用C語言重寫,這為提高UNIX系統的可移植性打下基礎。
左邊:肯·湯普森
右邊:丹尼斯·裡奇
2、UNIX 主要發行版本
目前最主流的三款發行版本如下:
作業系統 | 公司 | 硬體平臺 |
---|---|---|
AlX |
IBM |
PowerPC |
UX |
HP |
PA-RISC |
Solaris |
SUN |
SPARC |
說明:
AIX
最為普及(數量最多),因為IBM的伺服器買的最多,但是AIX有一個巨大的問題就是,它只能在IBM的伺服器硬體平臺安裝(PowerPC
)。
換句話說,我們自己用的普通電腦,裝不了這個系統。想要學習AIX
系統,就需要買一臺IBM的伺服器。HP-UX
也同樣是上邊的問題,必須在PA-RISC
平臺的伺服器上安裝。Solaris
具有支援微機的版本。可以在我們自己普通的電腦上安裝,不需要在單獨購買伺服器。
這就變成你學習UNIX系統成本最低的一個選擇了,而我們到市面上買一些UNIX的書籍,可以發現,反而Solaris系統的書籍最多。
補充:
Linux和BSD這樣的系統,稱為類UNIX系統。命令上基本上大致一樣,檔案系統結構基本一樣,區別就是有個別命令,有個別檔案儲存的位置或者檔名不一樣。但是深入到底層的內容,確實是有很多很多的內容是不一樣的。
(二)GNU計劃
1、GNU計劃介紹
Richard Mathew Stallman
(史託曼)在1984年發起的GNU計劃,對於現今的自由軟體風潮,有不可磨滅的地位!目前我們所使用的很多自由軟體或開源軟體,幾乎均直接或間接受益於GNU這個計劃。GNU計劃對於整個自由軟體與開放原始碼軟體來說,是佔有非常重要的角色!
2、為何Stallman會發起這個GNU計劃呢?
史託曼開始GNU計劃的目的是:建立一個自由、開放的Unix作業系統(Free Unix)。
Tips:
其實GNU是GNU'sNot Unix
的縮寫,意思是說,GNU並不是Unix!因為當下並沒有自由的Unix核心存在,所以這些開源的軟體仍只能在那些有專利的Unix平臺上工作。
3、GNU的通用公共許可證:
到了1985年,為了避免GNU所開發的自由軟體被其他人所利用,而成為專利軟體,所以Stallman
與律師草擬了有名的通用公共許可證(General Public License,GPL)。
(1)那麼這個GPL(GNU General Public License)是什麼?
Stallman
對GPL一直是強調Free
的,這個Free
的意思是這樣的:大意是說,Free Software
(自由軟體)是一種自由的權力,並非是價格。也就是說,自由軟體的重點並不是指免費的,而是指具有自由度(freedom
)的軟體。
舉例來說,你可以擁有自由呼吸的權力、你擁有自由發表言論的權力,但是,這並不代表你可以到處喝免費的啤酒(free beer
)。
史託曼進一步說明了自由度的意義是:使用者可以自由的執行、複製、再發行、學習、修改與強化自由軟體。
GPL是站在互助互利的角度上去開發的,你不應該將大家的成果佔為己有。
(2)為什麼要將自由軟體掛上GPL的【版權宣告】呢?
因為如此一來,你所拿到的軟體可能原先只能在Unix上面跑,但是經過原始碼的修改之後,你將可以拿他在Linux或者是Windows上面來跑!總之,一個軟體掛上了GPL版權宣告之後,他自然就成了自由軟體!這個軟體就具有底下的特色:
- 取得軟體與原始程式碼:你可以根據自己的需求來執行這個自由軟體;
- 複製:你可以自由的複製該軟體;
- 修改:你可以將取得的原始程式碼進行程式修改工作,使之適合你的工作;
- 再發行:你可以將你修改過的程式,再度的自由發行,而不會與原先的撰寫者衝突;
- 回饋:你應該將你修改過的程式程式碼回饋於社群。
Tips:
總體概括的說,你用我的開源軟體可以修改,在你修改開發之後你釋出出去的軟體,必須也是開源的。
(3)這個版權宣告對於作者有何好處?
因為是提供原始程式碼的自由軟體,那麼你的程式程式碼將會有很多人幫你查閱,如此一來,程式的漏洞與程式的優化將會進展的很快!所以,在安全性與效能上面,自由軟體一點都不輸給商業軟體。
此外,因為GPL授權當中,修改者並不能修改授權,因此,你如果曾經貢獻過程式程式碼,你將名留青史。
對於程式開發者來說,GPL是一個非常好的授權,因為大家可以互相學習對方的程式撰寫技巧,而且自己寫的程式也有人可以幫忙除錯。
對於廣大的終端使用者,或許自己不會編譯程式程式碼或者是幫人家除錯,但是終端使用者使用的軟體絕大部分就是GPL的軟體。
大致的優點總結:
- 軟體安全性較佳;
- 軟體執行效能較佳;
- 軟體除錯時間較短;
- 貢獻的原始碼永遠都存在。
Tips1:
GNU的通用公共許可證(GPL),隨著時間的推移,也相繼出現了第二版GPLv2,和第三版GPLv3,這個可以自己再擴充套件下。
Tips2:
在這裡必須要說明的是由於有GNU所開發的幾個重要軟體,如:
軟體 Emacs
GNUC(GCC)
GNU C Library(glibc)
Bash shell
- GCC說明
不論是什麼軟體,都得要進行編譯成為二進位制檔案(binary program
)後才能夠執行,說明軟體的能見度還是不夠。因此他便開始撰寫C語言的編譯程式,那就是現在相當有名的GNUCCompiler(gcc)
!- Emacs 編輯器、函式庫(
GNU C library
),以及可以被使用來操作作業系統的基本介面BASH shell
,這些都在1990年左右完成的。
4、自由軟體的活動
1984年創立GNU計劃的Stallman
先生認為,寫程式最大的快樂就是讓自己開發的良好的軟體讓大家使用起來!
如果使用方撰寫程式的能力比自己強,那麼當對方修改完自己的程式,並且回傳修改後的程式程式碼給自己,那自己的程式撰寫功力無形中就更往上爬了!
而既然程式是想要分享給大家使用的,不過每個人所使用的計算機軟硬體並不相同,既然如此的話,那麼該程式的原始碼(Source code
)就應該要同時釋出,這樣才能方便大家修改而適用於每個人的計算機中。這個將原始程式碼連同軟體程式釋出的舉動,在GNU計劃的範疇之內就稱為自由軟體(Free Software
)運動!
此外,史託曼同時認為,如果你將你程式的Source code
分享出來時,若該程式是很優秀的,那麼將會有很多人使用,而每個人對於該程式都可以查閱Source code
,無形之中就會有一票人幫你除錯,你的程式將會越來越壯大,越來越優秀。
Tips:
什麼是Open Source
呢?
所謂的Source code
是程式發展者寫出的原始碼,Open Source
就是,軟體在釋出時,同時將作者的原始碼一起公佈的意思!
5、自由軟體與商業行為
有人會說,目前不是有很多Linux開發商販賣Linux這個GPL授權的軟體。原因很簡單,因為他們大多都是販賣的是售後服務。
比如你可以購買他們的Linux光碟,如果你購買了光碟,他們會提供相關的手冊說明檔案,同時也會提供你數年不等的諮詢、售後服務、軟體升級與其他協力工作等等的附加價值!
通過服務來收費,自由軟體確實還是具有商業空間的。