『學了就忘』Linux基礎 — 1、UNIX系統介紹

繁華似錦Fighting發表於2021-07-11

在學習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系統的可移植性打下基礎。

image

左邊:肯·湯普森
右邊:丹尼斯·裡奇

2、UNIX 主要發行版本

目前最主流的三款發行版本如下:

作業系統 公司 硬體平臺
AlX IBM PowerPC
UX HP PA-RISC
Solaris SUN SPARC

說明:

  1. AIX最為普及(數量最多),因為IBM的伺服器買的最多,但是AIX有一個巨大的問題就是,它只能在IBM的伺服器硬體平臺安裝(PowerPC)。
    換句話說,我們自己用的普通電腦,裝不了這個系統。想要學習AIX系統,就需要買一臺IBM的伺服器。
  2. HP-UX也同樣是上邊的問題,必須在PA-RISC平臺的伺服器上安裝。
  3. 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光碟,如果你購買了光碟,他們會提供相關的手冊說明檔案,同時也會提供你數年不等的諮詢、售後服務、軟體升級與其他協力工作等等的附加價值!

通過服務來收費,自由軟體確實還是具有商業空間的。

相關文章