FreeBSD 7.0 RELEASE 发行公告(2008 年 2 月 27 日)
FreeBSD 项目
版权所有 © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 FreeBSD 文档项目
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/ 或其镜像站点找到它。有关如何获取此(或其他)FreeBSD 快照版本的更多信息,可以参考 FreeBSD 手册中的“获取 FreeBSD”附录。
在安装 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.bind。[已合并]
IPv6 类型 0 路由头的处理现在由 sysctl 变量 net.inet6.ip6.rthdr0_allowed
控制,默认值为 0
(关闭)。有关更多信息,请参见安全公告 FreeBSD-SA-07:03.ipv6。[已合并]
已修复 file(1) 工具(以及其依赖的 libmagic(3) 库)中的潜在堆溢出。更多细节请参见安全公告 FreeBSD-SA-07:04.file。[已合并]
已修复 libarchive(3) 和 tar(1) 处理损坏的 tar(5) 存档文件的问题。更多细节请参见安全公告 FreeBSD-SA-07:05.libarchive。[已合并]
已修复 tcpdump(1) 中的缓冲区溢出问题。更多信息请参见安全公告 FreeBSD-SA-07:06.tcpdump。[已合并]
已修复 named(8) 中的 bug,该问题可能导致攻击者能够污染解析器的 DNS 缓存。更多细节请参见安全公告 FreeBSD-SA-07:07.bind。[已合并]
已修复 OpenSSL 中的缓冲区溢出问题(此前在安全补丁中错误修复)。更多细节请参见安全公告 FreeBSD-SA-07:08.openssl。[已合并]
已修复可能导致泄露先前生成的 random(4) 数据的缺陷。有关该问题的信息请参见安全公告 FreeBSD-SA-07:09.random。[已合并]
已修复 openpty(3) 和 ptsname(3) 中的信息泄露问题。有关该问题的信息请参见安全公告 FreeBSD-SA-08:01.pty。[已合并]
已修复 inet_network(3) 网络地址处理函数中的编程错误,该错误可能导致覆盖内存区域。有关该问题的信息请参见安全公告 FreeBSD-SA-08:02.libc。[已合并]
已修复可能允许 sendfile(2) 不当访问文件内容的错误。更多信息请参见安全公告 FreeBSD-SA-08:03.sendfile。[已合并]
2.2 内核变更
acpi(4) 现在支持 HPET 时间计数器。[已合并]
acpi_ibm(4) 驱动程序现在支持将风扇控制模式设置为手动或自动,并在手动模式下调整风扇速度。要启用风扇速度的手动控制,必须将 sysctl 变量 dev.acpi_ibm.0.fan
设置为 0
(手动)。此功能仅应在极为谨慎的情况下使用,因为禁用自动风扇控制可能导致硬件过热并造成永久损坏。
apm(4) 的挂起/恢复支持得到了改进。
cpufreq(4) CPU 频率控制框架现在在 GENERIC 内核中启用。
已将 Camellia 块加密算法添加到 FreeBSD 内核中。现在它可以在 ipsec(4) 和 geli(8) 中作为加密算法使用。有关 Camellia 的更多信息可以在 RFC 4132 中找到。
内核配置选项 COMPAT_43
被认为不再必要,并已从 GENERIC 和相关的内核配置中移除。此变更可能会导致某些工作负载的性能略有提升。
简易控制台驱动程序 (dcons(4)) 现在在 GENERIC 内核中启用。
ddb(4) 调试器现在提供 show sleepq
命令。该命令接受一个等待通道作为参数,并查找与该等待通道相关联的睡眠队列。
已修复文件描述符处理中的一个 bug,即在某些情况下,简单的 close(0); dup(fd)
序列不会返回描述符 0
。
gdb(1) 远程调试接口现在支持将控制台消息复制到远程调试器实例。要启用此功能,需要在 loader.conf
中设置 debug.gdbcons="1"
,然后从 loader 提示符输入 boot -d; gdb; step
,再从远程机器附加 gdb(1)。可以使用 sysctl 变量 debug.gdbcons
来开启或关闭此功能。
hwpmc(4) 和 pmcstat(8) 现在支持对动态加载的内核模块和使用 dlopen(3) 加载的共享对象进行分析。
新增 sysctl 变量 kern.hostuuid
,用于保存主机的全局唯一标识符(UUID)。此 UUID 由新的 rc.d/hostid 启动脚本计算或生成,并在可能的情况下保存到磁盘,以便在重启后仍然持久存在。
INCLUDE_CONFIG_FILE
内核配置选项已得到改进。现在可以通过 sysctl -b kern.conftxt
获取正在运行的内核的完整配置,也可以通过 config -x kernelfile
从内核文件中提取配置。要保留包含所有注释的原始内核配置,可以使用 config(8) 的 -C
选项。
内核调度实体(KSE)现在是一个内核选项(之前是内核中的强制功能)。它在 GENERIC 内核中启用(因此所有平台上功能没有变化),除了 sun4v 平台外。
Linux ABI 支持已增强,支持模拟 Linux 2.6.16。默认情况下此功能未启用。要启用它,必须将 sysctl 变量 compat.linux.osrelease
设置为 2.6.16。请注意,此支持仍处于实验阶段。
内核的 PCI 支持代码现在已新增对消息信号中断(MSI)和扩展消息信号中断(MSI-X)的支持。[已合并]
新增了 priv(9) 内核接口,用于检查线程和凭证的权限可用性。与现有的 suser(9) 接口不同,priv(9) 向权限检查代码暴露了一个命名的权限标识符,允许更复杂的权限授予策略。
FreeBSD 现在支持并发 read(2)/readv(2) 访问文件。
内核的 sx(9) 锁已优化,使用简单的原子操作来处理获取和释放共享锁和独占锁的常见情况。尽管此变更通常对用户不可见,但它为一些显著的性能提升奠定了基础。
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) 的替代方案),因为它与内核的其他部分已经不同步。
RedZone,内核 malloc(9) 的缓冲区损坏保护功能已实现。它可以在 free(9) 和 realloc(9) 上运行时检测缓冲区下溢和溢出,并打印出内存分配和释放的位置的回溯信息。有关更多详细信息,请参见 redzone(9) 手册页。
新增了加载器可调参数 vm.kmem_size_min
,可以指定 vm.kmem_size
的最小值。
新增了 sysctl 变量 vm.zone_stats
,允许通过二进制结构流导出 uma(9) 分配器统计信息。
sysctl 变量 hw.pci.do_powerstate
已被拆分为两个 sysctl 变量 hw.pci.do_powerstate_nodriver
和 hw.pci.do_powerstate_resume
。此外,这些变量已从布尔值变更为范围值。0
表示不进行电源管理,1
表示保守的电源管理,将出现问题的任何设备类添加到监视列表中,2
表示积极的电源管理,将非系统基本的任何设备类添加到列表中,3
表示无条件地关闭所有设备。默认值为 hw.pci.do_powerstate_nodriver
为 0
,hw.pci.do_powerstate_resume
为 1
。
[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) 和 dcons(4) 支持。要启用此功能,需要在 /etc/make.conf
文件中添加 LOADER_FIREWIRE_SUPPORT=yes
,并重新构建加载器。
[pc98] boot0.5 中的 IPLware 支持已增强,支持版本 3.33。
2.2.2 硬件支持
cardbus(4)、pccard(4)、pccbb(4) 和 ex(4) 驱动程序现在可以作为内核模块构建。
新增了 acpi_dock(4) 驱动程序,以通过 ACPI 支持控制笔记本电脑扩展坞功能。 [已合并]
acpi_thermal(4) 驱动程序现在支持覆盖 _PSV
、_HOT
和 _CRT
温度值。
已移除对 Alpha 架构的支持。Alpha 支持将保留在 RELENG_5 和 RELENG_6 代码线中。
cardbus(4) 驱动程序现在支持 /dev/cardbus%d.cis
。
[i386, amd64] 新增了 coretemp(4) 驱动程序,用于提供 Intel® Core™ 处理器的温度读数。 [已合并]
est cpufreq(4) 驱动程序现在支持 VIA C7-M 系列处理器的频率控制。
firewire(4) 代码现已支持 MPSAFE。
新增了 icee(4),一款通用的 I2C EEPROM 驱动程序。
修复了一个 bug,该 bug 阻止了 ichsmb(4) 内核模块卸载。
[amd64, i386] 双核处理器(例如 Intel Core Duo)现在在默认启用 SMP 的内核中可用两个核心。 [已合并]
[ia64, powerpc] loader 可调参数 debug.mpsafevfs
默认设置为 1
。
已移除 sab(4) 驱动程序(已被 scc(4) 驱动程序取代)。
新增了 scc(4) 驱动程序,提供通用的串行通信控制器支持,并将对每个通道和模式的控制委托给从属驱动程序(如 uart(4))。
[amd64] 增加了对 amd64 的 smbios(4) 驱动程序支持。
[sun4v] FreeBSD 现在对 Sun Microsystems UltraSPARC-T1 架构提供初步支持。FreeBSD/sun4v 已证明可以在 Sun Fire T1000 和 Sun Fire T2000 服务器上运行。更多信息请参见 sun4v 项目页面。
新增了 tnt4882(4) 驱动程序,支持 National Instruments PCI-GPIB 卡。
[amd64, i386, ia64, sparc64] uart(4) 驱动程序已默认包含在 GENERIC 内核中。当 sio(4) 和 uart(4) 都能处理给定的串行端口时,sio(4) 将声明使用该端口。
新增了 uark(4) 驱动程序,支持基于 Arkmicro Technologies ARK3116 的 USB 串行适配器。
uart(4) 驱动程序现在支持 LOM(Lights Out Management)和 RSC(Remote System Control)设备作为控制台。
已移除 zs 驱动程序,其功能已被 uart(4) 驱动程序取代。
[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) 和 snd_emu10k1(4)驱动。
snd_cmi(4) 驱动现在已实现 MPSAFE。
新增了 snd_emu10kx(4) 驱动,支持 Creative SoundBlaster Live! 和 Audigy 系列声卡,提供可选的伪多声道播放。
新增了 snd_envy24(4) 驱动,支持 Envy24 系列音频芯片。[已合并]
新增了 snd_envy24ht(4) 驱动,支持 VIA Envy24HT 系列音频芯片。[已合并]
新增了 snd_hda(4) 驱动,支持符合 Intel 高清音频规范 1.0 修订版的设备。[已合并]
snd_solo(4) 驱动现已实现 MPSAFE。[已合并]
新增了 snd_spicds(4) 驱动,支持 I2S SPI 音频编解码芯片。[已合并]
uaudio(4) 驱动现已支持 24/32 位音频格式及转换。
2.2.2.2 网络接口支持
已更新 ath(4) 驱动至 HAL 版本 0.9.20.3。[已合并]
bge(4) 驱动的 Jumbo 帧支持现已实现 MPSAFE。
bge(4) 驱动现已支持大端架构,如 sparc64。
cm(4) 驱动现已实现 MPSAFE。
新增了 cxgb(4) 驱动,支持基于 Chelsio T3 和 T3B 芯片组的 10 吉比以太网适配器。[已合并]
新增了 edsc(4) 驱动,提供以太网丢弃网络接口。[已合并]
el(4) 驱动因使用较少而被移除。
已更新 em(4) 驱动至 Intel 的 6.7.3 版本。更新内容包括,现支持 80003、82571、82571EB、82572 和 82575 系列适配器,以及 ICH8 系列主板上的集成网卡。[已合并]
em(4) 驱动现在支持挂起和恢复功能。
em(4) 驱动的性能通过使用快速中断处理程序和任务队列代替 ithread 处理程序得到了提升。此变更可通过定义 NO_EM_FASTINTR 内核选项来禁用,以便进行调试。
FireWire 上的 IP(fwip(4))驱动现已在 GENERIC 内核中启用。
ipw(4) 驱动程序所需的固件镜像现在是 FreeBSD 基本系统的一部分。为了使加载的固件生效,必须同意位于 /usr/share/doc/legal/intel_ipw/LICENSE
的许可证,并且需要在 /boot/loader.conf
中添加 legal.intel_ipw.license_ack=1
。以前版本的驱动程序使用 net/ipw-firmware-kmod 或 net/ipw-firmware 包中的固件镜像。
iwi(4) 驱动程序现在支持如 sparc64 等大端架构。
iwi(4) 驱动程序所需的固件镜像现在是 FreeBSD 基本系统的一部分。为了使加载的固件生效,必须同意位于 /usr/share/doc/legal/intel_iwi/LICENSE
的许可证,并且需要在 /boot/loader.conf
中添加 legal.intel_iwi.license_ack=1
。以前版本的驱动程序使用 net/iwi-firmware-kmod 或 net/iwi-firmware 包中的固件镜像。
已新增 ixgbe 驱动程序,支持 Intel 10G PCI-Express 适配器(82598)。
已删除 lnc(4) 驱动程序。le(4) 和 pcn(4) 驱动程序支持所有以前由 lnc(4) 支持的设备。
已新增 msk(4) 驱动程序,支持使用 Marvell/SysKonnect Yukon II 千兆以太网控制器的网络接口。[已合并]
[amd64, i386] 已新增 mxge(4) 驱动程序,支持 Myricom Myri10GE 10 Gigabit 以太网适配器。更多详情请参见 mxge(4)。[已合并]
[amd64, i386] 已新增 nfe(4) 驱动程序,它是 nForce 以太网设备的开源驱动程序,最初来自 OpenBSD。此驱动程序已替代 GENERIC 内核中的 nve(4) 驱动程序。
[arm] 已新增 npe(4) 驱动程序,支持 Intel XScale 网络处理引擎。[已合并]
已新增 nxge(4) 驱动程序,支持 Neterion Xframe 10 Gigabit 以太网适配器。
re(4) 驱动程序现在支持 D-Link DGE-528(T) 千兆以太网卡。
已新增 rum(4) 驱动程序,支持基于 Ralink RT2501USB 和 RT2601USB 芯片组的 WLAN 适配器。
ti(4) 驱动程序现在支持如 sparc64 等大端架构。
已新增 ufoma(4) 驱动程序,支持 FOMA(由日本 NTT DoCoMo 公司提供的第三代手机系统)。此驱动程序应该支持其他第三代手机,因为它基于日本 MCPC(移动计算促进联盟)的 USB 实现指南。
已新增 vgapci(4) 驱动程序。这是一个 VGA PCI 设备的存根设备驱动程序,作为总线使其他驱动程序(如 drm(4)、acpi_video(4) 和 agp(4))能够附加到它,从而允许同一设备的多个驱动程序。
wi(4) 驱动程序现在可以作为内核模块构建。
[amd64, i386, pc98] wlan_wep(4)、wlan_ccmp(4) 和 wlan_tkip(4) 驱动程序已默认包含在 GENERIC 内核中。
[amd64, i386] 已新增 wpi(4) 驱动程序,支持 Intel 3945 无线局域网控制器。
[amd64, i386] 已新增 zyd(4) 驱动程序,提供对 ZyDAS ZD1211/ZD1211B USB IEEE 802.11 b/g 无线网络设备的支持。
从 OpenBSD 导入了网络接口组功能。此功能允许管理员例如对一组接口应用防火墙规则。更多信息可以在 ifconfig(8) 中找到。
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) 和 ng_bpf(4) 实现了实验性的 BPF 即时编译器。要启用此功能,需要使用内核选项 BPF_JITTER
。net.bpf_jitter.enable
可用于禁用此功能。
bpf(4) 设备现在支持多个新的 ioctl(2) 调用,用于检查入站与出站的数据包,以及已经注入网络的数据包。
已从源代码中移除 bridge(4) 驱动。其功能已被 if_bridge(4) 完全替代。
gre(4) 驱动,支持 RFC 1701 和 RFC 1702 中的 GRE 封装,现在支持通过 GRE 进行 IPv6 封装。
if_bridge(4) 驱动现支持 RSTP,即快速生成树协议(802.1w)。[已合并]
if_bridge(4) 驱动现支持在桥接端口上设置私有参数;桥接中的私有端口之间无法通信。此功能在一些场景中非常有用,例如在将多个客户 VLAN 与服务器网络桥接时;可能希望防止客户 VLAN 之间的通信,但允许它们全部访问服务器网络。可以通过 ifconfig(8) 设置或清除桥接端口上的私有参数。
已删除对 IPv4 多播组成员数(之前为 20)的硬编码限制。
IPv6 多播转发现可动态加载,使用模块 ip_mroute.ko
。
ipfw(4) 包过滤器现在支持过滤路由头类型 0 和移动 IPv6 路由头类型 2,此外还支持过滤任何路由头的存在。
已移除 ip6fw(8) 包过滤器。由于 ipfw(4) 已获得对 IPv6 的支持,因此应使用它。请注意,某些规则可能需要调整。
已移除 KAME IPsec 实现。现在,FAST_IPSEC
是 FreeBSD 内核唯一支持的 IPsec 实现。以前启用 KAME IPsec 的 IPSEC 内核配置选项现在启用 FAST_IPSEC
。FAST_IPSEC
现支持 IPv4 和 IPv6,使用细粒度内核锁,并支持硬件加密加速。
已删除对通过 IP 隧道传输 IPX 的支持。
已新增 lagg(4) 驱动,由 OpenBSD 和 NetBSD 移植过来,以支持多种协议和算法用于链路聚合、故障转移和容错。[已合并]
natm(4),本地模式 ATM 协议层现已 MPSAFE。
已新增 ng_car(4) Netgraph 节点。它实现了各种流量整形和速率限制算法。
已新增 ng_deflate(4) Netgraph 节点类型。它实现了 Deflate PPP 压缩。[已合并]
ng_h4(4) Netgraph 节点现已 MPSAFE。
ng_ppp(4) Netgraph 节点现已 MPSAFE。[已合并]
新增的 ng_pred1(4) Netgraph 节点类型已新增,实现了 Predictor-1 PPP 压缩。[已合并]
NFS 通过 TCP 的默认重传定时器现在设置为 60 秒。此变更防止了对非幂等的 NFS 请求进行不必要的重传。变量 nfs_access_cache
在 rc.conf(5) 中也已变更为 60。
默认的 nfsiod 内核线程的最小数量(sysctl(8) 变量 vfs.nfs.iodmin
)已从 4
变更为 0
。
新增 sysctl 变量 net.inet.icmp.reply_from_interface
。该变量允许 ICMP (4) 回复来自非本地的数据包,并使用数据包通过的 IP 地址。这对于路由器显示 traceroute(8) 中数据包实际路径而非可能不同的返回路径非常有用。
新增 sysctl 变量 net.inet.icmp.quotelen
。此变量允许变更 ICMP 回复中原始数据包的引用长度。最小长度为 8 字节,最大引用长度为回复 mbuf 中剩余的空间。此选项是根据 I-D draft-gont-icmp-payload-00.txt
中提出的问题增加的。
icmp(4) 现在在回应时总是引用整个 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) 驱动现在支持 IPv6。
隐形转发现支持 IPv6 和 IPv4。此行为可通过新的 sysctl 变量 net.inet6.ip6.stealth
控制。
已移除内核选项 PIM
。相应的代码现在已包含在内核选项 MROUTING
中。
已为 RFC 3678 源特定多播(SSM)套接字 API 添加了支持。更多详细信息请参阅 sourcefilter(3) 手册页。
已为流控制传输协议(SCTP)添加支持。SCTP 实现了一个可靠的面向消息的传输协议,并在 RFC 4960 中定义。它在 FreeBSD 中通过内核选项 SCTP
启用,并且是 GENERIC 内核的一部分。更多信息请参阅 sctp(4) 手册页。
套接字选项 IPV6_V6ONLY
现在适用于 UDP。
内核选项 TCP_DROP_SYNFIN
现已默认包含在内核中。sysctl 变量 net.inet.tcp.drop_synfin
仍默认为 0
。
FreeBSD 网络栈现在支持 TCP 分段卸载(TSO)。TSO 通过允许网络接口将大数据传输转换为多个 TCP 段发送到网络,从而减少了发送大规模 TCP 数据的开销。此功能可以通过 ifconfig(8) 中的参数 tso
和 -tso
按每个接口启用或禁用。目前,支持 TSO 的网络接口和驱动程序包括 em(4)、mxge(4) 和 cxgb(4)。
FreeBSD 现在支持 TCP 套接字缓冲区的自动调整大小。这允许套接字缓冲区大小根据网络条件动态调整,而不是静态设置。可以通过 sysctl 变量 net.inet.tcp.sendbuf_*
和 net.inet.tcp.recvbuf_*
控制此功能的行为。
已新增 sysctl 变量 net.link.tap.up_on_open
到 tap(4) 驱动程序中。如果启用,新创建的 tap 设备将在创建时被标记为启用。[已合并]
2.2.4 磁盘和存储
aac(4) 驱动现在支持一些惠普机器中的 Adaptec 2610SA SATA-RAID 控制器。
ahc(4) 驱动现在是 MPSAFE。
ahd(4) 驱动现在是 MPSAFE。
CAM 子系统现在是 MPSAFE。
ciss(4) 驱动现在是 MPSAFE。
新增了 GEOM_JOURNAL
类,已新增到 GEOM 存储转换系统中。它支持块级日志操作,文件系统模块可以使用它执行文件系统日志记录,并保持文件系统的一致状态。(目前仅支持 UFS 文件系统。)其操作可以使用 gjournal(8) 工具进行控制。
新增了 GEOM_MULTIPATH
类,用于支持多路径访问磁盘设备。新增了 gmultipath(8) 工具,用于控制使用此功能的磁盘设备的行为。
新增了 GEOM_VIRSTOR
类,用于提供大小任意的虚拟存储设备,物理设备作为备份存储。更多信息可以在其控制工具 gvirstor(8) 的手册页中找到。
为一致性起见,GEOM 类内核模块 g_md.ko
已重命名为 geom_md.ko
。
[amd64, i386] 新增了 hptiop(4) 驱动。它支持 Highpoint RocketRAID 3xxx 和 4xxx 系列的 SAS 和 SATA RAID 控制器。
[amd64, i386] 新增了 hptrr(4) 驱动,用于支持多个 HighPoint RocketRAID 控制器(更多细节请参见手册页)。[已合并]
[amd64, i386] 新增了 hptmv(4) 驱动,并且现在支持 amd64 和 PAE。
isp(4) 驱动现在是 MPSAFE。
已更新 mpt(4) 驱动,支持多项新功能,如 RAID 卷和 RAID 成员状态/设置报告、定期卷重新同步状态报告、以及卷重新同步速率、卷成员写缓存状态和卷事务队列深度的 sysctl 变量。[已合并]
mpt(4) 驱动现在支持 SAS HBA(部分支持)、64 位 PCI 和大数据传输。[已合并]
mpt(4) 驱动现在是 MPSAFE。
rr232x(4) 驱动在某些旧版本的 FreeBSD 中出现,现已不再支持,并已被 hptrr(4) 驱动替代。应 Highpoint 的要求,已移除 rr232x(4) 驱动。[已合并]
twa(4) 驱动已更新到 3.70.03.007 版本,现已支持 AMCC 的 3ware 9650 系列 SATA 控制器。[已合并]
iscsi_initiator(4) 驱动是一个用于互联网 SCSI(iSCSI)协议的内核驱动。该驱动允许通过 TCP/IP 网络访问远程 SCSI 设备。iscontrol(8) 用户工具用于控制该驱动的操作。
scsi_sg 驱动模拟了 Linux SCSI SG 直通设备 API 的重要子集,现已新增。它旨在允许在 Linux 仿真下运行的程序(以及本地 FreeBSD 应用程序)访问 Linux 支持的 /dev/sg*
设备。[已合并]
umass(4) 驱动现在支持 PLAY_MSF
、PLAY_TRACK
、PLAY_TRACK_REL
、PAUSE
、PLAY_12
命令,以便 cdcontrol(1) 工具能够处理 USB CD 驱动器。
2.2.5 文件系统
FreeBSD NFS 子系统的一部分(与协议栈和回调函数的接口,即 NFS 客户端部分)现在是 MPSAFE。
伪文件系统 pseudofs(9) 构建工具包及其所有使用者(procfs(5),linprocfs(5) 和 linsysfs(5))现在是 MPSAFE。
[amd64, i386] 已新增对 TMPFS 文件系统的实验性支持。TMPFS 是一个高效的内存文件系统,最初为 NetBSD 项目在谷歌编程之夏中开发。更多信息请参见 tmpfs(5) 手册页。
unionfs 文件系统已重新实现。与以前的实现相比,这个版本解决了许多崩溃和锁定问题。它还增加了新的“透明”和“伪装”模式,用于在联合文件系统的上层自动创建文件。更多信息请参见 mount_unionfs(8) 手册页。 [已合并]
[amd64, i386, pc98] 已新增对 Sun 的 ZFS 的支持。有关此文件系统的更多信息,请参见 zfs(8) 手册页或 OpenSolaris ZFS 页面。
已新增对 SGI 的 XFS 文件系统的初步(只读)支持。
2.3 用户空间变化
原本由 INRIA IPv6 实现引入的 addr2ascii()
和 ascii2addr()
库调用已从 libc 中移除,因为 FreeBSD 基本系统中没有使用者。在相关的变更中,已为 getnameinfo(3) 添加了对 AF_LINK
地址的支持。
在 struct addrinfo
中移除了 ai_addrlen
的填充,这是为了兼容 ABI。例如,这一变更打破了在 64 位架构(包括 FreeBSD/amd64、FreeBSD/ia64 和 FreeBSD/sparc64)上对 getaddrinfo(3) 函数的 ABI 兼容性。
atrun(8) 工具现在支持 PAM。在运行用户账户的作业之前,它将检查账户状态,如果账户不可用,则拒绝运行该作业。默认情况下,不可用账户的定义包括那些已过期或使用 pw(8) 被管理员锁定的账户。
camcontrol(8) 工具现在支持 readcap 命令来显示设备的大小。 [已合并]
cron(8) 守护进程现在支持 PAM。在从账户的私人 crontab(5) 文件运行命令之前,它将通过 PAM 检查账户状态,如果账户不可用,则跳过该命令。在默认情况下,不可用账户的定义包括那些已过期或使用 pw(8) 被管理员锁定的账户。此外,如果存在 nologin(5) 文件,cron(8) 将跳过来自私人 crontab(5) 文件的命令,除非 crontab(5) 所有者的登录类不受 nologin(5) 限制。来自系统文件 /etc/crontab
的命令不受 PAM 检查的影响。
dhclient(8) 程序现在支持 RFC 3442 中描述的无类静态路由选项。
dump(8) 和 restore(8) 程序现在会尝试保存和恢复文件的扩展属性信息。
已新增实现 SVR4 elf(3) / gelf(3) API 的 libelf 库,用于操作 ELF 文件。
fdisk(8) 程序现在支持 -p
参数,以打印 fdisk 配置格式的分区表。 [已合并]
finger(1) 中的 T/TCP 支持(以及用于启用它的 -T
参数)已被移除。
已修复 find(1) 程序中的一个错误,导致 -user
和 -group
的数值参数未按预期工作。
freebsd-update(8) 命令现在支持升级命令,可执行不同版本的 FreeBSD 之间的二进制升级。 [已合并]
ftpd(8) 工具现在支持 RFC2389(FEAT)和基本支持 RFC2640(UTF8)。RFC2640 支持是可选的,可以使用新的 -8
参数启用。更多信息请参见 ftpd(8) 手册页。 [已合并]
gcc(1) 的 SSP(栈溢出保护)支持现在默认启用。
gbde(8) 工具现在支持 -k
和 -K
选项,用于指定密钥文件,除了密码短语之外。
gpt(8) 工具现在能设置 GPT 分区标签。
gvinum(8) 工具现在支持子命令 resetconfig
。
已新增通用安全服务 API(GSS-API)版本 2 的实现及其 C 绑定,描述见 RFC2743 和 RFC2744。这是一个新的可扩展 GSS-API 层,可以支持 GSS-API 插件,类似于 Solaris 实现,Kerberos 5 GSS 机制已作为插件库重写,以适应新实现。
hccontrol(8) 工具现支持 HCI 节点自动检测。
id(1) 工具现输出有效的用户 ID,紧随其后的是组 ID。
已新增 ipfwpcap(8) 工具,捕获 divert(4) 套接字上的数据包,并将其写入为 pcap(3)(也称为 tcpdump(1))格式数据文件或管道。 [已合并]
kdump(1) 程序现支持使用符号名称打印系统调用参数中的参数。
kenv(1) 工具现支持 -q
参数,用于抑制警告。
kgdb(1) 现支持 -w
选项,以读取写模式打开基于 kmem 的目标。这使得可以使用 kgdb 在 /dev/mem
上操作,并能够在实时系统上修补内存。
libarchive(3) 库现支持 POSIX.1e 风格的扩展属性。
libarchive(3) 库现包含对 ar(1)风格归档的支持。
libc 库现包括符号映射和符号版本定义的初步实现。
libedit 库自 2005 年 8 月起已从 NetBSD 源树更新。
libm 库现包括符号映射和符号版本定义的初步实现。
引入了新的 malloc(3) 实现。该实现有时被称为“jemalloc”,旨在提高多线程程序的性能,尤其是在 SMP 系统上,同时保持单线程程序的性能。由于使用了不同的算法和数据结构,jemalloc 可能会暴露出一些以前未发现的用户空间代码错误,尽管 FreeBSD 基本系统和常见 Port 已进行测试/修复。请注意,jemalloc 使用 mmap(2) 获取内存,仅在有限的情况下(并且仅对 32 位架构)使用 sbrk(2)。因此,数据大小资源限制对典型应用程序的影响较小。然而,vmemoryuse 资源限制可用于限制进程使用的总虚拟内存,具体说明请参见 limits(1)。
mdconfig(8) 工具现支持以 XML 格式生成设备列表。当前,子命令 list
和 query
支持此功能。
mdconfig(8) 工具的 -u
选项现支持指定多个由逗号分隔的设备。
mdmfs(8) 工具现支持 -P
参数,以允许在使用 vnode 支持的磁盘时跳过 newfs(8)过程。
mdmfs(8) 工具现支持 -E
参数,以允许指定 mdconfig(8) 工具的位置,而不是使用默认位置(/sbin/mdconfig
)。
引入了新的 memmem(3) 函数,这是 glibc 中的strstr(3) 的二进制等价物。
已移除 mount(8) 的选项 dev
和 nodev
。
mount(8) 工具现支持 mqueuefs(5)。
已修复一个错误,该错误导致 mount(8) 工具无法通过 mount -u -o rw
命令将只读挂载转换为读写模式。
已移除多个特定文件系统的 mount_*
命令,代之以支持 -t
选项的更通用的 mount(8) 命令。具体包括:mount_devfs
、mount_ext2fs
、mount_fdescfs
、mount_linprocfs
、mount_procfs
、mount_std
、mount_linsysfs
、mount_reiserfs
和 mount_umapfs
。
已从 FreeBSD 基本系统中移除多播路由守护进程 mrouted(8)。它实现了 DVMRP 多播路由协议,许多多播安装已被 PIM 替代。也移除了相关工具 map-mbone(8) 和 mrinfo(8)。这些程序现在可以在 FreeBSD Ports 中作为 net/mrouted 使用。
netstat(1) 工具现在支持打印 sctp(4) 协议统计信息。
现在静态安装文件 /etc/nsswitch.conf
,而不是在每次重启时生成。
已移除工具 objformat(1) 和库 getobjformat(3)(a.out 对象文件支持的最后遗留部分)。
pam_nologin(8) 模块不再提供身份验证功能;现在它提供帐户管理功能。/usr/local/etc/pam.d
中的第三方文件可能需要手动编辑;特别是,这些文件中以下形式的行:
这些行需要将 auth
替换为 account
。
已新增 nscd(8) 。它是一个守护进程,缓存 nsswitch 查找结果(例如对密码、组和服务数据库的查询),以提高性能。
pkill(1) 工具现在支持 -F
选项,允许限制匹配进程的 PID 存储在 pidfile 文件中。当指定另一个新选项 -L
时,pidfile 文件必须通过 flock(2) 系统调用加锁或通过 pidfile(3) 创建。
pkill(1) 工具现在支持 -I
参数,类似于 rm(1) 的 -i
选项。当指定此参数时,pkill(1) 会在向每个匹配进程发送信号之前请求确认。
pmcstat(8) 程序已进行了多项增强:现在可以通过网络套接字记录到远程主机。-c
现在接受逗号分隔的 CPU 列表来配置 PMC 分配。-t
选项已增强,支持使用正则表达式根据命令名选择进程。pmcstat(8) 现在默认在所有 CPU 上分配系统 PMC,而不仅仅是 CPU 0。
powerd(8) 程序现在支持 -P
选项,用于指定要使用的 pidfile
。
pw(8) 程序现在支持 -M
选项,用于设置用户新创建的主目录的权限。[已合并]
FreeBSD libc 中的 DNS 解析库已更新为 BIND 9.4.1。
rpcbind(8) 程序现在可以使用 -h
选项将其 TCP 监听套接字绑定到除了 INADDR_ANY
以外的 IP 地址。新的 -6
选项允许它仅绑定到 IPv6 地址。
rpcgen(1) 工具现在默认生成可以与 ANSI C 编译器一起使用的头文件和存根文件。
rpc.lockd(8) 和 rpc.statd(8) 程序现在接受 -p
选项,指示它们应绑定到哪个端口。[已合并]
rtld(1) 运行时链接器现在支持使用 GNU 语义的 ELF 符号版本控制。此实现旨在与 GNU libc 实现的符号版本控制支持兼容,具体信息请参见 http://people.redhat.com/~drepper/symbol-versioning 和 LSB 3.0。此外,添加了 dlvsym()
函数,允许查找给定符号的特定版本。
sa(8) 工具现在支持参数 -U
和 -P
。可以使用它们分别指定每个用户和每个进程的摘要文件位置。
sade(8) 磁盘分区和标签工具已新增。该工具基于 sysinstall(8) 的分区编辑部分。
修复了 sed(1) 工具中的一个 bug,该 bug 可能导致在某些情况下模式空间长度计算错误。
sed(1) 工具现在支持不区分大小写的模式匹配;此功能可以通过在正则表达式的结束分隔符后使用 I
参数启用。
setenv(3) 系列库调用的行为已从历史的 BSD API 变更为 POSIX 强制的行为。因此,依赖于旧 API 的几个基本系统工具已更新以跟踪此变更。
setfacl(1) 的 -h
参数现在正确设置符号链接上的 ACL,而不是链接目标。
sockstat(1) 实用程序,显示连接和监听的网络套接字,现在支持一个新的 -P
命令行选项,用于通过协议名称(如 protocols(5) 中列出的协议)过滤显示的套接字。
sysctl(8) 实用程序现在支持 -q
参数,以抑制一组有限的警告和错误。
已移除 FreeBSD 基本系统中的 tcpslice,因为它已过时。可以在 Ports 中找到更新的版本,路径为 net/tcpslice。
time(1) 实用程序现在如果收到 SIGINFO 信号,会打印出给定命令的运行时间。
top(1) 程序现在支持 -a
参数,以显示进程标题及其参数向量;此功能对监控通过 setproctitle(3) 变更标题的进程非常有用。
top(1) 程序现在支持 -j
参数,显示每个进程的 jail(8) ID。 [已合并]
touch(1) 实用程序现在支持 -A
参数,可以通过指定的值调整文件的访问和修改时间。 [已合并]
truss(1) 实用程序现在支持 -s
参数,功能与 strace
实用程序 (devel/strace) 相同。
truss(1) 实用程序不再依赖 procfs(5) 文件系统;它改用 ptrace(2) 接口来控制被追踪的进程。
[powerpc] truss(1) 实用程序现在支持 FreeBSD/powerpc。
已移除 usbd(8) 实用程序。 devd(8) 实用程序及其配置文件现在支持与其等效的功能。
uuidgen(1) 实用程序已从 /usr/bin
移至 /bin
。
早已被 mdconfig(8) 取代的 vnconfig(8) 实用程序已被移除。
已移除实用程序 wicontrol(8) 。wi(4) 接口的配置功能应通过 ifconfig(8) 完成。
所有库的共享库版本号已更新,因为可能存在 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) 实用程序到 FreeBSD 主源代码树中(之前位于工具区域)。它提供了对 wlan(4) 模块及相关驱动程序中多种调试输出类型的控制,有助于调试无线问题。
已添加 wpa_passphrase(8) 实用程序。它从 ASCII 密码短语生成一个 256 位的预共享 WPA 密钥。 [已合并]
2.3.1 /etc/rc.d
脚本
/etc/rc.d
脚本已新增独立 ftpd(8) 的 ftpd 脚本。
已移除脚本 gbde_swap
,取而代之的是新的脚本 encswap
,后者还支持 geli(8) 进行交换加密。
已新增 geli 和 geli2 脚本,用于在启动时配置 geli(8) 设备。
已移除 IPsec IKE 守护进程的 ike 脚本,因为基本系统中不包含该守护进程。
已新增 mdconfig 脚本,用于处理由 vnode 支持的 md(4) 设备。这是 ramdisk 脚本的替代,所有 ramdisk_*
变量已改为 mdconfig_*
。此外,还添加了两个新的 rc.conf(5) 变量 mdconfig_*_files
和 mdconfig_*_cmd
。例如:
已移除 /etc/rc.d
中的 rcconf.sh
脚本,并添加了变量 early_late_divider
,用于指定脚本以分隔启动过程的早期和后期阶段。
rc.initdiskless
脚本现在使用 tar(1),而不是 pax(1),因为 pax(1) 需要一个可写的临时目录,而该目录在此脚本运行时可能不可用。
已移除 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) 规则的默认行为,以及 TCP 规则的默认参数设置为 S/SA。可以使用选项 no state
和 flags 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) 工具的默认分区大小算法已被变更。
当磁盘容量大于 (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) 和 src.conf(5)。
GNOME 桌面环境 (x11/gnome2) 的受支持版本已从 2.16.1 更新至 2.20.1。 [已合并]
KDE 桌面环境 (x11/kde3) 的受支持版本已从 3.5.4 更新至 3.5.7。 [已合并]
Xorg 窗口系统 (x11/xorg) 的受支持版本已从 6.9.0 更新至 7.3.0。 [已合并]
X11BASE
的默认值已从 /usr/X11R6
变更为 /usr/local
,即 LOCALBASE
的默认值。 [已合并]
FreeBSD 的 ISO 镜像现已调整为适配 700MB CDROM 媒介。此前大多数版本的 FreeBSD 假设 CDROM 容量为 650MB。 [已合并]
2.7 文档
以下手册页面的添加改进了现有功能的文档: acpi_sony(4)、device_get_sysctl(9)、ext2fs(5)、mca(8)、nanobsd(8)、snd_mss(4)、snd_t4dwave(4)、sysctl(9)。
内核子系统 API 文档生成框架的初步支持已新增至 src/sys/doc/subsys
,使用 devel/doxygen。要生成 API 文档,请在 src/
目录中输入 make doxygen
。
3 从先前版本的 FreeBSD 升级
[i386, amd64] 从 FreeBSD 6.2-RELEASE 开始,使用 freebsd-update(8) 工具支持 RELEASE 版本之间(及其安全分支快照)的二进制升级。二进制升级过程将更新未修改的用户空间实用工具以及官方 FreeBSD 版本中分发的未修改 GENERIC 或 SMP 内核。[freebsd-update(8)] 工具要求待升级的主机能进行互联网连接。
另一种较旧的二进制升级方式是通过 CDROM 分发介质主菜单的 sysinstall(8) 中的选项 Upgrade 。这种方法可能对非 i386、非 amd64 的机器或无互联网连接的系统有用。
基于源代码的升级(通过重新编译 FreeBSD 基本系统)也支持从先前版本升级,具体说明详见 /usr/src/UPDATING
。
重要提示:
在尝试升级 FreeBSD 之前,应备份 所有 数据和配置文件。
此文件和其他与发行版相关的文档可从 http://www.FreeBSD.org/snapshots/ 下载。
如有关于 FreeBSD 的问题,请先阅读 文档 后再联系 questions@FreeBSD.org。
所有 FreeBSD 7-STABLE 的用户应订阅 current@FreeBSD.org 邮件列表。
如有关于本文档的问题,请发送邮件至 doc@FreeBSD.org。
最后更新于