自 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 的不同。