NetBSD版本更新录(202x)
2022-08-13 07:36:19 阿炯

本文是从NetBSD的产品主页分离出来的,专门用于该发行版本的更新记录,截止到2030年之前。NetBSD是一份免费的、安全的及高度可移植的开源UNIX操作系统,它适合于很多种平台,从64-bit的AlphaServers及桌面系统到手持及嵌入式系统。它在设计上非常整洁,并拥有先进的特性,这使得它在业界和学术界都有口皆碑。用户可通过完整的源代码来获得支持。很多应用程序都可容易地从 NetBSD Packages Collection获得。


最新版本:6.0
主要增加了线程本地存储以及LVM功能,详情请查看发行说明


最新版本:7.0
这是 NetBSD 操作系统的第五个重大版本。此版本包括稳定性改进,数百个 bug 修复,及大量的新特性。值得关注的新特性:
DRM/KMS 支持,使用 Intel 和 Radeon 设备加速 x86 图形化
多处理器 ARM 支持
支持大量的新 ARM 板
重要的 NPF 改进
USB 子系统的多处理器支持
blacklistd(8),新守护进程,集成 packet 过滤器
磁盘块处理方面的大量改进
通过扩展分区菜单在 sysinst 支持 GPT
Lua 内核脚本
epoc32,新端口,支持 Psion EPOC PDAs
GCC 4.8.4,支持 C++11
可选完整的 BSD 许可证下的 C/C++ runtime env:compiler_rt, libc++, libcxxrt

更多改进请看发行说明

最新版本:8.0
此次更新带来了稳定性改进、数百个 bug 修复和许多新功能,带来了稳定性改进、数百个错误修复和许多新的特性。其中亮点如下:详情见发行公告
此版本带来了一些安全与稳定性 bug 修复,并有新特性和功能增强:
x86:缓解 INTEL-SA-00233 (MDS)。
修复了各种本地用户内核数据泄漏。
x86:新的 rc.conf(5) 设置 smtoff 以禁用同步多线程。
一些网络驱动修复与改进。
修复了 PIE 中的线程本地存储(TLS)。
修复了 tmpfs 中的性能回退问题。
DRM/KMS 改进与一些 sh(1) 修复。
新增 Broadcom FullMAC PCI 和 USB 无线驱动 bwfm(4) 。
新增 mfii(4) SAS 驱动。
dhcpcd(8) 更新到 7.2.2。
重制 USB 堆栈,增加了 USB3 支持。
内核中的音频混合器(audio_system(9))。
可重复的构建(MKREPRO,请参阅 mk.conf(5))。
可用的完整用户态调试信息(MKDEBUG,请参阅 mk.conf(5))。虽然大多数安装介质都没有附带(出于大小原因),但之后可根据需要下载和提取 debug 和 xdebug 集。它们为所有基础系统、X 二进制文件(X binaries)和库提供完整的符号信息,并允许更好的错误报告和(用户空间)崩溃分析。
默认情况下,PaX MPROTECT(W^X)内存保护在一些具有细粒度内存保护和合适 ELF 格式的体系结构上强制执行:i386,amd64,evbarm,landisk。
默认情况下启用PaX ASLR(地址空间布局随机化):i386,amd64,evbarm,landisk,sparc64。
默认情况下,为用户空间采用位置无关的可执行文件(Position Independent Executables):i386,amd64,arm,m68k,mips,sh3,sparc64。
添加新的套接字层 can(4) 用于 CAN 总线上的设备通信。
添加了一个特殊的伪接口 ipsecif(4),用于基于路由的 VPN 。
网络堆栈的某些部分已经成为 MP 安全的(MP-safe)。启用此选项需要内核选项 NET_MPSAFE。
总体对网络堆栈进行了强化。
各种 WAPBL(NetBSD 文件系统「日志」选项)的稳定性和性能改进。
特定于 i386 和 amd64 CPU:
对 Meltdown 的缓解措施:默认启用 SVS(Separate Virtual Space,直译作「独立虚拟空间」)。
对SpectreV2 的缓解措施:retpoline(gcc 中的支持),默认用于内核。其他硬件缓解措施也是可用的。
适用于 Intel 和 AMD 的 SpectreV4 缓解措施。
PopSS 解决方法:默认情况下,用户对调试寄存器的访问权限已关闭。
在易受攻击的 Intel CPU(「eagerfpu」)上禁用了 Lazy FUL saving。
支持 SMAP与(U)EFI bootloader。
内存布局的改进和强化:W^X、可写页面更少、一致性更好、性能更好。
大量第三方软件更新。

