FreeBSD 和 Linux 有什麼不同?
簡介
BSD最初從UNIX繼承而來,目前,有許多的類Unix操作系統是基於BSD的。FreeBSD是使用最廣泛的開源的伯克利軟體發行版(即 BSD 發行版)。就像它隱含的意思一樣,它是一個自由開源的類Unix操作系統,並且是公共伺服器平台。FreeBSD源代碼通常以寬鬆的BSD許可證發布。它與Linux有很多相似的地方,但我們得承認它們在很多方面仍有不同。
本文的其餘部分組織如下:FreeBSD的描述在第一部分,FreeBSD和Linux的相似點在第二部分,它們的區別將在第三部分討論,對他們功能的討論和總結在最後一節。
FreeBSD描述
歷史
- FreeBSD的第一個版本發佈於1993年,它的第一張CD-ROM是FreeBSD1.0,發行於1993年12月。接下來,FreeBSD 2.1.0在1995年發布,並且獲得了所有用戶的青睞。實際上許多IT公司都使用FreeBSD並且很滿意,我們可以列出其中的一些:IBM、Nokia、NetApp和Juniper Network。
許可證
- 關於它的許可證,FreeBSD以多種開源許可證進行發布,它的名為Kernel的最新代碼以兩句版BSD許可證進行了發布,給予使用和重新發布FreeBSD的絕對自由。其它的代碼則以三句版或四句版BSD許可證進行發布,有些是以GPL和CDDL的許可證發布的。
(LCTT 譯註:BSD 許可證與 GPL 許可證相比,相當簡短,最初只有四句規則;1999年應 RMS 請求,刪除了第三句,新的許可證稱作「新 BSD」或三句版BSD;原來的 BSD 許可證稱作「舊 BSD」、「修訂的 BSD」或四句版BSD;也有一種刪除了第三、第四兩句的版本,稱之為兩句版 BSD,等價於 MIT 許可證。)
用戶
- FreeBSD的重要特點之一就是它的用戶多樣性。實際上,FreeBSD可以作為郵件伺服器、Web 伺服器、FTP 伺服器以及路由器等,您只需要在它上運行服務相關的軟體即可。而且FreeBSD還支持ARM、PowerPC、MIPS、x86、x86-64架構。
FreeBSD和Linux的相似處
FreeBSD和Linux是兩個自由開源的軟體。實際上,它們的用戶可以很容易的檢查並修改源代碼,用戶擁有絕對的自由。而且,FreeBSD和Linux都是類Unix系統,它們的內核、內部組件、庫程序都使用從歷史上的AT&T Unix繼承來的演算法。FreeBSD從根基上更像Unix系統,而Linux是作為自由的類Unix系統發布的。許多工具應用都可以在FreeBSD和Linux中找到,實際上,他們幾乎有同樣的功能。
此外,FreeBSD能夠運行大量的Linux應用。它可以安裝一個Linux的兼容層,這個兼容層可以在編譯FreeBSD時加入AAC Compact Linux得到,或通過下載已編譯了Linux兼容層的FreeBSD系統,其中會包括兼容程序:aac_linux.ko。不同於FreeBSD的是,Linux無法運行FreeBSD的軟體。
最後,我們注意到雖然二者有同樣的目標,但二者還是有一些不同之處,我們在下一節中列出。
FreeBSD和Linux的區別
目前對於大多數用戶來說並沒有一個選擇FreeBSD還是Linux的明確的準則。因為他們有著很多同樣的應用程序,因為他們都被稱作類Unix系統。
在這一章,我們將列出這兩種系統的一些重要的不同之處。
許可證
- 兩個系統的區別首先在於它們的許可證。Linux以GPL許可證發行,它為用戶提供閱讀、發行和修改源代碼的自由,GPL許可證幫助用戶避免僅僅發行二進位。而FreeBSD以BSD許可證發布,BSD許可證比GPL更寬容,因為其衍生著作不需要仍以該許可證發布。這意味著任何用戶能夠使用、發布、修改代碼,並且不需要維持之前的許可證。
- 您可以依據您的需求,在兩種許可證中選擇一種。首先是BSD許可證,由於其特殊的條款,它更受用戶青睞。實際上,這個許可證使用戶在保證源代碼的封閉性的同時,可以售賣以該許可證發布的軟體。再說說GPL,它需要每個使用以該許可證發布的軟體的用戶多加註意。
- 如果想在以不同許可證發布的兩種軟體中做出選擇,您需要了解他們各自的許可證,以及他們開發中的方法論,從而能了解他們特性的區別,來選擇更適合自己需求的。
控制
- 由於FreeBSD和Linux是以不同的許可證發布的,Linus Torvalds控制著Linux的內核,而FreeBSD卻與Linux不同,它並未被控制。我個人更傾向於使用FreeBSD而不是Linux,這是因為FreeBSD才是絕對的自由軟體,不存在控制者。Linux和FreeBSD還有其他的不同之處,我建議您先不急著做出選擇,等讀完本文後再做出您的選擇。
操作系統
- Linux主要指內核系統,這與FreeBSD不同,FreeBSD的整個系統都被維護著。FreeBSD的內核和一組由FreeBSD團隊開發的軟體被作為一個整體進行維護。實際上,FreeBSD開發人員能夠遠程且高效的管理核心操作系統。
- 而Linux方面,在管理系統方面有一些困難。由於不同的組件由不同的源維護,Linux開發者需要將它們彙集起來,才能達到同樣的功能。
- FreeBSD和Linux都給了用戶大量的可選軟體和發行版,但他們管理的方式不同。FreeBSD是統一的管理方式,而Linux需要被分別維護。
硬體支持
- 說到硬體支持,Linux比FreeBSD做的更好。但這不意味著FreeBSD沒有像Linux那樣支持硬體的能力。他們只是在管理的方式不同,這通常還依賴於您的需求。因此,如果您在尋找最新的解決方案,FreeBSD更適應您;但如果您在尋找更多的普適性,那最好使用Linux。
原生FreeBSD Vs 原生Linux
- 兩者的原生系統的區別又有不同。就像我之前說的,Linux是一個Unix的替代系統,由Linus Torvalds編寫,並由網路上的許多極客一起協助實現的。Linux有一個現代系統所需要的全部功能,諸如虛擬內存、共享庫、動態載入、優秀的內存管理等。它以GPL許可證發布。
- FreeBSD也繼承了Unix的許多重要的特性。FreeBSD作為在加州大學開發的BSD的一種發行版。開發BSD的最重要的原因是用一個開源的系統來替代AT&T操作系統,從而給用戶無需AT&T許可證便可使用的能力。
- 許可證的問題是開發者們最關心的問題。他們試圖提供一個最大化克隆Unix的開源系統。這影響了用戶的選擇,由於FreeBSD使用BSD許可證進行發布,因而相比Linux更加自由。
支持的軟體包
- 從用戶的角度來看,另一個二者不同的地方便是軟體包以及從源碼安裝的軟體的可用性和支持。Linux只提供了預編譯的二進位包,這與FreeBSD不同,它不但提供預編譯的包,而且還提供從源碼編譯和安裝的構建系統。使用它的 ports 工具,FreeBSD給了您選擇使用預編譯的軟體包(默認)和在編譯時定製您軟體的能力。(LCTT 譯註:此處說明有誤。Linux 也提供了源代碼方式的包,並支持自己構建。)
- 這些 ports 允許您構建所有支持FreeBSD的軟體。而且,它們的管理還是層次化的,您可以在/usr/ports下找到源文件的地址以及一些正確使用FreeBSD的文檔。
- 這些提到的 ports給予你產生不同軟體包版本的可能性。FreeBSD給了您通過源代碼構建以及預編譯的兩種軟體,而不是像Linux一樣只有預編譯的軟體包。您可以使用兩種安裝方式管理您的系統。
FreeBSD 和 Linux 常用工具比較
- 有大量的常用工具在FreeBSD上可用,並且有趣的是他們由FreeBSD的團隊所擁有。相反的,Linux工具來自GNU,這就是為什麼在使用中有一些限制。(LCTT 譯註:這也是 Linux 正式的名稱被稱作「GNU/Linux」的原因,因為本質上 Linux 其實只是指內核。)
- 實際上FreeBSD採用的BSD許可證非常有益且有用。因此,您有能力維護核心操作系統,控制這些應用程序的開發。有一些工具類似於它們的祖先 - BSD和Unix的工具,但不同於GNU的套件,GNU套件只想做到最小的向後兼容。
標準 Shell
- FreeBSD默認使用tcsh。它是csh的評估版,由於FreeBSD以BSD許可證發行,因此不建議您在其中使用GNU的組件 bash shell。bash和tcsh的區別僅僅在於tcsh的腳本功能。實際上,我們更推薦在FreeBSD中使用sh shell,因為它更加可靠,可以避免一些使用tcsh和csh時出現的腳本問題。
一個更加層次化的文件系統
- 像之前提到的一樣,使用FreeBSD時,基礎操作系統以及可選組件可以被很容易的區別開來。這導致了一些管理它們的標準。在Linux下,/bin,/sbin,/usr/bin或者/usr/sbin都是存放可執行文件的目錄。FreeBSD不同,它有一些附加的對其進行組織的規範。基礎操作系統被放在/usr/local/bin或者/usr/local/sbin目錄下。這種方法可以幫助管理和區分基礎操作系統和可選組件。
結論
FreeBSD和Linux都是自由且開源的系統,他們有相似點也有不同點。上面列出的內容並不能說哪個系統比另一個更好。實際上,FreeBSD和Linux都有自己的特點和技術規格,這使它們與別的系統區別開來。那麼,您有什麼看法呢?您已經有在使用它們中的某個系統了么?如果答案為是的話,請給我們您的反饋;如果答案是否的話,在讀完我們的描述後,您怎麼看?請在留言處發表您的觀點。
via: http://www.unixmen.com/comparative-introduction-freebsd-linux-users/
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive