MidnightBSD 是从 FreeBSD 派生出的操作系统。该项目的一个关键性目标是创建一份易于使用的桌面环境,并使用图形化的 ports 管理,以及 采用 GNUstep 的系统配置。该操作系统的主体将沿用 BSD 许可证。MidnightBSD 是 FreeBSD 6.1 beta 的分支。
目前,适用于 amd64 和 i386 的 MidnightBSD 3.0 已经发布,这是一个大型版本:
错误修复和新功能
- 如果从 stdin 读取,GELI 的修复会默认忽略密钥文件。
- mport 2.2.7 + 的错误修复
- 对 caroot CA 捆绑处理器的更新,支持标有 DISTRUST_AFTER 条目的证书。
- /etc/rc.final rc(8) 脚本将在所有用户进程终止后运行。
- automount(8) 现在将在执行自动挂载之前明确地将根路径设置为 /。
- bectl(8) 实用程序现在会抛出错误,以防止创建带空格的引导环境。
- bhyve(8) 实用程序支持在 nvme(4) 仿真中修复的大型 IO。
- cmp(1) 实用程序收到 -b, --print-bytes 标志,以与 GNU cmp(1) 兼容。
- cmp(1) 实用程序收到 -i, --ignore-initial 标志,作为 skip1/skip2 的替代。
- cmp(1) 实用程序现在接受 skip1/skip2 的 SI 后缀。
- cmp(1) 实用程序收到 -n, --bytes 标志,以限制要比较的字节数。
- daemon(8) 实用程序现在有一个 -H 标志,允许它捕获 SIGHUP 并重新打开输出文件。
- fstyp(8) 实用程序现在将检测并显示带有 -l 标志的 exFAT 文件系统。
- geli(8) 实用程序在执行调整大小到相同大小时将不再报告错误。
- 如果还指定了 -x,grep(1) 实用程序现在将禁用 -w。
- growfs(8) 实用程序现在可以在 RW 挂载的文件系统上运行。
- 如果用 -d 标志指定的目录实际上不是目录,则 kldxref(8) 实用程序将不再出错。
- mergemaster(8) 实用程序现在将在更新过程中处理符号链接。
- mksnap_ffs(8) 实用程序收到了一个修复程序,用于触发恐慌的崩溃:snapacct_ufs2:坏块恐慌。
- 启用配额后,mount(8) 实用程序现在可以正确显示配额。
- 当 /etc/exports 中缺少 V4: 行时,mountd(8) 实用程序现在将生成一条 syslog(3) 消息。
- newsyslog(8) 实用程序收到一个新的 E 标志,以防止空日志文件轮转。
- rc.d/jail rc(8) 脚本更改了关键字以在 jails 支持中修复 jails。
- rtsold(8) 守护进程现在可以在 if_vlan(参见:vlan(4))接口上工作。
- service(8) 实用程序现在将在调用之前设置守护程序类的环境。
- wpl_cli(8) 实用程序现在有一个操作文件事件,其中可以将事件传递到文件。
- krpc 和 nfsd 模块之间的内部 KAPI 已更新
- ipfw(8) 防火墙提供了一个 dnctl(8) 来管理 dummynet(4) 配置。
- 添加了一个 opencrypto kern.crypto sysctl(8) 节点。
- 添加了一个新的 sysctl(8),debug.uma_reclaim。
- kern.timecounter.hardware OID 被转换成可调的。
- msdosfs(5) 文件系统驱动程序收到了 msdosfs 挂起的修复程序。
- ng_bridge(4) netgraph 节点支持 SMP。
- ng_nat(4) netgraph 节点获得了对 RFC 6598/Carrier Grade NAT 支持的支持。
- ng_source(4) netgraph 节点现在可以注入任何 netgraph 网络。
- vlan(4) 接口现在可以支持 ALTQ。
- pf(4) 防火墙收到了一些错误修正和更新。
- 合并了处理 UFS/FFS 中嵌入式符号链接的修复程序。
- 合并了 NFSv4.1 Linux 客户端挂载卡在 CLOSE_WAIT 状态的修复程序。
- 合并了从过期租约恢复 NFSv4.1/4.2 安装的修复程序。
- 合并了 NFSv4 的几个修复程序。
- wpa EAP/PEAP MSCHAPv2 身份验证期间的分段错误已修复。
- fetch(3) 库现在支持通过 HTTPS 代理 FTP。
- 添加了一个新的 rc.conf(5) 变量 linux_mounts_enable,如果 linux_enable 设置为 YES,它控制是否将 Linux® 特定的文件系统挂载到 /compat/linux 中。
- devd(8) 实用程序已更新,将默认的 syslogd(8) 恢复通知从 kern 更改为 kernel。
- cron(8) 实用程序已更新以支持 crontab(5) 中的两个新标志 -n 和 -q,它们分别在成功运行时抑制邮件和抑制命令执行的日志记录。
- ifconfig 库已更新为报告 bridge(4) 接口的状态,类似于 lagg(4)。
- read(2) 系统调用已更改为默认禁用对目录的 read() 调用。添加了一个新的 sysctl(8),security.bsd.allow_read_dir,当设置为 1 时将恢复以前的行为。
- machdep.kdb_on_nmi sysctl(8) 已被删除。machdep.panic_on_nmi sysctl(8) 可调参数已更改为直接进入调试器。
- 添加了对 APEI(ACPI 平台错误接口)的支持。
- 已添加对 NAT64 CLAT 的支持,如 RFC6877 中所定义。
- 添加了 getrandom(2) 系统调用和 getentropy(3) 库,与 Linux 和 OpenBSD 实现兼容。
- 添加了 get_s(3)。
- pthread(3) 库已更新以纳入 POSIX/SUSv4-2018 合规性改进。
- arc4random(3) 库已更新,删除了 arc4random_stir() 和 arc4random_addrandom()。
- 引导加载程序现在将支持从内存磁盘引导操作系统。
- 引导加载程序现在将支持没有功能的池。
- 引导加载程序现在将接受 zfs 功能 com.delphix:bookmark_written 和 com.datto:bookmark_v2。
- 一个新的 OID,hint.dev.X.disabled 已添加到 lua 加载程序中,以防止在引导期间连接设备。
- arc4random(3) 库已更新以匹配 OpenBSD 1.35 版
安全修复
- OpenSSL 1.1.1s 现在包含在基础中,以前使用的是 1.0.2u + 一些额外的补丁。这是一个姗姗来迟的安全更新。
- 通过一个大的 gzip 标头额外字段,修复在 inflate 中存在基于堆的缓冲区过度读取或缓冲区溢出。
第 3 方软件
- OpenSSL 1.1.1s
- sqlite3 3.40.1
- subversion 1.14.2
- less 551
- tzdata 2022g
- expat 2.5.0
- unbound 1.16.2
- imported pci ids list 2022 08 07
- libarchive 3.6.0
- nvi 2.20
- bmake 20200710
- wpa 2.10
硬件
- 修复了错误报告接口错误的 Intel 82599 ixgbe 设备。
- alc(4) 设备驱动程序现在支持 Mikrotik® 10/25G 网络设备。
- amdtemp(4) 设备驱动程序了解 17h 系列型号:M20h(Dali、Zen1)、M60H(Renoir、Zen2)和 M90H(Van Gogh、Zen2)。
- amdtemp(4) 设备驱动程序获得了对 Zen 3“Vermeer”和 Ryzen® 4000 APU(Zen 2,“Renoir”)的支持。
- amdsmn(4) 设备驱动程序获得了对 Zen 3“Vermeer”和 Ryzen® 4000 APU(Zen 2,“Renoir”)的支持。
- cam(4) 驱动程序已修复快速拔出和重新插入 SCSI 问题。
- bnxt(4) 设备驱动程序现在将报告硬件是否支持 WOL(局域网唤醒)支持,如果在系统初始化时应用过滤器,则显示启用状态。
- em(4) 设备驱动程序现在支持无闪存 i211 PBA。
- em(4) 设备驱动程序收到了一些共享代码更新。
- ena(4) 设备驱动程序更新到 2.4.1。
- ice(4) 设备驱动程序已更新至 0.28.1-k,更新后的 ice_ddp 包文件版本为 1.3.19.0。
- 添加了一个新的驱动程序 igc(4) 以支持 Intel® I225 以太网控制器并支持 2.5G/1G/100MB/10MB。
- ixgbe(4) 设备驱动程序收到共享代码更新。
- ixgbe(4) 设备驱动程序已修复 x550em 10G NIC 链接状态,其中自动协商功能未正确报告。
- ixl(4) 设备驱动程序被赋予了 hw.ix.flow_control 可调参数。
- ixl(4) 设备驱动程序在共享代码中进行了更新并修复了 2.5G 和 5G 速度。
- iwm(4) 设备驱动程序现在支持 Intel® Killer® Wireless-AC 1550i。
- nvdimm(4) ACPI 驱动程序现在将通过 sysctl(8) 导出健康信息。
- nvme(4) 设备驱动程序获得了对 MSI 和单一 MSI-X 支持的支持。
- nvme(4) 设备驱动程序收到了几个合并的错误修正。
- 对于支持限制的基于速率的资源,rctl(4) 资源限制驱动程序现在支持将资源使用限制为 0。这些资源将遵守 kern.racct.rctl.throttle_max sysctl(8) 设置的持续时间。
- rsu(4) 设备驱动程序现在支持 ASUS® WL-167G V3 设备。
- rtwn_usb(4) 设备驱动程序现在支持 Mercusys® MW150US (N150 Nano)、TP-Link® Archer T2U v3 和 D-Link® DWA-121 (N150 Nano) 设备。
- run(4) 设备驱动程序现在支持 D-Link® DWA-130 rev F1 无线适配器和 ASUS® USB-N14 无线适配器。
- tcp(4) 协议现在可以通过使用 net.inet.tcp.tolerate_missing_ts sysctl(8) 来容忍时间戳丢失 (RFC 1323/RFC 7323)。
- uart(4) 设备驱动程序现在支持 Intel® 100 系列/C230 系列 AMT。
- mps(4) 驱动程序已从 32 位 GENERIC 内核配置中删除。
- virtio_blk(4) 驱动程序已更新以支持 TRIM。
- ichwd(4) 驱动程序已更新,包括对 Lewisburg PCH (C620) 芯片组中的 TCO 看门狗定时器的支持。
- 更新了 amdsmn(4) 和 amdtemp(4) 驱动程序以支持 Ryzen™ 2 主机桥。
- amdtemp(4) 驱动程序已更新以更正 AMD® 2990WX 的温度报告。
- 为 RTL8188EE 芯片组添加了 rtwn_pci(4) 驱动程序。
- 添加了 ntb_hw_amd(4) 驱动程序,为 AMD® 非透明桥提供支持。
- nvme(4) 驱动程序已更新以支持 PCI 连接的挂起/恢复。
- 添加了 cdceem(4) 驱动程序,支持 iLO 5 提供的虚拟 USB 网卡,可在 HPE® Proliant™ 服务器中找到。
- mpr(4) 和 mps(4) 驱动程序已通过稳定性修复进行了更新。
- camcontrol(8) 实用程序已更新以添加 ATA 电源模式支持。
- cam(4) 子系统已更新,以改进 AHCI 机箱管理和 SES 互操作。
- ACPI 子系统已更新,以实现设备对象类型以支持 ACPI 6.0,这是某些 Dell, Inc. Poweredge™ AMD® Epyc™ 系统所必需的。
- 添加了对 Microchip® LAN78xx™ USB3-GigE 控制器的支持。
已知的问题
- firefox、chromium-bin、midori 和 epiphany 网络浏览器包和 mport 存在已知问题,需要更正。(发版时检测晚了)
- i386 和 amd64 包可用,但 mesa 版本存在问题,它已在 mports 中更新,但尚未构建新包。
- 从以前的版本升级时,请确保在跳转到 3.0 之前至少使用 MidnightBSD 2.2.5,否则某些系统上的 usr.bin/lex 存在问题。
- 进行从 2.x 到 3.x 的重大升级时,有时需要在 usr.bin/Makefile 中禁用 perl 构建。如果在 src/rescue/rescue 中使用 buildworld 时出现错误,请尝试暂时从 makefile 中删除 camcontrol 和 df。
- 在 3.x 上,可以使用 make && make install 重建 src/rescue/rescue 和 src/usr.bin/perl 目录。
- 在某些 AMD Ryzen 系统上,在高负载或繁重的虚拟化工作负载下存在时间偏差。
更新公告:https://www.midnightbsd.org/notes/