# FreeBSD 3.0-RELEASE 发行说明（1998 年 10 月）

**发布说明**

**FreeBSD 3.0-RELEASE 版本**

这是我们第一次发布 3.0-CURRENT 版本，主要面向早期采用者和开发者。一些文档内容可能尚未更新，如果遇到此类问题，请报告。自然，任何安装失败或崩溃也应尽快报告，可以通过发送邮件到 `freebsd-bugs@FreeBSD.org` 或使用 `send-pr` 命令来报告（喜欢基于网页的界面的人也可以查看此页面）。

有关 FreeBSD 和 3.0-RELEASE 目录布局的信息（特别是如果你是从软盘安装），请参阅 ABOUT.TXT。安装说明请参见 `INSTALL.TXT` 和 `HARDWARE.TXT` 文件。

这也不是 3.0-current（HEAD）分支上的最后一个发布版本，日常快照发布将在此发布后继续进行。请从以下地址安装：`ftp://current.FreeBSD.org/pub/FreeBSD`

如果你希望获取最新的 3.0-RELEASE 后的技术更新。

## 1. 自 2.2.X-RELEASE 以来的更新

此处描述的所有变更仅适用于 3.0 分支，除非特别标记为 \[MERGED]（已合并）功能。

### 1.1. 内核变更

