FreeBSD 7.0 RELEASE 发行公告(2008 年 2 月 27 日)

FreeBSD 项目

版权所有 © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 FreeBSD 文档项目

$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1068.2.20.2.3 2008/02/16 16:03:48 bmah Exp $

FreeBSD 是 FreeBSD 基金会的注册商标。

IBM、AIX、EtherJet、Netfinity、OS/2、PowerPC、PS/2、S/390 和 ThinkPad 是国际商业机器公司在美国、其他国家或两者的商标。

IEEE、POSIX 和 802 是美国电气与电子工程师学会(Institute of Electrical and Electronics Engineers, Inc.)的注册商标。

Intel、Celeron、EtherExpress、i386、i486、Itanium、Pentium 和 Xeon 是英特尔公司或其子公司在美国和其他国家的商标或注册商标。

Sparc、Sparc64、SPARCEngine 和 UltraSPARC 是 SPARC 国际公司在美国和其他国家的商标。标有 SPARC 商标的产品基于 Sun Microsystems, Inc. 开发的架构。

许多制造商和销售商用来区分其产品的名称被声明为商标。若该名称出现在本文件中,且 FreeBSD 项目已知其商标声明,则该名称后将附有“™”或“®”符号。

FreeBSD 7.0-RELEASE 的发布说明包含对 FreeBSD 基本系统在 7-STABLE 开发线路上所做变更的总结。本文档列出了自上次发布以来发布的适用安全公告,以及对 FreeBSD 内核和用户空间的重大变更。还提供了关于升级的一些简要说明。

1 介绍

本文档包含了 FreeBSD 7.0-RELEASE 的发布说明。它介绍了 FreeBSD 最近添加、修改或删除的功能,并提供了一些关于从旧版本 FreeBSD 升级的注意事项。

这个版本的 FreeBSD 7.0-RELEASE 是一个快照版本。你可以在 http://www.FreeBSD.org/snapshots/arrow-up-right 或其镜像站点找到它。有关如何获取此(或其他)FreeBSD 快照版本的更多信息,可以参考 FreeBSD 手册arrow-up-right中的“获取 FreeBSD”附录arrow-up-right

在安装 FreeBSD 之前,强烈建议所有用户查阅发布勘误文档。勘误 文档包含在发布周期末期或发布后发现的“最新动态”信息。通常,它包含已知的错误、漏洞安全公告以及文档修正。可以在 FreeBSD 网站上找到 FreeBSD 7.0-RELEASE 的最新勘误文档。

2 新特性

本节介绍了自 6.0-RELEASE 以来 FreeBSD 中最具用户可见性的新增或变更功能。一般而言,除非特别标注为 [已合并] 特性,否则这里描述的变更是 7-STABLE 分支特有的。

典型的发布说明项包括描述自 6.0-RELEASE 以来发布的安全公告、新的驱动程序或硬件支持、新的命令或选项、重大 bug 修复或第三方软件升级。它们也可能列出对主要 ports/packages 或发布工程实践的变更。显然,发布说明不能列出每个版本之间对 FreeBSD 所做的所有变更;本文档主要集中在安全公告、用户可见的变化和重大架构改进。

2.1 安全公告

已修复 BIND 中的两个远程服务拒绝漏洞(一个涉及 DNSSEC,另一个涉及递归 DNS 查询)。有关更多信息,请参见安全公告 FreeBSD-SA-07:02.bindarrow-up-right。[已合并]

IPv6 类型 0 路由头的处理现在由 sysctl 变量 net.inet6.ip6.rthdr0_allowed 控制,默认值为 0(关闭)。有关更多信息,请参见安全公告 FreeBSD-SA-07:03.ipv6arrow-up-right。[已合并]

已修复 file(1)arrow-up-right 工具(以及其依赖的 libmagic(3)arrow-up-right 库)中的潜在堆溢出。更多细节请参见安全公告 FreeBSD-SA-07:04.filearrow-up-right。[已合并]

已修复 libarchive(3)arrow-up-righttar(1)arrow-up-right 处理损坏的 tar(5)arrow-up-right 存档文件的问题。更多细节请参见安全公告 FreeBSD-SA-07:05.libarchivearrow-up-right。[已合并]

已修复 tcpdump(1)arrow-up-right 中的缓冲区溢出问题。更多信息请参见安全公告 FreeBSD-SA-07:06.tcpdumparrow-up-right。[已合并]

已修复 named(8)arrow-up-right 中的 bug,该问题可能导致攻击者能够污染解析器的 DNS 缓存。更多细节请参见安全公告 FreeBSD-SA-07:07.bindarrow-up-right。[已合并]

已修复 OpenSSL 中的缓冲区溢出问题(此前在安全补丁中错误修复)。更多细节请参见安全公告 FreeBSD-SA-07:08.opensslarrow-up-right。[已合并]

已修复可能导致泄露先前生成的 random(4)arrow-up-right 数据的缺陷。有关该问题的信息请参见安全公告 FreeBSD-SA-07:09.randomarrow-up-right。[已合并]

已修复 openpty(3)arrow-up-rightptsname(3)arrow-up-right 中的信息泄露问题。有关该问题的信息请参见安全公告 FreeBSD-SA-08:01.ptyarrow-up-right。[已合并]

已修复 inet_network(3)arrow-up-right 网络地址处理函数中的编程错误,该错误可能导致覆盖内存区域。有关该问题的信息请参见安全公告 FreeBSD-SA-08:02.libcarrow-up-right。[已合并]

已修复可能允许 sendfile(2)arrow-up-right 不当访问文件内容的错误。更多信息请参见安全公告 FreeBSD-SA-08:03.sendfilearrow-up-right。[已合并]

2.2 内核变更

acpi(4)arrow-up-right 现在支持 HPET 时间计数器。[已合并]

acpi_ibm(4)arrow-up-right 驱动程序现在支持将风扇控制模式设置为手动或自动,并在手动模式下调整风扇速度。要启用风扇速度的手动控制,必须将 sysctl 变量 dev.acpi_ibm.0.fan 设置为 0(手动)。此功能仅应在极为谨慎的情况下使用,因为禁用自动风扇控制可能导致硬件过热并造成永久损坏。

apm(4)arrow-up-right 的挂起/恢复支持得到了改进。

cpufreq(4)arrow-up-right CPU 频率控制框架现在在 GENERIC 内核中启用。

已将 Camellia 块加密算法添加到 FreeBSD 内核中。现在它可以在 ipsec(4)arrow-up-rightgeli(8)arrow-up-right 中作为加密算法使用。有关 Camellia 的更多信息可以在 RFC 4132 中找到。

内核配置选项 COMPAT_43 被认为不再必要,并已从 GENERIC 和相关的内核配置中移除。此变更可能会导致某些工作负载的性能略有提升。

简易控制台驱动程序 (dcons(4)arrow-up-right) 现在在 GENERIC 内核中启用。

ddb(4)arrow-up-right 调试器现在提供 show sleepq 命令。该命令接受一个等待通道作为参数,并查找与该等待通道相关联的睡眠队列。

已修复文件描述符处理中的一个 bug,即在某些情况下,简单的 close(0); dup(fd) 序列不会返回描述符 0

