打开主菜单

FreeBSD

免費的类尤納克斯操作系統

FreeBSD是一个类Unix操作系统,也是FreeBSD项目的发展成果。[2]FreeBSD是第一个开放源代码的系统,他是由基于BSD Unix的源代码衍生而来的。BSD Unix是加州大学伯克利分校在1975年至1993年开发的操作系统。FreeBSD被开发为自由软件,这意味着其源代码开放,人人都可以使用FreeBSD。任何人都可以获得并使用它来满足各种需求,也可以修改它,然后再重发布它。此功能专为个人和公司量身定制,可用于创建各种基于FreeBSD的商业和非商业产品。尽管FreeBSD直接从BSD衍生,但是从法律的角度来看,FreeBSD并不是“UNIX”。因为现在“UNIX”商标是属于国际开放标准组织的。[3]FreeBSD的第一个版本于1993年发布。

FreeBSD
FreeBSD 10 Bootloader.png
FreeBSD 10的开机载入程序
开发者 FreeBSD项目
作業系統家族 BSD
運作狀態 支援中
源码模式 自由软件
初始版本 1993年11月1日,​25年前​(1993-11-01
最新版本 12.0-RELEASE/ 2018年12月11日,​8個月前​(2018-12-11
最新測試版本 12.0-RC3/ 2018年12月1日,​8個月前​(2018-12-01
软件包管理系统 pkg
支援平台 IA-32, x86-64, SPARC, MIPS, PowerPC, ARM, RISC-V
内核类别 宏内核 可載入核心模組
许可证 FreeBSD许可证(2条款的BSD许可证)、FreeBSD文檔許可證[1]
官方網站 www.freebsd.org

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,索尼和许多其他用途。

目录

使用情况编辑

一些被企业广泛应用的功能:

电子邮件服务器防火墙smartftpDNS路由器

多种 X Window 桌面,如 GNOMEKDE。还有一些定制桌面的项目,你会喜欢 TrueOS ,其试图提供一个定制版本的桌面系统。默认情况下,他有一个图形的环境,便于用户之间使用。

Freebsd 有一个易于使用的软件许可证,这为用户和企业提供了许多自由便利,并让他们可以在自己的专有软件产品中自由使用FreeBSD的源代码。

除了支持一些流行的平台(如 x86x86-64等等。 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的TCP/IP栈区是基于BSD 4.2来实现的,因为它卓越的协议表现,从而被普遍的接受。FreeBSD还支持IPv6,SCTP,IPSec和无线网络(Wi-Fi)。其IPv6和IPSec栈区是由KAME Project得到的。同样的,FreeBSD支持IPX和AppleTalk协议,但是它们被认为是陈旧的,因此被计划在未来的FreeBSD 11.0上停止支持。

从FreeBSD 5.4开始,共享地址冗余协定(CARP)就从OpenBSD Project中被接受。CARP允许多节点共享IP地址群。所以如果一个节点出现瘫痪,其他的节点仍然能接收请求。

存储编辑

FreeBSD的存储方式,有多种独特的特性。例如软更新英语Soft updates可以在系统崩溃的时候用来保护Unix文件系统(一种通用于BSD的文件系统)的一致性。而文件系统快照,则可以允许有效率的制作Unix文件系统的瞬时快照。另外通过GEOM英语GEOM这个模块性基础体系,就可以对RAID提供支持(仅限于RAID 0和1,RAID 3目前支持)。除此之外还可以支持全盘加密英语Disk encryption日志文件系统、串联机制、高速缓存存储器、以及访问基于网络的系统。GEOM英语GEOM也允许建立复杂的结合(“链接”)机制的存储解决方案。[8]

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等多种文件系统。

安全编辑

移植编辑

第三方软件编辑

兼容Linux编辑

GNU/Linux上的软件的源代码经过编译,大多数也可以在FreeBSD上运行。

开发编辑

管理架构编辑

分支编辑

基金会编辑

许可协议编辑

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

發展團隊编辑

FreeBSD发展采用Core Team的方式。Core Team的成员决定整个FreeBSD计划的大方向,对于开发者问的问题有最后的决定权,其他的开发者也可以送出建设或是他们修改过的源代码,但是Core Team保留最终的决定权,决定是否将这功能放进FreeBSD。这种方式与Linux发展大相径庭。

Contributor编辑

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

Committer编辑

有对FreeBSD的Subversion存取的权限,可以将他的源代码或是文件送到版本库里面。一个committer必须要在过去的12个月中有commit的动作。而一个活跃的committer指在每个月至少都有一次以上的commit动作。

虽然说没有必要限制一个有commit权限的人只能在源代码树中可以存取的地方,但是如果一个committer要在他/她没有做出贡献或是不熟悉的地方,他/她必须要读那个地方的历史记录,还有MAINTAINER档案,确认这个部份的维护者对于更改这边的源代码有没有什么特殊的要求。[11]

Core Team编辑

Core Team成员由committer互相推选出来,是整个FreeBSD计划的领导人,他们提升活跃的contributor成为committer,还有可以指派「Hat」(指在计划中负责一些特定工作或领域的人),也是对于决定整个计划的大方向的最后仲裁者。在2004年7月1日,core team有9位成员,而core team选举每两年举行一次。

平台编辑

FreeBSD所支持的平台依照支持程度分成四个等级。[12] 第一线平台(Tier 1,完整支持平台)目前包括i386AMD64。第二线平台(Tier 2,发展平台)包括ARMIA-64PC98PowerPCSPARC64英语SPARC64。对于第一线与第二线平台,FreeBSD会维持维护及稳定性,同时大多数的新功能也都会被要求在这些平台上能够正常运作。

第三线平台(Tier 3,实验平台)目前包括了MIPSS/390英语IBM ESA/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英语IBM ESA/390 Tier 3

版本與歷史编辑

FreeBSD初期歷史编辑

FreeBSD的发展始于1993年,起源于386BSD英语386BSD[13]然而,因为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月[14]。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日发行[15],这个版本主要针对软件的更新,并加入lagg(可以对多张网卡操作)的支持,并引入重新改写的unionfs。FreeBSD 6.4在2008年11月28日发行[16]

FreeBSD 7编辑

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

FreeBSD 8编辑

FreeBSD 8.0[30]
FreeBSD 8.1[31]

2010年7月24日发布FreeBSD 8.1-RELEASE, [32] 增加如下新特性:[33]

  • 虚拟化方面: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[34]
FreeBSD 8.3[35]
FreeBSD 8.4[36]

FreeBSD 9编辑

FreeBSD 9.0[37]

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

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

FreeBSD 9.1於2012年11月發布

FreeBSD 9.2[39]

FreeBSD 9.2於2013年10月發布

FreeBSD 9.3[40]

FreeBSD 9.3於2014年7月發布

FreeBSD 10编辑

FreeBSD 10.0[41]

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[42]

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

FreeBSD 10.2[43]

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

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

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

FreeBSD 11编辑

FreeBSD 11.0[46]

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

時間線编辑

 

命名规则编辑

  • 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。
  • 壓縮/解壓縮工具 /usr/bin/tar遺失的問題,大多數的第三方套件的安裝都是用tar去解壓縮的,有些第三方套件會覆蓋這個tar,如果新的tar無法正常產生,可能導致之後其它的第三方套件都無法安裝了。
  • 有些第三方套件在安裝時並不提供預設的組態檔,因此在安裝完後可能無法正常起動它們,需要另外手動去建立它們執行所需的組態檔。
  • 其他已知問題[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. Internet News, February 29, 2008. [2018-03-10] (英语). 
  3. Greg., Lehey,. Complete FreeBSD. The Complete FreeBSD 4th ed. 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). 31 October 2005. 
  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. Lucas 2007,18. DISK TRICKS WITH GEOM.
  9. The FreeBSD Copyright
  10. Additional FreeBSD Contributors
  11. The FreeBSD Developers
  12. Support for Multiple Architectures
  13. About the FreeBSD Project
  14. FreeBSD 4.x EoL
  15. http://www.freebsd.org/releases/6.3R/announce.html
  16. http://www.freebsd.org/releases/6.4R/announce.html
  17. http://lists.freebsd.org/pipermail/cvs-src/2007-June/080102.html
  18. http://www.freebsd.org/releases/7.3R/relnotes.html
  19. http://lists.freebsd.org/pipermail/freebsd-current/2006-November/067218.html
  20. http://lists.freebsd.org/pipermail/freebsd-current/2006-August/064932.html
  21. http://lists.freebsd.org/pipermail/cvs-src/2007-April/076644.html
  22. http://lists.freebsd.org/pipermail/cvs-src/2007-May/078451.html
  23. http://lists.freebsd.org/pipermail/cvs-src/2006-January/058009.html
  24. http://lists.freebsd.org/pipermail/freebsd-current/2007-March/070303.html
  25. 存档副本. [2007-06-10]. (原始内容存档于2007-04-02). 
  26. http://lists.freebsd.org/pipermail/cvs-src/2007-July/080748.html
  27. http://people.freebsd.org/~jeff/sysbench.png
  28. http://lists.freebsd.org/pipermail/cvs-src/2007-May/078078.html
  29. 存档副本. [2007-06-09]. (原始内容存档于2007-06-11). 
  30. FreeBSD 8.0-RELEASE Release Notes. [2013-10-02]. 
  31. FreeBSD 8.1-RELEASE Release Notes. [2013-10-02]. 
  32. http://www.freebsd.org/releases/8.1R/relnotes.html
  33. http://www.freebsd.org/releases/8.0R/pressrelease.html
  34. FreeBSD 8.2-RELEASE Release Notes. [2013-10-02]. 
  35. FreeBSD 8.3-RELEASE Release Notes. [2013-10-02]. 
  36. FreeBSD 8.4-RELEASE Release Notes. [2013-10-02]. 
  37. FreeBSD 9.0-RELEASE Release Notes. [2012-01-03]. 
  38. FreeBSD 9.1-RELEASE Release Notes. [2012-11-04]. 
  39. FreeBSD 9.2-RELEASE Release Notes. [2013-09-27]. 
  40. FreeBSD 9.3-RELEASE Release Notes. [2014-07-08]. 
  41. FreeBSD 10.0-RELEASE Release Notes. [2014-01-14]. 
  42. FreeBSD 10.1-RELEASE Release Notes. [2014-11-06]. 
  43. FreeBSD 10.2-RELEASE Release Notes. [2015-08-06]. 
  44. https://www.freebsdchina.org/document_28_70771.html
  45. FreeBSD 10.2-RELEASE Release Notes. [2016-03-25]. 
  46. FreeBSD 11.0-RELEASE Release Notes. [2016-09-22]. 
  47. http://www.freebsd.org/releases/
  48. FreeBSD 5.X、6.X常見問答集. freebsd. (原始内容存档于2012-12-24). 

外部链接编辑