* 2.2.x 的 SCSI 子系统几乎完全被新的 "CAM"（通用访问方法）SCSI 系统取代，该系统提供了更好的性能、更好的错误恢复能力，并且支持更多的 SCSI 控制器。
* Network Computing Services, Inc. 的 Host ATM Research Platform（“HARP”）软件已集成到系统中。更多信息请参见 `/usr/src/share/examples/atm`。
* SMP（对称多处理）分支已合并。虽然内核目前大部分还不支持重入，但相关工作正在进行中。
* 4.4BSD-Lite2 的代码已（最终）已合并。
* 现在支持安全 RPC（并且可以与 NFS 等一同使用）。
* 现在支持 Sun 的 WEBNFS 标准。
* MSDOS 文件系统代码现在支持 VFAT 和 FAT32 分区。 \[已合并：也在 2.2.7 及以后版本的 2.2-STABLE 分支中]
* 支持 ATAPI/IDE 光盘刻录机（测试版）。
* 支持 ATAPI/IDE 磁带驱动器（测试版）。
* 支持使用 VESA 视频模式。现在可以选择并使用现代显卡上 BIOS 提供的模式。这使得例如 132x60 大小的控制台和高分辨率图形可以在支持的硬件上以通用方式使用。还支持在光栅模式下运行控制台，这使得 XFree86 能够在通常不受支持的视频硬件上以 800x600 分辨率运行简单的 16 色服务器。
* 支持 AdvanSys SCSI 控制器。
* 支持 QLogic SCSI 和光纤通道控制器。
* 支持基于 Adaptec 7890、7891、7895、7896 和 7897 的控制器（如新款的 2940/2950/3940/3950 等）。
* ed0（wd8xxxx, 3c503, NE2000, HP Lan+）以太网设备的默认 IRQ 已从 IRQ 5 变更为 IRQ 10。 ed1 以太网设备已被移除。请使用 Userconfig 工具将 ed0 的值变更为与你的网络卡设置匹配。\[已合并：这两个变更也出现在 2.2.6 及以后版本的 2.2-STABLE 分支中]
* 负责维护日期时间的代码已被重写。新增功能包括：内核和用户空间均支持纳秒级时间，NTPD 进行连续调整而非逐步调整，支持与高精度外部时间信号的同步。
* 已向打印机驱动程序新增对 PPS API（见 draft-mogul-pps-api-02.txt）的支持，用于 TTL 上升沿输入，支持通过并行打印机端口。
* 使用新的 if\_multiaddrs 列表来处理多播地址，而不是以前涉及 struct in\_ifaddr 和 arpcom 的方法，摆脱了可憎的 multi\_kludge。
* 引入了新的 if\_media 选择方法，来自 Jason Thorpe 为 NetBSD 实现的版本。\[已合并：也在 2.2.5 及以后版本的 2.2-STABLE 分支中]
* 多会话 ISO-9660 CD-ROM 现在完全支持。默认情况下，将挂载最后一个会话（包括根目录挂载）。对于非根目录挂载，mount\_cd9660(8) 可以接受一个参数来挂载特定的会话，而不是默认的会话。
* UPAGES 已从每个进程的地址空间中移除，这可通过引用计数实现完全的地址空间和页表共享。
* 新创建的子进程直接返回用户模式，而不是通过 fork() 系统调用树返回。这消除了在 fork 时的内核栈复制，并简化了某些其他内部操作。这也是支持移除 UPAGES 所必需的。（这个想法最初来自 NetBSD，但我们出于不同的原因实现了它。）
* vfork() 现在通过利用新的共享语义而完全功能化，并且测得了显著的速度提升。若出现问题，可以通过 sysctl 变量 `kern.fast_vfork` 禁用它。由于 4.4BSD（net2, Lite 和 Lite2）中的 popen() 实现存在 bug，因此来自旧版本和其他 BSD 平台的静态链接二进制文件会出现问题。rfork() 也可以访问这些功能，旨在支持内核辅助线程。
* 在 Berkeley Software Design, Inc.、Jonathan Lemmon、Mike Smith、Sean Eric Fagan 和 John Dyson 的贡献下，内核已增加对 VM86 的支持，并且 BSD/OS 提供的 doscmd 已被移植。
* 实现了参数 `SA_NOCLDWAIT`，提供了 System V 选项，允许进程表示希望永远不会接收到僵尸进程或 SIGCHLD 信号。
* 实现了 poll(2)，其核心源自 NetBSD 实现。select() 和 poll() 系统调用都使用了 poll 设备、文件和 vnode 操作例程。
* 实现了类似于 OpenBSD 的 issetugid(2) 调用。我们在更多情况下设置该参数，实施更为谨慎。
* 异步 IO 已实现（目前在非 SMP 环境下），并增加了对内核辅助线程的支持。
* 其他一些系统调用，用于与其他系统兼容：getsid(2)、setpgid(2)、nanosleep(2)。
* 新的系统调用 signanosleep(2) 类似于 nanosleep(2)，但使用特定的信号掩码来确定哪些信号会唤醒睡眠。简而言之，这是“等待一组特定的信号，直到达到指定时间”。
* sleep(3) 和 usleep(3) 现在是基于 signanosleep(2) 实现的，并且现在具有正确的 SIGALRM 交互语义，sleep(3) 会正确返回剩余时间。
* 实现了内核链接器，旨在替代 lkm 系统及其相关问题。
* 所有支持的网络协议已更新，以避免“大的选择”pr\_usrreq()，并将进程指针传递给每个可能需要进程凭证或想要休眠的用户请求，取代了以前偶尔正确执行的 curproc 检查和 SS\_PRIV 套接字状态参数。后者现已被消除，并且 SO\_PRIVSTATE 套接字选项也被清除。现在，协议还可以覆盖通用的发送、接收和轮询例程，这将使得在后续版本中能够实现更高效的协议特定的实现。最后，网络代码的许多部分已被修改，不再在 mbuf 中存储套接字地址和其他元信息，为最终消除它们做准备。现在返回套接字地址的机制仍然高度可能会变化，我们正在进行实验以发现最有效的方法。
* 现在可以通过 sysctl 禁用对多播 ICMP ECHO REQUEST（“ping”）和地址掩码请求包的响应。netstat 程序将打印出这些事件发生的次数。
* 修复了 ffs 中一个微妙且罕见的 bug。
* VFS 名称缓存已被重新设计，以提高可追踪性和效率。
* VOP\_LOOKUP() 的通用部分已被放入系统范围的函数中，文件系统可以依赖它来处理标准内容。
* Vnode 空闲列表处理已被改进。仅当没有进程关心它们时，vnode 才会出现在空闲列表中。
* 内核在可能的情况下提供帮助来使用名称缓存中的数据调用 getcwd()。
* 实现了基于中断的配置挂钩机制。这能使驱动程序推迟部分配置，直到中断完全启用后再进行。这加速了启动过程，因为避免了对设备探测（例如 SCSI 总线探测）等操作的忙等待。
* 内核中的 timeout(9) 系统已被彻底改进。这为调用插入和删除提供了 O(1) 的时间复杂度，而软时钟中处理的工作量为 O（哈希链长度）。原始论文可以在以下链接找到：<http://www.cs.berkeley.edu/~amc/research/timer/>
* 驱动程序缓冲队列的变化以处理有序事务。这旨在为文件系统代码中的数据和元数据写入排序提供支持，一旦完全支持后，将进一步实现。
* 现在支持 EISA 共享中断，工作框架最初用于支持 PCI 共享中断。
* 支持 Comtrol Rocketport 卡。
* IPFW 的数据包和字节计数器已从 32 位扩展到 64 位，已在 ipfw 中新增 `FWD` 操作以支持透明代理，且 divert 操作略有变化——有关更多信息，请参阅 natd(8) 和 ipfw(8) 的手册页。
* 新的即插即用（PnP）支持，能使你重新配置 PnP 设备。同时，支持由 PnP 部分检测到的调制解调器并自动连接。\[已合并：同样出现在 2.2.6 及之后版本的 2.2-STABLE 分支中]
* 从 Luigi Rizzo 导入了新的声音代码。该代码仍在开发中，但已经支持多种不同的声卡。\[已合并：同样出现在 2.2.6 及之后版本的 2.2-STABLE 分支中]
* 改进了 psm、mse 和 sysmouse 驱动程序，以提供更好的鼠标支持。特别是，psm 驱动程序现在支持各种“滚轮”鼠标。\[已合并：同样出现在 2.2.6 及之后版本的 2.2-STABLE 分支中]
* 增加了对 SMC EtherPower II 10/100 快速以太网卡（即基于 SMC83c170 EPIC 芯片的 SMC9432TX）的支持。\[已合并：同样出现在 2.2.7 及之后版本的 2.2-STABLE 分支中]
* 增加了对 ATAPI 弯盘驱动器（LS-120）的支持。\[已合并：同样出现在 2.2.7 及之后版本的 2.2-STABLE 分支中]
* 增加了对 IBM Etherjet 以及其他基于 Crystal Semiconductor CS89x0 的网卡（NIC）的支持。\[已合并：同样出现在 2.2.7 及之后版本的 2.2-STABLE 分支中]
* 增加了对 Texas Instruments TNET100 'ThunderLAN' PCI 网卡的支持。\[已合并：同样出现在 2.2.8 及之后版本的 2.2-STABLE 分支中]
* 为 3c900 和 3c905 适配器增加了完整的总线主 DMA 支持，并且增加了对 3c905B 的支持。\[已合并：同样出现在 2.2.8 及之后版本的 2.2-STABLE 分支中]