gdb(1)arrow-up-right 远程调试接口现在支持将控制台消息复制到远程调试器实例。要启用此功能,需要在 loader.conf 中设置 debug.gdbcons="1",然后从 loader 提示符输入 boot -d; gdb; step,再从远程机器附加 gdb(1)arrow-up-right。可以使用 sysctl 变量 debug.gdbcons 来开启或关闭此功能。

hwpmc(4)arrow-up-rightpmcstat(8)arrow-up-right 现在支持对动态加载的内核模块和使用 dlopen(3)arrow-up-right 加载的共享对象进行分析。

新增 sysctl 变量 kern.hostuuid,用于保存主机的全局唯一标识符(UUID)。此 UUID 由新的 rc.d/hostid 启动脚本计算或生成,并在可能的情况下保存到磁盘,以便在重启后仍然持久存在。

INCLUDE_CONFIG_FILE 内核配置选项已得到改进。现在可以通过 sysctl -b kern.conftxt 获取正在运行的内核的完整配置,也可以通过 config -x kernelfile 从内核文件中提取配置。要保留包含所有注释的原始内核配置,可以使用 config(8)arrow-up-right-C 选项。

内核调度实体(KSE)现在是一个内核选项(之前是内核中的强制功能)。它在 GENERIC 内核中启用(因此所有平台上功能没有变化),除了 sun4v 平台外。

Linux ABI 支持已增强,支持模拟 Linux 2.6.16。默认情况下此功能未启用。要启用它,必须将 sysctl 变量 compat.linux.osrelease 设置为 2.6.16。请注意,此支持仍处于实验阶段。

内核的 PCI 支持代码现在已新增对消息信号中断(MSI)和扩展消息信号中断(MSI-X)的支持。[已合并]

新增了 priv(9)arrow-up-right 内核接口,用于检查线程和凭证的权限可用性。与现有的 suser(9)arrow-up-right 接口不同,priv(9)arrow-up-right 向权限检查代码暴露了一个命名的权限标识符,允许更复杂的权限授予策略。

FreeBSD 现在支持并发 read(2)arrow-up-right/readv(2)arrow-up-right 访问文件。

内核的 sx(9)arrow-up-right 锁已优化,使用简单的原子操作来处理获取和释放共享锁和独占锁的常见情况。尽管此变更通常对用户不可见,但它为一些显著的性能提升奠定了基础。

ULE 进程调度器已修订,以改善其行为,特别是在负载下的交互性,适用于单处理器和多处理器机器。此实现通常被称为“ULE 3.0”。(ULE 3.0 以前被称为 SCHED_SMP,而 SCHED_SMP 又基于 ULE 调度器的 2.0 版本。ULE 2.0 从未成为任何 FreeBSD 版本的一部分,但它曾是许多开发、测试和基准测试工作的主题。)

添加了 SIGCHLD 信号排队功能。对于每个状态已变更的子进程,会排队一个 SIGCHLD 实例。如果信号仍然挂起,并且进程多次变更状态,信号信息将更新以反映最新的进程状态。新增了加载器可调参数 kern.sigqueue.queue_sigchild,用于控制此行为,设置为零则禁用 SIGCHLD 排队功能。

新增 sysctl 变量 kern.malloc_stats,允许通过二进制结构流导出内核 malloc 统计信息。

新增 sysctl 变量 kern.forcesigexit,当当前线程持有一个陷阱信号或当前进程忽略该信号时,它强制进程进行 sigexit。默认情况下启用此功能。

已移除 pcvt(4) 驱动程序(syscons(4)arrow-up-right 的替代方案),因为它与内核的其他部分已经不同步。

RedZone,内核 malloc(9)arrow-up-right 的缓冲区损坏保护功能已实现。它可以在 free(9)arrow-up-rightrealloc(9)arrow-up-right 上运行时检测缓冲区下溢和溢出,并打印出内存分配和释放的位置的回溯信息。有关更多详细信息,请参见 redzone(9)arrow-up-right 手册页。

新增了加载器可调参数 vm.kmem_size_min,可以指定 vm.kmem_size 的最小值。

新增了 sysctl 变量 vm.zone_stats,允许通过二进制结构流导出 uma(9)arrow-up-right 分配器统计信息。

sysctl 变量 hw.pci.do_powerstate 已被拆分为两个 sysctl 变量 hw.pci.do_powerstate_nodriverhw.pci.do_powerstate_resume。此外,这些变量已从布尔值变更为范围值。0 表示不进行电源管理,1 表示保守的电源管理,将出现问题的任何设备类添加到监视列表中,2 表示积极的电源管理,将非系统基本的任何设备类添加到列表中,3 表示无条件地关闭所有设备。默认值为 hw.pci.do_powerstate_nodriver0hw.pci.do_powerstate_resume1

[ia64] GENERIC 内核现在默认启用 SMP 支持。

已新增样本内核配置文件 src/sys/arch/conf/MAC,用于强制访问控制框架。

POSIX_TIMERS 支持已更新为 200112L。

已实现对 POSIX 消息队列的实验性支持。

UNIX 域套接字的锁定策略已修订,以提高并发性;这一变更在各种 SMP 工作负载(特别是在 8 路 amd64 系统上的 MySQL)上带来了显著的性能提升,同时对 UP 系统几乎没有或没有测量到额外开销。

为支持与中断过滤相关的一些持续工作,对 Newbus API 进行了若干小的但广泛的变更。由于此变更还打破了内核 ABI,所有第三方设备驱动程序都需要进行修改并重新编译。

2.2.1 启动加载器变更

新增了 -S 选项,可以在 /boot.config 文件或 boot: 提示行中设置 boot2 串行控制台的速度。

[amd64, i386] 已为启动加载器添加了 firewire(4)arrow-up-rightdcons(4)arrow-up-right 支持。要启用此功能,需要在 /etc/make.conf 文件中添加 LOADER_FIREWIRE_SUPPORT=yes,并重新构建加载器。

[pc98] boot0.5 中的 IPLware 支持已增强,支持版本 3.33。

2.2.2 硬件支持

cardbus(4)arrow-up-rightpccard(4)arrow-up-rightpccbb(4)arrow-up-rightex(4)arrow-up-right 驱动程序现在可以作为内核模块构建。

新增了 acpi_dock(4)arrow-up-right 驱动程序,以通过 ACPI 支持控制笔记本电脑扩展坞功能。 [已合并]

acpi_thermal(4)arrow-up-right 驱动程序现在支持覆盖 _PSV_HOT_CRT 温度值。

已移除对 Alpha 架构的支持。Alpha 支持将保留在 RELENG_5 和 RELENG_6 代码线中。

cardbus(4)arrow-up-right 驱动程序现在支持 /dev/cardbus%d.cis

[i386, amd64] 新增了 coretemp(4)arrow-up-right 驱动程序,用于提供 Intel® Core™ 处理器的温度读数。 [已合并]

est cpufreq(4)arrow-up-right 驱动程序现在支持 VIA C7-M 系列处理器的频率控制。

firewire(4)arrow-up-right 代码现已支持 MPSAFE。

新增了 icee(4),一款通用的 I2C EEPROM 驱动程序。

修复了一个 bug,该 bug 阻止了 ichsmb(4)arrow-up-right 内核模块卸载。

[amd64, i386] 双核处理器(例如 Intel Core Duo)现在在默认启用 SMP 的内核中可用两个核心。 [已合并]

[ia64, powerpc] loader 可调参数 debug.mpsafevfs 默认设置为 1

