★“內核”與“發(fā)行版”是啥關系?
對于新手而言,需要先搞清楚這兩個概念(已經明白的同學,請?zhí)^本章節(jié))。
◇操作系統(tǒng)內核(OS kernel)
所謂的”操作系統(tǒng)內核“,通俗地說就是操作系統(tǒng)最核心最關鍵的部件。它負責一些最基本的工作,比如:管理硬件驅動、管理內存、管理文件系統(tǒng)、管理進程、等等。這些東西只要少了任何一樣,整個操作系統(tǒng)就【沒法】正常運轉。
◇linux 內核(Linux kernel)
Linux 作為操作系統(tǒng),當然也有其內核。自問世以來,Linux 內核的開發(fā)工作一直是由 Linus(也就是 Linux 它爹)領導。Linus 對于 Linux 內核的意義,就如同喬布斯對于蘋果的意義。
Linux 內核的特點是——非常徹底的【開放性】。所謂的【開放性】包括如下幾方面:
1. 任何人都可以隨意獲取(可以從 Linux Kernel 官網直接下)
2. 任何人都可以免費獲取(完全不用花銀子)
3. 任何人都可以參與開發(fā)(阿貓阿狗都可以向 Linux 社區(qū)提交代碼;只要你提交的代碼符合要求,就會被合并到內核主線)
內核不是今天的重點,俺就點到為止。
◇發(fā)行版(distribution,簡稱 distro)
前面說了,操作系統(tǒng)都有"內核"的概念(比如 windows 也有其內核)。但如果你使用 Windows,通常感覺不到“內核”的存在。為啥捏?原因在于:微軟是把 Windows 當作一個整體來發(fā)布的。對于普通用戶而言,你拿到的是一個完整的操作系統(tǒng),所以你感覺不到“內核”的存在。
而 Linux 不同于其它操作系統(tǒng)的地方在于:Linus 領導的開源社區(qū)只負責開發(fā)內核,不開發(fā)其它的東西(比如:運行庫、圖形界面、應用軟件、等)。
這就引出一個問題——光有一個赤裸裸的內核,用戶是沒法用的(就好比你光拿到一個汽車引擎,你是沒法開車的)。為此,就有一大幫開源社區(qū)或商業(yè)公司,在這個裸露的內核外面,再包上一些東西(比如:運行庫、應用軟件)。經過這樣包裝之后,就成為“發(fā)行版”。
為啥 Linux 的發(fā)行版如此之多捏?前面俺說了,Linux 內核是徹底開放滴,隨便什么阿貓阿狗都可以去 Linux 的官網下載到內核,然后自己折騰(定制)。如果定制完覺得滿意,就可以拿到網上去發(fā)布(就成了一個新的發(fā)行版)。由于門檻如此之低,發(fā)行版自然就很多啦。
◇【內核+發(fā)行版】的模式,有啥好處?
剛才已經解釋了 Linux 內核與發(fā)行版的關系。再來說說【內核+發(fā)行版】的模式,有啥好處。
首先表揚一下 Linus 同學,他當年作出的決定——只開發(fā)內核,其它的一概不管——真的是太有先見之明啦!
其一
在這種模式下,會有各種各樣的發(fā)行版,正好可以覆蓋千奇百怪的需求;
其二
【同質化】的發(fā)行版之間會產生【競爭】,最終只有優(yōu)秀的發(fā)行版會存活,差勁的發(fā)行版會逐漸消亡——這就是開源生態(tài)圈的“達爾文主義”。
如果用一個詞來形容 Linux 的優(yōu)點,那就是——【多元化】。內核的開發(fā)是多元化滴(任何人都可以參與),發(fā)行版也是多元化滴(任何人都可以搞發(fā)行版)。
對比一下其它的開源操作系統(tǒng)——BSD系列。
BSD 系列中最有影響的是 FreeBSD。說實話 FreeBSD 很優(yōu)秀!但是 FreeBSD 的影響力遠遠小于 Linux。為啥捏?因為 FreeBSD 缺乏 Linux 這種多元化的風格。
★如何選擇發(fā)行版?
前面說了一通屁話,現(xiàn)在切入正題。
因為 Linux 的發(fā)行版太多,如果要逐一介紹的話,都足以寫一本大部頭的書了。所以俺嘗試從“分類”的角度來介紹。通過介紹不同維度的分類,幫助你從不同的視角看待各種發(fā)行版。
對發(fā)行版的各個視角都有所了解之后,你就可以過濾掉一大批不符合你要求的發(fā)行版。過濾完之后,或許就只剩下2~3個候選者,然后再逐一嘗試。
★【通用】發(fā)行版 VS 【專用】發(fā)行版
所謂的“通用發(fā)行版”,顧名思義就是:這個發(fā)行版可以派上各種用場;反之,“專用發(fā)行版”是為特定用途設計,只能用于某些特定場合。
這兩種各有優(yōu)缺點——通用發(fā)行版雖然用途廣,但你需要自己做一些定制。專用發(fā)行版雖然用途單一,但很多軟件和配置預先都幫你設置好了。
俺在《新手如何搞定 Linux 操作系統(tǒng)》一文中強調的“成熟度”的重要性。所以,俺挑選幾個成熟度比較高的通用發(fā)行版和專用發(fā)行版,大致介紹一下。
◇【通用】發(fā)行版
名氣比較大的有如下幾個:
Debian
Debian 完全靠社區(qū)維護,其特點是:非常強調"自由"的開源理念。它有很多衍生的發(fā)行版(比如 Ubuntu),形成一個大家族。在 Linux 的眾多家族中,Debian 家族是軟件包最多的。
對于完全沒有技術背景的同學,Debian 的門檻稍微有點高。
Fedora
Fedora 來自 Red Hat Linux。2003年的時候,Red Hat 公司決定不再維護面向桌面的 Red Hat Linux,改為專注于企業(yè)市場。就把原先的 Red Hat Linux 交給社區(qū)維護,成為 Fedora(原先的洋名叫”Fedora Core“)。
openSUSE
這是從 Slackware 衍生出來的發(fā)行版,原先屬于 SuSE 公司的商業(yè)發(fā)行版(SUSE Linux)。2004年 SuSE 被 Novell 收購之后,Novell 把它移交給社區(qū)維護,改名叫 openSUSE。
它的一個特色功能是 YaST。這玩意兒類似 Windows 的控制面板,幫你搞定一大堆系統(tǒng)管理的雜事(比如:硬盤分區(qū)、軟件升級、用戶管理、網絡配置、等等)
Arch Linux
這是一個白手起家的發(fā)行版(【不是】從其它發(fā)行版衍生),比較適合于 diy。默認裝出來的系統(tǒng)近乎全裸,然后根據(jù)你的需要,安裝自己喜歡的軟件包。
它的設計理念是KISS 原則,追求簡潔主義。定位于有技術背景的熟練用戶。
Gentoo Linux
它跟前面提到的 Arch Linux 很像——也是白手起家,也很適合于 DIY,也是定位于熟練用戶。差別在于,它的 DIY 精神更加徹底。Gentoo 官網提供的軟件包,【不是】二進制的,全都以【源代碼】形式提供。如果你要裝某個軟件,先從官網在線更新源代碼,然后在【本地】(本機)編譯成二進制的軟件。你還可以根據(jù)自己的喜好,設置編譯選項,以優(yōu)化性能或安全性。
因為是在本地編譯源代碼,Gentoo 支持種類繁多的 CPU 類型。
假如你是程序員出身(尤其是 C/C++ 程序員),建議你嘗試一下 Gentoo。
Slackware
在依然活著的發(fā)行版中,它是最古老的(1993年問世)。它衍生出很多其它的發(fā)行版(比如前面提到的 openSUSE),形成一個大家族。
Slackware也秉承KISS原則,偏好命令行而不是 GUI。所以,完全沒有技術背景的同學,不太適合直接上手 Slackware。
◇面向【客戶端】(桌面)的專用發(fā)行版
這類發(fā)行版,名氣較大的有如下幾個(這幾款的門檻都比較低。適合于沒有技術背景的新手)。
Ubuntu Desktop
衍生自 Debian,大概是影響力最大的桌面發(fā)行版了。Ubuntu 的發(fā)行版其實分“Server”和“Desktop”兩種。一般說 Ubuntu 默認指的是 Ubuntu Desktop。
其美中不足之處是——Ubuntu 本身是一家【商業(yè)】公司維護的。關于商業(yè)發(fā)行版的缺點,后面會提到。
它以發(fā)布時間做版本號(比如:13.10 就是2013年10月發(fā)布)。每半年發(fā)布一個版本。
它的版本分兩種:普通版本和長期支持版本(LTS)。LTS 會持續(xù)提供支持(補丁更新)長達幾年(桌面版 3年,服務器版 5年),普通版本只支持9個月。
Linux Mint
衍生自 Ubuntu Desktop,由社區(qū)維護(避免了商業(yè)公司的缺點)。在 DistroWatch 的瀏覽量排名中,經常排在第一名。
為啥它的排名這么高捏?其中一個原因是:它很強調【傻瓜化】的用戶體驗,所以吸引到不少人氣。
它的發(fā)布周期是半年(類似于 Ubuntu),每年的5月和11月出新版本。
它跟 Ubuntu 類似,也分普通版本和 LTS 版本。最近的一個 LTS 是 Linux Mint 13,2012年5月發(fā)布,支持到2017年4月。至于普通版本,支持6個月。
可選多種桌面環(huán)境(Cinnamon、Mate、KDE、Xfce、GNOME、LXDE、Fluxbox)
elementary OS
這款是從 Ubuntu 衍生滴,誕生于2011年。DistroWatch 的瀏覽量排名中,2012年還榜上無名,2013年已經排入前20位。
它的特點是:深度整合各種桌面應用。另外,因為是 Ubuntu 的衍生版,天然地兼容 Debian 家族的軟件包。
Manjaro
這款是從 Arch Linux 衍生滴,誕生于2011年(與 elementary 是同齡人)。
在前面章節(jié),俺提到了 Arch 的門檻比較高。這款發(fā)行版?zhèn)戎赜诮档?Arch 的使用門檻,從而吸引了大量 Arch 的原有用戶。
其官方默認支持的桌面是 Xfce & KDE。如果你不喜歡這兩個桌面,可以使用社區(qū)支持的其它桌面:Gnome、LXDE、Enlightenment、MATE、Cinnamon...
◇面向【服務端】的專用發(fā)行版
這類發(fā)行版,比較有影響力的是:Red Hat Enterprise Linux(簡稱 RHEL)、centos(從 RHEL 衍生)、Ubuntu Server(從 Debian 衍生)、等等。
考慮到本文是面向【個人】用戶,這方面就不多聊啦。
◇面向【特殊用途】的發(fā)行版
還有一些特殊用途的發(fā)行版,定位于比較小的細分市場,屬于【小眾的】發(fā)行版。這些小眾發(fā)行版,“成熟度”不一定夠。所以就不放在本章節(jié),俺會在本文末尾統(tǒng)一介紹。
★版本發(fā)布 VS 滾動發(fā)布(無版本)
說到發(fā)布方式,大致上有兩種風格:按版本發(fā)布 or 滾動發(fā)布。
按版本發(fā)布,大伙兒應該比較熟悉了,Windows 和 mac OS 都是這么干的。大部分 Linux 發(fā)行版也是這么干的。
但是有少部分發(fā)行版采用滾動發(fā)布,典型的代表就是前面提到的 Arch Linux 和 Gentoo Linux。對于“滾動發(fā)布”的模式,【不】存在版本號,也【無需】重裝系統(tǒng)。對于這類系統(tǒng),你只需要安裝一次,就可以無限期地用下去(除非發(fā)行版死亡 或者 系統(tǒng)被你自己折騰壞了)。雖然不用重裝系統(tǒng),但你需要定期升級。通過定期升級來增加軟件功能,并消除軟件漏洞。
這兩種發(fā)布方式,各有優(yōu)缺點,很難說哪種更好。你可以根據(jù)自己的喜好,選擇其中一種。
★保守型 VS 激進型
◇【保守】的發(fā)行版
這類發(fā)行版通常更在意系統(tǒng)和軟件的穩(wěn)定性/可靠性/安全性。為了做到這點,適當?shù)貭奚?ldquo;新功能”。所以,它們通常都不會采用最新版本的內核或軟件。而是采用不太新,但久經考驗的版本。
一般來說,面向服務端的發(fā)行版都是“保守型”滴(比如 RHEL、CentOS)。
另外,在“通用發(fā)行版”中,Debian 是偏“保守”滴;而 Fedora 是偏“激進”滴。
◇【激進】的發(fā)行版
這類發(fā)行版優(yōu)先保證“新功能”。所以它們總是第一時間升級內核版本或軟件版本。
采用滾動方式發(fā)布的 Linux,通常都是【激進型】的(比如 Arch Linux、Gentoo Linux)。
◇如何權衡?
這兩種風格,也很難說誰對誰錯。關鍵看你的需求。如果你比較關注安全性,最好選用保守型的。
★【商業(yè)】發(fā)行版 VS 【社區(qū)】發(fā)行版
制作發(fā)行版的組織,大體上可以分為兩類——商業(yè)公司 & 非營利組織。
說到這里,先澄清一個誤區(qū):
很多人有【偏見】,以為“非營利組織”的研發(fā)能力不如“商業(yè)公司”。
其實不然!
非營利組織也可以做出精品。你只需想想瀏覽器的例子:非營利組織開發(fā)的 Firefox 遠遠好于(頭號軟件公司)微軟開發(fā)的“IE & Edge”。
對于這兩者的選擇,主要的考慮因素是:隱私。
舉個例子:
Ubuntu 屬于商業(yè)發(fā)行版(其后臺是 Canonical公司)。Ubuntu 曾經在去年爆了一個丑聞:其桌面搜索功能存在隱私泄露風險
俺的建議是:
非常在意隱私的同學,最好用社區(qū)發(fā)行版。如果你對隱私問題無所謂,那這項指標可以不考慮。
★一些特殊用途的發(fā)行版
下面列舉若干特殊用途的 Linux 發(fā)行版。俺的接觸面有限,介紹未必全面。大伙兒如有補充,歡迎到俺博客留言。
◇某些【迷你】(Mini)發(fā)行版
估計有的同學會問,迷你 Linux 有啥用?用途還是不少滴。
比如:迷你型 Linux 因為很小,可以把整個系統(tǒng)放到內存中運行,所以速度飛快(內存的讀寫速度比硬盤至少快一個數(shù)量級)
比如:家中有古老的 PC,內存硬盤都很小,就可以裝迷你發(fā)行版(廢物利用)。
比如:早年買來的 U盤,可能只有 64兆、128兆、256兆,也可以在上面裝迷你型的 Linux。
Puppy Linux
這是比較老牌的迷你發(fā)行版,已有10年歷史。
說說它的特色:
其它的發(fā)行版,在 LiveCD 模式下是無法實現(xiàn)數(shù)據(jù)保存的。每次重新啟動之后,之前對文件系統(tǒng)的修改都會消失。
但是 Puppy 牛B的地方在于:LiveCD 模式下也可以實現(xiàn)數(shù)據(jù)保存。前提是:電腦具有"CD-R 或 DVD-R 光驅"。只要有這種光驅,它就可以采用多段刻錄的方式,把每次運行時修改過的數(shù)據(jù)刻錄到光盤上(直到刻滿為止)。
SLAX
這款衍生自 Slackware。在迷你 Linux 中,這款算是比較龐大的(大約200兆)。雖然有點大,但是它具備了完善的國際化(含簡體中文和繁體中文)。
它的一大特色是它的軟件包管理方式【非常綠色】。你從官網下載到某個軟件包之后(擴展名是 SB,別想歪了),只需要把這個 SB 文件放到某個特定目錄,然后啟動系統(tǒng),這個軟件就可以用了;下次如果覺得這個軟件不想要,只需要把那個 SB 文件刪除,再啟動系統(tǒng),這個軟件就徹底消失了。
SliTaz
這款就真的是“Mini”了,目前的4.0版本只有35兆。這么小的體積,竟然還包含了不少軟件(比如 Firefox、多媒體編輯、等)。
Tiny Core Linux
這款比 Slitaz 更小,包括幾個不同的變種:
Micro Core——只有8兆,但是沒圖形界面。
Tiny Core ——12兆,帶圖形界面。
Core Plus——64兆,帶有更多應用軟件。
◇用于安全領域的發(fā)行版
BackTrack / Kali
它衍生自 Ubuntu。在安全類的發(fā)行版中,它的名氣很大。
它是面向懂安全的技術類用戶,傻瓜用戶不需要它。
該發(fā)行版中包含了大量的安全類工具,可以用來進行:入侵、信息收集、安全取證、安全評估、等等。
Kali 是 BackTrack 的后續(xù)發(fā)行版。它倆都出自 Offensive Security。
Tails
Tails 是洋文”The Amnesic Incognito Live System“的縮寫。它衍生自 Debian,設計目標是:保護隱私,加強上網的隱蔽性。
在 Tails 里面上網,所有的流量都會經過 Tor 網絡中轉。
它支持 LiveCD 或 LiveUSB,可以完全運行于內存中,以免在硬盤上留下你的上網痕跡。
Whonix
這款工具采用雙虛擬機進行隔離(一臺充當網關,一臺用于上網),對外連接全部經過 TOR 網絡中轉。
上網的那個虛擬機即使遭遇入侵(比如被掛馬),你的公網 IP 也不會被入侵者看到。
Lightweight Portable Security
這款發(fā)行版簡稱 LPS,是美國國防部為政府雇員量身打造的,專門用于強化安全性,防范某些國家的御用駭客。
它內置了加密工具,整個系統(tǒng)采用 LiveCD/LiveUSB 方式,完全運行于內存中(避免在硬盤里留下痕跡,防止泄密)
俺猜測,這款發(fā)行版很可能有美國國安局(NSA)的后門 :)
◇用于數(shù)據(jù)恢復的發(fā)行版
有若干發(fā)行版是專門用來做數(shù)據(jù)恢復的。比如你不小心把系統(tǒng)格式化了,或者不小心把硬盤分區(qū)誤刪了。這類發(fā)行版就可以派上用場。因為是用來做數(shù)據(jù)恢復,所以這類發(fā)行版都具備 LiveCD 的能力——數(shù)據(jù)恢復的時候,用光盤引導,可以避免對硬盤的寫操作。
SystemRescueCD
這是從 Gentoo 衍生出來的,從名稱就可以看出,是用來做系統(tǒng)應急修復的。
它內置了若干有用的系統(tǒng)工具,比如:分區(qū)工具、文件系統(tǒng)工具、數(shù)據(jù)恢復工具、Windows 注冊表修改工具、等等。
它本身就提供圖形界(包括瀏覽器),便于你在修復過程中,上網查資料。
Trinity Rescue Kit
這款有點像 SystemRescueCD,不過只有命令行界面。但是它內置了病毒掃描工具。
這個發(fā)行版不夠活躍,兩年沒出新版本了。
◇用于多媒體的發(fā)行版
Ubuntu Studio
衍生自 Ubuntu,面向多媒體制作,內置了許多 圖像/音頻/視頻 的相關軟件。
它采用實時內核(real-time kernel),以提高處理視頻/音頻的性能。
Mythbuntu
衍生自 Ubuntu,類似于 Windows Media Center
★總結
Linux 發(fā)行版太雜,導致本文寫得比較長。時間倉促,某些發(fā)行版沒來得及介紹。歡迎大伙兒補充。有說得不對的地方,也歡迎拍磚。
最后,來做一下總結發(fā)言:
◇【無】技術背景的新手
建議先嘗試那幾款“面向桌面“的發(fā)行版。這幾款的用戶數(shù)都比較大,門檻都比較低,上手相對容易。用了一段時間之后,如果你自認為比較熟練了,想要繼續(xù)”折騰“,再考慮——是否嘗試那幾款”通用發(fā)行版“。
◇【有】技術背景的新手
你可以先嘗試”面向桌面“的發(fā)行版,也可以直接嘗試那幾款”通用發(fā)行版“。
在”通用發(fā)行版“中,Gentoo 和 Arch 的難度【大于】Debian、Fedora、openSUSE。喜歡折騰的,有 Geek 精神的同學,建議玩玩 Gentoo 和 Arch。折騰過這兩款發(fā)行版,會讓你對 Linux 系統(tǒng)有更深入的了解。
再補充一下:Gentoo 和 Arch 雖然門檻高,但是這兩款發(fā)行版的文檔都非常齊全。語文不好的同學,順便可以鍛煉一下閱讀能力。