更多详情请查看更新说明

最新版本:8.2
NetBSD 8.2 现已发布,此版本包括 NetBSD-8 中的所有安全修补程序,以及对稳定性至关重要的其他修补程序。一些重点更新内容如下:
x86:修复了引导旧 CPU 时的回归问题
x86:Hyper-V Gen.2 VM 帧缓冲区支持
httpd(8):修复了各种安全问题
ixg(4):各种修复/改进
x86 efiboot:添加 tftp 支持,修复具有许多内存段的计算机上的问题,改进图形模式逻辑以在更多计算机上工作。
各种内核内存信息泄漏修复程序
将 expat 更新到 2.2.8
修复 ryzen USB 问题并支持 xHCI 版本 3.10。
接受 root 设备规范作为 NAME = label。
向 x86 引导加载程序添加 multiboot 2 支持。
CVE-2019-9506 的修复:“蓝牙的密钥协商”攻击。
nouveau:限制受支持的设备并修复固件加载。
radeon:修复 TAHITI VCE 固件的加载。
named(8):停止使用过时的 dnssec-lookaside。
更多详细信息可参阅发行文档

最新版本:9.1
2020年10月,这是 NetBSD 9 稳定分支的首次更新。作为首个功能和稳定性维护版本,它代表了一些出于安全和稳定性考虑的重要修复,以及引入新特性和增强功能。更新亮点:
使用 cgd(4) 对磁盘进行并行加密
添加 C.UTF-8 语言环境
添加对 Xen 4.13 的支持
改进对 ZFS 的支持以及修复 ZFS 的可靠性问题
升级 NVMM hypervisor,改进虚拟化以及提升性能和稳定性
为 NPF 防火墙增加其他设置项,升级文档以及引入多项关于 npfctl(8) 可用性的改进
改进 X11,默认窗口管理器切换至 ctwm(1),在 xterm(1) 中启用 sixel 支持,针对较旧的 Intel 芯片组进行修复
提升 BSD 日志结构文件系统 (log-structured filesystem) 稳定性
添加对在 raw 模式下使用 USB 安全密钥 (USB security keys) 的支持,支持用于 Firefox 和其他应用程序
在熵的子系统 (entropy subsystem) 支持更多硬件 RNG,包括 Allwinner 和 Rockchip SoC 的 RNG
修复关于音频系统的多项问题,解决了 NetBSD 7 和 OSSv4 兼容性的边缘情况,以及其他问题
添加 Aquantia 10 千兆以太网适配器的驱动程序 aq(4)
添加 Exar 单端口和多端口 USB 串行适配器的驱动程序 uxrcom(4)
改进 ThinkPad 笔记本触控板和“小红帽”的默认输入行为
evbarm GENERIC 内核中内置的 MIDI 音序器和 CGD 支持现在无需加载模块
修复 AArch64 上的 sigaltstack(2),并解决 Go 和 Erlang 所遇到的问题
修复了evbarm AM335xCPU频率缩放问题,并减少了空闲CPU使用率
修复 evbarm AM335x (例如 BeagleBone Black)的 CPU 频率缩放问题(frequency scaling),并减少空闲 CPU 使用率
改进 lastlogin(8), w(1), cal(1) 的输出,并向 hdaudioctl(8) 添加'show'子命令
改进 amd64 在引导过程早期阶段的帧缓冲区控制台性能,从而提升 amd64 引导速度
为 wscons(4) 添加更多内置键盘布局:巴西葡萄牙语、爱沙尼亚语、冰岛语和拉丁美洲西班牙语
升级并修复了集成的第三方组件,包括 GCC, dhcpcd, OpenSSL 和 tzdata
修复多项关于内核内存损坏和信息泄露的问题
其他 bugfix,以及对现有设备驱动程序的补充
更多详情更新内容查看发行公告

