FreeBSD

FreeBSD是FreeBSD項目的發展成果，是開放原始碼的類Unix作業系統，基於BSD Unix的原始碼衍生發展而來。加州大學伯克利分校在1975年至1993年開發了BSD Unix作業系統。FreeBSD的許可證規定原始碼開放，允許任何人自由使用，任何人都可以獲得並使用它來滿足各種需求，也可以修改它，然後再重發布：此功能專為個人和公司量身定製，可用於創作各種基於FreeBSD的商業和非商業產品。儘管FreeBSD直接從BSD Unix衍生，但它從法律角度來看並不是「UNIX」，因為現在「UNIX」商標屬於國際開放標準組織，而FreeBSD並沒有使用該商標的授權。

FreeBSD第一個版本於1993年釋出。

FreeBSD支持許多硬體和體系架構。和其他BSD家族的作業系統一樣，核心、驅動程序以及所有使用者層（Userland）應用程式（如Unix shell和cat和ps等命令）都儲存在FreeBSD原始碼庫。FreeBSD也可以運行其他二進位軟體，比如Linux的。藉助ports和FreeBSD軟體包管理器pkg，使用者能安裝各種應用程式。根據2005年的調查，77％的BSD使用者使用FreeBSD，因此FreeBSD擁有BSD系列中最大的使用者社群。

如今個人和企業將FreeBSD用於各種用途，包括雅虎，蘋果，瞻博網絡，諾基亞，IBM，Yandex，Apache軟體基金會，Hotmail，索尼和許多其他用途。

## 使用情況

FreeBSD廣泛用於伺服器、防火牆和路由器。

FreeBSD支持各種X Window桌面，如Lumina和GNOME和KDE。

除了支持現在流行的x86-64、x86指令集架構，FreeBSD還支持ARM、MIPS以及PowerPC架構，亦可用於嵌入式系統。

### 訴訟

386BSD和FreeBSD均源自1992年的BSD發行版。1992年1月，BSDi發布BSD/386，後更名為BSD/OS，是基於BSD在1992年的發行版、和FreeBSD相似的作業系統。AT&T聲稱BSDi違反了AT&T的原始碼許可協議，並將其告上法庭。該場訴訟達成庭外和解，相關細節並未披露，公眾所知的只有BSDi將轉換4.4BSD-Lite為新的源碼基礎。雖然沒有參與訴訟，有人建議FreeBSD他們也應該將源碼基礎轉到4.4BSD-Lite。1994年11月，FreeBSD 2.0釋出，這是FreeBSD首版無任何AT&T代碼的版本。

## 特點

### 網路

FreeBSD支持IPv4，IPv6，SCTP，IPSec和無線網絡（Wi-Fi）。其IPv6和IPSec棧由KAME Project得到。

從FreeBSD 5.4開始支援共用位址冗餘協定（CARP）。CARP允許多節點共享IP位址群。所以如果有節點癱瘓，其他節點仍能接收請求。

### 儲存

FreeBSD的UFS文件系統支持軟更新和文件系統快照。FreeBSD通過GEOM架構支援RAID功能。

FreeBSD支持兩種數據加密基礎體系：GBDE和Geli。兩者操作均在磁碟層級上。GBDE由波爾-亨寧·坎普編寫，並在遵守雙BSD許可證（即「簡化BSD許可證」和「FreeBSD許可證」二者）情況發布；而Geli則是GBDE的替代品，它第一次在FreeBSD 6.0出現，由帕·雅·戴夫（Pawel Jakub Dawidek）編寫。

FreeBSD支持UFS、ZFS等多種文件系統。

## 開發

### 分支

FreeBSD開發者會同時維持至少兩種開發分支。-CURRENT（現在）分支時刻代表FreeBSD開發的最前沿。-STABLE分支為每個主要版本的FreeBSD而設，每4至6個月才會從此分支中更新一次-RELEASE分支。若一項功能足夠穩定成熟，它就很有可能向後移植（在FreeBSD開發者口語中稱為MFC或由CURRENT合併）到-STABLE分支。

