本章導讀:本章首先對Linux發展簡史進行簡要介紹,然後對Linux內核進行了介紹,重點介紹了Linux內核的特點和功能,接著對Linux發行版進行介紹,並列舉了一些典型的發行版;最後對嵌入式Linux進行了簡要介紹,包括嵌入式Linux的特點和產品形態。
Linux是全球最受歡迎的開源作業系統。它是一個由C語言編寫的,符合POSIX標準的類UNIX系統。
詞條POSIX
POSIX是Portable Operating System Interface的縮寫,表示可移植作業系統接口,它規定了作業系統應該為應用編程提供的接口標準。
詞條UNIX
UNIX是一個強大的多用戶、多任務分時作業系統,支持多種處理器架構,於1969年在AT&T的貝爾實驗室開發。UNIX是商業作業系統,需要收費。
20世紀九十年代,由於當時UNIX的商業化,Andrew Tannebaum教授開發了Minix作業系統,用於教學和科研,並發布在Internet上,免費給全世界的學生使用。Minix具有UNIX的很多特點,但是不完全兼容。1991年,芬蘭大學生Linus Torvalds為了給Minix用戶設計一個比較有效的UNIX PC版本,寫了一個「類Minix」的作業系統,並發布到了Minix新聞組,在眾多支持者的幫助下,Linus推出了Linux第一個穩定版本。1991年11月份,Linux 0.10版本推出,次年12月份,Linux 0.11版本推出,並在發布網上免費供人們使用。Linux 0.13版本發布時,Linux已經非常接近於一種可靠、穩定的作業系統,Linus決定將0.13版本改稱為0.95版本,到1994年3月,Linux發布了1.0版本。
Linux誕生、發展和壯大於網絡,目前依然掌控於Linux社區,遍布全球數以萬計的黑客和志願者參與Linux開發,也有商業公司為Linux貢獻代碼。Linux內核核心開發隊伍的領導者目前是Linus本人。
Linus其人
Linus Torvalds(1969.12.28 - ),芬蘭赫爾辛基人。在1991年他還是一名大學生的時候,開發了Linux作業系統,在眾多黑客的幫助和他的主持下,Linux作業系統蓬勃發展,他本人至今依然是Linux內核項目的核心和領導人物。他本人獲獎無數,主要有:
Linux遵循GPL協議,允許任何人對代碼進行修改或發行,包括商業行為。只要其遵守該GPL協議,所有基於Linux的軟體也必須以GPL協議的形式發表,並提供原始碼。
詞條GPL
通用公共許可證」。只有GPL英文原版才具有法律效力。
在軟體中採用了使用GPL協議的產品,該軟體產品也必須採用GPL協議,即必須開源,這是GPL所謂的「傳染性」。
獲取Linux內核源碼的網址為:http://www.kernel.org,在這裡能夠下載各版本的內核源碼,包括測試版和最新穩定版。
Linux的吉祥物是一隻名叫Tux的企鵝,看起來像穿了一件晚禮服的企鵝,如下圖。
Linux吉祥物創作於1996年,據說Linus被澳大利亞國家動物園的一隻小企鵝輕輕咬了一下,於是就有了用企鵝做吉祥物的想法。
Tux全稱tuxedo,但大多數人更傾向於另一種說法,說是Tux名字來源於「TorvaldsUniX」。
Linux發音[』li:nэks],這也是Linus本人的發音,在不同語言裡發音有差異,國內很大一部分人發音[』li:njuks]。
Linux內核的重要特點
Linux是一個開放自由的作業系統內核,具有一些鮮明的特點:
1. Linux是一個一體化內核;
註:「一體化內核」是也稱「宏內核」,是相對於「微內核」而言的。幾乎所有的嵌入式和實時系統都採用微內核,如VxWorks、uC/OS-II、PSOS等。
2. 可移植性強。儘管Linus最初只為在X86 PC上實現一個「類UNIX」,後來隨著加入者的努力,Linux目前已經成為支持硬體平臺最廣泛的作業系統;
註:目前已經在X86、IA64、ARM、MIPS、AVR32、M68K、S390、Blackfin、M32R等眾多架構處理器上運行。
3. 是一個可裁剪作業系統內核。Linux極具伸縮性,內核可以任意裁剪,可以大至幾十或者上百兆,可以小至幾百K,運行的設備從超級計算機、大型伺服器到小型嵌入式系統、掌上行動裝置或者嵌入式模塊,都可以運行;
4. 模塊化。Linux內核採用模塊化設計,很多功能模塊都可以編譯為模塊,可以在內核運行中動態加載/卸載而無需重啟系統;
5. 網絡支持完善。Linux內核集成了完整的POSIX網絡協議棧,網絡功能完善;
6. 穩定性強。運行Linux的內核的伺服器可以做到幾年不用復位重啟;
7. 安全性好。Linux源碼開放,由眾多黑客參與Linux的開發,一旦發現漏洞都能及時修復;
8. 支持的設備廣泛。Linux源碼中,設備驅動源碼佔了很大比例,幾乎能支持任何常見設備,無論是很老舊的設備還是最新推出的硬體設備,幾乎都能找到Linux下的驅動。
Linux作業系統的特點
以Linux內核為核心的作業系統具有如下特點:
(1)開放性
遵循世界標準規範,特別是遵循開放系統互連(OSI)國際標準。凡遵循國際標準所開發的硬體和軟體,都能彼此兼容,可方便地實現互連。
詞條OSI
OSI是Open System Interconnection的縮寫,意為開放系統互聯,該模型由ISO(國際標準化組織)制定。模型把網絡通信分為7層:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。
詞條ISO
ISO是International Organization for Standardization的縮寫,即國際標準化組織,該組織是由國家標準化機構組成的世界範圍的聯合會,現有140個成員國。ISO中央辦事機構設在瑞士的日內瓦。
(2)多用戶
Linux作業系統是一個真正的多用戶作業系統;系統資源可以被不同用戶各自擁有使用,即每個用戶對自己的資源有特定的權限,互不影響。
經常有初學者將Linux的多用戶與Windows的多用戶弄混淆,實際上兩者的差別是很大的。Windows桌面同一時刻只允許一個用戶登錄,其餘用戶必須鎖定;而Linux則允許多個用戶同時登錄。
(3)多任務
多任務是現代計算機的最主要的一個特點。它是指計算機同時執行多個程序,而且各個程序的運行互相獨立。Linux系統調度每一個進程平等地訪問處理器。
多任務實際上很常見,例如我們在編寫文檔的時候,還可以一邊聽歌,甚至還可以從網上下載資料。這至少就有文檔處理、音樂播放和網絡下載三個任務,相互互不影響,並且是同時運行的。
(4)良好的用戶界面
Linux向用戶提供了兩種界面:用戶界面和系統調用。
Linux的傳統用戶界面是基於文本的命令行界面,即Shell,它既可以聯機使用,又可存在文件上脫機使用。Shell有很強的程序設計能力,用戶可方便地用它編製程序,從而為用戶擴充系統功能提供了更高級的手段。
Linux還為用戶提供了圖形用戶界面。它利用滑鼠、菜單、窗口、滾動條等設施,給用戶呈現一個直觀、易操作、交互性強的友好的圖形化界面。
系統調用是提供給用戶編程時使用的界面。用戶可以在編程時直接使用系統提供的系統調用。系統通過這個界面為用戶程序提供低級、高效率的服務。
(5)設備獨立性
Linux作業系統把所有外部設備統一當作成文件來看待,只要安裝它們的驅動程序,任何用戶都可以像使用文件一樣,操縱、使用這些設備,而不必知道它們的具體存在形式。Linux的設備獨立性使得它具有高度適應能力,能夠適應隨時增加支持新設備。
設備獨立性主要是對應用程式開發者來說的。例如,對應用開發者來說,系統自帶的串口與USB串口的操作方式是一樣的,都是串口設備,而不用關心這個串口設備實際對應的物理硬體是什麼。
現代計算機都實現了設備獨立特性。
(6)完善的網絡功能
Linux內置完整的POSIX網絡協議棧,在通信和網絡功能方面優於其它作業系統。Linux為用戶提供了完善的、強大的網絡功能:
支持Internet。Linux免費提供了大量支持Internet的軟體,使得用戶能用Linux與世界上的其他人通過Internet網絡進行通信。
網絡文件傳輸。用戶能通過一些Linux命令完成內部信息或文件的傳輸。
遠程訪問功能。Linux系統既允許本身通過網絡訪問遠程的系統,也允許遠程系統通過網絡訪問自身。
(7)可靠的系統安全
Linux採取了許多安全技術措施,包括對讀、寫進行權限控制、帶保護的子系統、審計跟蹤、核心授權等,為網絡多用戶環境中的用戶提供了必要的安全保障。
(8)模塊化
運行時可以根據系統的需要加載程序而無需重啟系統。Linux的模塊化極大地提高了Linux的可裁剪性和靈活性。
(9)良好的可移植性
Linux是一種可移植的作業系統,能夠在從微型計算機到大型計算機的任何環境和任何平臺上運行。目前已經成為支持平臺最廣泛的作業系統。
Linux內核移植分3個層次:體系結構級別移植、處理器級別移植和板級移植。對大多數開發者而言,只需進行板級移植。