类Unix操作系统OpenBSD 7.4版本发布:多项改进

据官网消息,类Unix操作系统OpenBSD 7.4版本发布,进行多处改进与修复。 各种内核改进: 在 arm…

据官网消息,类Unix操作系统OpenBSD 7.4版本发布,进行多处改进与修复。

各种内核改进:
在 arm64 上, 在 dmesg(8) 中显示 BTI 和 SBSS 特性。
新的 kqueue1(2) 系统调用支持 O_CLOEXEC 标志。
在 softraid(4) 上映射设备树读写以解锁 root。
将 umass(4) 软盘设备正确识别为软盘。
在 wscons(4) 中跟上在写入原始 wscons 代码之后统一了 unicode 并选择了占位符值的方框绘制字符。
在 wscons(4) 中,确保转义序列参数数的增加不超出可用范围。
在 amd64 和 i386 上实现 dt(4) utrace(2) 支持。
修正使用 MS-DOS 文件系统时的未定义行为, 以及从 FreeBSD 引入的修正。
禁止使用 softdep mount(8) 选项。Softdep 是改进 vfs 层的一大障碍。
允许 unveil(2)ed 程序将 core(5) 转储到当前工作目录。
解决 execve(2) 中 ELF 程序头验证不完整的问题。
在 arm64 上,在空闲循环和挂起时使用 Apple M1/M2 内核上的深度空闲状态,从而节省功耗。
如果有更新的补丁,更新 AMD CPU 微代码。
启用 AMD CPU “Zenbleed “错误的解决方法。
在 dmesg(8) CPU 行中报告投机控制位。
为了让主 CPU 有机会以独立于机器的方式执行时钟中断准备工作,我们需要将 cpu_initclocks() 的 “初始化 “部分与 “启动时钟中断 “部分分开。将 cpu_initclocks() 与 cpu_startclock() 分开。
修正在空闲系统中 CPU 时间核算和 RLIMIT_CPU 不可靠的问题。
改进内核调试器 ddb(4) 的 “show proc “命令的输出,同时显示 proc 的 PID 和 TID。

SMP 改进
重写 pfsync(4),特别是改进锁定功能,帮助解锁更多的 pf(4),并在未来实现网络协议栈的并行化。该协议仍与旧版本兼容。
移除 ARP 输入路径中的内核锁。
将 MP 安全的 arprequest() 从内核锁中移除。
移除 IPv6 邻居发现的内核锁。
解锁 ioctl(2) 的更多部分以及网络协议栈中的路由代码。

直接渲染管理器和图形驱动程序
将 drm(4) 更新至 Linux 6.1.55。
不要更改 sg_set_page() 中的结束标记。在 Alder Lake 和 Raptor Lake 上使用翻页功能时,导致内存访问不良。

VMM/VMD 改进
允许 vmm(4) guest 启用和使用监管 IBT。
禁止向 vmm(4) guest 显示 AMD 硬件 p-state。
避免在 vmd(8) 中使用未初始化的内存。
将 vmd_vm.vm_ttyname 迁移到字符数组, 允许通过 ipc 通道传输 vmd_vm 对象。
清理了 vmd(8) vmm 进程中关闭文件描述符的问题。
修正了 vm 发送/接收,在接收时恢复了设备 virtqueue 地址。
为子 vm 进程引入了 fork 之后的 execvp(3)。
如果 vm.conf(5) 不存在,vmd(8) 不再产生错误。
将 vmm(4) 拆分为 MI/MD 两部分。
为 vmd(8) virtio 块和网络设备引入了多进程模型。
允许虚拟机所有者在使用 vmctl(8) 启动虚拟机时覆盖启动内核。
将虚拟机的交错启动改为在线 CPU 的数量。
修正了创建虚拟机时出现的分离故障。
为 vmd(8) 虚拟机进程改用匿名共享内存映射,并引入了新的 vmm(4) ioctl(2)。
放宽了 vmd(8) 配置测试模式 (-n) 的绝对路径要求。
调整了按虚拟机 ID 关机的逻辑,使其功能与按名称关机类似。
将内部 vmd(8) DHCP 服务的本地网络前缀验证移至配置解析器。
修正了与 vmd(8) 多进程设备模型一起使用时的 QCOW2 基本映像。
修正了在子进程中设置冗长日志的问题。
通过忽略断言时的中断掩码,修正了与仿真 i8259 中断控制器有关的竞赛条件。
在运行 vcpu 的 vmm(4) ioctl(2) 中内嵌了待处理中断,从而减少了虚拟机延迟。
为 vmd(8) virtio 块设备添加了零拷贝、定向 io。
改为在 vcpu 运行循环中记录出错时的 vmd(8) 虚拟机 id,而不是 vmm(4) 使用的 id。
修正了一个 vm 暂停死锁。
修改了 vmd(8) 日志格式,以便通过名称和索引来区分 vm 和设备进程。
修正了通过 vmctl(8) 动态切换冗长日志模式的问题。

具体更新内容可前往openbsd.org查看。

本文来自网络,不代表随客网立场,转载请注明出处。