已移除 sab(4)arrow-up-right 驱动程序(已被 scc(4)arrow-up-right 驱动程序取代)。

新增了 scc(4)arrow-up-right 驱动程序,提供通用的串行通信控制器支持,并将对每个通道和模式的控制委托给从属驱动程序(如 uart(4)arrow-up-right)。

[amd64] 增加了对 amd64 的 smbios(4) 驱动程序支持。

[sun4v] FreeBSD 现在对 Sun Microsystems UltraSPARC-T1 架构提供初步支持。FreeBSD/sun4v 已证明可以在 Sun Fire T1000 和 Sun Fire T2000 服务器上运行。更多信息请参见 sun4v 项目页面arrow-up-right

新增了 tnt4882(4) 驱动程序,支持 National Instruments PCI-GPIB 卡。

[amd64, i386, ia64, sparc64] uart(4)arrow-up-right 驱动程序已默认包含在 GENERIC 内核中。当 sio(4)arrow-up-rightuart(4)arrow-up-right 都能处理给定的串行端口时,sio(4)arrow-up-right 将声明使用该端口。

新增了 uark(4)arrow-up-right 驱动程序,支持基于 Arkmicro Technologies ARK3116 的 USB 串行适配器。

uart(4)arrow-up-right 驱动程序现在支持 LOM(Lights Out Management)和 RSC(Remote System Control)设备作为控制台。

已移除 zs 驱动程序,其功能已被 uart(4)arrow-up-right 驱动程序取代。

[i386] 新增了 loader 可调参数 hw.apic.enable_extint。此可调参数可用于禁用第一个 I/O APIC 上的 ExtINT 引脚屏蔽。至少一些 Intel Pentium III 的芯片组似乎需要此设置,尽管 8259A 中的所有引脚都被屏蔽。默认情况下,仍然屏蔽 ExtINT 引脚。

2.2.2.1 多媒体支持

新增了基于 NetBSD 的 midi(4) 驱动。此驱动支持 snd_cmi(4)arrow-up-rightsnd_emu10k1(4)arrow-up-right 驱动。

snd_cmi(4)arrow-up-right 驱动现在已实现 MPSAFE。

新增了 snd_emu10kx(4)arrow-up-right 驱动,支持 Creative SoundBlaster Live! 和 Audigy 系列声卡,提供可选的伪多声道播放。

新增了 snd_envy24(4)arrow-up-right 驱动,支持 Envy24 系列音频芯片。[已合并]

新增了 snd_envy24ht(4)arrow-up-right 驱动,支持 VIA Envy24HT 系列音频芯片。[已合并]

新增了 snd_hda(4)arrow-up-right 驱动,支持符合 Intel 高清音频规范 1.0 修订版的设备。[已合并]

snd_solo(4)arrow-up-right 驱动现已实现 MPSAFE。[已合并]

新增了 snd_spicds(4)arrow-up-right 驱动,支持 I2S SPI 音频编解码芯片。[已合并]

uaudio(4)arrow-up-right 驱动现已支持 24/32 位音频格式及转换。

2.2.2.2 网络接口支持

已更新 ath(4)arrow-up-right 驱动至 HAL 版本 0.9.20.3。[已合并]

axe(4)arrow-up-right 驱动现在支持 altq(4)arrow-up-right。[已合并]

bge(4)arrow-up-right 驱动的 Jumbo 帧支持现已实现 MPSAFE。

bge(4)arrow-up-right 驱动现已支持大端架构,如 sparc64。

cm(4)arrow-up-right 驱动现已实现 MPSAFE。

新增了 cxgb(4)arrow-up-right 驱动,支持基于 Chelsio T3 和 T3B 芯片组的 10 吉比以太网适配器。[已合并]

新增了 edsc(4)arrow-up-right 驱动,提供以太网丢弃网络接口。[已合并]

el(4)arrow-up-right 驱动因使用较少而被移除。

已更新 em(4)arrow-up-right 驱动至 Intel 的 6.7.3 版本。更新内容包括,现支持 80003、82571、82571EB、82572 和 82575 系列适配器,以及 ICH8 系列主板上的集成网卡。[已合并]

em(4)arrow-up-right 驱动现在支持挂起和恢复功能。

em(4)arrow-up-right 驱动的性能通过使用快速中断处理程序和任务队列代替 ithread 处理程序得到了提升。此变更可通过定义 NO_EM_FASTINTR 内核选项来禁用,以便进行调试。

FireWire 上的 IP(fwip(4)arrow-up-right)驱动现已在 GENERIC 内核中启用。

gem(4)arrow-up-right 驱动程序现在支持 altq(4)arrow-up-right

ipw(4)arrow-up-right 驱动程序所需的固件镜像现在是 FreeBSD 基本系统的一部分。为了使加载的固件生效,必须同意位于 /usr/share/doc/legal/intel_ipw/LICENSE 的许可证,并且需要在 /boot/loader.conf 中添加 legal.intel_ipw.license_ack=1。以前版本的驱动程序使用 net/ipw-firmware-kmodarrow-up-rightnet/ipw-firmwarearrow-up-right 包中的固件镜像。

iwi(4)arrow-up-right 驱动程序现在支持如 sparc64 等大端架构。

iwi(4)arrow-up-right 驱动程序所需的固件镜像现在是 FreeBSD 基本系统的一部分。为了使加载的固件生效,必须同意位于 /usr/share/doc/legal/intel_iwi/LICENSE 的许可证,并且需要在 /boot/loader.conf 中添加 legal.intel_iwi.license_ack=1。以前版本的驱动程序使用 net/iwi-firmware-kmodarrow-up-rightnet/iwi-firmwarearrow-up-right 包中的固件镜像。

已新增 ixgbe 驱动程序,支持 Intel 10G PCI-Express 适配器(82598)。

已删除 lnc(4) 驱动程序。le(4)arrow-up-rightpcn(4)arrow-up-right 驱动程序支持所有以前由 lnc(4) 支持的设备。

已新增 msk(4)arrow-up-right 驱动程序,支持使用 Marvell/SysKonnect Yukon II 千兆以太网控制器的网络接口。[已合并]

[amd64, i386] 已新增 mxge(4)arrow-up-right 驱动程序,支持 Myricom Myri10GE 10 Gigabit 以太网适配器。更多详情请参见 mxge(4)arrow-up-right。[已合并]

[amd64, i386] 已新增 nfe(4)arrow-up-right 驱动程序,它是 nForce 以太网设备的开源驱动程序,最初来自 OpenBSD。此驱动程序已替代 GENERIC 内核中的 nve(4)arrow-up-right 驱动程序。

[arm] 已新增 npe(4)arrow-up-right 驱动程序,支持 Intel XScale 网络处理引擎。[已合并]

已新增 nxge(4)arrow-up-right 驱动程序,支持 Neterion Xframe 10 Gigabit 以太网适配器。

re(4)arrow-up-right 驱动程序现在支持 D-Link DGE-528(T) 千兆以太网卡。

已新增 rum(4)arrow-up-right 驱动程序,支持基于 Ralink RT2501USB 和 RT2601USB 芯片组的 WLAN 适配器。

ti(4)arrow-up-right 驱动程序现在支持如 sparc64 等大端架构。