### 1.2. 安全修复

\[已合并：所有变更在指定日期后不久已在 2.2-STABLE 分支中合并]

97/7/29 从 OpenBSD 合并了大量 lpr/lpd 安全修复。

97/8/22 修正了 tip 中的缓冲区溢出（由于 tip 不是 set\[ug]id，因此无害）。

97/8/26 修复了 glob 中的缓冲区溢出，无已知的漏洞利用。

97/8/27 修正了 sendmail 中的 vacation 安全问题（SNI）。

97/8/29 inetd 在子进程退出时睡眠时间减少，极大地提高了抵抗 DoS 攻击的能力。

97/8/29 fts 现在是防竞态的，并且新增 find -execdir（仅适用于 -current）。

97/8/31 games 的 setuid 改为 setgid。使得任何游戏的漏洞都无害（仅分数文件 score-file 易受攻击）。请将任何问题报告给 <eivind@FreeBSD.org>（已知分数文件 score-file 所有权问题）。

97/12/3 增加了 Intel 建议的 F00F bug 修复。如果你没有 Pentium 处理器，内核选项 NO\_F00F\_HACK 可禁用它。

98/1/20 现在已包含对 LAND 攻击的更强大保护。

CERT 通知 CA-97.17 中提到的 suidperl 漏洞也被认为已修复。

KerberosIV 已合并。

### 1.3. 用户空间变化

