自 2001 年起,当最后一个主要分支 DragonFly BSD 发布时,FreeBSD、OpenBSD、NetBSD 和 Mac OS X 代表了 UNIX 世界一次新的创新浪潮。所有这些操作系统分支都符合 POSIX,都为它们的用户呈现了一个类似的命令行界面,并且都使用了使编程模式与应用程序用法特征尽可能类似的内核和系统库。
从条文上讲,BSD 不能算做 UNIX 系统,但是,BSD 各个分支代表开源 UNIX 这一观点已被广泛接受。令人感到惊奇的是,在 20 世纪 80 年代未和 90 年代初,运行于 PC 或 Mac 上的免费操作系统还没有一个能够冠以该名称。UNIX 存在于大型机和可伸缩的处理器架构(Scalable Processor Architecture、SPARC)之上。各大私有 UNIX 公司已经瓜分了商业 UNIX 市场。
最初的 BSD 操作系统是 386BSD
1993 年发生的两件大事永远地改变了 UNIX:即成立了 NetBSD 小组和再次流行 386BSD 修补工具。在十年前,BSD UNIX 开发人员再次从加州大学伯克莱分校的各层工作人员中和哲学博士学生中进行招募,资金大部分来源于国防高级研究计划署(Defense Advanced Research Projects Agency、DARPA),但是募集资金的形式从此结束。
386BSD 项目是在 1985 年作为让 BSD UNIX 运行于 Intel 芯片的尝试而成立的。在 1989 年之前,该项目一直都没有发行它的第一个版本,而且因为多种原因,该项目最终成为了 Dr. Dobb's Journal 1992 年 7 月宣称的引用操作系统。对于 386BSD 0.1,已知有 250,000 次的下载量。
386BSD 主要基于 Bill 和 Lynne Jolitz 的观点来改进 UNIX 所依赖的概念。他们的初衷是开发免费的操作系统。但事实证明,完全靠自己的力量支持一个完整的操作系统不是他们力所能及的。该系统最终输给了由名不见经传的芬兰学生组成的编程队伍帮助构建的 Linux。
FreeBSD 的历史
最初决定将 BSD UNIX 构建于 Intel 芯片之上的另一个小组是在 1993 年成立的。依靠 Bill Jolitz 以前的工作成果,该小组于 1993 年 12 月推出了 FreeBSD 1.0 版。在 1997 年初的时候,项目领导人 Jordan Hubbard 推动了该项目的发展,并管理着基础设施和 200 名开发人员。预计在今年年底,FreeBSD 可以推出 6.0 版本,该版本将成为所有免费的 UNIX 系统的最重要版本。FreeBSD 并不是对 UNIX 的克隆,虽然说其工作方式类似于 UNIX,并且其内核和系统 API 都符合 UNIX 标准。
FreeBSD 不像以前一样仅仅是适用于 Intel-/AMD 的系统。它还可以运行于 SPARC64 计算机上,并在 Alpha 架构上已有相当长的运行历史。如果 BSD 用户对运行 Mac OS X 的芯片感兴趣,那么他可以切换到 Darwin OS,即 Mac OS X 的开源核心,Darwin OS 依赖于多数 FreeBSD V5.0 及其后继产品。当然,NetBSD 自 1995 年起已运行在所有 Mac 架构之上。
哪些是 FreeBSD 具有而 Linux 不具有的功能
FreeBSD 是一个操作系统,而不仅仅是一个内核。但是,该说法并不意味着大致与以前的说法相同,因为内核的叫法是相当随意的。在 UNIX 环境中,它意味着在完成引导过程之后,用户无法访问某些库和可执行文件。内核管理着应用程序的硬件,但是目前许多 UNIX 类型的操作系统都为用户级别的线程提供了一个角色,即管理内核资源。您可以安全地假定在运行时间内用户无法访问的任何东西都是内核的一部分。这并不意味着用户无法影响内核的行为。例如,某些实用工具可以报告和调整内存管理,并且这些工具都明确表明是由用户使用的。这些实用工具通过系统的 API 进行通信,后者不是内核的一部分,但它很明显是操作系统的一部分。当然,FreeBSD 包括所有这些工具以及许多其他用于处理网络和硬件特性的实用工具和应用程序。
如果比较完整的 Linux 内核下载和 FreeBSD 下载的内容,您就会了解到,许多下载内容都是相同的。也就是说,它们都有 IP 堆栈、内存管理例程、文件系统实现,等等。文件系统的层次结构具有明显类似的起源,并且多数命令行应用程序具有相同的名称和类似的命令行语义。当然,实际的实现有些不同,但您仍然能够看到两种系统都有类似的概念来源。架构方面的主要不同之处在于 FreeBSD 从所谓的缓冲区缓存读取文件的方式与 Linux 向其中写入文件的方式的不同,严格地说,该缓存甚至还谈不上是独立于虚拟内存而存在的实体。Linux 始终自动管理缓冲区缓存的大小,但其内存管理例程的工作方式与 FreeBSD 的不同。
端口和文件系统
FreeBSD 在安装后会立即工作。原因是 FreeBSD 系统使用 FreeBSD 安装程序安装了一个工作系统,该安装程序又称为 sysinstall,而且该程序使用具有干净的 UNIX 起源的数据包管理系统。但是,FreeBSD 做到的远不止这些:数据包管理得到了彻底改进;二进制和源数据包不再受制于不稳定的数据包管理系统,这是 Linux 分发时的常见问题。
FreeBSD 使用 Ports 系统集成了数据包管理和 Internet 范围的更新,使您可以在一个进程中解决源下载和编译问题。有人可能会争辩说 Debian 也具有类似的优点,但请不要忘记,Debian 是一个操作系统,它并不主要依赖于 Linux 内核。使用 Hurd 和 NetBSD 内核也可以正常工作,前提是 Debian 项目没有忘记更新数据包。
说到 FreeBSD 文件系统,也会让人联想到它的 BSD UNIX 过去:它受 Fast File System (FFS) 和 UNIX File System (UFS) 名称的支配。用户更多时候像是在与文件系统的 FFS 部分进行交互,后者控制着文件和目录的访问。2003 年发布的 UFS 系统的第 2 版设置了文件系统限制和组织原始磁盘访问的基本数据结构。UFS 和 FFS 在 NetBSD 和 OpenBSD 上也可以使用。当前 Linux 上更著名的日志文件系统在 FreeBSD 上是不可用的,这些系统中包括 Reiser File System (Reiser FS) 和 Journaling File System (JFS),这主要是出于安全方面的考虑。UFS 具有稳定性和可伸缩性等其他优点,因为其行为和性能依赖于长达二十多年的研究。
安全性和兼容性
其他一些优点可能会影响您的选择,从而使您更认真地对待 FreeBSD。尽管没有提供像 OpenBSD 这样的代码级别的安全性,但 FreeBSD 提供了强大的现成安全机制。自 FreeBSD V5.0 以后,您可以添加严密的访问控制和安全策略(在 DARPA 提供支持的 TrustedBSD 项目中有其来源)。FreeBSD 支持访问控制列表 (ACL) 和强制访问控制 (MAC) 模块。其系统管理员和经理自然可以访问 MAC 模块,但它使得小型企业使用严格应用于对外部世界公开的系统子集的安全标准来运行网络。UFS V2 通过扩展属性来提供极好的 ACL 支持;如果需要 ACL,则必须分别配置 UFS V1。
如果使用 Linux,可能会看到可用于 SuSE Linux 和 Mac OS X 的应用程序,但没有单独的针对 FreeBSD 的源文件或二进制文件。FreeBSD 能够运行 Linux 二进制兼容模块,您必须在安装时或从命令行启用它。同时,Linux 运行时库可能是必需的,但您可以从 Ports 集中添加它们。
当然,FreeBSD 运行所有主要的基于 X Window System 的桌面 shell 程序,如 KDE 桌面和 GNU Network Object Model Environment (GNOME) 桌面。FreeBSD 以前是桌面用户的 UNIX 选择版本,直到基于 FreeBSD 的 OS X 出现,这种情况才发生改变。在配置为服务器或客户机时,它仍然为 UNIX 用户提供很好的操作并且不需要其他证书。
FreeBSD 派生产品 与多数具有较长历史的操作系统一样,FreeBSD 也产生了许多衍生产品。可以从 DC 启动 FreeBSD 系统而不必编译和生产 CD。此工作已由相当完善的 Free System Burned in Economy (FreeSBIE) V1.1 LiveCD 系统完成,此系统基于 FreeBSD V5.3。如果分配部分硬盘和写入 master boot record (MBR) 可能存在风险,那么最好先测试一下 FreeBSD。
DragonFly BSD 基于 FreeBSD V4.x 系列版本,但它根本没有面向普通用户。它在其网站的首页上提到保护 Internet 范围的群集文件系统 ―― 这对首次使用 UNIX 的用户来说好像关系不大。DragonFly BSD 由 FreeBSD 虚拟内存专家建立,它尝试实现一个全新的方法来管理大量的安全文件系统和内存。
关于文档
人们通常不提及随 UNIX 系统附带的操作系统文档,因为此类文档往往不像其自发的趣味性和有用性那样容易让人愿意去阅读它。FreeBSD 文档是此规则的例外,因为它不太关注旧式的手册页、UNIX 文档样式或组织的副本。
FreeBSD 文档以简明的图书形式在 Internet 上和纸张上出现,并以令人愉悦和合理的形式介绍每个系统和系统的每个方面。这并不预示着必须对 UNIX 系统很熟悉,事实上这对 UNIX 新手的使用非常有益。它不仅讲解了简单的 FreeBSD 安装,而且还明确介绍了 FreeBSD 内核编译或保护安全 FreeBSD 安装的原因。有趣的是,可以看到 FreeBSD 文档所忽略的内容,例如 Perl 和 Apache,以及该文档所包含的内容,如 Berkeley Internet Name Daemon (BIND) 和特定于 FreeBSD 的存储管理器 Vinum。Vinum 实现了虚拟磁盘驱动器管理,并且可以复制 RAID 0、RAID 1 和 RAID 5。
管理员的操作系统
可以将 FreeBSD 描述为网络管理员的操作系统:它速度快,支持 SMP,并可以与大量的网络工具集成。此外,FreeBSD 在膝上型电脑运行的时候,以及在运行 Office 应用程序和运行邮件客户机和数据库时,都表现得更为流畅和快速。其安装例程对于 Microsoft? Windows? 高级用户来说非常简单。它为 Linux 用户也提供了许多功能,原因是它提供二进制兼容模式,对于 Linux 专有的操作系统没有改变。FreeBSD 极具可扩展性,并且可以作为 Linux 或 BSD 操作系统编写的应用程序运行。但是,不要认为 FreeBSD 在免费操作系统中是一把万能的“瑞士军刀”:它既没有 OpenBSD 的安全性,又没有未来的 Open Solaris 版本的可扩展性。不过,它可以与任何运行于 Intel 芯片上的操作系统相媲美 ―― 无论是商业的还是免费的,而且在许多方面,与其最接近的竞争者相比,它提供了一个更稳定和更具扩展性的平台。