已新增 ufoma(4)arrow-up-right 驱动程序,支持 FOMA(由日本 NTT DoCoMo 公司提供的第三代手机系统)。此驱动程序应该支持其他第三代手机,因为它基于日本 MCPC(移动计算促进联盟)的 USB 实现指南。

已新增 vgapci(4) 驱动程序。这是一个 VGA PCI 设备的存根设备驱动程序,作为总线使其他驱动程序(如 drm(4)、acpi_video(4)arrow-up-rightagp(4)arrow-up-right)能够附加到它,从而允许同一设备的多个驱动程序。

vge(4)arrow-up-right 驱动程序现在支持 altq(4)arrow-up-right。[已合并]

wi(4)arrow-up-right 驱动程序现在可以作为内核模块构建。

[amd64, i386, pc98] wlan_wep(4)arrow-up-rightwlan_ccmp(4)arrow-up-rightwlan_tkip(4)arrow-up-right 驱动程序已默认包含在 GENERIC 内核中。

[amd64, i386] 已新增 wpi(4)arrow-up-right 驱动程序,支持 Intel 3945 无线局域网控制器。

[amd64, i386] 已新增 zyd(4)arrow-up-right 驱动程序,提供对 ZyDAS ZD1211/ZD1211B USB IEEE 802.11 b/g 无线网络设备的支持。

从 OpenBSD 导入了网络接口组功能。此功能允许管理员例如对一组接口应用防火墙规则。更多信息可以在 ifconfig(8)arrow-up-right 中找到。

802.11 协议栈已进行了显著重构。新功能包括支持背景扫描和 AP 之间的漫游,以及对 802.11n 设备的支持。

802.11 协议栈现在支持 900 MHz 卡,以及 802.11a 的四分之一和半频道支持。[已合并]

FreeBSD 网络栈现在完全不依赖于巨型内核锁,仅依赖内核的细粒度锁定机制来管理并行性。这显著提高了多处理器系统上的网络栈性能;单处理器系统也可能看到性能提升。ISDN4BSD 和 netatm 已从构建中暂时断开。这些模块都需要巨型内核锁才能操作;断开它们允许移除兼容性模块 NET_NEEDS_GIANT。计划将这些模块转换为细粒度内核锁定,并在 FreeBSD 7.1-RELEASE 中重新连接它们。

2.2.3 网络协议

[amd64, i386, pc98] 已为 bpf(4)arrow-up-rightng_bpf(4)arrow-up-right 实现了实验性的 BPF 即时编译器。要启用此功能,需要使用内核选项 BPF_JITTERnet.bpf_jitter.enable 可用于禁用此功能。

bpf(4)arrow-up-right 设备现在支持多个新的 ioctl(2)arrow-up-right 调用,用于检查入站与出站的数据包,以及已经注入网络的数据包。

已从源代码中移除 bridge(4) 驱动。其功能已被 if_bridge(4)arrow-up-right 完全替代。

gre(4)arrow-up-right 驱动,支持 RFC 1701 和 RFC 1702 中的 GRE 封装,现在支持通过 GRE 进行 IPv6 封装。

if_bridge(4)arrow-up-right 驱动现支持 RSTP,即快速生成树协议(802.1w)。[已合并]

if_bridge(4)arrow-up-right 驱动现支持在桥接端口上设置私有参数;桥接中的私有端口之间无法通信。此功能在一些场景中非常有用,例如在将多个客户 VLAN 与服务器网络桥接时;可能希望防止客户 VLAN 之间的通信,但允许它们全部访问服务器网络。可以通过 ifconfig(8)arrow-up-right 设置或清除桥接端口上的私有参数。

已删除对 IPv4 多播组成员数(之前为 20)的硬编码限制。

IPv6 多播转发现可动态加载,使用模块 ip_mroute.ko

ipfw(4)arrow-up-right 包过滤器现在支持过滤路由头类型 0 和移动 IPv6 路由头类型 2,此外还支持过滤任何路由头的存在。

已移除 ip6fw(8) 包过滤器。由于 ipfw(4)arrow-up-right 已获得对 IPv6 的支持,因此应使用它。请注意,某些规则可能需要调整。

已移除 KAME IPsec 实现。现在,FAST_IPSEC 是 FreeBSD 内核唯一支持的 IPsec 实现。以前启用 KAME IPsec 的 IPSEC 内核配置选项现在启用 FAST_IPSECFAST_IPSEC 现支持 IPv4 和 IPv6,使用细粒度内核锁,并支持硬件加密加速。

已删除对通过 IP 隧道传输 IPX 的支持。

已新增 lagg(4)arrow-up-right 驱动,由 OpenBSD 和 NetBSD 移植过来,以支持多种协议和算法用于链路聚合、故障转移和容错。[已合并]

natm(4)arrow-up-right,本地模式 ATM 协议层现已 MPSAFE。

已新增 ng_car(4)arrow-up-right Netgraph 节点。它实现了各种流量整形和速率限制算法。

已新增 ng_deflate(4)arrow-up-right Netgraph 节点类型。它实现了 Deflate PPP 压缩。[已合并]

ng_h4(4)arrow-up-right Netgraph 节点现已 MPSAFE。

ng_ppp(4)arrow-up-right Netgraph 节点现已 MPSAFE。[已合并]

新增的 ng_pred1(4)arrow-up-right Netgraph 节点类型已新增,实现了 Predictor-1 PPP 压缩。[已合并]

NFS 通过 TCP 的默认重传定时器现在设置为 60 秒。此变更防止了对非幂等的 NFS 请求进行不必要的重传。变量 nfs_access_cacherc.conf(5)arrow-up-right 中也已变更为 60。

默认的 nfsiod 内核线程的最小数量(sysctl(8)arrow-up-right 变量 vfs.nfs.iodmin)已从 4 变更为 0

新增 sysctl 变量 net.inet.icmp.reply_from_interface。该变量允许 ICMP (4) 回复来自非本地的数据包,并使用数据包通过的 IP 地址。这对于路由器显示 traceroute(8)arrow-up-right 中数据包实际路径而非可能不同的返回路径非常有用。

新增 sysctl 变量 net.inet.icmp.quotelen。此变量允许变更 ICMP 回复中原始数据包的引用长度。最小长度为 8 字节,最大引用长度为回复 mbuf 中剩余的空间。此选项是根据 I-D draft-gont-icmp-payload-00.txt 中提出的问题增加的。

icmp(4)arrow-up-right 现在在回应时总是引用整个 TCP 头,并在需要时分配 mbuf 集群。此变更修复了 I-D draft-gont-icmp-payload-00.txt 中提出的 TCP 问题。

新增了套接字选项 IP_MINTTL。此选项可用于设置接收到的数据包的最小 TTL 值。所有 TTL 较低的数据包将被静默丢弃。此选项适用于已经连接、正在连接和监听的 RAW、UDP 和 TCP 套接字。当设置为 255 时,此选项尤其有用,可防止来自直接连接网络外的包传递到本地套接字监听器。此外,该选项还允许在用户空间实现 RFC 3682 中的“通用 TTL 安全机制(GTSM)”。

内核 ppp(4)arrow-up-right 驱动现在支持 IPv6。

隐形转发现支持 IPv6 和 IPv4。此行为可通过新的 sysctl 变量 net.inet6.ip6.stealth 控制。

已移除内核选项 PIM。相应的代码现在已包含在内核选项 MROUTING 中。