* **默认二进制类型**（及编译工具链）已从 a.out 切换为 ELF。这为我们带来了许多新型编译器技术（其中大部分不支持 `a.out`），使可执行文件体积更小，并为 C++ 等语言提供了更好的支持。旧的 a.out 库和二进制文件仍然可以继续使用，并为过渡期提供了同时安装两种类型的选项。
* **Perl4** 已被 **Perl5** 替代，成为系统的标准组件。
* **默认用户名长度** 增加到 16 个字符。注意：旧的 utmp/wtmp 文件不支持此变更，因为数据记录仍然是旧大小。有关转换工具，请参阅 `/usr/src/tools/3.0-upgrade`。
* **/etc/sysconfig** 已被更紧凑的 **/etc/rc.conf** 文件取代。\[已合并：也适用于 2.2.1 及更高版本的 2.2-STABLE 分支]
* **fdisk(8)** 现在将磁盘分区从 1 到 4 编号，而不是从 0 到 3。这使其与 `/dev` 中设备名称使用的编号保持一致。
* **Amd 自动挂载程序** 已从 1993 年的 4.4BSD 版本更新为最新的 am-utils 版本。挂载选项发生了一些变化，并支持一个新配置文件 `/etc/amd.conf`。详情请参阅 "man 5 amd.conf"。
* **picobsd** 包（用于创建自定义 FreeBSD 引导软盘和 "迷你系统"）已被引入 `/usr/src/release/picobsd`。更多信息请参阅 `/usr/src/release/picobsd/README.html`。
* **finger(1)** 在网络操作时，不再在发送请求后立即关闭套接字，而是等待远程端先关闭。（规范对此未明确规定，我们选择与大多数服务器兼容的行为。）这使其能够使用 MIT 目录并与某些问题较多的 Linux 机器进行互操作。
* **fetch(1)** 新增个新参数，能使与某些处理不当的 HTTP 实现通信，这些实现会因请求消息后立即关闭连接而出错。
* **netstat(1)** 现在使用 **sysctl(3)** 检索更多统计数据组，并以正确的无符号格式打印大多数数据。
* 一个新的 **VGA 库**（`/usr/src/lib/libvgl`）现已存在，用于在 syscons tty 上进行简单的 VGA 图形操作（类似于 Linux 的 libSVGA）。\[已合并：也适用于 2.2.5 及更高版本的 2.2-STABLE 分支]
* **Xntpd** 的系统日志记录功能已移至一个独立的日志设施（`LOG_NTP`，用户空间名称为 "ntp"）。
* 新增一个新的 ioctl 对：**SIOC\[SG]IFGENERIC**。其目的是为将任意 ioctl 子命令传递到网络接口驱动程序提供挂钩。例如，这对于 PPP 驱动程序在驱动程序与用户空间工具之间传递 CHAP 名称、密钥或可变选项是必要的。
* **sppp(4)** 自 FreeBSD 2.2.X 以来得到了显著改进。现在采用完整的 PPP 状态机，支持更多的 LCP 和 IPCP 协商，适合拨号按需连接（例如经常运行在 ISDN 上的连接）。还支持 PAP 和 CHAP 认证。用户空间的配套工具 **spppcontrol(8)** 是第一个利用上述 SIOC\[SG]IFGENERIC ioctl 命令的程序。
* **moused(8)** 已修改为支持带有“滚轮”的各种鼠标。它还会自动识别支持 PnP COM 设备标准的鼠标，因此用户不再需要在命令行上指定鼠标协议类型。\[已合并：也适用于 2.2.6 及更高版本的 2.2-STABLE 分支]
* **ppp(8)** 支持包括 **PPP 多链路协议**（RFC1990）、**PPP 回拨**（带 CBCP 扩展）和客户端侧 DNS 协商在内的多种新功能。有关可能的配置冲突的详细信息，请参阅源目录中的 `README.changes` 文件。
* POSIX 线程库 **libc\_r** 已新增根据单一 UNIX 规范版本 2 定义的 **线程读/写锁**。
* 系统文件现在归用户 `root` 和组 `wheel` 所有。UID 0 比 `bin` 更受保护，尤其是在 NFS 上。
* **/bin/sh** 的信号和 trap 处理已重写。这使得 tty 模式下的 emacs 在由 **system(2)** 调用（例如通过邮件代理）时可以正常工作，并修复了一些语法错误。\[已合并：也适用于 2.2.8 及更高版本的 2.2-STABLE 分支]
* **systat(1)**、**iostat(8)**、**rpc.rstatd(8)** 和 **vmstat(8)** 已被改进为使用新的 **devstat(3)** 库和 **devstat(9)** 统计子系统。这些工具（除了 **rpc.rstatd(8)**）现在打印出更有用的统计数据，并能够查看系统中所有设备的统计数据，而不仅限于前 8 个设备。

## 2. 支持的配置

FreeBSD 目前可以运行在各种基于 ISA、VLB、EISA 和 PCI 总线的 PC 上，支持从 386sx 到奔腾级的机器（虽然不推荐使用 386sx）。系统提供对常见 IDE 或 ESDI 硬盘配置、各种 SCSI 控制器、网络和串行卡的支持。

以下列出了目前已知可以与 FreeBSD 兼容的外设设备。其他配置可能也能够正常运行，但尚未收到相关确认。

### 2.1 硬盘控制器

**通用控制器支持：**

* WD1003 (所有通用 MFM/RLL)
* WD1007 (所有通用 IDE/ESDI)
* IDE
* ATA