## 許可協議

FreeBSD在BSD許可證下發布，允許任何人在保留版權和許可協議資訊的前提下隨意使用和發行。BSD許可協議並不限制將FreeBSD的原始碼在另一個協議下發行，因此任何團體都可以自由地將FreeBSD代碼融入它們的產品之中去。

## 發展團隊

FreeBSD發展採用Core Team的方式。Core Team的成員決定整個FreeBSD計劃的大方向，對於開發者問的問題有最後的決定權，其他的開發者也可以送出建設或是他們修改過的原始碼，但是Core Team保留最終的決定權，決定是否將這功能放進FreeBSD。這種方式與Linux發展大相逕庭。

### Contributor

也可以說是Submitter，無FreeBSD Subversion的存取權限，但是可以透過其它的方式，如提交Problem Reports或在Mailing list上參與討論，來貢獻FreeBSD。

### Committer

有對FreeBSD的Subversion存取的權限，可以將他的原始碼或是文件送到版本庫裡面。一個committer必須要在過去的12個月中有commit的動作。而一個活躍的committer指在每個月至少都有一次以上的commit動作。

雖然說沒有必要限制一個有commit權限的人只能在原始碼樹中可以存取的地方，但是如果一個committer要在他／她沒有做出貢獻或是不熟悉的地方，他／她必須要讀那個地方的歷史記錄，還有MAINTAINER檔案，確認這個部份的維護者對於更改這邊的原始碼有沒有什麼特殊的要求。

### Core Team

Core Team成員由committer互相推選出來，是整個FreeBSD計劃的領導人，他們提升活躍的contributor成為committer，還有可以指派「Hat」（指在計劃中負責一些特定工作或領域的人），也是對於決定整個計劃的大方向的最後仲裁者。在2004年7月1日，core team有9位成員，而core team選舉每兩年一次。

## 平台

FreeBSD所支持的平台依照支持程度分成四個等級。第一線平台（Tier 1，完整支持平台）目前包括x86、x86-64。第二線平台（Tier 2，發展平台）包括ARM、PC98、PowerPC。對於第一線與第二線平台，FreeBSD會維持維護及穩定性，同時也都會要求大多數新功能能在這些平台正常運作。

第三線平台（Tier 3，實驗平台）目前包括了MIPS及S/390，這等級的平台不為FreeBSD正式支持。

其他平台都歸類到第四線平台。

平台｜支持等級｜注意

IA-32｜Tier 1｜參見"i386"

x86-64｜Tier 1｜參見"amd64"

ARM｜Tier 2

NEC PC-9801｜Tier 2｜參見"pc98"

PowerPC｜Tier 2

Sun SPARC｜Tier 2｜只支援64-bit (V9)平台

MIPS｜Tier 3

S/390｜Tier 3

## 版本與歷史

### 初期歷史

FreeBSD的發展始於1993年，起源於386BSD。然而，因為386BSD原始碼的合理性受到質疑以及Novell（當時UNIX的版權擁有者）與柏克萊接連而來的訴訟，FreeBSD在1995年1月發布的2.0-RELEASE中以柏克萊加州大學的4.4BSD-Lite Release全面改寫。FreeBSD Handbook中有更多FreeBSD的發展歷史。

FreeBSD 2.0最值得注意的部份也許是對卡內基美隆大學的Mach Virtual Memory系統翻修以及FreeBSD Ports system的發明。前者對於高負荷的系統優化，後者則是建立了一套簡單且強大的機制維護第三方軟體。有不少大型站台都使用FreeBSD，像是cdrom.com（一個巨大的軟體收集站台），Hotmail以及Yahoo。

FreeBSD 3.0則引入了ELF binary格式，並開始支持多CPU系統（SMP，Symmetric multiprocessing）以及64位Alpha平台。3.x對於系統做了非常多的改革，這些措施在當時並沒有帶來好處，但卻是4.X成功的基石。