已为 RFC 3678 源特定多播(SSM)套接字 API 添加了支持。更多详细信息请参阅 sourcefilter(3)arrow-up-right 手册页。

已为流控制传输协议(SCTP)添加支持。SCTP 实现了一个可靠的面向消息的传输协议,并在 RFC 4960 中定义。它在 FreeBSD 中通过内核选项 SCTP 启用,并且是 GENERIC 内核的一部分。更多信息请参阅 sctp(4)arrow-up-right 手册页。

套接字选项 IPV6_V6ONLY 现在适用于 UDP。

内核选项 TCP_DROP_SYNFIN 现已默认包含在内核中。sysctl 变量 net.inet.tcp.drop_synfin 仍默认为 0

FreeBSD 网络栈现在支持 TCP 分段卸载(TSO)。TSO 通过允许网络接口将大数据传输转换为多个 TCP 段发送到网络,从而减少了发送大规模 TCP 数据的开销。此功能可以通过 ifconfig(8)arrow-up-right 中的参数 tso-tso 按每个接口启用或禁用。目前,支持 TSO 的网络接口和驱动程序包括 em(4)arrow-up-rightmxge(4)arrow-up-rightcxgb(4)arrow-up-right

FreeBSD 现在支持 TCP 套接字缓冲区的自动调整大小。这允许套接字缓冲区大小根据网络条件动态调整,而不是静态设置。可以通过 sysctl 变量 net.inet.tcp.sendbuf_*net.inet.tcp.recvbuf_* 控制此功能的行为。

已新增 sysctl 变量 net.link.tap.up_on_opentap(4)arrow-up-right 驱动程序中。如果启用,新创建的 tap 设备将在创建时被标记为启用。[已合并]

2.2.4 磁盘和存储

aac(4)arrow-up-right 驱动现在支持一些惠普机器中的 Adaptec 2610SA SATA-RAID 控制器。

ahc(4)arrow-up-right 驱动现在是 MPSAFE。

ahd(4)arrow-up-right 驱动现在是 MPSAFE。

CAM 子系统现在是 MPSAFE。

ciss(4)arrow-up-right 驱动现在是 MPSAFE。

新增了 GEOM_JOURNAL 类,已新增到 GEOM 存储转换系统中。它支持块级日志操作,文件系统模块可以使用它执行文件系统日志记录,并保持文件系统的一致状态。(目前仅支持 UFS 文件系统。)其操作可以使用 gjournal(8)arrow-up-right 工具进行控制。

新增了 GEOM_MULTIPATH 类,用于支持多路径访问磁盘设备。新增了 gmultipath(8)arrow-up-right 工具,用于控制使用此功能的磁盘设备的行为。

新增了 GEOM_VIRSTOR 类,用于提供大小任意的虚拟存储设备,物理设备作为备份存储。更多信息可以在其控制工具 gvirstor(8)arrow-up-right 的手册页中找到。

为一致性起见,GEOM 类内核模块 g_md.ko 已重命名为 geom_md.ko

[amd64, i386] 新增了 hptiop(4)arrow-up-right 驱动。它支持 Highpoint RocketRAID 3xxx 和 4xxx 系列的 SAS 和 SATA RAID 控制器。

[amd64, i386] 新增了 hptrr(4)arrow-up-right 驱动,用于支持多个 HighPoint RocketRAID 控制器(更多细节请参见手册页)。[已合并]

[amd64, i386] 新增了 hptmv(4)arrow-up-right 驱动,并且现在支持 amd64 和 PAE。

isp(4)arrow-up-right 驱动现在是 MPSAFE。

已更新 mpt(4)arrow-up-right 驱动,支持多项新功能,如 RAID 卷和 RAID 成员状态/设置报告、定期卷重新同步状态报告、以及卷重新同步速率、卷成员写缓存状态和卷事务队列深度的 sysctl 变量。[已合并]

mpt(4)arrow-up-right 驱动现在支持 SAS HBA(部分支持)、64 位 PCI 和大数据传输。[已合并]

mpt(4)arrow-up-right 驱动现在是 MPSAFE。

rr232x(4) 驱动在某些旧版本的 FreeBSD 中出现,现已不再支持,并已被 hptrr(4)arrow-up-right 驱动替代。应 Highpoint 的要求,已移除 rr232x(4) 驱动。[已合并]

twa(4)arrow-up-right 驱动已更新到 3.70.03.007 版本,现已支持 AMCC 的 3ware 9650 系列 SATA 控制器。[已合并]

iscsi_initiator(4)arrow-up-right 驱动是一个用于互联网 SCSI(iSCSI)协议的内核驱动。该驱动允许通过 TCP/IP 网络访问远程 SCSI 设备。iscontrol(8)arrow-up-right 用户工具用于控制该驱动的操作。

scsi_sg 驱动模拟了 Linux SCSI SG 直通设备 API 的重要子集,现已新增。它旨在允许在 Linux 仿真下运行的程序(以及本地 FreeBSD 应用程序)访问 Linux 支持的 /dev/sg* 设备。[已合并]

umass(4)arrow-up-right 驱动现在支持 PLAY_MSFPLAY_TRACKPLAY_TRACK_RELPAUSEPLAY_12 命令,以便 cdcontrol(1)arrow-up-right 工具能够处理 USB CD 驱动器。

2.2.5 文件系统

FreeBSD NFS 子系统的一部分(与协议栈和回调函数的接口,即 NFS 客户端部分)现在是 MPSAFE。

伪文件系统 pseudofs(9)arrow-up-right 构建工具包及其所有使用者(procfs(5)arrow-up-rightlinprocfs(5)arrow-up-rightlinsysfs(5)arrow-up-right)现在是 MPSAFE。

[amd64, i386] 已新增对 TMPFS 文件系统的实验性支持。TMPFS 是一个高效的内存文件系统,最初为 NetBSD 项目在谷歌编程之夏中开发。更多信息请参见 tmpfs(5)arrow-up-right 手册页。

unionfs 文件系统已重新实现。与以前的实现相比,这个版本解决了许多崩溃和锁定问题。它还增加了新的“透明”和“伪装”模式,用于在联合文件系统的上层自动创建文件。更多信息请参见 mount_unionfs(8)arrow-up-right 手册页。 [已合并]

[amd64, i386, pc98] 已新增对 Sun 的 ZFS 的支持。有关此文件系统的更多信息,请参见 zfs(8)arrow-up-right 手册页或 OpenSolaris ZFS 页面arrow-up-right

已新增对 SGI 的 XFS 文件系统的初步(只读)支持。

2.3 用户空间变化

原本由 INRIA IPv6 实现引入的 addr2ascii()ascii2addr() 库调用已从 libc 中移除,因为 FreeBSD 基本系统中没有使用者。在相关的变更中,已为 getnameinfo(3)arrow-up-right 添加了对 AF_LINK 地址的支持。

struct addrinfo 中移除了 ai_addrlen 的填充,这是为了兼容 ABI。例如,这一变更打破了在 64 位架构(包括 FreeBSD/amd64、FreeBSD/ia64 和 FreeBSD/sparc64)上对 getaddrinfo(3)arrow-up-right 函数的 ABI 兼容性。

atrun(8)arrow-up-right 工具现在支持 PAM。在运行用户账户的作业之前,它将检查账户状态,如果账户不可用,则拒绝运行该作业。默认情况下,不可用账户的定义包括那些已过期或使用 pw(8)arrow-up-right 被管理员锁定的账户。

