FreeBSD 11.1-RELEASE 发行说明(2017 年 7 月 26 日)
摘要
FreeBSD 11.0-RELEASE 的发行说明包含了对 FreeBSD 基本系统在 11.0-STABLE 开发线路上所做变更的总结。本文档列出了自上一个版本发布以来发布的相关安全公告,以及对 FreeBSD 内核和用户空间的重大变更。还简要介绍了升级的相关事项。
介绍
本文档包含了 FreeBSD 11.1-RELEASE 的发行说明。它介绍了 FreeBSD 最近添加、修改或删除的功能,并提供了从先前版本升级到该版本的一些注意事项。
这个版本的 FreeBSD 11.1-RELEASE 是一个发布版本,可以在 https://www.FreeBSD.org/releases/
或其任何镜像站点找到。有关获取此版本(或其他)FreeBSD 发行版本的更多信息,可以在 FreeBSD 手册 的 获取 FreeBSD 附录 中找到。
我们鼓励所有用户在安装 FreeBSD 之前查阅发行勘误文档。勘误 文档会更新“突发”信息,这些信息是在发布周期后期或发布之后发现的。通常,它包含已知的 bug、安全公告以及文档的更正。可以在 FreeBSD 网站上找到 FreeBSD 11.1-RELEASE 的最新勘误文档。
本文档介绍了自 11.0-RELEASE 以来,FreeBSD 中最显著的用户可见的新功能或变更。一般来说,除非特别标记为合并特性,否则这里描述的变更是 11.1-STABLE 分支特有的。
典型的发行说明项目包括发布 11.0-RELEASE 后发布的安全公告、新驱动程序或硬件支持、新命令或选项、主要 bug 修复或第三方软件升级。它们也可能列出对主要 Port/软件包或发布工程实践的变更。显然,发行说明无法列出 FreeBSD 在不同版本之间所做的每一个变更;本文档主要集中在安全公告、用户可见的变更和主要的架构改进上。
从旧版升级 FreeBSD
[amd64, i386] 支持使用 freebsd-update(8) 工具进行 RELEASE 版本(以及各种安全分支快照)之间的二进制升级。二进制升级过程将更新未修改的用户空间工具,以及未修改的作为官方 FreeBSD 发行版本一部分的 GENERIC 内核。该工具要求被升级的主机具备互联网连接。
基于源代码的升级(即从源代码重新编译 FreeBSD 基本系统)也得到支持,可以根据 /usr/src/UPDATING
中的说明进行操作。
重要提示:
在升级 FreeBSD 之前,必须先备份 所有 数据和配置文件。
安全性和勘误
本节列出了自 11.0-RELEASE 以来的各种安全公告和勘误通知。
安全公告
2016 年 10 月 25 日
权限提升漏洞
2016 年 11 月 2 日
远程拒绝服务漏洞
2016 年 12 月 6 日
2016 年 12 月 6 日
2016 年 12 月 6 日
2016 年 12 月 22 日
多个漏洞
2017 年 1 月 10 日
多个漏洞
2017 年 2 月 23 日
多个漏洞
2017 年 4 月 12 日
多个漏洞
2017 年 4 月 27 日
修复分片处理崩溃问题
2017 年 7 月 12 日
修复 KDC-REP 服务名称验证漏洞
勘误通知
2016 年 10 月 25 日
启动加载器在启动过程中可能会挂起
2016 年 12 月 6 日
修复无效时区缩写的警告
2016 年 12 月 6 日
更新时区数据库信息
2016 年 12 月 6 日
修复不正确定义的 Unicode 字符
2017 年 2 月 23 日
修复启用 PCI-express 热插拔时系统启动挂起的问题
2017 年 2 月 23 日
修复 NIS 主机更新未推送到 NIS 从机的问题
2017 年 2 月 23 日
修复与 Hyper-V/存储的兼容性问题,特别是在 KB3172614 或 KB3179574 更新后
2017 年 2 月 23 日
2017 年 2 月 23 日
Xen 迁移增强功能
用户空间
本节涉及了对用户空间应用程序、第三方软件和系统工具的变更和新增内容。
用户空间配置变更
当在 src.conf(5) 中设置 WITHOUT_TCP_WRAPPERS
时,inetd(8)
工具现在将不再构建 libwrap
支持。(r313203)
当在 src.conf(5) 中设置 WITHOUT_LIBTHR
时,libthr(3)
库及相关文件将在升级系统时通过目标 delete-old-libs
进行评估和删除。(r316045)
新增了构建选项 WITH_LLD_AS_LD
,如果设置此选项,将把 LLD 安装为 /usr/bin/ld
。(r316423)(由 FreeBSD 基金会赞助)
在 FreeBSD/arm64 上,默认启用了 LLD,并将其安装为 /usr/bin/ld
。(r318472)(由 FreeBSD 基金会赞助)
新增了 src.conf(5) 选项 WITH_RPCBIND_WARMSTART_SUPPORT
,启用后可支持构建带有 warmstart
支持的 rpcbind(8)
。(r319244)
用户空间应用程序变更
已在 OpenSSH 中添加对 blacklistd(8) 的支持。(r305476)(由 FreeBSD 基金会赞助)
bspatch(1) 工具已更新,增加了对 capsicum(4) 的支持。(r306213)
cron(8) 工具已更新,默认支持包括 /etc/cron.d
和 /usr/local/etc/cron.d
中的文件。(r308720)(由 Gandi.net 赞助)
syslogd(8) 工具已更新,增加了关键字 include
,允许指定一个目录,该目录中包含要与 syslog.conf(5) 一起包含的配置文件。默认的 syslog.conf(5) 已更新,默认包括 /etc/syslog.d
和 /usr/local/etc/syslog.d
。(r308721)(由 Gandi.net 赞助)
新增了 zfsbootcfg(8) 工具,提供了类似 boot.config(5) 的一次性选项用于 zfsboot(8)。(r308914)
setkey(8) 工具已修改,显示运行时的 NAT-T 配置。新增了 -g
和 -t
参数,分别在与 -D
和 -P
参数一起使用时,仅列出全局和虚拟策略。(r315514)(由 Yandex LLC 赞助)
新增了 getaddrinfo(1) 工具,移植自 NetBSD。(r316098)(由 Dell EMC 赞助)
jail(8) 工具已更新,允许在 jail 内使用显式分配的 IPv4 和 IPv6 地址。(r316944)(由 Multiplay 赞助)
daemon(8) 工具已更新,允许将 stdout(4) 和 stderr(4) 输出重定向到 syslog(3) 或文件。(r317855)
新增了 efivar(8) 工具,提供管理 UEFI 变量的接口。(r318576)(由 FreeBSD 基金会赞助)
新增了 cxgbetool(8) 工具,提供对 cxgbe(4) 设备的功能和调试工具的命令行访问。(r319388)
primes(6) 工具现在枚举的素数已超出 3825123056546413050
,达到新的限制 2^64 - 1
。(r320218)
rcp(1)、rlogin(1)、rsh(1)、ruptime(1)、rwho(1)、rlogind(8)、rshd(8)、rwhod(8) 工具已标记为弃用,并计划在 FreeBSD 12.0-RELEASE 中删除。(r320654)
gdb(1) 和 kgdb(1) 工具已标记为弃用,并计划从基本系统中删除。可在 Port devel/gdb
中找到新版本。(r320874)
第三方的软件
readelf(1) 已更新,以报告 ARM 程序和节头类型。 (r305837)
ELF 工具链已更新至上游版本 r3490。 (r305844) (由 FreeBSD 基金会赞助)
groff(1) 已更新,使用变更日志日期而非文件修改日期,以提高构建的可重现性。 (r307631)
注意
计划在 FreeBSD 12.0-RELEASE 时弃用 groff(1) 。
unbound(8) 已更新至版本 1.5.10。 (r307729)
strings(1) 已更新,修复了在提供多个文件作为参数时,如果在最后一个文件之前遇到错误的退出状态。 (r309125)
makewhatis(1) 已更新,以生成可重现的构建输出。 (r309183) (由 FreeBSD 基金会赞助)
Subversion 已更新至版本 1.9.5。 (r309511)
file(1) 已更新至版本 5.29。 (r309847)
amd(8) 工具已更新至版本 6.2。 (r310490)
CLDR 语言环境已更新至版本 30.0.3。Unicode 语言环境已更新至版本 9.0.0。 (r312336)
tcpdump(1) 已更新至版本 4.9.0。 (r313537)
zlib(3) 已更新至版本 1.2.11。 (r313795)
openresolv 已更新至版本 3.9.0。 (r313980)
NetBSD 测试套件已更新至 01.11.2017_23.20 快照。 (r313680)
libucl
已更新至版本 20170219。 (r314278)
libarchive(3) 已更新至版本 3.3.1。 (r315432)
dma(8) 已更新至 2017-02-10 快照。 (r315995)
ntpd(8) 已更新至版本 4.2.8p10。 (r316068)
ACPICA 已更新至版本 20170303。 (r316303)
时区数据文件已更新至版本 2017b。 (r316349)
mandoc(1) 已更新至版本 1.14。 (r316420)
Clang 已更新至版本 4.0.0。 (r316423)
LLVM 已更新至版本 4.0.0。 (r316423)
LLD 已更新至版本 4.0.0。 (r316423)
LLDB 已更新至版本 4.0.0。 (r316423)
compiler-rt 已更新至版本 4.0.0。 (r316423)
libc++ 已更新至版本 4.0.0。 (r316423)
tcsh(1) 已更新至版本 6.20.00。 (r316957)
blacklistd(8) 已更新至 20170503 快照。 (r318239) (由 FreeBSD 基金会赞助)
blacklistd(8) 增强了对 OpenSSH 的支持,调整通知点以捕获所有身份验证失败,而不仅仅是因无效登录用户名引起的失败。 (r318402) (由 FreeBSD 基金会赞助)
byacc(1) 已更新至版本 20170201。 (r319349)
bmake 已更新至版本 20170510。 (r319884)
安装和配置工具
安装程序 bsdinstall(8) 已更新,支持在配置 wlan(4) 接口时处理隐藏的无线网络。 (r311686)
由 bsdinstall(8) 创建的默认 EFI 分区大小已从 800KB 增加至 200MB。 (r320088) (由 FreeBSD 基金会赞助)
/etc/rc.d
脚本
/etc/rc.d
脚本已添加 jail_confwarn
rc.conf(5) 项,用于抑制有关过时的每个 jail(8) 配置的警告。 (r310009) (由 FIS Global, Inc. 赞助)
/etc/periodic
脚本
/etc/periodic
脚本默认的 periodic.conf(5) 已更新,包含选项 anticongestion_sleeptime
,用于整合 periodic(8) 脚本中的随机睡眠,并替换了选项 daily_ntpd_avoid_congestion
。默认值为 3600 秒。 (r317373)
已添加 410.status-mfi
periodic(8) 脚本,用于监控 mfi(4) 卷的状态。 (r317857)
运行时库和 API
libmd
库已更新,引入了操作 fd(4) 而不是 filename
的函数。 (r310372)
已更新函数 kvm_close(3) ,返回来自先前 close(2) 调用的累计错误。 (r316039)
已更新 C 标准库,开始使用 reallocarray(3) 进行边界检查。 (r316613)
已添加系统调用 clock_nanosleep()
。系统调用 nanosleep()
现在是 clock_nanosleep()
的包装函数。 (r317618) (由 Dell EMC 赞助)
系统库已更新,开始使用 reallocarray(3) 进行边界检查。 (r318121)
ABI 兼容性
类型 max_align_t
现已为符合 C11 标准而定义。 (r309258)
已添加 sem_clockwait_np()
库函数,允许调用者指定参考时钟并选择绝对模式或相对模式。 (r315274) (由 Dell EMC 赞助)
已将 clang 的 nullability
限定符添加到 C
库头文件中。 (r315282)
已将 GNU 的 nonnull
属性替换为更为温和的 Clang nullability 属性。 (r315282)
用户空间调试
ptrace(2) 现在支持 vfork(2) 事件,允许在 vfork(2) 调用期间进行可靠的调试。 (r304499)
进程的核心转储现在包括进程 ID (PID) 和命令行参数。 (r306786)
内核
本节涉及与内核配置、系统调优和系统控制参数相关的变更,这些变更无法归类为其他类别。
一般内核变更
getdtablesize(2) 系统调用现在允许在能力模式下执行。 (r305514)
kern.proc.nfds
sysctl(8) 现在允许在能力模式下执行。 (r305516)
sys/conf/newvers.sh
脚本已更新,新增一个选项以排除构建特定的元数据,从内核中以确保构建可重现性。 (r312249)
内核错误修复
ipf(4) 数据包过滤器已更新,以防止 keep state
错误地暗示 keep frags
,与 ipf(5) 文档中的行为一致。 (r317434)
内核配置
已添加 src.conf(5) 选项 WITH_REPRODUCIBLE_BUILD
,启用该选项时会从内核中排除构建特定的元数据,以确保构建可重现性。 (r312730)
默认启用对 NAT-T 的支持,已移除内核配置选项 IPSEC_NAT_T
。 (r315514) (由 Yandex LLC 赞助)
已移除 IPSEC_FILTERTUNNEL
内核选项,该选项已被 sysctl net.inet.ipsec.filtertunnel
取代。 (r315514) (由 Yandex LLC 赞助)
在 amd64 和 i386 架构上已默认启用选项 EARLY_AP_STARTUP
,启用后会在内核启动过程中更早释放应用处理器(AP)。 (r318763)
内核模块
cloudabi(4) 已更新,允许在具有选项 COMPAT_CLOUDABI32
的内核配置文件中,在 64 位用户空间环境下运行 32 位二进制文件。 (r307144)
已添加内核模块 ipsec
和 tcpmd5
。 (r315514) (由 Yandex LLC 赞助)
注意
在添加了模块
tcpmd5
后,现在需要为入站和出站方向都创建安全关联 (SA) 条目。
ipfw(4) 数据包过滤器已更新,增加了对命名动态状态的支持。 (r316274) (由 Yandex LLC 赞助)
已添加内核模块 ipfw_nptv6
,实现了 RFC 6296 中定义的 IPv6 网络前缀转换 (NPTv6)。 (r316444) (由 Yandex LLC 赞助)
已添加内核模块 ipfw_nat64
,实现了无状态和有状态的 NAT64。 (r316446) (由 Yandex LLC 赞助)
已添加 cfumass(4) 设备,为支持 USB OTG 硬件提供存储前端。 (r316660) (由 FreeBSD 基金会赞助)
已添加内核模块 ipfw_pmod
,旨在修改任何协议的数据包。 (r317045) (由 Yandex LLC 赞助)
注意:目前仅实现了 TCP MSS 修改功能。
系统调优与控制
已添加可调参数 vfs.root_mount_always_wait
,强制内核在根挂载被持有时等待,即使根设备已经存在。 (r315539)
当系统实时时钟 (RTC) 被调整时,例如通过 clock_settime()
,正在休眠的线程现在会被唤醒,并且绝对睡眠时间将根据 RTC 的新值重新评估。 (r316120) (由 Dell EMC 赞助)
设备与驱动程序
本节涉及自 11.0-RELEASE 以来对设备和设备驱动程序的变更和新增内容。
设备驱动程序
已添加 jedec_ts(4) 驱动程序,提供对内存模块热传感器的支持。该驱动程序目前支持完全符合 JEDEC JC 42.4 规范的芯片。 (r307768)
已添加 chromebook_platform(4) 驱动程序,提供对各种 Chromebook 型号的支持。 (r308104)
已添加 bytgpio(4) 驱动程序,提供对 Intel Bay Trail™ SoC GPIO 控制器的支持。 (r308942)
/dev/kmem
不再支持通过 mmap()
进行访问。希望使用 /dev/kmem
的消费者必须使用 read()
和 write()
。 (r312394)
devctl(8) 现在支持命令 clear driver
,作为 set driver
命令的补充。 (r306533) (由 Chelsio Communications 赞助)
digi(4)、ie(4)、mcd(4)、scd(4)、si(4)、spic(4) 和 wl(4) 驱动程序已被标记为废弃,并已在 FreeBSD 12.0 中移除。相关的 sicontrol(8) 和 wlconfig(8) 工具也已废弃。 (r320954)
存储驱动程序
已更新 mpr(4) 驱动程序,支持三模(SAS/SATA/PCIe)Broadcom 存储适配器。 (r319435)
网络驱动程序
已更新 cxgbe(4) 驱动程序,提供对 Chelsio T4 和 T5 适配器上虚拟功能设备(VFs)的支持。 (r306660) (由 Chelsio Communications 赞助)
现在,使用 Chelsio T4+ 适配器上的 TCP Offload Engine (TOE) 的 TCP 连接可以通过 aio_write()
执行零拷贝发送。 (r306661) (由 Chelsio Communications 赞助)
已添加 cxgbev(4) 驱动程序,提供对 Chelsio T4 和 T5 适配器上虚拟功能设备(VFs)的支持。 (r306664) (由 Chelsio Communications 赞助)
已添加 bnxt(4) 驱动程序,提供对 Broadcom NetXtreme-C™ 和 NetXtreme-E™ 设备的支持。 (r309377) (由 Broadcom Limited 赞助)
cxgbe(4) 驱动程序现在支持使用基于 T6 的适配器的设备,支持 10、25、40 和 100 Gbps。 (r309560) (由 Chelsio Communications 赞助)
cxgbe(4) 驱动程序已更新,提供对 Chelsio T6 适配器上虚拟功能设备(VFs)的支持。 (r309560) (由 Chelsio Communications 赞助)
cxgbev(4) 驱动程序已更新,提供对 Chelsio T6 适配器上虚拟功能设备(VFs)的支持。 (r309560) (由 Chelsio Communications 赞助)
已更新 miibus(4) 驱动程序,支持 Microchip/Micrel KSZ9031 千兆以太网卡。 (r310852) (由 Rubicon Communications, LLC (Netgate) 赞助)
已更新 alc(4) 驱动程序,提供对 Atheros Killer E2400™ 千兆以太网卡的支持。 (r312358)
已更新 alc(4) 驱动程序,提供对 Atheros Killer E2500™ 千兆以太网卡的支持。 (r314005) (由微软赞助)
已更新 etherswitch(4) 驱动程序,支持 RTL8366RB 和 RTL8366SR 卡。 (r315330) (由 Rubicon Communications, LLC (Netgate) 赞助)
已添加 if_ipsec(4) 虚拟隧道接口,实施基于路由的 VPN,并使用封装安全负载(ESP)进行保护。 (r315514) (由 Yandex LLC 赞助)
已添加 qlnxe(4) 驱动程序,提供对 Cavium Qlogic™ 45000 系列适配器的支持。 (r317116)
已更新 qlxgbe(4) 固件,更新到版本 5.4.64。 (r317182)
已更新 ixl(4) 驱动程序,更新到版本 1.7.12-k。 (r318357) (由英特尔公司赞助)
已更新 cxgbe(4) 驱动程序,提供对 T4、T5 和 T6 卡的固件版本 1.16.45.0 的支持。 (r319269) (由 Chelsio Communications 赞助)
已更新 qlnxe(4) 驱动程序,提供对 QLE41XXX 硬件的支持。 (r320164)
已更新 qlnxe(4) 驱动程序固件,更新到版本 8.30.0.0。 (r320164)
硬件支持
本节涉及物理机器、虚拟机监控程序和虚拟化环境的通用硬件支持,以及不适合其他部分的硬件变更和更新。
硬件支持
atkbdc(4) 驱动程序已更新,提供对 Elantech 触控板的支持。要启用硬件支持,请在 loader.conf(5) 中添加 hw.psm.elantech_support=1
。 (r307576)
虚拟化支持
bhyve(4) 的 PCI 直通支持更多动态配置,允许在运行时将设备标记为直通或主机使用。 (r306471) (由 Chelsio Communications 赞助)
bhyve(4) 的 PCI 直通功能在虚拟机启动和停止时通过 FLR 重置。 (r306520) (由 Chelsio Communications 赞助)
在运行于 Microsoft Hyper-V™ 的 FreeBSD 虚拟机上已启用 PCI 直通支持。 (r309312) (由微软赞助)
hv_netvsc(4) 驱动程序的 SR-IOV 实现已更新,以支持虚拟功能(VF)设备,如 Mellanox Connect-X3™ 网络卡。 (r314091) (由微软赞助)
已添加对 Microsoft Hyper-V™ 第二代虚拟机的支持。 (r316272) (由微软赞助)
已为在 Microsoft Hyper-V™ 上运行的虚拟机添加对合成键盘的支持。 (r317119) (由微软赞助)
Amazon EC2™ 上提供的 FreeBSD 虚拟机现在默认启用 IPv6。 (r312790)
已添加 ena(4) 驱动程序,提供对 Amazon EC2™ 平台上的“下一代”增强网络的支持。 (r320760) (由亚马逊 赞助)
ARM 支持
已添加对 Allwinner A13 板的支持。 (r305436)
存储
本节涉及文件系统和其他存储子系统(本地和网络存储)的变更和新增内容。
网络存储
NFS 客户端现在可以正确处理从 NFS 服务器接收到的 NFS4ERR_BAD_SESSION
错误。此外,内核 RPC 客户端已更新,以防止在从 sosend(9) 接收到 ERESTART
时创建新的 TCP 连接。 (r318660)
NFS 客户端现在支持 Amazon 弹性文件系统™(EFS)。 (r318660)
ZFS
新增 sysctl(8) 参数 vfs.zfs.compressed_arc_enabled
,启用后将把压缩后的磁盘数据存储在 ZFS ARC 中,从而增加可以缓存到物理内存中的数据量。默认启用。(r307265)
vfs.zfs.debug_flags
sysctl(8) 参数已弃用,改为使用 vfs.zfs.debugflags
。此外,vfs.zfs.debugflags
现在可以在 loader.conf(5) 中进行配置,而 vfs.zfs.debug_flags
则无法如此配置。(r318785)
启动加载器变更
本节涉及启动加载器、启动菜单以及其他与启动相关的变更。
启动加载器变更
已更新 UEFI 启动加载器以支持构建可复现性。(r305845) (由 FreeBSD 基金会赞助)
已更新 EFI 加载器,以支持 TFTPFS,提供无需 NFS 服务器即可进行网络启动的支持。(r307632) (由 Gandi.net 赞助)
网络
本节介绍了影响 FreeBSD 网络的变更。
一般网络变更
网络堆栈已更新,包含 ip6_tryforward()
,通过减少检查次数提升性能。(r311681) (由 Yandex LLC 赞助)
网络堆栈已修改,以修复多个线程同时发送 UDP log_in_vain
消息时出现的不正确或无效 IP 地址问题。(r313523) (由 Dell EMC 赞助)
TCP 堆栈已变更,使用估算的 RTT(往返时间)代替时间戳进行接收缓冲区自动调整大小。(r317368) (由 Multiplay 赞助)
网络协议
新增了对 GARP(无偿 ARP)重传的支持。新增 sysctl(8) 参数 net.link.ether.inet.garp_rexmit_count
,该参数设置了当其值为非零时的最大重传次数。(r309337) (由 Dell EMC 赞助)
已移除对 UDP_ENCAP_ESPINUDP_NON_IKE
封装类型的支持。(r315514) (由 Yandex LLC 赞助)
Ports 和软件包基础设施
本节涉及了 FreeBSD Ports、软件包基础设施、软件包维护和安装工具的变更。
软件包变更
pkg(8) 工具已更新至版本 1.10.1。
最后更新于