自 2001 年起,當最後一個主要分支 DragonFly BSD 發布時,FreeBSD、OpenBSD、NetBSD 和 Mac OS X 代表了 UNIX 世界一次新的創新浪潮。所有這些操作系統分支都符合 POSIX,都為它們的用戶呈現了一個類似的命令行界面,並且都使用了使編程模式與應用程序用法特征盡可能類似的內核和系統庫。
從條文上講,BSD 不能算做 UNIX 系統,但是,BSD 各個分支代表開源 UNIX 這一觀點已被廣泛接受。令人感到驚奇的是,在 20 世紀 80 年代未和 90 年代初,運行於 PC 或 Mac 上的免費操作系統還沒有一個能夠冠以該名稱。UNIX 存在於大型機和可伸縮的處理器架構(Scalable Processor Architecture、SPARC)之上。各大私有 UNIX 公司已經瓜分了商業 UNIX 市場。
最初的 BSD 操作系統是 386BSD
1993 年發生的兩件大事永遠地改變了 UNIX:即成立了 NetBSD 小組和再次流行 386BSD 修補工具。在十年前,BSD UNIX 開發人員再次從加州大學伯克萊分校的各層工作人員中和哲學博士學生中進行招募,資金大部分來源於國防高級研究計劃署(Defense Advanced Research Projects Agency、DARPA),但是募集資金的形式從此結束。386BSD 項目是在 1985 年作為讓 BSD UNIX 運行於 Intel 芯片的嘗試而成立的。在 1989 年之前,該項目一直都沒有發行它的第一個版本,而且因為多種原因,該項目最終成為了 Dr. Dobb's Journal 1992 年 7 月宣稱的引用操作系統。對於 386BSD 0.1,已知有 250,000 次的下載量。
386BSD 主要基於 Bill 和 Lynne Jolitz 的觀點來改進 UNIX 所依賴的概念。他們的初衷是開發免費的操作系統。但事實證明,完全靠自己的力量支持一個完整的操作系統不是他們力所能及的。該系統最終輸給了由名不見經傳的芬蘭學生組成的編程隊伍幫助構建的 Linux。
FreeBSD 的歷史
最初決定將 BSD UNIX 構建於 Intel 芯片之上的另一個小組是在 1993 年成立的。依靠 Bill Jolitz 以前的工作成果,該小組於 1993 年 12 月推出了 FreeBSD 1.0 版。在 1997 年初的時候,項目領導人 Jordan Hubbard 推動了該項目的發展,並管理著基礎設施和 200 名開發人員。預計在今年年底,FreeBSD 可以推出 6.0 版本,該版本將成為所有免費的 UNIX 系統的最重要版本。FreeBSD 並不是對 UNIX 的克隆,雖然說其工作方式類似於 UNIX,並且其內核和系統 API 都符合 UNIX 標准。
FreeBSD 不像以前一樣僅僅是適用於 Intel-/AMD 的系統。它還可以運行於 SPARC64 計算機上,並在 Alpha 架構上已有相當長的運行歷史。如果 BSD 用戶對運行 Mac OS X 的芯片感興趣,那麼他可以切換到 Darwin OS,即 Mac OS X 的開源核心,Darwin OS 依賴於多數 FreeBSD V5.0 及其後繼產品。當然,NetBSD 自 1995 年起已運行在所有 Mac 架構之上。
哪些是 FreeBSD 具有而 Linux 不具有的功能
FreeBSD 是一個操作系統,而不僅僅是一個內核。但是,該說法並不意味著大致與以前的說法相同,因為內核的叫法是相當隨意的。在 UNIX 環境中,它意味著在完成引導過程之後,用戶無法訪問某些庫和可執行文件。內核管理著應用程序的硬件,但是目前許多 UNIX 類型的操作系統都為用戶級別的線程提供了一個角色,即管理內核資源。您可以安全地假定在運行時間內用戶無法訪問的任何東西都是內核的一部分。這並不意味著用戶無法影響內核的行為。例如,某些實用工具可以報告和調整內存管理,並且這些工具都明確表明是由用戶使用的。這些實用工具通過系統的 API 進行通信,後者不是內核的一部分,但它很明顯是操作系統的一部分。當然,FreeBSD 包括所有這些工具以及許多其他用於處理網絡和硬件特性的實用工具和應用程序。
如果比較完整的 Linux 內核下載和 FreeBSD 下載的內容,您就會了解到,許多下載內容都是相同的。也就是說,它們都有 IP 堆棧、內存管理例程、文件系統實現,等等。文件系統的層次結構具有明顯類似的起源,並且多數命令行應用程序具有相同的名稱和類似的命令行語義。當然,實際的實現有些不同,但您仍然能夠看到兩種系統都有類似的概念來源。架構方面的主要不同之處在於 FreeBSD 從所謂的緩沖區緩存 讀取文件的方式與 Linux 向其中寫入文件的方式的不同,嚴格地說,該緩存甚至還談不上是獨立於虛擬內存而存在的實體。Linux 始終自動管理緩沖區緩存的大小,但其內存管理例程的工作方式與 FreeBSD 的不同。
端口和文件系統
FreeBSD 在安裝後會立即工作。原因是 FreeBSD 系統使用 FreeBSD 安裝程序安裝了一個工作系統,該安裝程序又稱為 sysinstall,而且該程序使用具有干淨的 UNIX 起源的數據包管理系統。但是,FreeBSD 做到的遠不止這些:數據包管理得到了徹底改進;二進制和源數據包不再受制於不穩定的數據包管理系統,這是 Linux 分發時的常見問題。FreeBSD 使用 Ports 系統集成了數據包管理和 Internet 范圍的更新,使您可以在一個進程中解決源下載和編譯問題。有人可能會爭辯說 Debian 也具有類似的優點,但請不要忘記,Debian 是一個操作系統,它並不主要依賴於 Linux 內核。使用 Hurd 和 NetBSD 內核也可以正常工作,前提是 Debian 項目沒有忘記更新數據包。
說到 FreeBSD 文件系統,也會讓人聯想到它的 BSD UNIX 過去:它受 Fast File System (FFS) 和 UNIX File System (UFS) 名稱的支配。用戶更多時候像是在與文件系統的 FFS 部分進行交互,後者控制著文件和目錄的訪問。2003 年發布的 UFS 系統的第 2 版設置了文件系統限制和組織原始磁盤訪問的基本數據結構。UFS 和 FFS 在 NetBSD 和 OpenBSD 上也可以使用。當前 Linux 上更著名的日志文件系統在 FreeBSD 上是不可用的,這些系統中包括 Reiser File System (Reiser FS) 和 Journaling File System (JFS),這主要是出於安全方面的考慮。UFS 具有穩定性和可伸縮性等其他優點,因為其行為和性能依賴於長達二十多年的研究。
安全性和兼容性
其他一些優點可能會影響您的選擇,從而使您更認真地對待 FreeBSD。盡管沒有提供像 OpenBSD 這樣的代碼級別的安全性,但 FreeBSD 提供了強大的現成安全機制。自 FreeBSD V5.0 以後,您可以添加嚴密的訪問控制和安全策略(在 DARPA 提供支持的 TrustedBSD 項目中有其來源)。FreeBSD 支持訪問控制列表 (ACL) 和強制訪問控制 (MAC) 模塊。其系統管理員和經理自然可以訪問 MAC 模塊,但它使得小型企業使用嚴格應用於對外部世界公開的系統子集的安全標准來運行網絡。UFS V2 通過擴展屬性來提供極好的 ACL 支持;如果需要 ACL,則必須分別配置 UFS V1。
如果使用 Linux,可能會看到可用於 SuSE Linux 和 Mac OS X 的應用程序,但沒有單獨的針對 FreeBSD 的源文件或二進制文件。FreeBSD 能夠運行 Linux 二進制兼容模塊,您必須在安裝時或從命令行啟用它。同時,Linux 運行時庫可能是必需的,但您可以從 Ports 集中添加它們。
當然,FreeBSD 運行所有主要的基於 X Window System 的桌面 shell 程序,如 KDE 桌面和 GNU Network Object Model Environment (GNOME) 桌面。FreeBSD 以前是桌面用戶的 UNIX 選擇版本,直到基於 FreeBSD 的 OS X 出現,這種情況才發生改變。在配置為服務器或客戶機時,它仍然為 UNIX 用戶提供很好的操作並且不需要其他證書。
FreeBSD 派生產品
與多數具有較長歷史的操作系統一樣,FreeBSD 也產生了許多衍生產品。可以從 DC 啟動 FreeBSD 系統而不必編譯和生產 CD。此工作已由相當完善的 Free System Burned in Economy (FreeSBIE) V1.1 LiveCD 系統完成,此系統基於 FreeBSD V5.3。如果分配部分硬盤和寫入 master boot record (MBR) 可能存在風險,那麼最好先測試一下 FreeBSD。
DragonFly BSD 基於 FreeBSD V4.x 系列版本,但它根本沒有面向普通用戶。它在其網站的首頁上提到保護 Internet 范圍的群集文件系統 —— 這對首次使用 UNIX 的用戶來說好像關系不大。DragonFly BSD 由 FreeBSD 虛擬內存專家建立,它嘗試實現一個全新的方法來管理大量的安全文件系統和內存。
關於文檔
人們通常不提及隨 UNIX 系統附帶的操作系統文檔,因為此類文檔往往不像其自發的趣味性和有用性那樣容易讓人願意去閱讀它。FreeBSD 文檔是此規則的例外,因為它不太關注舊式的手冊頁、UNIX 文檔樣式或組織的副本。
FreeBSD 文檔以簡明的圖書形式在 Internet 上和紙張上出現,並以令人愉悅和合理的形式介紹每個系統和系統的每個方面。這並不預示著必須對 UNIX 系統很熟悉,事實上這對 UNIX 新手的使用非常有益。它不僅講解了簡單的 FreeBSD 安裝,而且還明確介紹了 FreeBSD 內核編譯或保護安全 FreeBSD 安裝的原因。有趣的是,可以看到 FreeBSD 文檔所忽略的內容,例如 Perl 和 Apache,以及該文檔所包含的內容,如 Berkeley Internet Name Daemon (BIND) 和特定於 FreeBSD 的存儲管理器 Vinum。Vinum 實現了虛擬磁盤驅動器管理,並且可以復制 RAID 0、RAID 1 和 RAID 5。
管理員的操作系統
可以將 FreeBSD 描述為網絡管理員的操作系統:它速度快,支持 SMP,並可以與大量的網絡工具集成。此外,FreeBSD 在膝上型電腦運行的時候,以及在運行 Office 應用程序和運行郵件客戶機和數據庫時,都表現得更為流暢和快速。其安裝例程對於 Microsoft® Windows® 高級用戶來說非常簡單。它為 Linux 用戶也提供了許多功能,原因是它提供二進制兼容模式,對於 Linux 專有的操作系統沒有改變。FreeBSD 極具可擴展性,並且可以作為 Linux 或 BSD 操作系統編寫的應用程序運行。但是,不要認為 FreeBSD 在免費操作系統中是一把萬能的“瑞士軍刀”:它既沒有 OpenBSD 的安全性,又沒有未來的 Open Solaris 版本的可擴展性。不過,它可以與任何運行於 Intel 芯片上的操作系統相媲美 —— 無論是商業的還是免費的,而且在許多方面,與其最接近的競爭者相比,它提供了一個更穩定和更具擴展性的平台。