### FreeBSD 4

4.0-RELEASE於2000年3月發行，最後一個版本4.11-RELEASE於2005年1月發行，並支持到2007年1月。FreeBSD 4也是FreeBSD最長壽的主版本。FreeBSD 4發展出來的kqueue也移植到各種不同BSD平台。

### FreeBSD 5

FreeBSD 5的最後一個版本FreeBSD 5.5於2006年五月發行。

在FreeBSD 4的SMP架構下，在同一時間內只允許一個CPU進入核心（即Giant Lock），FreeBSD 5最大的改變在於改善底層核心Locking機制，審視並改寫核心程序代碼，使得不同的CPU可以同時進入系統核心，藉以增加效率。

另外一個重大的改變在於自5.3開始支持m:n線程的KSE（Kernel Scheduled Entities），表示m個使用者線程共享n個核心線程的模式。

這個版本的許多貢獻是由於商業化版本的BSD OS團隊的支持。

### FreeBSD 6

FreeBSD 6為一個-STABLE發展版本，FreeBSD 6.3在2008年1月18日發行，這個版本主要針對軟體的更新，並加入lagg（可以對多張網卡操作）的支持，並引入重新改寫的unionfs。FreeBSD 6.4在2008年11月28日發行。

### FreeBSD 7

FreeBSD 7為目前第二個-STABLE發展版本，在2007年6月19日進入發行程序，2008年2月27日7.0-RELEASE正式發布。2010年3月23日FreeBSD 7.3-RELEASE正式發布。新增的功能包括了：

- SCTP（實做完成）
- UFS日誌檔案系統：gjournal（實做完成）
- 移植昇陽所發展的DTrace（實做完成，但還未交付至CVS）
- 移植昇陽所發展的ZFS文件系統（實做完成）
- 使用GCC4（移植完成，目前為4.2.1）
- 對ARM與MIPS平台的支援
- 重寫過的USB stack（實做完成，但還未交付至CVS）
- Scalable concurrent malloc實做（已經可以使用）
- ULE排程表2.0（SCHED_ULE，實做完成），並修改加強為SCHED_SMP（實做完成），在交付至CVS時的正式名稱為ULE 3.0，這個版本在8核心的機器上以sysbench MySQL測試的結果，速度比Linux 2.6快約10%（無論是使用Google的tcmalloc或是glibc+cfs）
- Linux 2.6模擬層（已經可以使用）
- Camellia Block Cipher（實做完成）
- ZFS的運行

### FreeBSD 8

FreeBSD 8.0

FreeBSD 8.1

2010年7月24日發布FreeBSD 8.1-RELEASE，增加如下新特性：

- 虛擬化方面：Xen DOM-U、VirtualBox guest及host支持、層次式jail。
- NFS：對NFSv3 GSSAPI的支持，以及試驗性的NFSv4客戶端和伺服器。
- 802.11s D3.03 wireless mesh網路，以及虛擬Access Point支持。
- ZFS不再是試驗性的了。
- 基於Juniper Networks提供MIPS處理器的實驗性支持。
- SMP擴展性的增強，顯著改善在16核心處理器系統中的性能。
- VFS加鎖的重新實現，顯著改善文件系統的可擴展性。
- 顯著緩解緩衝區溢出和內核空指針問題。
- 可擴展的內核安全框架（MAC Framework）現已正式可用。
- 完全更新的USB堆棧改善了性能和設備兼容性，增加了USB target模式。

FreeBSD 8.2

FreeBSD 8.3

FreeBSD 8.4

### FreeBSD 9

FreeBSD 9.0

FreeBSD 9.0於2012年1月發布，是第一個9.x的FreeBSD穩定分支，有以下特性：

- 採用了新的安裝程序bsdinstall
- ZFS和NFS文件系統得到改進
- 升級了ATA/SATA驅動並支持AHCI
- 採用LLVM/Clang代替GCC
- 高效的SSH（HPN-SSH）
- PowerPC版支持索尼的PS3

