GNU/Linux的誕生
1991年8月25日,21歲的赫爾辛基大學(xué)學(xué)生Linus Torvalds發(fā)布了他的開源操作系統(tǒng),"Just a hobby, won't be a big professional thing",幾年后,這個"hobby"--Linux成為了計算機歷史上最重要的一個項目。
與Windows這樣以盈利的操作系統(tǒng)不同,Linux的理念是:
Software is like sex; it's better when it's free. --Linus Torvalds
時間再回到1983年,AT&T與BSDI正因為Unix打得不可開交(Unix Wars),Richard Stallman創(chuàng)建了GNU(GNU's Not Unix) Project,試圖建立可以替代Unix的自由與開源版本操作系統(tǒng)。彼時的Unix已然非常龐大,經(jīng)過了幾年的努力,GNU重寫了許多自由軟件,其中包括今天耳熟能詳?shù)腡ar、Bash、Grep等。
到了90年代,GNU項目依然缺少操作系統(tǒng)內(nèi)核。而一個完整的操作系統(tǒng)需要內(nèi)核來連接硬件與軟件,掌控CPU與內(nèi)存來運行軟件。此時橫空出世的Linux,正是GNU所需要的。于是一個完整的替代Unix的操作系統(tǒng)誕生了:GNU/Linux!
Linux發(fā)行版
因為是自由軟件,任何人都可以根據(jù)自已的喜好定制自已的操作系統(tǒng),到目前已經(jīng)有了千級別的Linux發(fā)行版。
[圖片上傳失敗...(image-3cc31a-1634889885928)]
一個Linux發(fā)行版包括:
- Linux內(nèi)核
- 一系列預(yù)裝軟件
- 軟件包管理器
- 桌面環(huán)境(optional)
各發(fā)行版之間有著幾大派系和千絲萬縷的衍生關(guān)系,比如使用apt的Debian家族,基于Debian衍生出了Ubuntu這樣對新手十分友好的發(fā)行版,而基于Ubuntu又衍生出了Kubuntu、Linux Mint等等。
此外另一大發(fā)行版派系是使用rpm/yum的Redhat家族,其中包括作為服務(wù)器常用的CentOS,以及著名的Fedora。
事實上,很多Linux發(fā)行版都會原生裝配一些用戶并不會使用的軟件包,這不僅占用了電腦的資源,同時也會占用使用者的心力。于是又誕生了兩個講究簡單和最小化原則的發(fā)行版派系:Arch與Gentoo。
完整的發(fā)行版的發(fā)展脈絡(luò)及衍生關(guān)系見維基百科,看到也許會被嚇一跳。
GUI與X Window System
黑乎乎的終端是Linux給人留下的刻板印象,然而作為個人日常使用來講,用戶更喜歡也更需要GUI--用戶圖形界面。
于是有了X Window System,它通過軟件工具及架構(gòu)協(xié)議來創(chuàng)建操作系統(tǒng)所用的GUI,此后逐漸擴(kuò)展適用到各形各色的其他操作系統(tǒng)上,現(xiàn)在幾乎所有的操作系統(tǒng)都能支持與使用X。
X只是工具包及架構(gòu)規(guī)范,本身并無實際參與運作的實體,目前依據(jù)X的規(guī)范架構(gòu)所開發(fā)撰寫成的實現(xiàn)體中,以X.Org最為普遍且受歡迎。
[圖片上傳失敗...(image-51ed6d-1634889885928)]
X系統(tǒng)采用Client-Server的架構(gòu),與直覺不同的是,用戶的顯示器是服務(wù)端,真正在運行的軟件是客戶端。
理解X與X.Org存在的意義可以舉一個最簡單的例子:
使用VMWare安裝Linux系統(tǒng)后往往所展示的桌面只是中間很小的一塊,這時便可以使用X.Org提供的xrandr工具將分辨率設(shè)置為1920x1080來占滿屏幕。
桌面環(huán)境
一個桌面環(huán)境由多個軟件組成,這些軟件共享同一個GUI,這些軟件提供給用戶視窗、文件夾、工具欄、壁紙、圖標(biāo)、拖放服務(wù)等內(nèi)容。不同桌面環(huán)境在設(shè)計和功能上的特性會賦予其與眾不同的外觀和感覺。
Linux有幾套常用的桌面環(huán)境,包括GNOME、KDE、Xfce等,如第二節(jié)中描述,桌面環(huán)境只是一個發(fā)行版的可選部分,同時是可以替換的。一個Linux系統(tǒng)完全可以同時安裝多種桌面環(huán)境來進(jìn)行切換。
這些桌面環(huán)境也有各自的特點和理念,比如Xfce的:
設(shè)計為可作為實際應(yīng)用,快速加載及運行程序,并減少耗用系統(tǒng)資源
[圖片上傳失敗...(image-b6919d-1634889885929)]
Window Manager
窗口管理器與桌面環(huán)境不同,它只是用來控制窗口位置與外觀,不包括設(shè)置壁紙、調(diào)節(jié)音量等能力
各桌面環(huán)境都有自己的窗口管理器,比如GNOME的Mutter,Xfce的Xfwm4。它們?yōu)榇蜷_的軟件窗口提供了最小化、最大化、關(guān)閉按鈕,以及鼠標(biāo)點擊拖動的能力。
[圖片上傳失敗...(image-d07f90-1634889885929)]
與上述這些需要使用電腦鼠標(biāo)控制不同,在Linux用戶中還有另外一種非常流行的WM: Tiling Window Manager.
[圖片上傳失敗...(image-8a4f76-1634889885929)]
使用這樣的WM時,打開的軟件窗口不會有關(guān)閉等圖標(biāo),也無法通過拖拽來移動位置,窗口會自動鋪滿屏幕并排列好位置,就像瓷磚一樣,非常酷炫且高效。
值得一提的是,不需要桌面環(huán)境,只用X.Org+WM即可構(gòu)建出GUI,在這種環(huán)境下比如要設(shè)置壁紙可以在終端中使用相應(yīng)的工具xwallpaper,調(diào)節(jié)音量可以使用PauseAudio,是比較極客的玩法,優(yōu)點是不會被預(yù)裝上一堆本不需要的軟件,同時會比一個完整的桌面環(huán)境占用更少的系統(tǒng)資源。這是一種“簡單和最小化原則”的體現(xiàn)。