FreeBSD

维基百科,自由的百科全书
跳转至: 导航搜索
FreeBSD
FreeBSD logo.png
FreeBSD 10的開機載入程式
公司 / 开发者 FreeBSD專案
作業系統家族 BSD
運作狀態 支援中
源码模式 自由軟體
最新穩定版本 10.0 / 2014年1月20日;5個月前 (2014-01-20)
最新測試版本 10.0-RC5 / 2014年1月8日;5個月前 (2014-01-08)
支援平台 i386, AMD64, SPARC, SPARC64, IA-64, PC-98, PowerPC, ARM architecture
内核类别 單核心
许可证 FreeBSD許可證(2条款的BSD許可證)、FreeBSD文檔許可證[1]
官方網站 FreeBSD官方網站

FreeBSD是一种自由類Unix操作系统,它起源于AT&T Unix,是经过BSD386BSD4.4BSD发展而来的類Unix的一个重要分支。虽然出于法律原因FreeBSD不能称为Unix,但它是BSD的直接后裔,而BSD历史上被称为BSD UnixBerkeley Unix。FreeBSD拥有超过200名活跃开发者和上千名贡献者。

FreeBSD被认为是自由操作系统中的不知名的巨人。它不是Unix,但如Unix一样运行,兼容POSIX。作為一個作業系統,FreeBSD被認為相當穩健可靠。

FreeBSD是以一個完善的作業系統的定位來做開發。其核心驅動程式以及所有的使用者層(Userland)應用程式(比方說是Shell)均由同一原始碼版本控制系統保存(目前使用Subversion並與CVS相容)。相較於另一知名的的作業系統Linux,其核心為一組開發人員設計,而使用者應用程式則交由他人開發(例如GNU計劃),最後再由其他團體整合並包裝成Linux套件

FreeBSD預設是无桌面環境命令行界面,想要使用桌面環境必須自行安裝,或是使用PC-BSD之類的桌面發行版。

历史[编辑]

特点[编辑]

网络[编辑]

存储[编辑]

安全[编辑]

移植[编辑]

第三方软件[编辑]

兼容Linux[编辑]

开发[编辑]

管理架构[编辑]

分支[编辑]

基金会[编辑]

许可协议[编辑]

FreeBSD在BSD許可證下发布[2],允许任何人在保留版权和许可协议信息的前提下随意使用和发行。BSD许可协议并不限制将FreeBSD的源代码在另一个协议下发行,因此任何团体都可以自由地将FreeBSD代码融入它们的产品之中去。

發展團隊[编辑]

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

Contributor [3][编辑]

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

Committer [4][编辑]

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

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

Core Team [5][编辑]

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

平台[6][编辑]

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

第三線平台(Tier 3,實驗平台)目前包括了MIPSS/390,這個等級的平台不被FreeBSD正式支援。

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

平台 支持等級 注意
IA-32 Tier 1 參見"i386"
x86-64 Tier 1 參見"amd64"
ARM Tier 2
Itanium (IA-64) 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初期歷史[编辑]

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

FreeBSD 5[编辑]

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

FreeBSD 7[编辑]

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

FreeBSD 8[编辑]

2009年11月27日发布,2010年07月24日发布FreeBSD 8.1-RELEASE, [24] 增加如下新特性:[25]

  • 虚拟化方面: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.0[26]
FreeBSD 8.1[27]
FreeBSD 8.2[28]
FreeBSD 8.3[29]
FreeBSD 8.4[30]

FreeBSD 9[编辑]

FreeBSD 9.0[31]

FreeBSD 9.0于2012年1月发布[32],该版本是第一个9.x的FreeBSD稳定分支。该版本具有以下特性:

  • 采用了新的安装程序bsdinstall
  • ZFSNFS文件系统得到改进
  • 升级了ATA/SATA驱动并支持AHCI
  • 采用LLVM/Clang代替GCC
  • 高效的SSH(HPN-SSH)
  • PowerPC版支持索尼的PS3
FreeBSD 9.1[33]
FreeBSD 9.2[34]

FreeBSD 10[编辑]

FreeBSD 10.0于2014年1月宣布FreeBSD的10.0-RELEASE的可用性。这是stable/10分支的第一个版本。一些亮点:

  • GCC默认情况下,在体系结构,其中铛(1)是默认的编译器不再安装。
  • 未绑定的已导入到基础系统作为本地缓存DNS解析器。
  • BIND已从基本系统中移除。
  • 使(1)已被替换为B进行(1),从NetBSD项目获得的。
  • 封装(7)现在是默认的包管理实用工具。
  • 使用pkg_add(1)的pkg_delete(1),及相关的工具已被删除。
  • 在虚拟化的重大的改进,包括增加bhyve(8)的virtio(4),和原生的半虚拟化驱动程序提供了对FreeBSD支持微软的Hyper-V来宾操作系统。
  • 对固态硬盘TRIM​​支持已被添加到ZFS。
  • 支持高性能LZ4压缩算法已被添加到ZFS。

