HyperbolaBSD 与 FreeBSD、OpenBSD、NetBSD 这三大传统 BSD 系统相比,有本质性的区别。这些差异不仅体现在技术层面,更体现在哲学理念、许可证策略、开发目标和系统定位上。以下是详细对比:
一、许可证哲学:GPL vs BSD 许可证
这是最根本的区别。
| 维度 | HyperbolaBSD | FreeBSD / OpenBSD / NetBSD |
|---|---|---|
| 许可证 | GPL v3 / LGPL v3(计划替换所有非 GPL 兼容代码) | BSD / ISC 许可证 |
| 代码公开要求 | 强制要求衍生作品也必须开源 | 允许闭源修改和商业专有使用 |
| 代码合并限制 | 只能与兼容许可证的代码合并 | 可与几乎任何许可证的代码混合 |
HyperbolaBSD 团队明确表示,他们选择 GPL 是因为"强烈支持自由软件运动,希望未来代码永远保持在公共领域"。
这与传统 BSD 的"宽松许可证"哲学完全相反——BSD 许可证允许任何人(包括商业公司)拿代码去做闭源产品而不回馈社区。
实际影响:HyperbolaBSD 无法直接合并传统 BSD 系统中的大量代码,必须重写或替换所有 GPL 不兼容的部分,这也是项目进展缓慢的核心原因之一。
二、系统定位:操作系统 vs 发行版
| 维度 | HyperbolaBSD | 传统 BSD |
|---|---|---|
| 定位 | 完整操作系统(不是发行版) | 完整操作系统 |
| 包管理策略 | 极简基础系统 + 独立 ports 树,不追求软件数量 | 完整的 ports/packages 生态(FreeBSD 约 4 万个包) |
| 额外软件 | 仅保留最重要的应用和窗口管理器,其余移入 ports | 尽可能提供丰富的第三方软件 |
HyperbolaBSD 明确声明自己"是一个自由且自由的系统,但不分发越来越多的软件包"。
这与 FreeBSD(追求功能和性能)、OpenBSD(追求安全但仍有丰富生态)形成鲜明对比。
三、技术架构差异
1. 内核
-
HyperbolaBSD:HyperBK(Hyper Berkeley Kernel),OpenBSD 7.0 的硬分支,计划逐步替换非自由代码
-
FreeBSD:自有内核,强调性能和可扩展性,支持 ZFS、Jails、bhyve 等
-
OpenBSD:自有内核,以安全为最高优先级,每半年代码审计
-
NetBSD:自有内核,追求极致可移植性,支持 50+ 种硬件架构
2. 工具链与构建系统
| 组件 | HyperbolaBSD | 传统 BSD |
|---|---|---|
| 构建系统 | FreeBSD bmake | 各自原生构建系统 |
| C 标准 | GNU C17(从 C99 升级) | 各自标准 |
| binutils | 2.34(从 2.17 升级) | 较新版本 |
| GCC | 8.4.0(从 4.2.1 升级) | 较新版本 |
HyperbolaBSD 在工具链上做了大量回溯移植工作,这是其 pre-alpha 阶段的核心任务。
3. 用户空间组件
| 组件 | HyperbolaBSD | 对应传统 BSD 组件 |
|---|---|---|
| Hyperman | pacman 的硬分支(包管理器) | pkg (FreeBSD) / pkg_add (OpenBSD) |
| hypertools | libretools 的硬分支 | 各自构建工具 |
| HyperBLibC | BSD LibC 的分支 | 原生 LibC |
| HyperRC | OpenRC 的分支(初始化系统) | rc.d (FreeBSD/OpenBSD) / runit (计划中) |
| Xenocara | 从 OpenBSD 移植 | 原生 Xenocara (OpenBSD) |
四、软件自由度的极端立场
HyperbolaBSD 在软件自由方面的要求远超传统 BSD:
| 政策 | HyperbolaBSD | 传统 BSD |
|---|---|---|
| 非自由固件/blob | 完全移除 | OpenBSD 也移除,但 FreeBSD 包含部分闭源驱动 |
| Rust 代码 | 明确拒绝 | 积极采纳(尤其 OpenBSD 在探索 Rust) |
| Java 代码 | 明确拒绝 | 可用 |
| Qt/GTK | 对 Qt 和 GTK 都有保留意见 | 广泛使用 |
| 现代浏览器 | Iceweasel-UXP 已移除,无现代浏览器 | Firefox、Chromium 等可用 |
| systemd | 明确反对 | FreeBSD 不用,但 Linux 兼容层可运行 |
团队拒绝 Rust 和 Java 的理由包括:严格的商标政策限制修改自由、安全历史问题、以及多语言生态会分散开发精力。
五、开发成熟度与生态
| 维度 | HyperbolaBSD | FreeBSD | OpenBSD | NetBSD |
|---|---|---|---|---|
| 开发阶段 | Pre-alpha(截至 2024 年中) | 成熟,14.x 稳定版 | 成熟,7.5 稳定版 | 成熟,10.x 稳定版 |
| 首次发布 | 尚未发布(2019 年宣布) | 1993 年 | 1996 年 | 1993 年 |
| 架构支持 | 仅 x86(i686/x86_64) | 多种架构 | 多种架构 | 50+ 种架构 |
| 软件包数量 | 极简(计划进一步缩减) | ~40,000 | ~10,000+ | pkgsrc 跨平台 |
| 商业应用 | 无 | Netflix、Sony、Apple 等 | 金融机构、政府机构 | 嵌入式、研究 |
| 社区规模 | 极小 | 大 | 中 | 中 |
六、核心差异总结
| 对比维度 | HyperbolaBSD | FreeBSD | OpenBSD | NetBSD |
|---|---|---|---|---|
| 首要目标 | 极致软件自由 + 技术解放 | 性能 + 功能丰富 | 安全 + 代码正确性 | 可移植性 |
| 许可证 | GPL v3 | BSD | ISC/BSD | BSD |
| 内核来源 | OpenBSD 7.0 硬分支 | 自有 | 自有 | 自有 |
| 代码策略 | 替换所有非 GPL 代码 | 接受多种许可证 | 偏好 BSD/ISC,接受 GPL | 避免受限许可证 |
| 现代语言 | 仅 C/C++,拒绝 Rust/Java | 接受 Rust 等 | 探索 Rust | 接受多种 |
| 软件生态 | 极度精简 | 丰富 | 适中 | 适中 |
| 实用程度 | 目前不可用 | 生产级 | 生产级 | 生产级 |
七、一句话概括
FreeBSD 是"做最多事的 BSD",OpenBSD 是"最安全的 BSD",NetBSD 是"跑在最广硬件上的 BSD",而 HyperbolaBSD 是"最自由的 BSD"——它为了软件自由的纯粹性,愿意牺牲兼容性、生态丰富度和开发速度。
HyperbolaBSD 更像是一个理念驱动的实验性项目,而非传统意义上的实用操作系统。它的价值在于探索"一个完全 GPL 化的 BSD 系统是否可行",以及为其他项目提供模块化、可复用的自由代码。但如果你需要一个现在就能用的 BSD 系统,FreeBSD、OpenBSD 或 NetBSD 是更现实的选择。
发表回复