v9.2 "Nakatomi Socrates" 已于2021年5月下旬发布,这是 NetBSD 9 发布分支的第二次更新。它代表了自 2020 年 10 月 NetBSD 9.1 发布以来,由于安全或稳定性原因而被认为是重要的修正的子集,以及一些从开发分支回传的改进,它与 NetBSD 9.0 完全兼容。自 NetBSD 9.1 以来的更改如下:

Kernel
netinet:避免信息泄露, NetBSD-SA2021-001:IPv4 和 IPv6 中可预测的 ID 泄露
netinet:修复了"multicast router 发送带有无效 UDP 校验和的 multicast packet"
xen:XSA-362 的修复-后端将授权映射错误视为 bug。恶意的 DomU 可能会触发 Dom0 内核崩溃。
xen:删除了 xennet(4) 和 xvif(4) 中对 rx-flip 模式的支持,作为 XSA-362 修正的一部分(驱动程序已经默认为更快的 rx-copy 模式)。
zfs:各种稳定性修复程序。修复了"在 NFS 提供的 ZFS 上创建目录时出现 panic"的问题。
coda:修复了"coda 客户端打开错误的文件而不是缓存容器"的问题。
hyperv:修复了"无法通过hvn设备进行 ifconfig(8) up/down"的问题。
msdosfs:修复了"BOOTSIG0 和 BOOTSIG1 检查阻止安装 Raspberry Pi Pico 的 USB 大容量存储器"
kern:修复了"在 init(8) 之前加载多个大型 firmware 文件时出现 panic"
fdescfs:修复了"fdescfs 创建的节点有错误的主编号"
procfs:更正了environ节点的权限。
usb:删除了中止路径中的不正确断言,并修复了DIAGNOSTIC启用后的错误断言失败。
sysctl(7):kern.maxfiles默认值现在与系统内存成正比。避免在 hungry 应用程序(例如多进程 Mozilla Firefox)中耗尽资源。
compat_netbsd32(8):对 AArch64 的各种改进:
添加了对 ARMv6 用户空间的支持。现在在 aarch64 服务器上的沙盒中构建 ARMv6 二进制软件包。
添加了对 ptrace(2) 的支持,修复了 clone(2),修复了 core 文件格式。
模拟 ARMv7 中不推荐使用的指令。
compat_linux(8):修复了与使用长于有效的 struct sockaddr_in * 大小的 namelen 的程序的兼容性问题。
threadpool(9):修复了"threadpool_job_cancelthrash测试随机失败"的问题

程序与服务
calendar(1):将 Judaic 日历更新为 2021 年。
ctwm(1):根据用户反馈,调整了默认的窗口管理器配置以提高可访问性。修复了 window focus 问题。
ftp(1):修复了"ftp -q不起作用"的问题。
nl(1):改进的 POSIX 一致性。允许使用-d的一个和两个字符分隔符。
patch(1)::修复了-V none的行为。
progress(1):在写入时处理 EINTR。
httpd(8):从 NetBSD HEAD 更新为 20210227。
在目录索引中添加了README文件支持。
为各种存档和视频格式添加了更多的 MIME 类型。
修复了在 32 位架构上提供大于 4GB 的服务文件。
各种稳定性修复程序。

系统调用和库
kevent(2):修复了kqueue_scan()中的一场 race,它导致了事件的遗漏,以及 Go 计时器的延迟问题。
posix_spawn(3):修复了对POSIX_SPAWN_RESETIDS的处理。
fread(3):优化了对非缓冲 I/O 的缓冲处理, 使该函数的速度提高了几个数量级。

