17611538698
webmaster@21cto.com

NextBSD 回归,在 FreeBSD 上借鉴了 Apple 的源代码

运维 0 11 3小时前
图片

21CTO导读:NextBSD项目正在新的管理团队下,创造新的开源UNIX系统辉煌。

NextBSD 也许是 2010 年代最有意思的 BSD 变体系统之一, 如今在新管理团队的带领下重获新生。

除了官方网站(https://nextbsd.com)之外,还有一个GitHub 代码库。

图片

GitHub地址:https://github.com/nextbsd-redux/nextbsd

各位开发者和用户不妨留个意,这与旧项目是分开的,旧项目的代码库仍然存在

此次“复兴计划”的主要推动者是 Joe Maloney——他在 GitHub 上的用户名是pkgdemon。他还曾在 GhostBSD 中构建了 Gershwin 桌面环境。不久,他就向维护者们提出接管 NextBSD 项目。

NextBSD 项目最初由 FreeBSD 联合创始人Jordan Hubbard 于 2015 年发起。该项目的计划是将苹果 Darwin 操作系统的部分组件移植到 FreeBSD 上。Darwin 是 macOS 和苹果其他操作系统所基于的 Unix 基础:它是开源的,代码可以直接从 GitHub获取。原始团队的这份演示文稿解释了该项目的一些初期目标。

其发展与逻辑是这样的。苹果的各种操作系统,从 macOS 到 iOS,再到 Apple Watch 和 Apple TV 中的精简版,都基于同一个内核构建,而这个核心源自 NeXTstep。NeXTstep 又基于 Mach 和 BSD UNIX,它们都是自由软件——当时“开源”这个词还不存在。苹果的操作系统复杂精密、高度发达,被应用于数十亿台面向用户的设备中,却几乎不提供任何技术支持。

现如今,苹果的大部分操作系统都是开源的。除了使用Mach IPC处理进程间通信的XNU 内核之外,还有它的初始化系统launchd、用于处理设备和驱动程序的IOkit、苹果系统日志工具及其日志守护进程syslogd等。

尽管苹果在其操作系统中沿用了许多基于 BSD 的文本模式组件,但底层组件XNU内核和驱动程序——却是专为苹果硬件设计和构建的。在 OS X 还很新的时候,曾有各种尝试将 Darwin 操作系统移植到 PC 硬件上。

OpenDarwin 项目始于2002 年,但于 2006 年终止。随后出现了PureDarwin,该项目分别在 2015 年和 2019 年发布了新版本,并一直维护到 2024 年。此外还有其他一些项目,例如GNU DarwinDarwinBSD

这些项目最终都以失败告终,足以证明实现这一切有多么困难。因此,NextBSD 的计划是采用 FreeBSD 内核,它是所有开源 BSD 内核中最强大的——但用公开可用的苹果代码的相关部分替换 FreeBSD 传统且以服务器为中心的用户空间。

重启后的 NextBSD-redux 并不是基于十年前的代码分支。FreeBSD 在这段时间里取得了长足的进步,macOS 和 Darwin 也同样如此。这是一个由一群新开发者发起的新项目,但它沿用了相同的总体规划,旨在整合相同的组件,并拥有相同的最终目标。

它也借鉴了一些FreeBSD代码。NextBSD -redux 的 README 文件描述了目前已实现的功能,移植说明中则提供了更多细节。虽然目前还没有图形桌面,但开发工作也在进行中。它将使用 Maloney 开发的 Gershwin 桌面环境,其当前状态在gershwin-on-nextbsd代码库中也有详细描述

对开发者们而言,NextBSD(包括原始版本和 NextBSD-redux)的关键之处或许在于,它并非从零开始构建一个全新的系统,而是精心挑选并整合现有开源软件项目的元素,最终形成一个实用的整体。

它与 Maloney 的 Gershwin 桌面环境的相似之处显而易见。Gershwin 融合了GNUstep 项目的组件、 Xfce 桌面的窗口管理器以及其他组件,旨在创建一个类似 Mac 的桌面环境。

除了基于苹果 Darwin 构建自由开源软件 (FOSS) 个人电脑操作系统或类似 Mac 的桌面环境之外,还有其他一些尝试利用现有的 FOSS 组件来构建类似 macOS 的操作系统。令人欣慰的是,其中许多项目彼此之间都是共享代码。

在 GhostBSD 上运行的 Gershwin 并非首次尝试在 BSD 上实现类似 macOS 的桌面环境。

早在 2023 年,出现过helloSystem 0.8 。helloSystem 由 AppImage 跨发行版打包格式的创建者Simon “ProbonoPD” Peter开发。helloSystem 基于 FreeBSD 的图形化发行版FuryBSD,但该项目已于 2020 年关闭。ProbonoPD 随后转而参与 Gershwin 的开发。

helloSystem 也不是 ProbonoPD 的第一个项目。在此之前,他曾开发过一个基于 GNUstep 的 Linux 实时发行版,名为LIVEstep,而且他还是 PureDarwin 核心团队的成员之一。 

几乎同一时间,还有一个名为ravynOS的雄心勃勃的项目。其2022 年的常见问题解答文件中所描述说:“我们实际上一直在使用 helloSystem!正如一些人注意到的那样,0.2.X 版本基本上就是 helloSystem。(那是第二个概念验证版本。第一个版本是基于纯净的 FreeBSD 构建的,完全没有图形用户界面。)”

尽管 ravynOS 最初是 helloSystem 的一个分支,但它的目标更为远大。从一开始,它就致力于实现一定程度的 macOS 二进制兼容性,这得益于一个名为Darling的项目。如今,它的架构基于 Darwin 19.6,对应于 macOS 10.15 “Catalina”。新的 NextBSD 使用了 ravynOS 的一些库,例如libxpc 库,该库源自最初的 NextBSD 项目。

Maloney 于 5 月公开了他重启的 NextBSD 项目。他在Reddit 的一条评论中提到了该项目,然后在题为“ NextBSD——21 世纪的 BSD的帖子中进行了更详细的解释说明。

不过,项目重启有一个方面可能会让一些开发者感到不满:他要使用人工智能。主页的“团队”部分显示,包括 Maloney 自己和 Anthropic 的 Claude Code 项目。

Maloney这样说道: “在我看来,人工智能在这里起到了倍增器的作用。虽然开发团队是我的,但我掌控着整个项目。我知道它不会适合所有人。如果其他人喜欢它,那就太好了。如果以后有人愿意贡献力量,那也很棒。我个人只是享受开发的过程,希望它能为我所用。我想不出比 NextBSD 更适合这个项目的名字了。”

“我理解人们对人工智能的怀疑态度,因为我自己也不确定对人工智能生成的代码有多信任,尤其是在没有人工审核的情况下。对我来说,人工智能更多的是一种加速我理解代码功能的方式,而不是让我什么都不学。即便如此,我仍然理解人们在生产环境中使用人工智能的顾虑。”

目前,nextbsd-redux 代码库中最早的提交记录只有两个月历史。Maloney坦承地说,不可能在这么短的时间内完成所有开发工作。

“在将这项工作从我的个人 GitHub 帐户迁移到组织之前,我已经进行了两次迭代。第一次迭代完全使用 vibe coding,只是为了看看是否可以使用仅支持套接字的launchd版本来实现,而无需使用 Mach 和 LaunchDaemons 来开发devmatchdevd

“整个过程中,我一直在pkgdemon.github.io上详细记录所有信息。我做了诸如比较 FreeBSD 与 Linux 和 Darwin 的内核模块加载机制之类的工作。我找出了其中的差距。我确认 Darwin 有办法弥补我想要弥补的差距,但我需要用到 Mach。正是在这段时间里,我开始大量使用人工智能,花了几个月的时间进行规划、研究和完善方案。”

“所以在第二次迭代中,我重复了相同的工作,但只保留了 Mach 内核模块,并将 launchd 放在一个单独的代码仓库中。然后,我使用了libxpc之类的东西,它最后由 RavynOS 更新,最初由 NextBSD 的开发者创建,作为launchd引导程序的粘合剂。还有一些类似的粘合剂组件,它们没有像 Darwin 那样被 NextBSD 编写替代方案,RavynOS 也继续沿用了这些组件。NextBSD 的原始代码就保留在这里;其余部分都是全新的。也是从这里开始,我开始与 Claude Code 更互动地审查每一次代码更改,并开发了全程自动化测试——从加载 Mach 内核开始,编写测试来覆盖它的每个部分等等。”

“具体来说,在第三次迭代中,我把所有内容都拆分到了不同的代码仓库中,例如内核本身、需要转换成kext 的模块,以及 Darwin 工具集的超集。正是在这一阶段,我开始在 GitHub 上进行所有原生交叉构建,并编写自动化测试来把控每一个环节。所以从这个意义上讲,AI 工具仍然参与了几乎每个阶段的工作,当然,我也深入参与其中。”

还有位名为“秃鹫”的开发者对使用LLM编写代码持强烈的怀疑态度。

当前,NextBSD更侧重于尝试将来自截然不同来源的组件和代码整合在一起,并使其协同工作。

期待NextBSD发展成为一个可在笔记本电脑上运行的操作系统,将苹果用户空间的元素引入FreeBSD稳定的内核。我们看到它在积极开发,并希望它能带来更令人振奋的成果。

作者:洛逸

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信