camcontrol(8)arrow-up-right 工具现在支持 readcap 命令来显示设备的大小。 [已合并]

cron(8)arrow-up-right 守护进程现在支持 PAM。在从账户的私人 crontab(5)arrow-up-right 文件运行命令之前,它将通过 PAM 检查账户状态,如果账户不可用,则跳过该命令。在默认情况下,不可用账户的定义包括那些已过期或使用 pw(8)arrow-up-right 被管理员锁定的账户。此外,如果存在 nologin(5)arrow-up-right 文件,cron(8)arrow-up-right 将跳过来自私人 crontab(5)arrow-up-right 文件的命令,除非 crontab(5)arrow-up-right 所有者的登录类不受 nologin(5)arrow-up-right 限制。来自系统文件 /etc/crontab 的命令不受 PAM 检查的影响。

dhclient(8)arrow-up-right 程序现在支持 RFC 3442 中描述的无类静态路由选项。

dump(8)arrow-up-rightrestore(8)arrow-up-right 程序现在会尝试保存和恢复文件的扩展属性信息。

已新增实现 SVR4 elf(3)arrow-up-right / gelf(3)arrow-up-right API 的 libelf 库,用于操作 ELF 文件。

fdisk(8)arrow-up-right 程序现在支持 -p 参数,以打印 fdisk 配置格式的分区表。 [已合并]

finger(1)arrow-up-right 中的 T/TCP 支持(以及用于启用它的 -T 参数)已被移除。

已修复 find(1)arrow-up-right 程序中的一个错误,导致 -user-group 的数值参数未按预期工作。

freebsd-update(8)arrow-up-right 命令现在支持升级命令,可执行不同版本的 FreeBSD 之间的二进制升级。 [已合并]

ftpd(8)arrow-up-right 工具现在支持 RFC2389(FEAT)和基本支持 RFC2640(UTF8)。RFC2640 支持是可选的,可以使用新的 -8 参数启用。更多信息请参见 ftpd(8)arrow-up-right 手册页。 [已合并]

gcc(1)arrow-up-right 的 SSP(栈溢出保护)支持现在默认启用。

gbde(8)arrow-up-right 工具现在支持 -k-K 选项,用于指定密钥文件,除了密码短语之外。

gpt(8)arrow-up-right 工具现在能设置 GPT 分区标签。

gvinum(8)arrow-up-right 工具现在支持子命令 resetconfig

已新增通用安全服务 API(GSS-API)版本 2 的实现及其 C 绑定,描述见 RFC2743 和 RFC2744。这是一个新的可扩展 GSS-API 层,可以支持 GSS-API 插件,类似于 Solaris 实现,Kerberos 5 GSS 机制已作为插件库重写,以适应新实现。

hccontrol(8)arrow-up-right 工具现支持 HCI 节点自动检测。

id(1)arrow-up-right 工具现输出有效的用户 ID,紧随其后的是组 ID。

已新增 ipfwpcap(8)arrow-up-right 工具,捕获 divert(4)arrow-up-right 套接字上的数据包,并将其写入为 pcap(3)arrow-up-right(也称为 tcpdump(1)arrow-up-right)格式数据文件或管道。 [已合并]

kdump(1)arrow-up-right 程序现支持使用符号名称打印系统调用参数中的参数。

kenv(1)arrow-up-right 工具现支持 -q 参数,用于抑制警告。

kgdb(1)arrow-up-right 现支持 -w 选项,以读取写模式打开基于 kmem 的目标。这使得可以使用 kgdb 在 /dev/mem 上操作,并能够在实时系统上修补内存。

libarchive(3)arrow-up-right 库现支持 POSIX.1e 风格的扩展属性。

libarchive(3)arrow-up-right 库现包含了对 ar(1)arrow-up-right 风格归档的支持。

libc 库现包括符号映射和符号版本定义的初步实现。

libedit 库自 2005 年 8 月起已从 NetBSD 源树更新。

libm 库现包括符号映射和符号版本定义的初步实现。

引入了新的 malloc(3)arrow-up-right 实现。该实现有时被称为“jemalloc”,旨在提高多线程程序的性能,尤其是在 SMP 系统上,同时保持单线程程序的性能。由于使用了不同的算法和数据结构,jemalloc 可能会暴露出一些以前未发现的用户空间代码错误,尽管 FreeBSD 基本系统和常见 Port 已进行测试/修复。请注意,jemalloc 使用 mmap(2)arrow-up-right 获取内存,仅在有限的情况下(并且仅对 32 位架构)使用 sbrk(2)arrow-up-right。因此,数据大小资源限制对典型应用程序的影响较小。然而,vmemoryuse 资源限制可用于限制进程使用的总虚拟内存,具体说明请参见 limits(1)arrow-up-right

mdconfig(8)arrow-up-right 工具现支持以 XML 格式生成设备列表。当前,子命令 listquery 支持此功能。

mdconfig(8)arrow-up-right 工具的 -u 选项现支持指定多个由逗号分隔的设备。

mdmfs(8)arrow-up-right 工具现支持 -P 参数,以允许在使用 vnode 支持的磁盘时跳过 newfs(8)arrow-up-right 过程。

mdmfs(8)arrow-up-right 工具现支持 -E 参数,以允许指定 mdconfig(8)arrow-up-right 工具的位置,而不是使用默认位置(/sbin/mdconfig)。

引入了新的 memmem(3)arrow-up-right 函数,这是 glibcarrow-up-right 中的 strstr(3)arrow-up-right 的二进制等价物。

已移除 mount(8)arrow-up-right 的选项 devnodev

mount(8)arrow-up-right 工具现支持 mqueuefs(5)arrow-up-right

已修复一个错误,该错误导致 mount(8)arrow-up-right 工具无法通过 mount -u -o rw 命令将只读挂载转换为读写模式。

已移除多个特定文件系统的 mount_* 命令,代之以支持 -t 选项的更通用的 mount(8)arrow-up-right 命令。具体包括:mount_devfsmount_ext2fsmount_fdescfsmount_linprocfsmount_procfsmount_stdmount_linsysfsmount_reiserfsmount_umapfs

已从 FreeBSD 基本系统中移除多播路由守护进程 mrouted(8)。它实现了 DVMRP 多播路由协议,许多多播安装已被 PIM 替代。也移除了相关工具 map-mbone(8) 和 mrinfo(8)。这些程序现在可以在 FreeBSD Ports 中作为 net/mroutedarrow-up-right 使用。

netstat(1)arrow-up-right 工具现在支持打印 sctp(4)arrow-up-right 协议统计信息。

现在静态安装文件 /etc/nsswitch.conf,而不是在每次重启时生成。

已移除工具 objformat(1) 和库 getobjformat(3)(a.out 对象文件支持的最后遗留部分)。

pam_nologin(8)arrow-up-right 模块不再提供身份验证功能;现在它提供帐户管理功能。/usr/local/etc/pam.d 中的第三方文件可能需要手动编辑;特别是,这些文件中以下形式的行:

这些行需要将 auth 替换为 account

已新增 nscd(8)arrow-up-right 。它是一个守护进程,缓存 nsswitch 查找结果(例如对密码、组和服务数据库的查询),以提高性能。

pkill(1)arrow-up-right 工具现在支持 -F 选项,允许限制匹配进程的 PID 存储在 pidfile 文件中。当指定另一个新选项 -L 时,pidfile 文件必须通过 flock(2)arrow-up-right 系统调用加锁或通过 pidfile(3)arrow-up-right 创建。

pkill(1)arrow-up-right 工具现在支持 -I 参数,类似于 rm(1)arrow-up-right-i 选项。当指定此参数时,pkill(1)arrow-up-right 会在向每个匹配进程发送信号之前请求确认。

pmcstat(8)arrow-up-right 程序已进行了多项增强:现在可以通过网络套接字记录到远程主机。-c 现在接受逗号分隔的 CPU 列表来配置 PMC 分配。-t 选项已增强,支持使用正则表达式根据命令名选择进程。pmcstat(8)arrow-up-right 现在默认在所有 CPU 上分配系统 PMC,而不仅仅是 CPU 0。

powerd(8)arrow-up-right 程序现在支持 -P 选项,用于指定要使用的 pidfile

pw(8)arrow-up-right 程序现在支持 -M 选项,用于设置用户新创建的主目录的权限。[已合并]

FreeBSD libc 中的 DNS 解析库已更新为 BIND 9.4.1。

rpcbind(8)arrow-up-right 程序现在可以使用 -h 选项将其 TCP 监听套接字绑定到除了 INADDR_ANY 以外的 IP 地址。新的 -6 选项允许它仅绑定到 IPv6 地址。

rpcgen(1)arrow-up-right 工具现在默认生成可以与 ANSI C 编译器一起使用的头文件和存根文件。

rpc.lockd(8)arrow-up-rightrpc.statd(8)arrow-up-right 程序现在接受 -p 选项,指示它们应绑定到哪个端口。[已合并]

rtld(1)arrow-up-right 运行时链接器现在支持使用 GNU 语义的 ELF 符号版本控制。此实现旨在与 GNU libc 实现的符号版本控制支持兼容,具体信息请参见 http://people.redhat.com/~drepper/symbol-versioningarrow-up-right 和 LSB 3.0。此外,添加了 dlvsym() 函数,允许查找给定符号的特定版本。

sa(8)arrow-up-right 工具现在支持参数 -U-P。可以使用它们分别指定每个用户和每个进程的摘要文件位置。

sade(8)arrow-up-right 磁盘分区和标签工具已新增。该工具基于 sysinstall(8)arrow-up-right 的分区编辑部分。

修复了 sed(1)arrow-up-right 工具中的一个 bug,该 bug 可能导致在某些情况下模式空间长度计算错误。

sed(1)arrow-up-right 工具现在支持不区分大小写的模式匹配;此功能可以通过在正则表达式的结束分隔符后使用 I 参数启用。

setenv(3)arrow-up-right 系列库调用的行为已从历史的 BSD API 变更为 POSIX 强制的行为。因此,依赖于旧 API 的几个基本系统工具已更新以跟踪此变更。

setfacl(1)arrow-up-right-h 参数现在正确设置符号链接上的 ACL,而不是链接目标。

sockstat(1)arrow-up-right 实用程序,显示连接和监听的网络套接字,现在支持一个新的 -P 命令行选项,用于通过协议名称(如 protocols(5)arrow-up-right 中列出的协议)过滤显示的套接字。

sysctl(8)arrow-up-right 实用程序现在支持 -q 参数,以抑制一组有限的警告和错误。

已移除 FreeBSD 基本系统中的 tcpslice,因为它已过时。可以在 Ports 中找到更新的版本,路径为 net/tcpslicearrow-up-right

time(1)arrow-up-right 实用程序现在如果收到 SIGINFO 信号,会打印出给定命令的运行时间。

top(1)arrow-up-right 程序现在支持 -a 参数,以显示进程标题及其参数向量;此功能对监控通过 setproctitle(3)arrow-up-right 变更标题的进程非常有用。

top(1)arrow-up-right 程序现在支持 -j 参数,显示每个进程的 jail(8)arrow-up-right ID。 [已合并]

touch(1)arrow-up-right 实用程序现在支持 -A 参数,可以通过指定的值调整文件的访问和修改时间。 [已合并]

truss(1)arrow-up-right 实用程序现在支持 -s 参数,功能与 strace 实用程序 (devel/stracearrow-up-right) 相同。

truss(1)arrow-up-right 实用程序不再依赖 procfs(5)arrow-up-right 文件系统;它改用 ptrace(2)arrow-up-right 接口来控制被追踪的进程。

[powerpc] truss(1)arrow-up-right 实用程序现在支持 FreeBSD/powerpc。

已移除 usbd(8) 实用程序。 devd(8)arrow-up-right 实用程序及其配置文件现在支持与其等效的功能。

uuidgen(1)arrow-up-right 实用程序已从 /usr/bin 移至 /bin

早已被 mdconfig(8)arrow-up-right 取代的 vnconfig(8) 实用程序已被移除。

已移除实用程序 wicontrol(8) 。wi(4)arrow-up-right 接口的配置功能应通过 ifconfig(8)arrow-up-right 完成。

所有库的共享库版本号已更新,因为可能存在 ABI 变更。包括:snmp_*,libdialog,libg2c,libobjc,libreadline,libregex,libstdc++,libkrb5,libalias,libarchive,libbegemot,libbluetooth,libbsnmp,libbz2,libc_r,libcrypt,libdevstat,libedit,libexpat,libfetch,libftpio,libgpib,libipsec,libkiconv,libmagic,libmp,libncp,libncurses,libnetgraph,libngatm,libopie,libpam,libpthread,libradius,libsdp,libsmb,libtacplus,libthr,libthread_db,libugidfw,libusbhid,libutil,libvgl,libwrap,libypclnt,libm,libcrypto,libssh 和 libssl。

已实现 wcsdup() 函数。此函数在微软和 GNU 系统中广泛使用。

已添加 wlandebug(8)arrow-up-right 实用程序到 FreeBSD 主源代码树中(之前位于工具区域)。它提供了对 wlan(4)arrow-up-right 模块及相关驱动程序中多种调试输出类型的控制,有助于调试无线问题。

已添加 wpa_passphrase(8)arrow-up-right 实用程序。它从 ASCII 密码短语生成一个 256 位的预共享 WPA 密钥。 [已合并]

2.3.1 /etc/rc.d 脚本

已新增独立 ftpd(8)arrow-up-right 的 ftpd 脚本。

已移除脚本 gbde_swap,取而代之的是新的脚本 encswap,后者还支持 geli(8)arrow-up-right 进行交换加密。

已新增 geli 和 geli2 脚本,用于在启动时配置 geli(8)arrow-up-right 设备。

已移除 IPsec IKE 守护进程的 ike 脚本,因为基本系统中不包含该守护进程。

已新增 mdconfig 脚本,用于处理由 vnode 支持的 md(4)arrow-up-right 设备。这是 ramdisk 脚本的替代,所有 ramdisk_* 变量已改为 mdconfig_*。此外,还添加了两个新的 rc.conf(5)arrow-up-right 变量 mdconfig_*_filesmdconfig_*_cmd。例如:

已移除 /etc/rc.d 中的 rcconf.sh 脚本,并添加了变量 early_late_divider,用于指定脚本以分隔启动过程的早期和后期阶段。