设备驱动程序
pwm_backlight:在用户设置时保存新的亮度水平,防止 Pinebook Pro 的显示亮度在 DPMS 空白后重新设置。
ahcisata(4):各种一致性改进,在 Solidrun Honeycomb LX2K 上支持 SATA。
audio(4):修复了某些硬件上首选环绕声格式的问题,改为首选立体声。
audio(4):: 修复了资源泄漏和锁定问题。
cd(4): 修复了"无法弹出以 sd(4) 连接的 USB 大容量存储器"的问题
ena(4): 修复了"被破坏的 enaevcnts引起 panic"
hilkbd(4):修复了控制台附件中的一个 race condition。

Ports
arm:修复了"Raspberry Pi 4 上 usb_transfer_complete() 的 panic"
arm:sync-lock 和 atomic operations 的修复。
mac68k:添加了MAC68K_MEMSIZE内核选项来解决 Booter 报告大小错误的问题。
mac68k:为 Quadra/Centris 650/800 修正 DJMEMCMAX。
m68k:plugged 内核堆栈的内存泄漏。
sparc:从GENERIC内核中删除DIAGNOSTIC选项。
x68k:修复了 savecore(8)。
zaurus:使 LCD BrightnessUp 和 BrightnessDown 在 C7x0/860 上工作。
修复了在旧架构上的安装问题:
alpha:切换回 .gz sets 以避免 xz extraction 内存耗尽。
miniroot:针对阻止安装问题的各种修复程序,将缺少的设置添加到默认设置。
hp300:删除了 INSTALL 和 RAMDISK 内核中的默认选项,这些选项会导致提取程序时间过长。

构建系统和工具链
build.sh:从工具中删除了通用符号,以允许与较新的编译器进行交叉编译。
build.sh:修复了从 MacOS 与最近的 Clang 交叉构建 NetBSD 的问题。

第三方组件
对 NetBSD 基本系统中的各种第三方组件进行了更新:
openssl(1):更新至 1.1.1k
修复了 CVE-2021-3450, CVE-2021-3449
tmux(1):更新到 3.1c
Xorg(1):对以下内容应用了上游修复程序:
CVE-2021-3472(本地特权升级)。
xdpyinfo(1):修复了"重定向或管道上无xdpyinfo输出"
xterm(1):更新至 366
已修复 CVE-2021-27135:纠正了选择缓冲区的上限,考虑到了组合字符。注意,目前还不清楚这个错误是否适用于 NetBSD。
freetype:更新至 2.10.4
已修复 CVE-2020-15999:处理嵌入式 PNG 位图时的堆缓冲区溢出。注意,这个 bug 不适用于默认配置下的 NetBSD。
tzdata:更新至 2021a
libX11: 修复了 X Input Method 中的 off by one。
xkb:为以下应用了上游修复程序:
CVE-2020-14360 / ZDI-CAN-11572: XkbSetMap 越界访问
CVE-2020-25712 / ZDI-CAN-11839: XkbSetDeviceInfo 基于堆的缓冲区溢出
更多详情可查看发行公告

v9.3 已于2022年8月上旬发布,这是 NetBSD 9 发布分支的第三次更新。它代表了自 2021 年 5 月发布 NetBSD 9.2 以来出于安全或稳定性原因被认为很重要的选定修复子集,以及从开发分支向后移植的一些增强功能,与 NetBSD 9.0 完全兼容。官方强烈建议运行 9.2 或更早版本的用户进行升级。公告指出:NetBSD 社区对 NetBSD 10.0 感到非常兴奋,但开发团队认为有必要在等待解决 NetBSD-current 中有关 FFS 访问控制列表阻止 netbsd-10 发布的一些兼容性问题时,发布这个错误修复版本。除了许多错误修复之外,9.3 还包括:
对 suspend 和 resume 支持的回溯性改进
对现有设备驱动程序的各种新硬件的小规模添加
对 Windows 10 上创建的 UDF 文件系统的兼容性
对较新的英特尔千兆以太网芯片组的增强支持
对新的英特尔和 AMD Zen 3 芯片组的更好支持
对使用安装程序 sysinst (8) 配置连接到 Wi-Fi 网络的支持
对 Commodore Amiga 上基于 wsfb 的 X11 服务器的支持
以及对 Xen hypervisor 的小范围性能改进

在一系列的对各种新硬件的支持之外,还改进了对 Commodore Amiga 的支持。这是 1985 年发布的一种 16 位计算机。甚至其开发商 Commodore 早在 1994 年就倒闭了,但 Amiga 仍然存在少数但狂热的爱好者。如果你能找到一台还能使用的 Amiga,那你就能在上面运行 2022 年的 NetBSD 了。开源就是只要觉得可以就开始做,而不用管是不是有商业价值,也不用那么一本正经。更多详情可查看此处

v10.0 已于2024年4月初发布,其中包含了过去几年中积累的一长串改进和其他增强功能。对于那些尚未升级到 v10.0 的用户来说,v9 系列于2024年4月下旬已更新至 9.4。v9.4 带来了各种稳定性增强和安全修复。v9.3 早在 2022 年就已发布,因此v9.4 的修复内容非常丰富。还包括一些更新的硬件支持,如在各种驱动程序中支持英特尔 600 和 700 系列芯片组,在温度驱动程序和相关组件中支持 AMD Zen 3 和 Zen 4,在 tprof 中支持更新的 CPU,以及为不同的有线/无线网络适配器和其他设备 ASIC 添加各种支持。

NetBSD v9.4 还针对过去两年中发现的所有安全漏洞更新了 X.Org 服务器,更新了 OpenSSL 以及其他软件包更新。更多信息可参考发行公告


NetBSD 10.0 首发 Beta,提升性能与硬件支持

v10 的开发工作于 2019 年底启动,经过将近 3 年的开发,NetBSD 10.0 于2022年12月下旬发布了首个 Beta 版本。其公告写道,v10 在性能提升方面将会是一个重要里程碑,尤其是在多核操作系统性能比以前的版本要快许多。不过目前的 Beta 版本启用了一些额外的内核诊断,这可能会稍微降低性能。主要变化如下:
兼容 WireGuard
支持自动为 SWAP 分区进行加密
引入新的磁盘加密方法
在内核实现 CPU 加速
支持更多采用 Arm 架构的硬件,包括 Rockchip RK356X, NXP i.MX 8M, Amlogic G12, Apple M1 和 Raspberry Pi 4
支持最新 ARM CPU 中的新安全功能
支持新的网络适配器,包括 Realtek 2.5 千兆以太网和新的 Intel 10/25/40 千兆以太网适配器
将 compat_linux 移植到 AArch64 架构
将 DTrace 移植到 MIPS
改进对多处理器的支持,提供更多的 iMac G5 支持
对 Xen 虚拟机管理程序支持进行重大修改
为用户空间引入新的程序,包括用于手动修剪磁盘空间的 blkdiscard (8)、用于控制音频音量的 aiomixer (1)、realpath (1) 和 fsck_udf (8)……


最新版本:10
NetBSD 10.0 已经于2024年4月上旬正式发布,这是该操作系统的第18个主要版本。代表了自 NetBSD 9.x 于 2019 年最初分支以来对操作系统的累积改进。

发行公告指出,与之前的 9.3 版本相比,10.0 版本带来了许多改进、新功能和修复。首先也是最重要的,当涉及多核和多处理器系统上的计算和文件系统绑定应用程序时,性能得到了巨大的改进。 NetBSD 10.0 还带来了与其他系统上的实现兼容的 WireGuard 支持,不过目前尚处于实验阶段。此外还增加了对各种 ARM SoC 和主板的支持,包括 Apple 的 M1 芯片,以及新增的对 AArch64 上的 compat_linux 的支持,用于运行 Linux 程序。还有大量新的和更新的驱动程序,尤其是现在已同步到 Linux 5.6 的图形驱动程序,带来了大量的改进。

其他更新内容还包括:
新的 Intel 以太网驱动器
对 Realtek 2.5GbE 网络适配器的支持
SMP 性能改进
自动交换加密,以及过去 4 年多来积累的大量其他硬件支持改进
改进了混合系统的调度程序性能,各种系统调用优化、更快的启动性能、增强的虚拟化支持等等

更多详细信息可查看发布说明