FreeBSD 9.1

FreeBSD 9.1於2012年11月發布

FreeBSD 9.2

FreeBSD 9.2於2013年10月發布

FreeBSD 9.3

FreeBSD 9.3於2014年7月發布

### FreeBSD 10

FreeBSD 10.0

FreeBSD 10.0於2014年1月發布，這版本包含的重要改進包括：

- 在支持的平台上，clang(1)取代GCC成為了默認的系統編譯器。
- 系統引入了Unbound作為本地的緩存DNS伺服器。
- 基本系統中刪除了BIND。
- 使用來自NetBSD的bmake(1)取代了原有的make(1)。
- 使用了新的pkg(7)作為包管理工具。
- 刪去了舊式的包管理工具pkg_add(1)、pkg_delete(1)，及其相關工具。
- 大幅強化了支持虛擬化，新增了bhyve(8)虛擬機，以及virtio(4)和對微軟Hyper-V的原生半虛擬化支持。
- 為ZFS添加了用於SSD的TRIM支持。
- 為ZFS添加了高性能的LZ4壓縮演算法支持。

FreeBSD 10.1

FreeBSD 10.1於2014年11月6日正式發布

FreeBSD 10.2

FreeBSD 10.2於2015年8月13日正式發布。主要改進包括：

- resolvconf(8)更新至3.7.0，改進了DNS隱私保護。
- ntp更新至4.2.8p3，修正了大量先前版本的問題。
- 新增了用於支持虛擬化環境的rc(8)腳本growfs，用於在系統首次引導時擴大根文件系統。
- 更新了Linux(R) ABI兼容支持，以支持Centos(TM) 6 ports.
- 將drm更新至Linux(R) 3.8.13，支持同時運行多個X server。
- 針對FreeBSD/arm平台的大量更新及改進。
- 多個ZFS相關性能及可靠性改進，增加了大塊（1MB）支持。
- GNOME版本更新到3.14.2.
- KDE版本更新到4.14.3.

FreeBSD 10.3

FreeBSD 10.3於2016年3月25日正式發布

### FreeBSD 11

FreeBSD 11.0

FreeBSD 11.0於2016年9月22日正式發布

### FreeBSD 12

#### FreeBSD 12.0

FreeBSD 12.0於2018年12月11日正式發布

#### FreeBSD 12.1

FreeBSD 12.1於2019年11月4日正式發布

#### FreeBSD 12.2

FreeBSD 12.2於2020年10月27日正式發布

#### FreeBSD 12.3

FreeBSD 12.3於2021年12月7日正式發布

#### FreeBSD 12.4

FreeBSD 12.4於2022年12月5日正式發布

### FreeBSD 13

#### FreeBSD 13.0

FreeBSD 13.0於2022年4月13日正式發布

#### FreeBSD 13.1

FreeBSD 13.1於2022年5月16日正式發布

#### FreeBSD 13.2

FreeBSD 13.2於2023年4月11日正式發布

#### FreeBSD 13.3

FreeBSD 13.3於2024年3月5日正式發布

### FreeBSD 14

#### FreeBSD 14.0

FreeBSD 14.0於2023年11月20日正式發布

root 使用者的默認 shell 現在是 sh

OpenSSH 已更新至9.5p1

OpenSSL 已更新至3.0.12

bhyve現在支持 TPM 和 GPU 直通

在 amd64 和 arm64 平台上支持最多1024 個內核

ZFS 已升級到 OpenZFS 2.2，提供了顯著的性能改進

現在可以對運行日誌軟更新的 UFS 文件系統執行後台文件系統檢查

實驗性 ZFS 映像現已可用於 AWS 和 Azure

默認的郵件傳輸代理 (MTA) 現在是 Dragonfly Mail Agent(dma)，而不是 sendmail

### FreeBSD 15

#### FreeBSD 15.0

FreeBSD 15.0於2025年12月2日正式發布

#### FreeBSD 15.1

FreeBSD 15.1於2026年6月16日正式發布

## 命名規則

