Jim
Mock
Restructured, reorganized, and parts
rewritten by
介绍
概述
非常感谢您对 &os; 感兴趣!
下面的章节涵盖了 &os; 项目的各个方面,
比如它的历史、目标、开发模式,等等。
阅读完这章,您将了解:
&os; 与其它计算机操作系统的关系。
&os; 项目的历史。
&os; 项目的目标。
&os; 开放源代码开发模式的基础。
当然还有:&os;
这个名称的由来。
欢迎来到 &os; 的世界!
4.4BSD-Lite
&os; 是一个支持
Intel (x86 和 &itanium;),AMD64,Alpha,Sun
&ultrasparc; 计算机的基于 4.4BSD-Lite 的操作系统。
到其他体系结构的移植也在进行中。
您也可以阅读 &os; 的历史,
或者最新的发行版本。
如果您有意捐助(代码,
硬件,基金),请看为 &os; 提供帮助这篇文章。
&os; 能做些什么?
&os; 有许多非凡的特性。其中一些是:
抢占式多任务
抢占式多任务与动态优先级调整确保在应用程序和用户之间平滑公正的分享计算机资源,
即使工作在最大的负载之下。
多用户设备
多用户设备
使得许多用户能够同时使用同一
&os; 系统做各种事情。
比如, 像打印机和磁带驱动器这样的系统外设,
可以完全地在系统或者网络上的所有用户之间共享,
可以对用户或者用户组进行个别的资源限制,
以保护临界系统资源不被滥用。
TCP/IP 网络
符合业界标准的强大 TCP/IP 网络 支持,
例如 SCTP、 DHCP、 NFS、
NIS、 PPP, SLIP, IPsec 以及 IPv6。
这意味着您的 &os; 主机可以很容易地和其他系统互联,
也可以作为企业的服务器,提供重要的功能,
比如 NFS(远程文件访问)以及 email 服务, 或将您的组织接入
Internet 并提供 WWW,FTP,路由和防火墙(安全)服务。
内存保护
内存保护确保应用程序(或者用户)不会相互干扰。
一个应用程序崩溃不会以任何方式影响其他程序。
&os; 是一个 32 位操作系统
(在 Alpha,&itanium;,AMD64,和 &ultrasparc; 上是64 位),
并且从开始就是如此设计的。
X Window 系统
XFree86
业界标准的 X Window 系统
(X11R7)为便宜的常见 VGA 显示卡和监视器提供了一个图形化的用户界面(GUI),
并且完全开放代码。
二进制代码兼容性
Linux
二进制代码兼容性
SCO
二进制代码兼容性
SVR4
二进制代码兼容性
BSD/OS
二进制代码兼容性
NetBSD
和许多 Linux,SCO,SVR4,BSDI 和 NetBSD 程序的二进制代码兼容性
数以千计的 ready-to-run
应用程序可以从 &os;
ports 和 packages
套件中找到。 您可以顺利地从这里找到,
何须搜索网络?
可以在 Internet 上找到成千上万其它
easy-to-port 的应用程序。
&os; 和大多数流行的商业 &unix; 代码级兼容,
因此大多数应用程序不需要或者只要很少的改动就可以编译。
虚拟内存
页式请求虚拟内存和集成的
VM/buffer 缓存
设计有效地满足了应用程序巨大的内存需求并依然保持其他用户的交互式响应。
对称多处理器(SMP)
SMP 提供对多处理器的支持。
编译器
C
编译器
C++
编译器
FORTRAN
内建了完整的 C、
C++、 Fortran
开发工具。 许多附加的用于高级研究和开发的程序语言,
也可以在通过 ports 和 packages
套件获得。
源代码
完整的系统源代码意味着您对您环境的最大程度的控制。
当您拥有了一个真正的开放系统时,
为什么还要受困于私有的解决方案,
任商业公司摆布呢?
丰富的在线文档。
不仅如此!
4.4BSD-Lite
计算机系统研究组(CSRG)
U.C. Berkeley
&os; 基于加州大学伯克利分校计算机系统研究组
(CSRG) 发布的 4.4BSD-Lite,
继承了 BSD 系统开发的优良传统。
除了 CSRG 优秀的工作之外,
&os; 项目花费了非常多的时间来优化调整系统,
使其在真实负载情况下拥有最好的性能和可靠性。
在现今, 许多商业巨人正为给 PC 操作系统增加新功能、
提升和改善其可靠性, 以便在其上展开激烈竞争的同时,
&os; 现在
已经能够提供所有这一切了!
&os; 可以提供的应用事实上仅局限于您的想象力。
从软件开发到工厂自动化,从存货控制到遥远的人造卫星天线方位控制,
如果商业的 &unix; 产品可以做到,
那么就非常有可能您也可以用 &os; 来做!
&os; 也极大地受益于全世界的研究中心和大学开发的数以千计的高质量的应用程序,
这些程序通常只需要很少的花费甚至免费。
可用的商业应用程序, 每天也都在大量地增加。
因为 &os; 自身的源代码是完全公开的,
所以对于特定的应用程序或项目,可以对系统进行最大限度的定制。
这对于大多数主流的商业生产商的操作系统来说几乎是不可能的。
以下是当前人们应用 &os; 的某些程序的例子:
Internet 服务:
&os; 内建的强大的 TCP/IP
网络使它得以成为各种 Internet 服务的理想平台,
比如:
FTP 服务器
FTP 服务器
web 服务器
World Wide Web 服务器(标准的或者安全的
[SSL])
IPv4 and IPv6 路由
防火墙
NAT
防火墙和 NAT(IP 伪装
)
网关
电子邮件
email
email
电子邮件服务器
USENET
USENET 新闻组和电子布告栏系统
还有许多...
使用 &os;, 您可以容易地从便宜的
386 类 PC 起步,并随着您的企业成长,一路升级到带有
RAID 存储的四路 Xeon 服务器。
教育:
您是一名计算机科学或者相关工程领域的学生吗?
学习操作系统,计算机体系结构和网络没有比在 &os;
可提供的体验下动手实践更好的办法了。许多可自由使用的
CAD、数学和图形设计包也使它对于那些主要兴趣是在计算机上完成
其他工作的人非常有帮助。
研究:
有完整的系统源代码,&os;
对于操作系统研究以及其他计算机科学分支都是一个极好的平台。
&os; 可自由获得的本性,
同样可以使处在不同地方的开发团队在开放的论坛上讨论问题、
交流想法与合作开发成为可能,
且不必担心特别的版权协定或者限制。
路由
DNS 服务器
网络:需要一个新的路由器?
一台域名服务器 (DNS)? 一个隔离您的内部网络的防火墙?
&os; 可以容易的把丢弃在角落不用的 386 或者
486 PC 变成一台完善的带包过滤能力的高级路由器。
X Window 系统
XFree86
X Window 系统
Accelerated-X
X Window 工作站: &os;
是廉价 X 终端的一种绝佳解决方案,
您可以选择使用免费的 X11 服务器。
与 X 终端不同,如果需要的话 &os;
能够在本地直接运行程序,
因而减少了中央服务器的负担。 &os;
甚至能够在 无盘
环境下启动,
这使得终端更为便宜和易于管理。
GNU Compiler Collection
软件开发:
基本的 &os; 系统带有包括著名的 GNU C/C++
编译器和调试工具在内的一整套开发工具。
&os; 可以通过 CDROM、DVD,
以及匿名 FTP 以源代码和二进制方式获得。请查看
了解获取 &os; 的更多细节。
谁在使用 &os;?
用户
运行 &os; 的大型站点
&os; 已被用来支持 Internet 上一些最大的站点,
包括:
Yahoo!
Yahoo!
Apache
Apache
Blue Mountain Arts
Blue Mountain
Arts
Pair Networks
Pair
Networks
Sony Japan
Sony
Japan
Netcraft
Netcraft
Weathernews
Weathernews
Supervalu
Supervalu
TELEHOUSE America
TELEHOUSE
America
Sophos Anti-Virus
Sophos
Anti-Virus
JMA Wired
JMA Wired
等等许多。
关于 &os; 项目
下面的章节提供了项目的一些背景信息,
包括简要的历史、项目目标、以及项目开发模式。
Jordan
Hubbard
Contributed by
&os; 的简要历史
386BSD Patchkit
Hubbard, Jordan
Williams, Nate
Grimes, Rod
FreeBSD 项目
历史
&os; 项目起源于 1993 年早期,
部分作为 Unofficial 386BSD
Patchkit
的副产物,patchkit 的最后 3 个协调维护人是:Nate
Williams,Rod Grimes 和我。
386BSD
我们最初的目标是做出一份 386BSD 的测试版以修正一些
Patchkit 机制无法解决的错误(bug)。
很多人可能还记得早期的项目名称叫做
386BSD 0.5
或者 386BSD Interim
就是这个原因。
Jolitz, Bill
386BSD 是 Bill Jolitz 的操作系统,
到那时已被严重地忽视了一年之久。
由于 Patchkit 在过去的每一天里都在急剧膨胀,
使得对其进行消化吸收变得越来越困难,
因此我们一致同意应该做些事情并决定通过提供这个临时的
cleanup
版本来帮助 Bill。
然而,Bill 却在事先没有指出这个项目应该如何开展下去的情况下,
突然决定退出这个项目,最终这个计划只好被迫停止。
Greenman, David
Walnut Creek CDROM
没过多久, 我们认为即便没有 Bill 的支持, 项目仍有保留的价值,
因此,我们采用了 David Greenman 的意见,给其命名为
&os;
。在和当时的几个用户商量后,
我们提出了最初的目标, 而这件事明朗化后,
这个项目就走上了正轨,甚至可能成为现实。
为了拓展 &os; 的发行渠道,我抱着试试看的心态,
联系了光盘商 Walnut Creek CDROM,
以便那些上网不方便的用户得到 &os;。
Walnut Creek CDROM 不仅支持发行 &os; 光盘版的想法,
还为这个计划提供了所需的计算机和高速网络接入。
在那时, 若没有 Walnut Creek CDROM 对一个完全未知的项目的空前信任,
&os; 不太可能像它今天这样,影响如此深远,
发展如此快速。
4.3BSD-Lite
Net/2
U.C. Berkeley
386BSD
Free Software Foundation
第一个 CDROM (以及在整个互联网范围内发行的) 发行版本是
&os; 1.0,于 1993 年 10 月发布。这个版本基于
U.C. Berkeley 的 4.3BSD-Lite(Net/2
)磁带,
也有许多组件是 386BSD 和自由软件基金会提供的。
对于第一次发行,这算是相当成功了。
在 1994 年 5 月,我们发布了更加成功的 &os; 1.1 版。
Novell
U.C. Berkeley
Net/2
AT&T
然而此后不久,发生了一些意外的情况。
Novell 和 U.C. Berkeley 决定就 Berkeley Net/2
磁带的归属权问题打的那场马拉松式的官司达成和解。
判决的结果是,
U.C. Berkeley 承认 Net/2 很大一部分代码是
侵占来的
且这些代码归 Novell 公司所拥有。这些代码是 Novell 不久前从
AT&T 买来的。
Berkeley 得到了来自 Novell 的 祝福
:
4.4BSD-Lite 发行后,将不认为是侵权,
且要求现存的 Net/2 的用户更换新版。
这也包括 &os;,我们的项目被要求在 1994 年 6 月底停止发行基于
Net/2 的产品。在此协议允许的时间内,
本项目被允许发行最后一版,也就是 &os; 1.1.5.1。
于是 &os; 开始艰苦的从全新的而且不完整的 4.4BSD-Lite
中重新整合自己。Lite
版本是不完整的,
因为 Berkeley 的 CSRG 已经删除了大量的构建可启动运行的系统所需要的代码
(因为各种各样的版权问题),事实上 4.4 的 Intel port 是非常不完整的。
直到 1994 年 11 月项目才完成这个转换,这个时候才把
&os; 2.0 通过网络和 CDROM(在 12 月)发布出来。
尽管系统很多地方还很粗糙,这个版本还是取得了重大的成功,
接下来在 1995 年 6 月发布了更强大和容易安装的 &os; 2.0.5
版本。
我们于 1996 年 8 月发布了 &os; 2.1.5 版本,
它在 ISP 和商业团体中非常流行。
随后, 2.1-STABLE 分支的另一个版本应运而生,它就是
&os; 2.1.7.1,在 1997 年 2 月发布并停止了
2.1-STABLE 的主流开发。现在,它处于维护状态,
仅仅提供安全性的增强和其他严重的错误修补的维护(RELENG_2_1_0)。
&os; 2.2 版作为 RELENG_2_2 分支,于 1996 年 11 月从开发主线
(-CURRENT
)分出来。
它的第一个完整版(2.2.1)于 1997 年 4 月发布出来。
97 年夏秋之间,顺着 2.2 分支的更进一步的版本在开发。
其最后一版(2.2.8)于 1998 年 11 月发布出来。
第一个官方的 3.0 版本出现在 1998 年 10 月,
意味着 2.2 分支结束的开始。
1999 年 1 月 20 日又出现了新的分支,就是
4.0-CURRENT 和 3.X-STABLE 分支。从 3.X-STABLE 起,3.1 在
1999 年 2 月 15 日发行,3.2 在1999 年 5 月 15 日,3.3 在
1999 年 9 月 16 日,3.4 在 1999 年 12 月 20 日,3.5 在
2000 年 6 月 24 日,接下来几天后发布了很少的修补升级至
3.5.1,加入了对 Kerberos 安全性方面的修补。
这是 3.X 分支最后一个发行版本。
随后在 2000 年 3 月 13 日出现了一个新的分支, 也就是 4.X-STABLE。
这之后发布了许多的发行版本: 4.0-RELEASE 于 2000 年 3月发布,
而最后的 4.11-RELEASE 则是在
2005 年 1 月发布的。
期待已久的 5.0-RELEASE 于 2003 年 1 月 19 日正式发布。
这是将近三年的开发的巅峰之作, 同时也标志了 FreeBSD
在先进的多处理器和应用程序线程支持的巨大成就, 并引入了对于
&ultrasparc; 和 ia64 平台的支持。
之后于 2003 年 6 月发布了 5.1。 最后一个从
-CURRENT 分支的 5.X 版本是 5.2.1-RELEASE, 它在
2004 年 2 月正式发布。
RELENG_5 于 2004 年 8 月正式创建, 紧随其后的是 5.3-RELEASE,
它是 5-STABLE 分支的标志性发行版。 最新的 5.5-RELEASE
是在 &rel2.current.date; 发布的。 RELENG_5 分支不会有后续的发行版了。
其后在 2005 年 7 月又建立了 RELENG_6 分支。 而 6.X 分支上的第一个版本,
即 6.0-RELEASE, 则是在 2005 年 11 月发布的。
最新的 &rel2.current;-RELEASE 发布于 &rel2.current.date;。
我们还将继续从 RELENG_6 发布新的版本。
RELENG_7 分支于 2007 年 10 月创建。
这个分支最新的发布版本是 &rel.current.date;
的 &rel.current;-RELEASE。 RELENG_7
分支将会有其他后继发布版本。
目前, 中长期的开发项目继续在
8.X-CURRENT (主干, trunk) 分支中进行, 而 8.X 的
CDROM (当然, 也包括网络) 快照版本可以在
快照服务器 找到。
Jordan
Hubbard
Contributed by
&os; 项目目标
FreeBSD Project
goals
&os; 项目的目标是无附加条件地提供能够用于任何目的的软件。
我们中的许多人对代码 (以及项目本身) 都有非常大的投入,
因此当然不介意偶尔有一些资金上的补偿,
但我们并没打算坚决地要求得到这类资助。
我们认为我们的首要 使命
是为任何人提供代码,
不管他们打算用这些代码做什么, 因为这样代码将能够被更广泛地使用,
从而最大限度地发挥其价值。 我认为这是自由软件最基本的,
同时也是为我们所倡导的一个目标。
GNU General Public License (GPL)
GNU Lesser General Public License (LGPL)
BSD Copyright
我们源代码树中, 以 GNU
公共许可证 (GPL) 或者 GNU 函数库公共许可证
(LGPL) 发布的那些代码带有少许的附加限制,
还好只是强制性的要求开放代码而不是别的。
由于使用 GPL 的软件在商业用途上会增加若干复杂性,
因此,如果可以选择的话, 我们更偏好使用限制相对更宽松的
BSD 版权来发布软件。
Satoshi
Asami
撰写者
&os; 开发模式
FreeBSD Project
开发模式
&os; 的开发是一个非常开放且有有伸缩性的过程,
就像从我们的
贡献者列表里看到的,它是完全由来自全世界的数以百计的贡献者发展起来的。
&os; 的开发基础结构允许数以百计的开发者通过互联网协同工作。
我们也经常关注着那些对我们的计划感兴趣的新开发者和新的创意,
那些有兴趣更进一步参与项目的人只需要在
&a.hackers; 联系我们。
&a.announce; 对那些希望了解我们工作所涉及到哪些领域的人也是有用的。
无论是独立地工作或者封闭式的团队工作,
了解 &os; 计划和它的开发过程都是有益的:
CVS 代码库
CVS
代码库
并行版本系统
CVS
&os; 的中央源代码树是由
CVS
(并行版本控制系统)来维护的。CVS 是一个与
&os; 捆绑的可自由获得的源代码控制工具。
主 CVS
代码库放置在美国加利福尼亚州圣克拉拉的一台机器上,
它被复制到全世界的大量镜像站上。CVS 中包括了 -CURRENT 和 -STABLE 树,
它同样可以很容易地复制到您的机器上。
请查阅
同步您的源代码树这一章节来了解更多信息。
committer 列表
committers
committer
是那些对 CVS 树有写权限的人,
他们被授权修改 &os; 的源代码
(术语 committer
来自于 &man.cvs.1; 的 commit
命令,这个命令用来把新的修改提交给 CVS
代码库)。提交修正的最好方法是使用 &man.send-pr.1;
命令。如果您发现在系统中出现了一些问题的话,
您也可以通过邮件将它们发送至 &a.committers;。
FreeBSD 核心团队
core team
如果把 &os; 项目看作一家公司,那么
&os; 核心团队就相当于董事会。
核心团队的主要任务是提出总体上的发展计划,然后确定一个正确的方向。
邀请那些富有献身精神和可靠的开发者加入到 committer
队伍中来也是核心团队的工作之一,
这些新的成员将作为新核心团队成员和其他人一起继续前进。
当前的核心团队是 2006 年 7 月从 committer
中选举产生的。选举每两年一次。
一些核心团队的成员还负责特定的责任范围,
也就是说他们必须尽力确保某个子系统能工作正常。
&os; 开发者的完整列表和他们的责任范围,请参见
贡献者列表
核心团队的大部分成员加入 &os; 开发的时候都是志愿的,
并没有从项目中获得任何财政上的资助,
所以承诺
不应该被理解为支持保证
。
前面所述董事会
的类推并不十分准确,
或许更好的说法是,他们是一群愿意放弃他们的生活,
投身于 &os; 项目而非选择其个人更好的生活的人!
外围贡献者
contributors
事实上,最大的开发团队正是为我们提供反馈和错误修补的用户自己。
&os; 的非集中式的开发者保持联系的主要方式就是预订
&a.hackers;,很多事情在那里讨论。查看了解众多 &os; 邮件列表的更多信息。
&os; 贡献者列表 很长并在不断增长,
为什么不加入它来为 FreeBSD 做贡献呢?
提供代码不是为这个计划做贡献的唯一方式;
有一个更完整的需要做的事情的列表,可以参见 &os;
项目网站。
总的来说,我们的开发模式好像是一组没有拘束的同心圆。
这种集中式的开发模式,主要是考虑到 &os;
用户的方便,
同时让他们能很容易地维护同一份软件,
而不会把潜在的贡献者排除在外!
我们的目标是提供一个包含有大量具有一致性
应用程序的稳定的操作系统,
以利于用户的安装和使用,—
这种模式在完成目标的过程中工作得非常有效。
我们对于那些想要加入,成为 &os; 开发者的期待是:
具有如同当前其他人一样的投入,来确保持续的成功!
最新的 &os; 发行版本
NetBSD
OpenBSD
386BSD
Free Software Foundation
U.C. Berkeley
Computer Systems Research Group (CSRG)
&os; 是一个免费使用且带有完整源代码的基于 4.4BSD-Lite 的系统,
它广泛运行于 Intel &i386;、&i486;、&pentium;、
&pentium; Pro、
&celeron;、
&pentium; II、
&pentium; III、
&pentium; 4(或者兼容系统)、
&xeon;、DEC Alpha
和 Sun &ultrasparc; 的计算机系统上。
它主要以 加州大学伯克利分校 的
CSRG 研究小组的软件为基础,并加入了 NetBSD、OpenBSD、386BSD
以及来自 自由软件基金会 的一些东西。
自从 1994 年末我们的 &os; 2.0 发行以来,
&os; 的性能,可定制性,稳定性都有了令人注目的提高。
最大的变化是通过整合虚拟内存/文件系统中的高速缓存改进的虚拟内存系统,
它不仅提升了性能,而且减少了 &os; 对内存的需要,
使得 5 MB 内存成为可接受的最小配置。
其他的改进包括完整的 NIS 客户端和服务器端的支持,
事务式 TCP 协议支持,按需拨号的 PPP,集成的 DHCP 支持,改进的 SCSI 子系统,
ISDN 的支持,ATM,FDDI,快速 Gigabit 以太网(1000 Mbit)支持,
提升了最新的 Adaptec 控制器的支持和修补了很多的错误。
除了最基本的系统软件,&os;
还提供了一个拥有成千上万广受欢迎的程序组成的软件的 Ports Collection。
到本书付印时,已有超过 &os.numports; 个 ports (ports 包括从
http(WWW) 服务器到游戏、程序设计语言、编辑器以及您能想到的几乎所有的东西)。
完整的 Ports Collection 大约需要
&ports.size; 的存储空间。所有的只提供对原始代码的
修正
。这使得我们能够容易地更新软件,
而且减少了老旧的 1.0 Ports Collection 对硬盘空间的浪费。
要编译一个 port,您只要切换到您想要安装的程序的目录,
输入 make
install,然后让系统去做剩下的事情。
您要编译的每一个程序完整的原始代码可以从 CDROM 或本地 FTP
获得,所以您只需要编译您想要软件的足够的磁盘空间。
几乎大多数的软件都提供了事先编译好的
package
以方便安装,对于那些不希望从源代码编译他们自己的
ports 的人只要使用一个简单的命令
(pkg_add)就可以安装。
有关 package 和 ports 的更多信息可以在中找到。
您可以在最近的 &os; 主机的 /usr/share/doc
目录下找到许多有用的文件来帮助您安装及使用 &os;。
您也可以用一个 HTML 浏览器来查阅本地安装的手册,
使用下面的 URL:
FreeBSD 使用手册
/usr/share/doc/handbook/index.html
FreeBSD FAQ
/usr/share/doc/faq/index.html
您也可以查看在 的主站上的副本。