第一章 介绍1.1. 简介1.2. 欢迎来到FreeBSD1.2.1. FreeBSD可以做什么1.2.2. 谁使用FreeBSD?1.3. 关于FreeBSD项目1.3.1. FreeBSD简史1.3.2. FreeBSD项目的目标1.3.3. FreeBSD开发模型1.3.4. 第三方软件1.3.5. 其他文件
感谢您对FreeBSD的关注!下一章涵盖了FreeBSD项目的各个方面,如它的历史、目标、开发模式等。
阅读本章以了解:
FreeBSD是一个开源、符合标准的类Unix操作系统,适用于x86(32位和64位)、ARM、AArch64、RISC-V、POWER和PowerPC计算机。它提供了如今被视为理所当然的所有功能,例如抢占式多任务处理、内存保护、虚拟内存、多用户设施、SMP支持、适用于不同语言和框架的所有开源开发工具,以及以X Window System、KDE或GNOME为中心的桌面功能。其独特优势在于:
Liberal Open Source license(自由开源许可证)
授予自由修改和扩展其源代码的权利,并将其纳入开源项目和封闭产品中,而不施加copyleft许可证的典型限制,并避免潜在的许可证不兼容问题。
Strong TCP/IP networking(强大的TCP/IP网络)
FreeBSD实现了行业标准协议,性能和可扩展性不断提高。这使得它在服务器和路由/防火墙角色中都很好地匹配——事实上,许多公司和供应商正是为此目的使用它的。
Fully integrated OpenZFS support(完全集成的OpenZFS支持)
包括 root-on-ZFS、ZFS引导环境、故障管理、管理委托、监狱支持、FreeBSD特定文档和系统安装程序支持。
Extensive security features(广泛的安全功能)
从强制访问控制(Mandatory Access Control)框架到Capsicum功能和沙盒机制。
为所有支持的架构提供了3万多个预构建包(Over 30 thousand prebuilt packages),以及Ports Collection,这使得构建定制包变得容易。
Documentation(文档)
除了手册和不同作者的书籍,涵盖了从系统管理到内核内部的主题,还有 man(1) 页,不仅用于用户空间守护进程、实用程序和配置文件,还用于内核驱动程序API(第9节)和单个驱动程序(第4节)。
Simple and consistent repository structure and build system(简单一致的存储库结构和构建系统)
FreeBSD为其所有组件(包括内核和用户空间)使用一个存储库。这一点,再加上统一且易于定制的构建系统和深思熟虑的开发过程,使得将FreeBSD与自己产品的构建基础设施集成变得容易。
Staying true to Unix philosophy(忠于Unix哲学)
更喜欢可组合性,而不是具有硬编码行为的单片“一体式”守护进程。
与Linux的二进制兼容性(Binary compatibility),这使得无需虚拟化即可运行许多Linux二进制文件。
FreeBSD基于加州大学伯克利分校计算机系统研究小组(Computer Systems Research Group,CSRG)的4.4BSD-Lite版本,并继承了BSD系统开发的杰出传统。除了CSRG提供的出色工作外,FreeBSD项目还投入了数千个工时来扩展功能和微调系统,以在现实负载情况下实现最大的性能和可靠性。FreeBSD提供了与其他开源和商业产品相当的性能和可靠性,并结合了其他任何地方都没有的尖端功能。
FreeBSD可以应用的应用程序实际上只受个人想象力的限制。从软件开发到工厂自动化,从库存控制到远程卫星天线的方位校正;如果它可以用商业UNIX®产品完成,那么FreeBSD也很可能做到!FreeBSD还从世界各地的研究中心和大学开发的数千个高质量应用程序中受益匪浅,这些应用程序通常几乎免费。
由于FreeBSD本身的源代码是免费提供的,因此该系统也可以针对特殊应用程序或项目进行几乎闻所未闻的定制,而且这种定制方式在大多数主要商业供应商的操作系统中通常是不可能的。以下只是人们目前使用FreeBSD的一些应用程序的示例:
Internet Services,互联网服务
FreeBSD内置的强大TCP/IP网络使其成为各种互联网服务的理想平台,例如:
Education,教育
计算机科学专业的学生以及相关工程领域的学生将从FreeBSD中受益。学习操作系统、计算机体系结构和网络的最佳方式莫过于FreeBSD可以提供的动手实践的底层体验。许多免费提供的CAD、数学和图形设计软件包也使其对那些对计算机的主要兴趣是完成其他工作的人非常有用!
Research,研究
由于整个系统的源代码可用,FreeBSD是操作系统以及计算机科学其他分支研究的优秀平台。FreeBSD的免费性质也使远程团队能够就想法或共享开发进行协作,而不必担心特殊的许可协议或对开放论坛讨论内容的限制。
Networking,网络
需要新路由器吗?名称服务器(DNS)?阻止人们进入内部网络的防火墙?FreeBSD可以轻松地将角落里未使用的PC变成具有复杂数据包过滤功能的高级路由器。
Embedded,嵌入的
FreeBSD是构建嵌入式系统的优秀平台。FreeBSD支持ARM、AArch64和PowerPC平台,加上强大的网络堆栈、尖端功能和宽松的BSD许可证,为构建嵌入式路由器、防火墙和其他设备奠定了良好的基础。
xFreeBSD版权版权所有1992-2025 FreeBSD项目。只要满足以下条件,允许以源代码和二进制形式重新分发和使用,无论是否进行修改: 1.重新分发源代码必须保留上述版权声明、本条件列表和以下免责声明。 2.二进制形式的重新分发必须在随分发提供的文档和/或其他材料中复制上述版权声明、此条件列表和以下免责声明。 本软件由作者和贡献者“按原样”("AS IS")提供,不承担任何明示或暗示的保证,包括但不限于对适销性和特定用途适用性的暗示保证。在任何情况下,作者或贡献者均不对因使用本软件而以任何方式产生的任何直接、间接、附带、特殊、惩戒性或后果性损害(包括但不限于采购替代商品或服务;使用、数据或利润损失;或业务中断)承担责任,无论是基于何种责任理论,无论是合同、严格责任还是侵权(包括疏忽或其他),即使已被告知此类损害的可能性。软件和文档中包含的观点和结论是作者的观点,不应被解释为代表FreeBSD项目的官方政策,无论是明示的还是暗示的。Desktop,桌面
FreeBSD使用免费提供的X11服务器和Wayland显示服务器,为廉价的(inexpensive)桌面解决方案做出了很好的选择。FreeBSD提供了许多开源桌面环境的选择,包括标准的GNOME和KDE图形用户界面。FreeBSD甚至可以从中央服务器启动“无盘”(diskless),使单个工作站更便宜、更容易管理。
Software Development,软件开发
基本的FreeBSD系统附带了全套开发工具,包括完整的C/C++编译器和调试器套件。通过ports和包集合(package collection)还可以支持许多其他语言。
FreeBSD可以免费下载,也可以在CD-ROM或DVD上获得。有关获取FreeBSD的更多信息,请参阅 获取FreeBSD。
FreeBSD以其web服务功能而闻名。FreeBSD基金会网站上列出了基于FreeBSD的产品和服务的公司的推荐信。维基百科还维护着一个基于FreeBSD的产品列表。
以下部分提供了有关该项目的一些背景信息,包括简要历史、项目目标和项目的开发模型。
FreeBSD项目起源于1993年初,部分原因是非官方386BSDPatchkit的最后三位协调员:Nate Williams、Rod Grimes和Jordan Hubbard。
最初的目标是生成386BSD的中间快照,以修复patchkit机制无法解决的许多问题。该项目的早期工作名称是386BSD 0.5或386BSD Interim。
386BSD是比尔·乔利茨(Bill Jolitz)的操作系统,到目前为止,由于近一年的疏忽,它已经遭受了相当严重的损失。随着patchkit的膨胀越来越令人不安,他们决定通过提供这个临时的“清理” (cleanup)快照来协助比尔。当比尔·乔利茨突然决定撤销对该项目的批准,而没有明确表示将采取什么行动时,这些计划戛然而止。
三人组(the trio)认为,即使没有比尔的支持,这个目标仍然是值得的,因此他们采用了大卫·格林曼(David Greenman)创造的“FreeBSD”这个名字。最初的目标是在与该系统的现有用户协商后设定的,一旦清楚该项目甚至可能成为现实,Jordan联系了核桃溪(Walnut Creek)CDROM,着眼于(with an eye toward)为那些无法轻松访问互联网的许多不幸者改善FreeBSD的分销渠道。核桃溪CDROM不仅支持在CD上分发FreeBSD的想法,而且还为该项目提供了一台机器和快速的互联网连接。如果没有核桃溪CDROM对当时一个完全未知的项目几乎前所未有的信心,FreeBSD不太可能像今天这样走得那么远、那么快。
第一个CD-ROM(以及整个网络)发行版是1993年12月发布的FreeBSD 1.0。这是基于加州大学伯克利分校的4.3BSD-Lite(“Net/2”)磁带,其中许多组件也由386BSD和自由软件基金会提供。对于第一个产品来说,这是一个相当合理的成功,随后他们在1994年5月发布了非常成功的FreeBSD 1.1版本。
大约在这个时候,随着Novell和加州大学伯克利分校就伯克利Net/2磁带的法律地位达成长期诉讼,地平线(horizon)上出现了一些出乎意料的(unexpected)风暴云。该和解的一个条件是加州大学伯克利分校的让步,即Net/2的三个文件是“担保”(encumbered)代码,必须删除,因为它们是Novell的财产,而Novell在一段时间前又从AT&T获得了这些文件。伯克利得到的回报是Novell的“祝福”(blessing),即4.4BSD-Lite版本在最终发布时将被宣布为不受阻碍,并强烈鼓励所有现有的Net/2用户切换。这包括FreeBSD,该项目直到1994年7月底才停止发布自己的基于Net/2的产品。根据该协议的条款,该项目被允许在截止日期前发布最后一个版本,即FreeBSD 1.1.5.1。
FreeBSD随后开始了艰巨的任务,从一组全新的、相当不完整的4.4BSD-Lite比特中重新发明自己。尽管只删除了与System V共享内存和信号量有关的三个文件,但对BSD发行版进行了许多其他更改和错误修复,因此将所有FreeBSD开发合并到4.4BSDLite中是一项艰巨的任务。该项目直到1994年11月才完成这一过渡,并于12月向世界发布了FreeBSD 2.0。尽管仍然有点粗糙,但该版本取得了巨大的成功,随后在1995年6月发布了更强大、更易于安装的FreeBSD 2.0.5版本。
从那时起,FreeBSD每次都会发布一系列版本,以提高前一版本的稳定性、速度和功能集。
目前,长期开发项目继续在15.0-CURRENT(main)分支中进行,随着工作的进展,快照服务器会不断提供15.0的快照版本。
FreeBSD项目的目标是提供可用于任何目的且无附加条件的软件。我们中的许多人在代码(和项目)上投入了大量资金,当然不会介意偶尔获得一点经济补偿,但我们绝对不准备坚持下去。我们相信,这是自由软件最基本的目标之一,也是我们热情支持的目标之一。
我们的源代码树中属于GNU通用公共许可证(GPL)或库通用公共许可协议(LGPL)的代码附带了稍微多一些的字符串,尽管至少在强制访问方面,而不是通常的相反。然而,由于GPL软件的商业使用可能会出现额外的复杂性,我们更喜欢在更宽松的BSD许可证下提交的软件,因为这样做是合理的选择。
FreeBSD的开发是一个非常开放和灵活的过程,从我们的贡献者名单中可以看出,它实际上是由世界各地数千人的贡献构建的。FreeBSD的开发基础设施允许这数千名贡献者通过互联网进行协作。我们一直在寻找新的志愿者,那些有兴趣更深入地参与其中的人应该参考关于为FreeBSD做出贡献的文章。
关于FreeBSD项目及其开发过程的有用信息,无论是独立工作还是密切合作:
Git仓库,the Git repositories
几年来,FreeBSD的中心源代码树由CVS(Concurrent Versions System,并发版本系统)维护,这是一个免费提供的源代码控制工具。2008年6月,该项目改用SVN(Subversion)。这一转变被认为是必要的,因为由于源树的快速扩展和已经存储的历史量,CVS施加的技术限制变得越来越明显。文档项目和Ports Collection存储库也分别于2012年5月和2012年7月从CVS转移到SVN。2020年12月,该项目将源代码和文档存储库迁移到Git,2021年4月,Ports也采取了同样的做法。有关获取FreeBSD src/ 仓库(repository)的更多信息,请参阅获取源代码部分,有关获取FreeBSD Ports Collection的详细信息,请参考使用Ports Collection。
提交者名单,the committers list
提交者(committers)是拥有Git存储库 推送(push)访问权限的人,有权对FreeBSD源代码进行修改(术语“committer”来自 commit,源代码控制命令,用于将新的更改带入存储库)。任何人都可以向bug数据库提交bug。在提交bug报告之前,可以使用FreeBSD邮件列表、IRC频道或论坛来帮助验证问题实际上是一个bug。
FreeBSD核心团队,the FreeBSD core team
如果FreeBSD项目是一家公司,FreeBSD核心团队 将相当于董事会(board of directors)。核心团队的主要任务是确保整个项目处于良好状态,并朝着正确的方向发展。邀请敬业和负责任的开发人员加入我们的提交者团队是核心团队的职能之一,随着其他人的发展,招募新的核心团队成员也是如此。目前的核心团队是在2024年5月和6月从提交者候选人中选出的。选举每两年举行一次。
xxxxxxxxxx与大多数开发人员一样,在FreeBSD开发方面,核心团队的大多数成员也是志愿者,在财务上没有从项目中受益,因此“承诺”(commitment)也不应被误解为“有保证的支持”(guaranteed support)。上面的“董事会”类比并不十分准确,更恰当的说法可能是,这些人为了FreeBSD而放弃了自己的生命,违背了他们更好的判断(judgement)!FreeBSD基金会,The FreeBSD Foundation
FreeBSD基金会是一个总部位于美国的501(c)(3)非营利组织,致力于支持和推广FreeBSD项目和全球社区。基金会通过项目赠款资助软件开发,并提供工作人员立即应对紧急问题并实施新特性和功能。基金会购买硬件以改进和维护FreeBSD基础设施,并资助人员配置以提高测试覆盖率、持续集成和自动化。基金会通过在世界各地的技术会议和活动上推广FreeBSD来倡导FreeBSD。基金会还提供研讨会、教育材料和演示文稿,以招募更多FreeBSD用户和贡献者。基金会还代表FreeBSD项目执行合同、许可协议和其他需要公认法人实体的法律安排。
外部贡献者,outside contributors
最后,但绝对不是最不重要的一点是,最大的开发人员群体是用户自己,他们几乎一直向我们提供反馈和错误修复。与FreeBSD基础系统的开发保持联系的主要方式是订阅FreeBSD技术讨论邮件列表,在那里讨论这些事情。对于移植第三方应用程序,它将是FreeBSD ports邮件列表。文档——FreeBSD文档项目邮件列表。有关各种FreeBSD邮件列表的更多信息,请参阅Internet上的参考资料。
FreeBSD贡献者列表是一个漫长且不断增长的列表,那么为什么不今天就加入进来,为FreeBSD做出贡献呢?提供代码不是唯一的方法!
总之,我们的开发模型是由一组松散的同心圆组成的。集中式模型的设计是为了方便FreeBSD的用户,他们可以轻松地跟踪一个中央代码库,而不是将潜在的贡献者拒之门外!我们的愿望是提供一个稳定的操作系统,其中包含大量连贯的应用程序,用户可以轻松安装和使用——这种模式在实现这一目标方面非常有效。
我们对那些愿意加入我们成为FreeBSD开发人员的人的要求是,他们现在的人对FreeBSD的持续成功也有同样的奉献精神!
除了基础发行版,FreeBSD还提供了一个移植的软件集合,其中包含数千个广受欢迎的程序。ports列表的范围从HTTP服务器到游戏、语言、编辑器,以及介于两者之间的几乎所有内容。大约有36000个ports;整个Ports Collection大约需要3GB。要编译port,只需更改到安装所需程序的目录,键入 make install ,让系统完成其余操作。动态检索每个构建port的完整原始发行版,因此只需要足够的磁盘空间来构建ports。
几乎每个port都以预编译的“包”(package)形式提供,不希望从源代码编译自己的ports的人可以使用简单的命令(pkg install)进行安装。有关包和ports的更多信息,请参阅【第四章 安装应用程序:Packages和Ports】。
所有支持的FreeBSD版本都在安装程序中提供了一个选项,可以在初始系统设置期间在 /usr/local/share/doc/freebsd 下安装其他文档。文档也可以稍后使用软件包安装:
xxxxxxxxxx# pkg install en-freebsd-doc对于本地化版本,请将“en”替换为所选的语言前缀。请注意,一些本地化版本可能已经过时,可能包含不再正确或相关的信息。使用以下URL使用web浏览器阅读本地安装的手册:
在文档门户网站上查找最新文档。
所有商标均为其各自所有者的财产。