時間線[编辑]

FreeBSD-TimeLine.png

命名规则[编辑]

  • A-CURRENT
在 -CURRENT分支所使用的CVS Tag為.,固定被稱為A-CURRENT,如目前的 -CURRENT分支為7-CURRENT,這個版本只建議開發者使用,通常在郵件論壇上測試過覺得沒有什麼大問題的功能會先被加到這個分支裡。
  • A.B-STABLE
在 -STABLE分支裡所使用的CVS Tag為RELENG_A,如目前的 -STABLE分支為RELENG_6RELENG_5。許多新的功能在 -CURRENT分支測試一段期間覺得沒有問題後就會將該項功能逆向移植(MFC,Merge from current)回RELENG_6
  • 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宽通用公共许可证ISCCDDLBeerware許可證的程式碼,也有使用三條款和四條款的BSD許可證的程式碼。另外有些驅動程式也包涵了binary blob,像是Atheros公司的硬體抽象層。這使得所有人都可以自由地使用還有再散布FreeBSD。

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

已知問題[编辑]

  • 在安裝上,一般來說,FreeBSD所支援的硬體較Linux為少。安裝前請參考FreeBSD網站上Release Information [35]裡要安裝版本的Hardware Notes。
  • 壓縮/解壓縮工具 /usr/bin/tar遺失的問題,大多數的第三方套件的安裝都是用tar去解壓縮的,有些第三方套件會覆蓋這個tar,如果新的tar無法正常產生,可能導致之後其它的第三方套件都無法安裝了。
  • 有些第三方套件在安裝時並不提供預設的組態檔,因此在安裝完後可能無法正常起動它們,需要另外手動去建立它們執行所需的組態檔。
  • 其他已知問題[36]

相关书籍[编辑]

  • 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. ^ http://www.freebsd.org/copyright/freebsd-license.html
  3. ^ http://www.freebsd.org/doc/en/articles/contributors/contrib-additional.html
  4. ^ http://www.freebsd.org/doc/en/articles/contributors/staff-committers.html
  5. ^ http://www.freebsd.org/doc/en/articles/contributors/staff-core.html
  6. ^ Support for Multiple Architectures
  7. ^ About the FreeBSD Project
  8. ^ FreeBSD 4.x EoL
  9. ^ http://www.freebsd.org/releases/6.3R/announce.html
  10. ^ http://www.freebsd.org/releases/6.4R/announce.html
  11. ^ http://lists.freebsd.org/pipermail/cvs-src/2007-June/080102.html
  12. ^ http://www.freebsd.org/releases/7.3R/relnotes.html
  13. ^ http://lists.freebsd.org/pipermail/freebsd-current/2006-November/067218.html
  14. ^ http://lists.freebsd.org/pipermail/freebsd-current/2006-August/064932.html
  15. ^ http://lists.freebsd.org/pipermail/cvs-src/2007-April/076644.html
  16. ^ http://lists.freebsd.org/pipermail/cvs-src/2007-May/078451.html
  17. ^ http://lists.freebsd.org/pipermail/cvs-src/2006-January/058009.html
  18. ^ http://lists.freebsd.org/pipermail/freebsd-current/2007-March/070303.html
  19. ^ http://lists.freebsd.org/pipermail/freebsd-current/2007-January/068404.html
  20. ^ http://lists.freebsd.org/pipermail/cvs-src/2007-July/080748.html
  21. ^ http://people.freebsd.org/~jeff/sysbench.png
  22. ^ http://lists.freebsd.org/pipermail/cvs-src/2007-May/078078.html
  23. ^ http://www.emediawire.com/releases/2007/6/emw531216.htm
  24. ^ http://www.freebsd.org/releases/8.1R/relnotes.html
  25. ^ http://www.freebsd.org/releases/8.0R/pressrelease.html
  26. ^ FreeBSD 8.0-RELEASE Release Notes. [2013-10-02]. 
  27. ^ FreeBSD 8.1-RELEASE Release Notes. [2013-10-02]. 
  28. ^ FreeBSD 8.2-RELEASE Release Notes. [2013-10-02]. 
  29. ^ FreeBSD 8.3-RELEASE Release Notes. [2013-10-02]. 
  30. ^ FreeBSD 8.4-RELEASE Release Notes. [2013-10-02]. 
  31. ^ FreeBSD 9.0-RELEASE Release Notes. [2013-10-02]. 
  32. ^ http://www.freebsd.org/releases/9.0R/announce.html
  33. ^ FreeBSD 9.1-RELEASE Release Notes. [2013-10-02]. 
  34. ^ FreeBSD 9.2-RELEASE Release Notes. [2013-10-02]. 
  35. ^ http://www.freebsd.org/releases/
  36. ^ FreeBSD 5.X、6.X常見問答集. freebsd. 

参见[编辑]

外部链接[编辑]