在學習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光盤,如果你購買了光盤,他們會提供相關的手冊說明文件,同時也會提供你數年不等的咨詢、售后服務、軟件升級與其他協力工作等等的附加價值!
通過服務來收費,自由軟件確實還是具有商業空間的。