本頁使用了標題或全文手工轉換

FreeBSD

維基百科,自由的百科全書
跳至導覽 跳至搜尋
FreeBSD
FreeBSD 10 Bootloader.png
FreeBSD 10的開機載入程式
開發者 FreeBSD專案
作業系統家族 BSD
運作狀態 支援中
原始碼模式 自由軟體
初始版本 1993年11月1日,​26年前​(1993-11-01
最新版本 12.1-RELEASE / 2019年11月4日,​4個月前​(2019-11-04
最新測試版本 12.1-RC2 / 2019年10月18日,​5個月前​(2019-10-18
軟體套件管理系統 pkg
支援平台 IA-32, x86-64, SPARC, MIPS, PowerPC, ARM, RISC-V
核心類別 單核心 可載入核心模組
授權條款 FreeBSD授權條款(2條款的BSD授權條款)、FreeBSD文件授權條款[1]
官方網站 www.freebsd.org

FreeBSD是一個類Unix作業系統,也是FreeBSD專案的發展成果。[2]FreeBSD是第一個開放原始碼的系統,他是由基於BSD Unix的原始碼衍生而來的。BSD Unix是加州大學伯克利分校在1975年至1993年開發的作業系統。FreeBSD被開發為自由軟體,這意味著其原始碼開放,人人都可以使用FreeBSD。任何人都可以獲得並使用它來滿足各種需求,也可以修改它,然後再重釋出它。此功能專為個人和公司量身客製化,可用於建立各種基於FreeBSD的商業和非商業產品。儘管FreeBSD直接從BSD衍生,但是從法律的角度來看,FreeBSD為 unix 系統,但它並不是「UNIX」。因為現在「UNIX」商標是屬於國際開放標準組織的。[3]FreeBSD的第一個版本於1993年釋出。

FreeBSD是一個支援許多硬體和體系架構的企業級系統。和其他BSD家族的作業系統一樣, FreeBSD其核心驅動程式以及所有的用戶層(Userland)應用程式(如Unix shell和cat和ps等命令)都儲存在原始碼庫中。[4]FreeBSD也可以執行其他二進位軟體,比如Linux的。藉助ports和FreeBSD軟體包管理器,你可以在其上安裝各種應用程式。根據2005年的調查,77%的BSD用戶使用FreeBSD,因此FreeBSD擁有BSD系列中最大的用戶社區。[5]

在今天,個人和企業都將FreeBSD用於多種用途,包括Yahoo! [6],蘋果[7],Juniper網路公司,諾基亞,IBM, Yandex的,Apache軟體基金會,Hotmail,索尼和許多其他用途。

使用情況[編輯]

FreeBSD被廣泛應用於:伺服器防火牆路由器

FreeBSD支援多種X Window桌面,如GNOMEKDE

除了支援現在流行的x86-64x86指令集架構,FreeBSD還支援ARMMIPS以及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-精簡版。1994年11月,FreeBSD 2.0釋出,這是FreeBSD的首個不含任何AT&T代碼的版本。

特點[編輯]

網路[編輯]

FreeBSD支援IPv4IPv6,SCTP,IPSec和無線網路(Wi-Fi)。其IPv6和IPSec棧是由KAME Project得到的。

從FreeBSD 5.4開始支援共享位址冗餘協定(CARP)。CARP允許多節點共享IP位址群。所以如果一個節點出現癱瘓,其他的節點仍然能接收請求。

儲存[編輯]

FreeBSD的UFS檔案系統支援軟更新英語Soft updates檔案系統快照。FreeBSD通過GEOM英語GEOM架構支援RAID功能。

FreeBSD支援兩種資料加密基礎體系:GBDE英語GBDEGeli英語Geli (software)。兩者操作均在磁碟層級上。GBDE英語GBDE是由波爾-亨寧·坎普英語Poul-Henning Kamp所編寫的,並在遵守雙BSD授權條款(即「簡化BSD授權條款」和「FreeBSD授權條款」二者)的情況下釋出的。而Geli英語Geli (software)則是GBDE英語GBDE的替代品,它第一次在FreeBSD 6.0上出現,由帕·雅·戴夫(Pawel Jakub Dawidek)編寫。

FreeBSD支援UFSZFS等多種檔案系統。

安全[編輯]

移植[編輯]

開發[編輯]

管理架構[編輯]

分支[編輯]

基金會[編輯]

授權條款[編輯]

FreeBSD在BSD授權條款下釋出[8],允許任何人在保留著作權和授權條款資訊的前提下隨意使用和發行。BSD授權條款並不限制將FreeBSD的原始碼在另一個協定下發行,因此任何團體都可以自由地將FreeBSD代碼融入它們的產品之中去。

發展團隊[編輯]

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

Contributor[編輯]

也可以說是Submitter,無FreeBSD的CVS的存取權限,但是可以透過其它的方式,例如提交Problem Reports或是在Mailing list上面參與討論,來對FreeBSD做出貢獻。 [9]

Committer[編輯]

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

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

Core Team[編輯]

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

平台[編輯]

FreeBSD所支援的平台依照支援程度分成四個等級。[11] 第一線平台(Tier 1,完整支援平台)目前包括x86x86-64。第二線平台(Tier 2,發展平台)包括ARMPC98PowerPC。對於第一線與第二線平台,FreeBSD會維持維護及穩定性,同時大多數的新功能也都會被要求在這些平台上能夠正常運作。

第三線平台(Tier 3,實驗平台)目前包括了MIPSS/390英語IBM ESA/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英語IBM ESA/390 Tier 3

版本與歷史[編輯]

FreeBSD初期歷史[編輯]

FreeBSD的發展始於1993年,起源於386BSD英語386BSD[12]然而,因為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月[13]。FreeBSD 4也是FreeBSD最長壽的主版本。在FreeBSD 4所發展出來的kqueue也被移植到各種不同BSD平台。

FreeBSD 5[編輯]

Free BSD 5的最後一個版本FreeBSD5.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日發行[14],這個版本主要針對軟體的更新,並加入lagg(可以對多張網卡操作)的支援,並引入重新覆寫的unionfs。FreeBSD 6.4在2008年11月28日發行[15]

FreeBSD 7[編輯]

FreeBSD 7為目前第二個-STABLE發展版本,在2007年6月19日進入發行程式[16],2008年2月27日7.0-RELEASE正式釋出。2010年3月23日FreeBSD 7.3-RELEASE正式釋出[17]。新增的功能包括了:

FreeBSD 8[編輯]

FreeBSD 8.0[29]
FreeBSD 8.1[30]

2010年7月24日釋出FreeBSD 8.1-RELEASE, [31] 增加如下新特性:[32]

  • 虛擬化方面: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[33]
FreeBSD 8.3[34]
FreeBSD 8.4[35]

FreeBSD 9[編輯]

FreeBSD 9.0[36]

FreeBSD 9.0於2012年1月釋出,該版本是第一個9.x的FreeBSD穩定分支。該版本具有以下特性:

  • 採用了新的安裝程式bsdinstall
  • ZFSNFS檔案系統得到改進
  • 升級了ATA/SATA驅動並支援AHCI
  • 採用LLVM/Clang代替GCC
  • 高效的SSH(HPN-SSH)
  • PowerPC版支援索尼的PS3
FreeBSD 9.1[37]

FreeBSD 9.1於2012年11月發布

FreeBSD 9.2[38]

FreeBSD 9.2於2013年10月發布

FreeBSD 9.3[39]

FreeBSD 9.3於2014年7月發布

FreeBSD 10[編輯]

FreeBSD 10.0[40]

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英語Bhyve(8) 虛擬機,以及 virtio(4) 和對微軟 Hyper-V英語Hyper-V 的原生半虛擬化支援。
  • ZFS 添加了用於 SSD 的 TRIM 支援。
  • ZFS 添加了高效能的 LZ4 壓縮演算法支援。
FreeBSD 10.1[41]

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

FreeBSD 10.2[42]

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

  • 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[44]

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

FreeBSD 11[編輯]

FreeBSD 11.0[45]

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

FreeBSD 12[編輯]

FreeBSD 12.0[46][編輯]

FreeBSD 12.1[編輯]

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

命名規則[編輯]

  • A-CURRENT
在 -CURRENT分支所使用的CVS Tag為.,固定被稱為A-CURRENT,如目前的 -CURRENT分支為12-CURRENT,這個版本只建議開發者使用,通常在郵件論壇上測試過覺得沒有什麼大問題的功能會先被加到這個分支里。
  • A.B-STABLE
在 -STABLE分支里所使用的CVS Tag為RELENG_A,如目前的 -STABLE分支為RELENG_10RELENG_9。許多新的功能在 -CURRENT分支測試一段期間覺得沒有問題後就會將該項功能逆向移植(MFC,Merge from current)回RELENG_10
  • A.B-BETAA.B-RC
這是當開發團隊認為 -STABLE分支有足夠的新功能或其他理由認為足以釋出新版的FreeBSD時,會先將 -STABLE分支的名稱改為 -BETA,表示要進入Release Cycle。
  • A.B-RELEASE
在 -RELEASE分支里所使用的CVS Tag為RELENG_A_BRELENG_A_B_C,這些CVS分支不會有功能的增加,只做安全性的維護。這些分支是在開發團隊認為 -STABLE內的功能累積到一定程度後,可以整理出來出新的版本。譬如6.2-RELEASE、5.4-RELEASE。
  • A.B.C-BETAA.B.C-RCA.B.C-RELEASE
當離上次釋出版本的時間太短時,FreeBSD團隊會考慮只在後面加上一個次要版號。

授權條款[編輯]

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

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

已知問題[編輯]

  • 一般來說,FreeBSD所支援的硬體較Linux為少。安裝前請參考FreeBSD網站上Release Information [47]里要安裝版本的Hardware Notes。
  • 其他已知問題[48]

相關書籍[編輯]

  • 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[編輯]

正體中文:

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

參見[編輯]

參考文獻[編輯]

  1. ^ The FreeBSD Documentation License. Freebsd.org. 2012-12-31 [2013-05-27]. 
  2. ^ Sean Michael Kerner. 性能更快,FreeBSD的機器更少?. www.webcitation.org. 2008-02-29 [2018-03-10] (英語). 
  3. ^ Greg, Lehey. Complete FreeBSD. The Complete FreeBSD 4th. O'Reilly. 2003. ISBN 9780596005160. OCLC 51780648. 
  4. ^ WebCite query result. www.webcitation.org. [2018-03-10] (英語). 
  5. ^ The BSD Certification Group. BSD Usage Survey Report (PDF). 2005-10-31. 
  6. ^ David Mertz. Installing FreeBSD. 2010-08-22 [2018-03-10]. 
  7. ^ Apple - Mac OS X Server Snow Leopard - UNIX. 2011-06-09 [2018-03-10]. 
  8. ^ The FreeBSD Copyright
  9. ^ Additional FreeBSD Contributors
  10. ^ The FreeBSD Developers
  11. ^ Support for Multiple Architectures
  12. ^ About the FreeBSD Project
  13. ^ FreeBSD 4.x EoL
  14. ^ http://www.freebsd.org/releases/6.3R/announce.html
  15. ^ http://www.freebsd.org/releases/6.4R/announce.html
  16. ^ http://lists.freebsd.org/pipermail/cvs-src/2007-June/080102.html
  17. ^ http://www.freebsd.org/releases/7.3R/relnotes.html
  18. ^ http://lists.freebsd.org/pipermail/freebsd-current/2006-November/067218.html
  19. ^ http://lists.freebsd.org/pipermail/freebsd-current/2006-August/064932.html
  20. ^ http://lists.freebsd.org/pipermail/cvs-src/2007-April/076644.html
  21. ^ http://lists.freebsd.org/pipermail/cvs-src/2007-May/078451.html
  22. ^ http://lists.freebsd.org/pipermail/cvs-src/2006-January/058009.html
  23. ^ http://lists.freebsd.org/pipermail/freebsd-current/2007-March/070303.html
  24. ^ 存檔副本. [2007-06-10]. (原始內容存檔於2007-04-02). 
  25. ^ http://lists.freebsd.org/pipermail/cvs-src/2007-July/080748.html
  26. ^ http://people.freebsd.org/~jeff/sysbench.png
  27. ^ http://lists.freebsd.org/pipermail/cvs-src/2007-May/078078.html
  28. ^ 存檔副本. [2007-06-09]. (原始內容存檔於2007-06-11). 
  29. ^ FreeBSD 8.0-RELEASE Release Notes. [2013-10-02]. 
  30. ^ FreeBSD 8.1-RELEASE Release Notes. [2013-10-02]. 
  31. ^ http://www.freebsd.org/releases/8.1R/relnotes.html
  32. ^ http://www.freebsd.org/releases/8.0R/pressrelease.html
  33. ^ FreeBSD 8.2-RELEASE Release Notes. [2013-10-02]. 
  34. ^ FreeBSD 8.3-RELEASE Release Notes. [2013-10-02]. 
  35. ^ FreeBSD 8.4-RELEASE Release Notes. [2013-10-02]. 
  36. ^ FreeBSD 9.0-RELEASE Release Notes. [2012-01-03]. 
  37. ^ FreeBSD 9.1-RELEASE Release Notes. [2012-11-04]. 
  38. ^ FreeBSD 9.2-RELEASE Release Notes. [2013-09-27]. 
  39. ^ FreeBSD 9.3-RELEASE Release Notes. [2014-07-08]. 
  40. ^ FreeBSD 10.0-RELEASE Release Notes. [2014-01-14]. 
  41. ^ FreeBSD 10.1-RELEASE Release Notes. [2014-11-06]. 
  42. ^ FreeBSD 10.2-RELEASE Release Notes. [2015-08-06]. 
  43. ^ 存檔副本. [2015-08-15]. (原始內容存檔於2015-11-21). 
  44. ^ FreeBSD 10.2-RELEASE Release Notes. [2016-03-25]. 
  45. ^ FreeBSD 11.0-RELEASE Release Notes. [2016-09-22]. 
  46. ^ https://www.freebsd.org/releases/12.0R/relnotes.html
  47. ^ http://www.freebsd.org/releases/
  48. ^ FreeBSD 常見問答集. [永久失效連結]

外部連結[編輯]