rc.initdiskless 脚本现在使用 tar(1)arrow-up-right,而不是 pax(1)arrow-up-right,因为 pax(1)arrow-up-right 需要一个可写的临时目录,而该目录在此脚本运行时可能不可用。

已移除 pccard 脚本,因为 OLDCARD 已弃用。

sendmail 脚本不再重建别名数据库,如果别名数据库缺失或比别名文件旧。 [已合并] 如果需要,请设置新的 rc.conf 选项 sendmail_rebuild_aliases"YES" 来恢复该功能。

已移除 removable_interfaces 变量。

新增了关键字 NOAUTO,适用于 ifconfig_ifn。这可以防止在启动时或通过配置接口 /etc/pccard_ether,并允许使用 /etc/rc.d/netif 来手动启动和停止接口。

已弃用脚本 /etc/rc.d/nfslocking,并将在未来的版本中移除。它已被脚本 /etc/rc.d/lockd/etc/rc.d/statd 取代。 [已合并]

2.4 第三方软件

Intel ACPI-CA 已更新至 20070320。

awk 已从 2005 年 4 月 24 日的版本更新至 2007 年 5 月 1 日的版本。 [已合并]

BIND 已从 9.3.3 更新至 9.4.2。

BSNMPD 已从 1.11 更新至 1.12。

BZIP2 已从 1.0.3 更新至 1.0.4。 [已合并]

GNU Diffutils 已从 2.7 更新至 2.8.7。 [已合并]

DRM 已更新为 2006 年 5 月 17 日的 DRI CVS 快照。 [已合并]

启动加载器中使用的 Forth Inspired Command Language (FICL) 已更新至 3.03。

FILE 已从 4.12 更新至 4.23。

GCC 已从 3.4.6 更新至 4.2.1。

GNU Readline 库 已从 5.0 更新至 5.2 修补版 2。 [已合并]

GNU 版本的 gzip 已被替换为从 NetBSD 移植的修改版 gzip。 [已合并]

IPFilter 已从 4.1.13 更新至 4.1.28。 [已合并]

less 已从 v394 更新至 v416。 [已合并]

libpcap 已从 0.9.4 更新至 0.9.8。

netcat 已从 OpenBSD 3.9 中包含的版本更新至 OpenBSD 4.1 中包含的版本。 [已合并]

OpenSSL 已从 0.9.7e 更新至 0.9.8e。

ncurses 已从 5.2-20020615 更新至 5.6-20061217。ncurses 现在还支持宽字符。 [已合并]

hostapd 已从 0.3.9 更新至 0.5.8。

PF 已从 OpenBSD 3.7 更新至 OpenBSD 4.1。此更新包括多个功能增强。两个显著变化是:keep state 现在是 pf.conf(5)arrow-up-right 规则的默认行为,以及 TCP 规则的默认参数设置为 S/SA。可以使用选项 no stateflags any 来禁用有状态过滤或 TCP 参数检查。

sendmail 已从 8.13.8 更新至 8.14.2。 [已合并]

tcpdump 已从 3.9.4 更新至 3.9.8。

时区数据库已从 tzdata2006g 版本更新至 tzdata2007k 版本。 [已合并]

tip 已更新为 OpenBSD 2006 年 8 月 31 日的快照。

TrustedBSD OpenBSM 已从版本 1.0 alpha 12 更新至版本 1.0。

WPA Supplicant 已从 0.3.9 更新至 0.5.8。

2.5 Ports/软件包

2.6 版本工程与集成

sysinstall(8)arrow-up-right 工具的默认分区大小算法已被变更。

  • 当磁盘容量大于 (3 * 内存大小 + 10GB) 时,默认分区大小如下:

    分区
    大小

    swap

    内存大小 * 2

    /

    512 MB

    /tmp

    512 MB

    /var

    1024 MB + 内存大小

    /usr

    剩余空间 (至少 8GB)

  • 当磁盘容量大于 (内存大小 / 8 + 2GB) 时,默认分区大小将在以下范围内按比例分配:

    分区
    大小

    swap

    从内存大小 / 8 到 内存大小 * 2

    /

    从 256MB 到 512MB

    /tmp

    从 128MB 到 512MB

    /var

    从 128MB 到 1024MB

    /usr

    从 1536MB 到 8192MB

  • 对于磁盘空间更少的系统,现有行为保持不变。

src/Makefile 中新增了 showconfig 目标,用于显示 FreeBSD 源代码树的构建配置。

新增了 src.conf 文件,该文件包含适用于每次构建 FreeBSD 源代码树的设置。详情请参阅 build(7)arrow-up-rightsrc.conf(5)arrow-up-right

GNOME 桌面环境 (x11/gnome2arrow-up-right) 的受支持版本已从 2.16.1 更新至 2.20.1。 [已合并]

KDE 桌面环境 (x11/kde3arrow-up-right) 的受支持版本已从 3.5.4 更新至 3.5.7。 [已合并]

Xorg 窗口系统 (x11/xorgarrow-up-right) 的受支持版本已从 6.9.0 更新至 7.3.0。 [已合并]

X11BASE 的默认值已从 /usr/X11R6 变更为 /usr/local,即 LOCALBASE 的默认值。 [已合并]

FreeBSD 的 ISO 镜像现已调整为适配 700MB CDROM 媒介。此前大多数版本的 FreeBSD 假设 CDROM 容量为 650MB。 [已合并]

2.7 文档

以下手册页面的添加改进了现有功能的文档: acpi_sony(4)arrow-up-rightdevice_get_sysctl(9)arrow-up-rightext2fs(5)arrow-up-rightmca(8)arrow-up-rightnanobsd(8)arrow-up-rightsnd_mss(4)arrow-up-rightsnd_t4dwave(4)arrow-up-rightsysctl(9)arrow-up-right

内核子系统 API 文档生成框架的初步支持已新增至 src/sys/doc/subsys,使用 devel/doxygenarrow-up-right。要生成 API 文档,请在 src/ 目录中输入 make doxygen

3 从先前版本的 FreeBSD 升级

[i386, amd64] 从 FreeBSD 6.2-RELEASE 开始,使用 freebsd-update(8)arrow-up-right 工具支持 RELEASE 版本之间(及其安全分支快照)的二进制升级。二进制升级过程将更新未修改的用户空间实用工具以及官方 FreeBSD 版本中分发的未修改 GENERIC 或 SMP 内核。[freebsd-update(8)] 工具要求待升级的主机能进行互联网连接。

另一种较旧的二进制升级方式是通过 CDROM 分发介质主菜单的 sysinstall(8)arrow-up-right 中的选项 Upgrade。这种方法可能对非 i386、非 amd64 的机器或无互联网连接的系统有用。

基于源代码的升级(通过重新编译 FreeBSD 基本系统)也支持从先前版本升级,具体说明详见 /usr/src/UPDATING

重要提示:

在尝试升级 FreeBSD 之前,应备份 所有 数据和配置文件。


此文件和其他与发行版相关的文档可从 http://www.FreeBSD.org/snapshots/arrow-up-right 下载。

如有关于 FreeBSD 的问题,请先阅读 文档arrow-up-right 后再联系 [email protected]envelope

所有 FreeBSD 7-STABLE 的用户应订阅 [email protected]envelope 邮件列表。

如有关于本文档的问题,请发送邮件至 [email protected]envelope

最后更新于