你是否經(jīng)常會聽到人們把 Linux 及 BSD
系統(tǒng)混為一談?是的,我有時(shí)會經(jīng)常聽到一些新手,甚至于媒體都這么說。當(dāng)然,事實(shí)上這兩者確實(shí)有很多相似之處,比如它們都是基于 Unix
演變而來,而且基本上這兩類系統(tǒng)都是由非盈利組織及團(tuán)隊(duì)開發(fā),另外我更想說的是,這兩個(gè)系統(tǒng)都有一個(gè)共同的目標(biāo)–那就是創(chuàng)建最有用、最可靠的操作系統(tǒng)。
不過話說回來,這兩個(gè)系統(tǒng)確實(shí)存在著明顯的差異,當(dāng)人們忽略這點(diǎn)的時(shí)候,整個(gè) BSD 社區(qū)都會感到異常的憤怒,因此我們也可以經(jīng)常看到 BSD
社區(qū)人員或 BSD 用戶會對 Linux 不屑一顧。因此,我會盡我所能來幫助我的 BSD 的弟兄們,讓更多的人了解到 Linux 與 BSD
的不同之處在哪里。
1、許可證
正如我們所知道的,Linux 操作系統(tǒng)是基于 GPL 許可證授權(quán)下的。該許可證可防止開源軟件被轉(zhuǎn)換為封閉源代碼軟件及確保源代碼的可用性。 GPL 許可證的目的就是防止二進(jìn)制包成為唯一的軟件發(fā)行源。
而 BSD 許可證的限制則要少得多,它甚至允許二進(jìn)制包成為唯一的發(fā)行源。這就是核心差異,可以這樣理解:GPL
許可證讓您有權(quán)擁有任何你想要使用該軟件的方法,但你必須確保提供源代碼給下一個(gè)使用它的人(包括你對它的改變部分)。而 BSD
許可證并不是要求你必須那么做。( 譯者注:這里分別維基百科上對 BSD 及 GPL 許可證的解釋)
2、代碼控制
BSD 的代碼不是被控制在任何一個(gè)人手里,而 Linux 的內(nèi)核基本上被 Linus Torvalds ( Linux 創(chuàng)始人 )
所控制,BSD 并沒有單一的人來說什么可以或什么不可以進(jìn)入代碼。
<script src="/javascripts/tinymce/themes/advanced/langs/zh.js"
type="text/javascript"></script><script
src="/javascripts/tinymce/plugins/javaeye/langs/zh.js"
type="text/javascript"></script>
相反,BSD 通過一個(gè)核心小組 ” Core Team”
來管理該項(xiàng)目,這個(gè)核心小組比非核心小組有更多的發(fā)言權(quán)來指導(dǎo) BSD 社區(qū)的發(fā)展方向,(譯者注:而據(jù)我所知,F(xiàn)reeBSDD 核心小組的成員會每兩年選舉一次。)
3、內(nèi)核 vs 操作系統(tǒng)
BSD 項(xiàng)目維護(hù)的是整個(gè)操作系統(tǒng),而 Linux 則只是主要集中在單一的內(nèi)核上面。這點(diǎn)確實(shí)是需要注意的,雖然這兩個(gè)系統(tǒng)上都運(yùn)行著許多相同的軟件。
4、UNIX-Like
這里有一個(gè)關(guān)于 BSD vs Linux 的古老說法:” BSD is what you get when a bunch of
UNIX hackers sit down to try to port a UNIX system to the PC. Linux is
what you get when a bunch of PC hackers sit down and try to write a
UNIX system for the PC “,這里表達(dá)了很多。你會發(fā)現(xiàn) BSD 系統(tǒng)更為類似于 UNIX ,而事實(shí)上它就是傳統(tǒng) UNIX
的直接衍生品。而 Linux ,則是一個(gè)松散的基于 UNIX 衍生品 ( Minix ) 而新創(chuàng)建的一個(gè) OS 。
5、基本系統(tǒng)
這是一個(gè)關(guān)于 BSD 與 Linux 之間差異的至關(guān)重要的理念。 Linux 的”基本系統(tǒng)” 是并不真正存在的,許多人會說,Linux
的基本系統(tǒng)就是內(nèi)核,但問題是如果沒有任何可用的應(yīng)用程序的話,那么這個(gè)內(nèi)核是完全沒有價(jià)值的。而另一方面,BSD 則有一個(gè)包括眾多工具的基本系統(tǒng),
甚至 libc
也是基本系統(tǒng)的一部分。因?yàn)檫@些組件都被作為一個(gè)基本系統(tǒng),所以它們都是被一起開發(fā)和打包的,許多事實(shí)表明這樣更能創(chuàng)建出一個(gè)更具凝聚力的整體。
6、更多來自于源代碼
由于 BSD 的開發(fā)方式(使用 Ports 系統(tǒng) )
的關(guān)系,所以用戶們更多的是從源代碼來安裝程序,而不是預(yù)先編譯好的二進(jìn)制包。這是一個(gè)優(yōu)勢還是劣勢?這取決于不同的用戶。如果你更多的想從友好或易用性
方面考慮的話,看到這一點(diǎn)后你也許會有放棄的念頭,對于新用戶更是如此。但一些新的用戶也有想要從源代碼編譯安裝,這可能比較累人。但是,從源碼安裝也有
一定的優(yōu)勢,比如(庫版本控制,通過特殊的包來構(gòu)建系統(tǒng)等等)。
7、升級
由于 BSD 的開發(fā)方式的原因(見第5項(xiàng)),你可以利用一條指令就可以升級你的基本系統(tǒng)到最新版本 ( Freebsd 下是用
freebsd-update fetch update 命令)。或者你也可以下載整個(gè)源代碼樹,然后通過編譯來升級。而在 Linux
中,你也可以通過內(nèi)置的包管理系統(tǒng)來升級系統(tǒng)。前者 (BSD) 僅更新基本系統(tǒng),而后者 ( Linux ) 則會升級整個(gè)系統(tǒng)。不過請記住,BSD
中升級到最新的基本系統(tǒng)并不意味著所有的附加軟件包也將會被更新,而 Linux 升級的時(shí)候,所有的軟件包都會被升級。這是否意味著 Linux
處理得更好嗎?在我看未必。我經(jīng)常會看到 Linux 在升級時(shí)出現(xiàn)嚴(yán)重錯(cuò)誤,從而需要重新安裝整個(gè)系統(tǒng),但這個(gè)現(xiàn)象基本不太可能發(fā)生在 BSD
的升級過程中。
8、前沿技術(shù)
基本上你不太可能會看到 BSD 系統(tǒng)運(yùn)行著任何非常前沿版本的軟件。而在 Linux
這一方面,大量的發(fā)行版會分發(fā)前沿版本的軟件包。如果你是一個(gè) ” If it isn’t broken, don’t fix it”
這樣觀點(diǎn)的持有者的話,你將會是 BSD 的超級粉絲。但是,如果你很新潮,想要體驗(yàn)一切最新的東西,那么你最好盡快遷移到 Linux 。
9、硬件支持
你會發(fā)現(xiàn),通常情況下 Linux 的硬件支持要比 BSD 更早一些。但這并不是說 BSD 沒有像 Linux
那樣支持足夠多的硬件,它只是意味著在某些情況下 Linux 會在 BSD
之前先支持某些硬件。因此,如果你想要最新的、最好的顯卡的話,基本上不用考慮 BSD
了。如果你有一個(gè)包含了最新無線芯片的新型筆記本的話,建議你選擇 Linux,運(yùn)氣好的話也許它會支持。
10、用戶群
在這里我冒險(xiǎn)概括一下計(jì)算機(jī)用戶們,但我想先聲明一下每一個(gè)事物都有例外。下面我要向你展示我對用戶分布方面的概括。
Mac –> Windows –> Linux –> BSD –> UNIX
從左邊到右邊,分別是”使用該 OS 的人里精通電腦的用戶群最少”到”使用該 OS
的人里精通電腦的用戶群最多”的過渡。我們可以看到,Linux的被放置在了中間,而 BSD
則更接近于右邊。許多人會對此有爭論,也有些人可能會感覺被冒犯了。但是,個(gè)人認(rèn)為這是一個(gè)對”哪些用戶使用哪些系統(tǒng)”相當(dāng)準(zhǔn)確的概括。
其他的不同點(diǎn)?
這個(gè)列表并不想表明哪個(gè)系統(tǒng)比哪個(gè)更好。事實(shí)上,BSD 和 Linux 各有著自己的亮點(diǎn)。你認(rèn)為怎么樣?有興趣的話也請表達(dá)出你的觀點(diǎn)。