**Adaptec SCSI 控制器：**

* Adaptec 1535 ISA SCSI 控制器
* Adaptec 154x 系列 ISA SCSI 控制器
* Adaptec 174x 系列 EISA SCSI 控制器（支持标准模式和增强模式）
* Adaptec 274X/284X/2920/2940/2950/3940/3950 系列 EISA/VLB/PCI SCSI 控制器（包括窄带、宽带和双通道型号）
* Adaptec AIC7850、AIC7880、AIC789x 集成 SCSI 控制器

**AdvanSys SCSI 控制器：**

支持所有型号

**Buslogic SCSI 控制器：**

* Buslogic 545S & 545c
* Buslogic 445S/445c VLB SCSI 控制器
* Buslogic 742A、747S、747c EISA SCSI 控制器
* Buslogic 946c PCI SCSI 控制器
* Buslogic 956c PCI SCSI 控制器

**DPT SCSI/RAID 控制器：**

支持大多数型号

**SymBios（原 NCR）PCI SCSI 控制器：**

* 支持型号：53C810、53C825、53c860、53c875
  * ASUS SC-200
  * Data Technology DTC3130（所有版本）
  * NCR 控制器（所有型号）
  * Symbios 控制器（所有型号）
  * Tekram DC390W、390U 和 390F
  * Tyan S1365

**其他支持的 SCSI 和光纤通道控制器：**

* QLogic 控制器
* DTC 3290 EISA SCSI 控制器（以 1542 仿真模式运行）

**SCSI 外设支持：**\
支持 SCSI-I 和 SCSI-II 外设，包括硬盘、光盘、磁带机（包括 DAT 和 8mm Exabyte）、介质转换器、处理器目标设备和 CD-ROM 驱动器。

* 支持 WORM（一次写多次读）设备，只读访问通过 CD-ROM 驱动实现
* WORM/CD-R/CD-RW 的写入支持由 **cdrecord** 提供，该工具可在 ports 树中找到

**当前支持的 CD-ROM 类型：**

* **(cd)** SCSI 接口（包括 ProAudio Spectrum 和 SoundBlaster SCSI）
* **(matcd)** Matsushita/Panasonic（Creative SoundBlaster）专有接口（562/563 型号）
* **(scd)** Sony 专有接口（所有型号）
* **(wcd)** ATAPI IDE 接口

**SCSI 磁带支持：**

* CAM SCSI 磁带驱动程序对旧的（且许多情况下不兼容的）磁带机支持有限。例如，旧的 SCSI-1 磁带机（如 Exabyte 8200 或老旧的 QIC 型磁带机）可能无法正常工作。
* 大多数兼容 SCSI-2 的新磁带机应该能正常运行，例如 DAT（DDS-1、2 和 3）、DLT 和较新的 Exabyte 8mm 磁带机。

**旧 SCSI 子系统支持但新 CAM SCSI 子系统暂不支持的控制器：**

* Tekram DC390 和 DC390T 控制器（以及其他基于 AMD 53c974 的卡）
* NCR5380/NCR53400（“ProAudio Spectrum”）SCSI 控制器
* UltraStor 14F、24F 和 34F SCSI 控制器
* Seagate ST01/02 SCSI 控制器
* Future Domain 8xx/950 系列 SCSI 控制器
* WD7000 SCSI 控制器
* Adaptec 1510 系列 ISA SCSI 控制器（不支持可引导设备）
* Adaptec 152x 系列 ISA SCSI 控制器
* 基于 Adaptec AIC-6260 和 AIC-6360 的控制器（包括 AHA-152x 和 SoundBlaster SCSI 卡）

**未维护的驱动程序（可能支持或不支持你的硬件）：**

* 软盘磁带接口（Colorado/Mountain/Insight）
* **(mcd)** Mitsumi 专有 CD-ROM 接口（所有型号）

### 2.2 以太网卡

支持以下以太网卡：

* Allied-Telesis AT1700 和 RE2000 网卡
* AMD PCnet/PCI（79c970 & 53c974 或 79c974）
* SMC Elite 16 WD8013 网卡，以及大多数基于 WD8003E、WD8003EBT、WD8003W、WD8013W、WD8003S、WD8003SBT 和 WD8013EBT 的克隆卡。支持 SMC Elite Ultra 和 SMC Etherpower II。
* 德州仪器 ThunderLAN PCI 网卡，包括：
  * Compaq Netelligent 系列（10、10/100、10/100 Proliant、10/100 Dual-Port 等）
  * Compaq Netelligent 10/100 TX Embedded UTP、10 T PCI UTP/Coax、10/100 TX UTP
  * Compaq NetFlex 3P 系列（3P、3P Integrated、3P w/ BNC）
  * Olicom OC-2135/2138、OC-2325、OC-2326 10/100 TX UTP