- A-CURRENT

在-CURRENT分支所使用的CVS Tag為`.`，固定稱為A-CURRENT，如目前-CURRENT分支為12-CURRENT，這個版本只建議開發者使用，通常在郵件論壇上測試過覺得沒有什麼大問題的功能會先加到這分支。

- A.B-STABLE

在-STABLE分支里所使用的CVS Tag為`RELENG_A`，如目前-STABLE分支為`RELENG_10`與`RELENG_9`。許多新功能在-CURRENT分支測試一段期間覺得沒有問題後就會將該項功能逆向移植（MFC，Merge from current）回`RELENG_10`。

- A.B-BETA、A.B-RC

這是當開發團隊認為-STABLE分支有足夠新功能或其他理由認為足以釋出新版FreeBSD時，會先將-STABLE分支名稱改為-BETA，表示要進入Release Cycle。

- A.B-RELEASE

-RELEASE分支使用的CVS Tag為`RELENG_A_B`或`RELENG_A_B_C`，這些CVS分支不會增加功能，只做安全維護。這些分支是在開發團隊認為-STABLE的功能累積到一定程度後，可以整理出來出新版本。譬如6.2-RELEASE、5.4-RELEASE。

- A.B.C-BETA、A.B.C-RC、A.B.C-RELEASE

當離上次釋出版本的時間太短時，FreeBSD團隊會考慮只在後面加上一個次要版號。

## 許可證

FreeBSD包含了GNU通用公共許可證、GNU寬通用公共許可證、ISC許可證、通用開發與散布許可證和啤酒軟體許可證的程序代碼，也有使用三條款和四條款的BSD許可證的程序代碼。另外有些驅動程序也包涵了二進位大型物件，像是Atheros公司的硬體抽象層。這使所有人都可以自由使用還有再散布FreeBSD。

不過，FreeBSD的核心和新開發的程序代碼大多都使用兩條款的BSD許可證釋出，許多使用GPL的程序代碼都必須經過淨室工程，以其他授權方式重寫，這主要是避免整個核心受到GPL影響。

## 已知問題

- 一般來說，FreeBSD支持的硬體較Linux少。安裝前請參考FreeBSD網站上Release Information里要安裝版本的Hardware Notes。
- 其他已知問題

## 相關書籍

- Absolute BSD, The Ultimate Guide to FreeBSD. Michael Lucas. No Starch Press, July 2002. ISBN 1-886411-74-3.
- BSD Hacks, 100 Industrial-Strength tips for BSD users and administrators. Dru Lavigne. O'Reilly, May 2004. ISBN 0-596-00679-9.
- The Complete FreeBSD, 4th Edition, Documentation from the Source. Greg Lehey. O'Reilly, April 2003 ISBN 0-596-00516-4.
- The Design and Implementation of the FreeBSD Operating System. Marshall Kirk McKusick and George V. Neville-Neil. Pearson Education. ISBN 0-201-70245-2. Expected availability August 2004.
- The FreeBSD Corporate Networkers Guide. Ted Mittelstaedt. Addison-Wesley, December 2000. Paperback, book & CD edition, 401 pages. ISBN 0-201-70481-1.
- Designing BSD Rootkits: A Introduction to Kernel Hacking. Joseph Kong, No Starch Press, US, March 29 2007. Paperback, 144 pages, ISBN 1-59327-142-5.

## IRC

正體中文：

- Freenode上的#bsdchat

其他channel可以參考 FreeBSD官方wiki的頁面。

## 基本資料

- 開發者：FreeBSD項目
- 作業系統家族：BSD
- 源碼模式：自由軟體
- 發行日期：1993年11月1日
- 軟體包管理系統：pkg
- 內核類別：宏內核 可載入核心模組
- 許可證： FreeBSD許可證（2條款的BSD許可證）、 FreeBSD文檔許可證
- 運作狀態：運作中
- 支援平台：IA-32, x86-64, SPARC, MIPS, PowerPC, ARM, RISC-V