首先要知道什么是自由,什么是Linux。
FreeBSD是一種類UNIX操作系統(tǒng),是由經(jīng)過BSD、386BSD和4.4BSD發(fā)展而來的Unix的一個重要分支。FreeBSD為不同架構的計算機系統(tǒng)提供了不同程度的支持。并且一些原來BSDUNIX的開發(fā)者后來轉到FreeBSD的開發(fā),使得FreeBSD在內部結構和系統(tǒng)API上和UNIX有很大的兼容性。由于FreeBSD寬松的法律條款,其代碼被其他很多系統(tǒng)借鑒,包括蘋果公司的macOS,正是由于macOS的UNIX兼容性,使得macOS獲得了UNIX商標認證。
FreeBSD支持amd64(x86_64)、X86(i386)、ARM、AArch64、IA-64、PowerPC、PC-98、SPARC等架構(不同版本支持有所不同)(詳細情況見官方文檔)。
FreeBSD和Linux的相似處
FreeBSD和Linux是兩個自由開源的軟件。實際上,它們的用戶可以很容易的檢查并修改源代碼,用戶擁有絕對的自由。而且,F(xiàn)reeBSD和Linux都是類Unix系統(tǒng),它們的內核、內部組件、庫程序都使用從歷史上的AT&TUnix繼承來的算法。FreeBSD從根基上更像Unix系統(tǒng),而Linux是作為自由的類Unix系統(tǒng)發(fā)布的。許多工具應用都可以在FreeBSD和Linux中找到,實際上,他們幾乎有同樣的功能。
此外,F(xiàn)reeBSD能夠運行大量的Linux應用。它可以安裝一個Linux的兼容層,這個兼容層可以在編譯FreeBSD時加入AACCompactLinux得到,或通過下載已編譯了Linux兼容層的FreeBSD系統(tǒng),其中會包括兼容程序:aac_linux.ko。不同于FreeBSD的是,Linux無法運行FreeBSD的軟件。
FreeBSD和Linux的區(qū)別
許可證
兩個系統(tǒng)的區(qū)別首先在于它們的許可證。Linux以GPL許可證發(fā)行,它為用戶提供閱讀、發(fā)行和修改源代碼的自由,GPL許可證幫助用戶避免僅僅發(fā)行二進制。而FreeBSD以BSD許可證發(fā)布,BSD許可證比GPL更寬容,因為其衍生著作不需要仍以該許可證發(fā)布。這意味著任何用戶能夠使用、發(fā)布、修改代碼,并且不需要維持之前的許可證。
您可以依據(jù)您的需求,在兩種許可證中選擇一種。首先是BSD許可證,由于其特殊的條款,它更受用戶青睞。實際上,這個許可證使用戶在保證源代碼的封閉性的同時,可以售賣以該許可證發(fā)布的軟件。再說說GPL,它需要每個使用以該許可證發(fā)布的軟件的用戶多加注意。
如果想在以不同許可證發(fā)布的兩種軟件中做出選擇,您需要了解他們各自的許可證,以及他們開發(fā)中的方法論,從而能了解他們特性的區(qū)別,來選擇更適合自己需求的。
控制
由于FreeBSD和Linux是以不同的許可證發(fā)布的,LinusTorvalds控制著Linux的內核,而FreeBSD卻與Linux不同,它并未被控制。我個人更傾向于使用FreeBSD而不是Linux,這是因為FreeBSD才是絕對的自由軟件,不存在控制者。Linux和FreeBSD還有其他的不同之處,我建議您先不急著做出選擇,等讀完本文后再做出您的選擇。
操作系統(tǒng)
Linux主要指內核系統(tǒng),這與FreeBSD不同,F(xiàn)reeBSD的整個系統(tǒng)都被維護著。FreeBSD的內核和一組由FreeBSD團隊開發(fā)的軟件被作為一個整體進行維護。實際上,F(xiàn)reeBSD開發(fā)人員能夠遠程且高效的管理核心操作系統(tǒng)。
而Linux方面,在管理系統(tǒng)方面有一些困難。由于不同的組件由不同的源維護,Linux開發(fā)者需要將它們匯集起來,才能達到同樣的功能。
FreeBSD和Linux都給了用戶大量的可選軟件和發(fā)行版,但他們管理的方式不同。FreeBSD是統(tǒng)一的管理方式,而Linux需要被分別維護。
硬件支持
說到硬件支持,Linux比FreeBSD做的更好。但這不意味著FreeBSD沒有像Linux那樣支持硬件的能力。他們只是在管理的方式不同,這通常還依賴于您的需求。因此,如果您在尋找最新的解決方案,F(xiàn)reeBSD更適應您;但如果您在尋找更多的普適性,那最好使用Linux。
原生FreeBSDVs原生Linux
兩者的原生系統(tǒng)的區(qū)別又有不同。就像我之前說的,Linux是一個Unix的替代系統(tǒng),由LinusTorvalds編寫,并由網(wǎng)絡上的許多極客一起協(xié)助實現(xiàn)的。Linux有一個現(xiàn)代系統(tǒng)所需要的全部功能,諸如虛擬內存、共享庫、動態(tài)加載、優(yōu)秀的內存管理等。它以GPL許可證發(fā)布。
FreeBSD也繼承了Unix的許多重要的特性。FreeBSD作為在加州大學開發(fā)的BSD的一種發(fā)行版。開發(fā)BSD的最重要的原因是用一個開源的系統(tǒng)來替代AT&T操作系統(tǒng),從而給用戶無需AT&T許可證便可使用的能力。
許可證的問題是開發(fā)者們最關心的問題。他們試圖提供一個最大化克隆Unix的開源系統(tǒng)。這影響了用戶的選擇,由于FreeBSD使用BSD許可證進行發(fā)布,因而相比Linux更加自由。
支持的軟件包
從用戶的角度來看,另一個二者不同的地方便是軟件包以及從源碼安裝的軟件的可用性和支持。Linux只提供了預編譯的二進制包,這與FreeBSD不同,它不但提供預編譯的包,而且還提供從源碼編譯和安裝的構建系統(tǒng)。使用它的ports工具,F(xiàn)reeBSD給了您選擇使用預編譯的軟件包(默認)和在編譯時定制您軟件的能力。(LCTT譯注:此處說明有誤。Linux也提供了源代碼方式的包,并支持自己構建。)
這些ports允許您構建所有支持FreeBSD的軟件。而且,它們的管理還是層次化的,您可以在/usr/ports下找到源文件的地址以及一些正確使用FreeBSD的文檔。
這些提到的ports給予你產(chǎn)生不同軟件包版本的可能性。FreeBSD給了您通過源代碼構建以及預編譯的兩種軟件,而不是像Linux一樣只有預編譯的軟件包。您可以使用兩種安裝方式管理您的系統(tǒng)。
FreeBSD和Linux常用工具比較
有大量的常用工具在FreeBSD上可用,并且有趣的是他們由FreeBSD的團隊所擁有。相反的,Linux工具來自GNU,這就是為什么在使用中有一些限制。(LCTT譯注:這也是Linux正式的名稱被稱作“GNU/Linux”的原因,因為本質上Linux其實只是指內核。)
實際上FreeBSD采用的BSD許可證非常有益且有用。因此,您有能力維護核心操作系統(tǒng),控制這些應用程序的開發(fā)。有一些工具類似于它們的祖先-BSD和Unix的工具,但不同于GNU的套件,GNU套件只想做到最小的向后兼容。
標準Shell
FreeBSD默認使用tcsh。它是csh的評估版,由于FreeBSD以BSD許可證發(fā)行,因此不建議您在其中使用GNU的組件bashshell。bash和tcsh的區(qū)別僅僅在于tcsh的腳本功能。實際上,我們更推薦在FreeBSD中使用shshell,因為它更加可靠,可以避免一些使用tcsh和csh時出現(xiàn)的腳本問題。
一個更加層次化的文件系統(tǒng)
像之前提到的一樣,使用FreeBSD時,基礎操作系統(tǒng)以及可選組件可以被很容易的區(qū)別開來。這導致了一些管理它們的標準。在Linux下,/bin,/sbin,/usr/bin或者/usr/sbin都是存放可執(zhí)行文件的目錄。FreeBSD不同,它有一些附加的對其進行組織的規(guī)范?;A操作系統(tǒng)被放在/usr/local/bin或者/usr/local/sbin目錄下。這種方法可以幫助管理和區(qū)分基礎操作系統(tǒng)和可選組件。
你知道Linux和FreeBSD之間的區(qū)別和聯(lián)系嗎?