* DEC EtherWORKS III 网卡（DE203、DE204 和 DE205）
* DEC EtherWORKS II 网卡（DE200、DE201、DE202 和 DE422）
* 基于 DEC DC21040、DC21041 或 DC21140 的网卡（例如 SMC Etherpower 8432T、DE245 等）
* DEC FDDI 网卡（DEFPA/DEFEA）
* 富士通 MB86960A/MB86965A
* 惠普 PC Lan+ 网卡（型号：27247B 和 27252A）
* Intel EtherExpress 系列：
  * EtherExpress 16
  * EtherExpress Pro/10
  * EtherExpress Pro/100B PCI 快速以太网
* Isolan AT 4141-0（16 位）
* Isolink 4110（8 位）
* Novell NE 系列：NE1000、NE2000 和 NE2100
* 3Com 系列：
  * 3C501 卡
  * 3C503 Etherlink II
  * 3C505 Etherlink/+
  * 3C507 Etherlink 16/TP
  * 3C509、3C579、3C589（PCMCIA）、3C590/592/595/900/905/905B PCI 和 EISA (Fast) Etherlink III / (Fast) Etherlink XL
* 东芝以太网卡
* 基于 Crystal Semiconductor CS89x0 的网卡，包括：
  * IBM Etherjet ISA
* 支持来自 IBM 和 National Semiconductor 的 PCMCIA 以太网卡

**注意：** 目前不支持令牌环网卡。我们正在等待有人提供相应的驱动程序。如果你有兴趣，请联系我们！

### 2.3 ATM 支持

* **ATM 主机接口：**
  * FORE Systems, Inc. PCA-200E ATM PCI 适配器
  * Efficient Networks, Inc. ENI-155p ATM PCI 适配器
* **ATM 信令协议：**
  * ATM Forum UNI 3.1 信令协议
  * ATM Forum UNI 3.0 信令协议
  * ATM Forum ILMI 地址注册
  * FORE Systems 专有的 SPANS 信令协议
  * 永久虚拟通道（PVCs）
* **IETF“基于 ATM 的经典 IP 和 ARP”模型：**
  * RFC 1483: "ATM 适配层 5 上的多协议封装"
  * RFC 1577: "基于 ATM 的经典 IP 和 ARP"
  * RFC 1626: "ATM AAL5 使用的默认 IP MTU"
  * RFC 1755: "ATM 信令支持基于 ATM 的 IP"
  * RFC 2225: "基于 ATM 的经典 IP 和 ARP"
  * RFC 2334: "服务器缓存同步协议 (SCSP)"
  * Internet Draft: draft-ietf-ion-scsp-atmarp-00.txt,\
    "使用 SCSP 的分布式 ATMARP 服务"
* **ATM 套接字接口**

### 2.4 杂项设备

以下杂项设备受支持：

* **串口卡**
  * AST 4 端口串口卡（使用共享 IRQ）
  * ARNET 8 端口串口卡（使用共享 IRQ）
  * ARNET（现为 Digiboard）Sync 570/i 高速串口卡
  * Boca 系列：
    * BB1004 4 端口串口卡（不支持调制解调器）
    * IOAT66 6 端口串口卡（支持调制解调器）
    * BB1008 8 端口串口卡（不支持调制解调器）
    * BB2016 16 端口串口卡（支持调制解调器）
  * Comtrol Rocketport 卡
  * Cyclades Cyclom-y 串口板
  * STB 4 端口卡（使用共享 IRQ）
  * SDL Communications 系列：
    * Riscom/8 串口板
    * RISCom/N2 和 N2pci 高速同步串口板
  * Stallion 多端口串口板：EasyIO、EasyConnection 8/32 和 8/64、ONboard 4/16 以及 Brumby
* **声卡**
  * 支持的型号包括：
    * Adlib、SoundBlaster、SoundBlaster Pro、ProAudioSpectrum、Gravis UltraSound 和 Roland MPU-401（通过 `snd` 驱动程序）
    * 绝大多数由 Crystal Semiconductors、OPTi、Creative Labs、Avance、Yamaha 和 ENSONIQ 制造的 ISA 音频编解码器（通过 `pcm` 驱动程序）
