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