Haiku R1/beta6 已发布

Lobsters Hottest 产品

摘要

Haiku R1/beta6 已发布,标志着该项目的25周年,经过两年多的开发,其中包括对Firefox的支持以及在x86_64系统上通过QEMU实现的硬件虚拟化支持。

<p><a href="https://lobste.rs/s/lt9i0j/haiku_r1_beta6_released">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/08/26 17:15

# R1/beta6 – 发布说明 来源:https://www.haiku-os.org/get-haiku/r1beta6/release-notes Haiku 由主要由志愿者组成的小团队开发,核心组件中未使用由“AI”生成的代码或任何其他材料。如果您对构建专注于个人计算的开源桌面操作系统这一使命感兴趣,欢迎参与贡献(https://www.haiku-os.org/community/getting-involved/)! Haiku R1 的第六个测试版发布恰逢 **Haiku 25 周年纪念日**。自 2001 年项目启动至今已走过四分之一个世纪。感谢所有一直支持我们的人,让我们共同期待 Haiku 下一个 25 年! 此版本包含开发团队近两年来在提升 Haiku 功能与整体稳定性、扩大可用软件方面的努力成果。本次发布共解决了超过 530 个错误和增强工单(https://dev.haiku-os.org/query?milestone=R1%2Fbeta6&group=component&status=closed)。 请留意,Haiku 是测试版质量软件,这意味着功能已完整但仍存在已知与未知的错误。虽然我们对其稳定性越来越有信心,但无法保证不会发生数据损失。 在整个发布周期内,waddlesplash 作为承包商(https://www.haiku-os.org/news/2021-08-25_hiring_waddlesplash/)参与 Haiku 开发工作。他的合同目前仍在进行中,资金来源于像您这样的读者对 Haiku, Inc.(一家 501(c)3 非营利组织)的慷慨捐赠。 *如需下载 Haiku 或了解如何从上一版本升级,请参阅“获取 Haiku!(https://www.haiku-os.org/get-haiku/)”。媒体咨询请查看“媒体联系(https://www.haiku-os.org/get-haiku/r1beta6/release-notes#press-contact)”。* ## 系统要求 本版本支持 x86 32 位和 64 位平台。 #### 最低配置(32 位) - **处理器**:Intel Pentium II;AMD Athlon - **内存**:256MB - **显示器**:800x600 - **存储空间**:2GB #### 推荐配置(64 位) - **处理器**:Intel Core i3;AMD Phenom II - **内存**:2GB - **显示器**:1366x768 - **存储空间**:16GB ## 新功能 ### Mozilla Firefox 在 R1/beta5 发布几个月后,基于 Mozilla Firefox 代码库的首个可用网页浏览器出现在软件仓库中。它们初期存在较多错误,且未使用官方品牌标识。过去两年间,情况已更加稳定(得益于 Haiku 侧和移植工作本身的改进),最近 Mozilla 允许使用官方“Firefox”品牌标识。因此,现在有人问“Firefox 能在 Haiku 上运行吗?”,你可以回答“是的,可以!”。 HaikuDepot 中现在也提供了多种基于 Firefox 代码库的其他软件,包括 LibreWolf、Waterfox、Floorp、Icedove(Thunderbird 的去品牌化版本)等。 (请注意,Firefox 及其衍生版目前仅支持 x86_64。由于 Haiku 仍是测试版质量软件,如果您遇到相比 Linux 或其他操作系统上的 Firefox 缺少功能或不完整的情况,这可能是我们的问题,而非 Mozilla 的问题,任何此类问题都应报告给 HaikuPorts。) ### QEMU 的硬件虚拟化支持(x86_64) Haiku 现在支持“NVMM”,即 NetBSD 虚拟机监视器(源于 NetBSD,但在 Haiku 移植之前已移植到至少 DragonFlyBSD)。这为大多数支持 Intel VT-x 或 AMD-V 的 x86_64 系统上的 QEMU 提供了硬件虚拟化支持。它支持 32 位和 64 位客户机、SMP、广泛的 QEMU 模拟硬件及选项,以及多种客户操作系统。只需在 QEMU 命令行参数中添加 `-accel nvmm` 即可。 (*请注意,NVMM 加速仍处于实验性阶段。请在问题追踪器上报告遇到的任何问题。*) ## 软件移植 HaikuPorts 项目持续维护大量软件到 Haiku 的移植。新移植的软件数量太多,无法在此全部列出(包括许多 KDE 和 GTK 应用程序),但以下是较为显著的一个: ### Go 现在,Go 编程语言编译器和运行时的移植版本已可在软件包仓库中获取。请注意,此移植版本稍显过时(1.26.1),且尚未提交至上游 Go 项目;但许多功能和包已被确认在 Haiku 上可运行,可能需稍加修补(包括用于构建 Haiku 主站的静态网站生成工具 Hugo)。 ## 变更与错误修复 自上一版本发布以来,数百个错误及其他小问题或增强请求已得到解决,数量太多无法在此逐一列出。(月度活动报告(https://www.haiku-os.org/tags/activity-report)包含更完整的变更记录。)系统几乎每个领域都得到了关注,结果是 Haiku 迄今为止最完善、最稳定的版本,尽管仍存在一些小瑕疵。 ### 系统级性能优化 本版本在大多数系统中进行了大量变更和重构以提升性能。以下是一些(较为技术性的)亮点: - 重构了 MIME 探测器缓冲区管理(将 MIME 探测速度提升 5-10 倍甚至更多) - 更快(且在某些情况下更好)的字符串哈希算法 - 改进了内核多个部分的锁粒度:内存管理器(内存保留与释放)、VFS(文件描述符查找、未使用 vnode 状态更改、I/O 上下文根查找)、用户计时器等 - 在 FIFO(`pipe()`)实现中避免使用排他锁,将吞吐量从数百 MB/s 提升至数 GB/s - 为临时缓冲区(如 FIFO、`packagefs`)增加更多竞技场分配器,避免内核页表更改和失效 - 在 `vfork` 上跳过常规 `fork` 操作(我们不支持真正的 `vfork`,但为了兼容性实现了该调用) - 用优化版本替换或重写许多基础库调用:`memmove`、`strlen`、`strcmp`、`memcmp` 等 - 重新调整内核 `malloc` 的大小类(自 2007 年以来未调整过) - 添加了大文件预映射启发式(有利于多次启动的大型应用程序,如 `gcc`) - 在内核原语中尽可能使用非排他锁和原子操作向其他 CPU 核心发送消息 - 重构了目录条目缓存,添加条目到缓存时无需写锁,并缓存字符串哈希以避免不必要的字符串比较 - 在磁盘(inode)块缓存(用于文件系统元数据)中使用读写锁 最后两项对快速访问多个文件的操作(如 `git status`)影响显著。在一项测试中,这些更改后,在包含超过 160,000 个文件的仓库中执行 `git status`,在冷磁盘缓存下从约 33 秒降至约 20 秒,在热磁盘缓存下从约 15 秒大幅降至约 2.5 秒! 所有这些优化(加上下文详述的内存管理变更)对编译性能的累积影响可能相当显著。相对简单的编译任务可能只比之前稍快(比 Linux 慢约 40%),但高度复杂的编译任务表现可能大不相同。完整重建 HaikuWebKit(相同版本、相同编译器、非常相似的依赖包集、相同构建主机)在 R1/beta5 上耗时 4 小时 53 分钟,在 R1/beta6 上耗时 2 小时 33 分钟,减少了近一半! ### 用户界面与用户体验改进 在 Haiku 的文件管理器 Tracker 中,许多操作在按住“Shift”键调用(或使用相应快捷键)时行为不同。现在,如果在菜单打开时按下或释放该键,行为不同的菜单操作将更改为显示“Shift”操作的实际内容。 #### Tracker:文件夹过滤查询 Haiku 继承并增强了 BeOS 的一项独特功能,即其“类数据库”文件系统,支持扩展属性和文件系统原生索引,允许对整个文件系统运行任意“查询”以快速找到匹配特定表达式的文件。 查询本身会搜索整个文件系统(因为索引不存储路径信息),但有时您可能只想查看特定目录中的文件。为此,Tracker 现在允许您在“查找”窗口中选择文件夹,并将过滤查询结果以仅显示来自这些文件夹(或子文件夹)的文件。 (命令行 `query` 工具也新增了文件夹过滤查询结果的支持。) #### SoftwareUpdater 与 `pkgman`:磁盘清理 Haiku 软件包实际上是块压缩的文件系统镜像,每次启动时挂载到一种“联合”结构以构建系统文件系统。这意味着安装和卸载成本很低,因为它只是向“联合挂载”添加或移除软件包,因此系统可以将旧软件包保存在“先前状态”中,以便您回滚更改(甚至启动到先前状态,这可以直接从引导加载程序完成)。 以前,这些“先前状态”从未自动清理(尽管有一些第三方工具管理它们),这意味着它们会无限期累积,占用越来越多的磁盘空间。现在,SoftwareUpdater 会在一段时间后自动删除旧状态(尽管您可以在设置中禁用此功能),而 `pkgman` 命令行工具会在存在大量旧状态时提示运行 `pkgman cleanup` 以移除部分。 ``` # pkgman install/uninstall/full-sync... [system] Changes applied. Old activation state backed up in "state_2026-08-22_22:38:28" [system] Cleaning up ... [system] Done. [system] 3 old state(s) can be cleaned up. Use "pkgman cleanup" to remove them. $ pkgman cleanup Clean up 3 old states (166.27 MiB)? [yes/no] (yes) : ``` #### 截图工具:区域选择 内置的“截图”工具(按下键盘 `PrintScreen` 时出现)新增了选择屏幕特定区域进行截图的功能。(它已支持截取整个屏幕或单个窗口。) #### 团队监视器:团队分组 “团队监视器”工具(按下 `Ctrl+Alt+Del` 时出现)现在将 GUI 应用程序生成的任何非 GUI 应用程序分组到其父级下方。这使得处理多进程网页浏览器(会生成大量子进程)或终端更加容易。 现在可以从 DriveSetup(Haiku 的分区管理器和编辑器)直接处理磁盘镜像,通过新的“磁盘镜像”菜单。您可以将分区复制到磁盘镜像、将磁盘镜像写入分区,也可以将磁盘镜像注册到内核,以便像处理实际磁盘一样操作它们(挂载、卸载、创建或删除分区等)。 #### app_server:重启处理 app_server(Haiku 的 GUI 应用程序服务器——显示服务器、窗口管理器和绘图服务器)在被终止或崩溃后重启时,现在可以处理所有运行中的应用程序重新连接并重新建立其所有现有状态。这意味着 app_server 崩溃不再需要重启系统或重新启动桌面来恢复:相反,在大多数情况下,所有运行的应用程序将在服务器完成重启后自动重新连接,您可以立即继续之前的工作。大多数情况下,这将在几秒甚至更短时间内完成。 #### PowerStatus:多电池系统改进 PowerStatus(显示电池信息及 Deskbar 中电池状态图标的应用程序)在多电池系统上的操作进行了大量改进,特别是在运行时移除电池或以不同时间/速率充放电时。 #### 更多“暗黑模式”与众多应用程序中的 HiDPI 修复 进行了大量修复和改进,使许多内置(第一方)Haiku 应用程序能正确处理“暗黑模式”和高 DPI 设置:修复硬编码颜色、混合、尺寸等问题。 #### `launch_roster`:状态概览 用于与 Haiku 启动和服务管理器(`launch_daemon`)交互的命令行工具(`launch_roster`)进行了重大升级,可一目了然地以表格形式显示所有已注册作业和服务的状态: ``` $ launch_roster Name Type State Enabled ---------------------------------------------------------- check-daylight-saving-time job stopped yes first-login job stopped yes update-time job stopped yes x-vnd.be-trak service running yes x-vnd.be-tskb service running yes x-vnd.haiku-app_server service running yes x-vnd.haiku-autologin job stopped yes x-vnd.haiku-debug_server service running yes x-vnd.haiku-media_server service running yes x-vnd.haiku-mount_server service running yes x-vnd.haiku-net_server service running yes x-vnd.haiku-notification_server service stopped yes x-vnd.haiku-package_daemon service running yes x-vnd.haiku-power_daemon service running yes x-vnd.haiku-registrar service running yes ``` ### 系统级内存管理重构 除了系统级性能优化外,整个系统的内存管理子系统也进行了大量重构和改进,其中一些有助于前述性能优化,但许多对性能影响不大(尽管一些确实影响了内存使用)。以下是一些亮点: - 优化了 `packagefs` 中的数据结构,将簿记内存使用量降低了约 20% 或更多(在某测试系统上约为 15MB,实际差异取决于安装文件数量) - 更高效、正确的内存属性处理(在 x86 和 x86_64 上) - 修正并优化了对 `mprotect` 保护区域进行写时复制的处理 - 修复了在大内存(128 GB 或更多)系统上的启动和运行问题 - 在 Tracker 中避免每文件节点监视器,改为监视整个目录或查询(节省内核内存) - 统一了内存和交换空间的保留系统 - 修复了引导加载程序中不正确的缓冲区管理(节省多达 100MB 或更多的启动后使用量) 这些变更的综合影响是,现在又可以在仅有 128MB 内存的 32 位系统上启动 Haiku 了(尽管您可能需要“精简”安装以顺利运行),甚至可以用它完成一些工作。只要您不需要现代网页浏览器即可。 除了上述列举的变更外,还有一些变化值得特别提及和讨论。它们是: #### 新的用户空间 `malloc` 长期以来,Haiku 一直使用定制的“hoard”内存分配器作为默认用户空间分配器(即支持 `malloc` 及相关 C 标准库调用的实现)。该分配器已显老旧,特别是与更新的分配器(或“hoard”自身更新版本)相比,早就该被替换。 在评估了各种替代方案后,我们最终设计了一个主要基于 OpenBSD 的分配器,但包含了我们自己的一些修改(例如全局缓存层)。这个新分配器相比旧的“hoard”提供了适度的性能改进。

相似文章

Haiku R1/beta6 已发布

Hacker News Top

Haiku R1/beta6,Haiku操作系统的最新测试版本,时隔两年发布,提供更新的功能和下载选项。

Haiku

Hacker News Top

Haiku OS 宣布参加 Google Summer of Code 2026,计划推出三个学生项目,专注于增强 Devices 应用和蓝牙协议栈,包括 HCI、HID 和 HFP 配置文件支持。

Haiku OS 现可在 M1 Mac 上运行

Lobsters Hottest

Haiku OS 已移植至 Apple M1 Mac,可直接启动无需虚拟机。ARM 移植尚处早期阶段,但能启动到桌面,所有八个核心均正常工作。