* **视频与图像采集设备**
  * Connectix QuickCam
  * Matrox Meteor 视频帧抓取器
  * Creative Labs Video Spigot 帧抓取器
  * Cortex1 帧抓取器
  * Hauppauge Wincast/TV 板卡（PCI）
  * STB TV PCI
  * Intel Smart Video Recorder III
  * 基于 Brooktree Bt848 芯片的各类帧抓取器
* **CD-R 驱动器**
  * HP4020、HP6020、Philips CDD2000/CDD2660 和 Plasmon CD-R 驱动器
* **其他外设**
  * PS/2 鼠标
  * 标准 PC 游戏手柄
  * X-10 电源控制器
  * GPIB 和 Transputer 驱动程序
  * Genius 和 Mustek 手持扫描仪
  * 基于 Xilinx XC6200 的可重配置硬件卡，与 Virtual Computers ([www.vcc.com](http://www.vcc.com)) 提供的 HOT1 兼容
  * 支持 Dave Mills 的实验性 Loran-C 接收器

**注意：** FreeBSD 目前不支持 IBM 的 Microchannel (MCA) 总线。

## 3. 获取 FreeBSD

你可以通过以下方式获取 FreeBSD：

### 3.1 FTP/邮件

你可以通过访问官方 FreeBSD 站点 `ftp.FreeBSD.org` 下载 FreeBSD 及其可选软件包。

有关镜像站点的信息，请参阅文件 `MIRROR.SITES`。请从网络条件上距离你最近的镜像站点下载发行版。欢迎更多的镜像站点加入！如需成为官方镜像站点，请联系 `freebsd-admin@FreeBSD.org`。

如果你无法访问互联网，但可以使用电子邮件，仍然可以通过发送邮件到 `ftpmail@ftpmail.vix.com` 来获取文件。在邮件中输入关键字“help”，即可获取有关如何通过该机制下载文件的更多信息。不过请注意，这种方式可能会通过邮件传输几十兆字节的数据，因此仅在 **绝对必要时** 使用此方法！

### 3.2 购买光盘

你可以通过以下方式订购 FreeBSD 3.0-RELEASE 和 2.2.x-RELEASE 的光盘：

**邮购地址**

```
Walnut Creek CDROM  
4041 Pike Lane, Suite D  
Concord, CA 94520  
电话：1-800-786-9907 或 +1-925-674-0783  
传真：+1-925-674-0821  
```

**在线订购**

通过以下方式订购：

* 电子邮件：<orders@cdrom.com>
* 官网链接：<http://www.cdrom.com>

他们的最新目录可以通过 FTP 获取：`ftp://ftp.cdrom.com/cdrom/catalog`

**价格**

* 每张 -RELEASE 光盘的价格为 $39.95，或通过 FreeBSD 订阅购买仅需 $24.95。
* FreeBSD SNAPshot 光盘（如有供应）价格为 $39.95，或通过 FreeBSD-SNAP 订阅购买仅需 $14.95。
  * **注意**：-RELEASE 和 -SNAP 的订阅是完全独立的。

**订阅服务**

订阅服务可让你在新版本发布时自动收到更新。每次光盘寄出时，你的信用卡将被扣款，你可以随时取消订阅，无需承担额外费用。

**运费**

* 每订单（而非每张光盘）运费：
  * 美国、加拿大和墨西哥：$5
  * 海外：$9
* 支付方式包括 Visa、Mastercard、Discover、American Express 或美元支票。美国境内还支持货到付款 (COD)。
* **注意**：加州居民需另加 8.25% 的销售税。

**退货政策**

如果你对光盘不满意，可无条件退货。

## 4. 从旧版本 FreeBSD 升级

如果你正在从以前的 FreeBSD 版本升级，大多数情况下是从 2.2.x 或 2.1.x（较少情况下）版本升级，根据你选择的升级方法，以下一些问题可能会影响你。目前升级 FreeBSD 发行版的两种流行方法是：

* 使用源代码（通过 `/usr/src`）
* 还可使用 `sysinstall`（二进制）升级

### 使用源代码

如果选择使用源代码进行升级，需要注意以下两种目标：

1. 标准的 `world` 目标：将 2.x 系统升级到 3.0。
2. `aout-to-elf` 目标：不仅会升级系统，还会将系统转换为 ELF 二进制格式。

### 使用二进制升级选项

通过二进制升级选项，系统会直接升级到 3.0/ELF，同时在 `/（<basepath>/lib/aout）` 目录中填充内容，以便向后兼容旧的二进制文件。

### 关于 ELF 转换的重要信息

无论选择哪种方法，切换到 ELF 格式将带来以下变化：

* 优点：生成的二进制文件体积更小，并可使用大量已移植到其他 ELF 环境的编译工具（由于旧的 a.out 格式较为陈旧，且大多数其他软件项目已不再支持）。
* 缺点：可用的 ports 和软件包数量会减少，因为许多还未适配 ELF 格式。这些问题会随着时间解决，但如果你希望保持对最多软件包和第三方二进制文件的支持，建议继续使用 a.out 格式。

### 内核兼容性

当前，内核仍然使用 `a.out` 格式，以确保旧的 LKM（可加载内核模块）和库接口继续正常工作。但在 3.0-RELEASE 之后，内核将全面转向 ELF 格式。

因此，建议希望生成动态内核组件的用户采用新的 **KLD（Kernel Loadable Driver）可加载内核模块机制**，而不是旧的 LKM 格式。LKM 格式即将被废弃并停止支持！

**\[其他重要的升级注意事项应在此处补充]**

## 5. 报告问题、提出建议、提交代码

你的建议、错误报告和代码贡献始终受到重视——请随时报告你发现的任何问题（如果可能，最好附上修复方法）。

如果你的机器支持 Internet 邮件连接，提交错误报告的首选方法是使用 **`send-pr` 命令**，或者通过以下链接访问 CGI 脚本提交报告：<http://www.FreeBSD.org/send-pr.html>。

通过此方式提交的错误报告会被我们可靠的错误归档程序接收，并归档在系统中。你可以放心，我们会尽力尽快响应所有报告的错误。此外，这些错误报告会在 FreeBSD 网站的支持部分公开显示，既有助于修复问题，也能作为“指示参数”提醒其他用户注意潜在问题。

如果由于某些原因无法使用 `send-pr` 命令提交错误报告，可以尝试发送邮件至：**<freebsd-bugs@FreeBSD.org>**

需要注意的是，`send-pr` 本身是个 shell 脚本，应该可以轻松迁移到其他系统中。我们更希望你通过此界面提交报告，因为这便于我们追踪问题报告。然而，在提交之前，请尽量确认该问题是否已经被修复。

如果你有任何问题或需要技术支持，请发送邮件至：**<freebsd-questions@FreeBSD.org>**

此外，作为一项志愿者努力的项目，我们始终欢迎更多愿意帮助的朋友——目前已有的功能增强需求远超我们自身的能力范围！如果你想讨论技术问题或提供帮助，请发送邮件至：**<freebsd-hackers@FreeBSD.org>**

请注意，这些邮件列表可能会产生 *大量* 流量。如果你的邮件访问速度较慢或费用较高，而你只想了解 FreeBSD 的重大事件更新，可以考虑订阅：**<freebsd-announce@FreeBSD.org>**

所有邮件列表都可供任何有意愿的人自由加入。只需发送邮件至 **<MajorDomo@FreeBSD.org>**，并在邮件正文中单独写上一行关键字 **`help`**，即可获得关于如何加入各种邮件列表、访问存档等更多信息。

此外，还有许多专注于特定兴趣小组的邮件列表未在此处提及，发送邮件至 **MajorDomo** 并查询即可了解更多信息！

## 6. 致谢

FreeBSD 汇集了来自全球几十位甚至上百位个人的共同努力，他们为带来这一版本付出了大量心血。有关 FreeBSD 项目团队成员的完整列表，请访问：<http://www.FreeBSD.org/handbook/staff.html>

如果你已安装文档分发包，也可以查看本地文件：`file:/usr/share/doc/handbook/staff.html`

特别感谢以下人士和团体：

* [FreeBSD 捐赠者名单](http://www.FreeBSD.org/handbook/donors.html) 中的所有捐赠者。
* **Justin M. Seger**，几乎凭一己之力将 ports 转换为 ELF 格式。
* **Doug Rabson** 和 **John Birrell**，以及 NetBSD 项目，他们为 FreeBSD/alpha 的实现提供了重要支持和间接帮助。
* **Peter Wemm** 为全新的内核模块系统所作出的贡献（同时感谢 **Doug Rabson** 的大力协助）。
* 全球成千上万的 FreeBSD 用户和测试者，没有他们，这一版本的发布是不可能实现的。

我们衷心希望你喜欢这一版本的 FreeBSD！

**FreeBSD 项目团队**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.bsdcn.org/release/3.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
