SerenityOS 开源操作系统:从零自研全部组件的完整 64 位系统,一篇看懂
2026/9/2 13:07:54 网站建设 项目流程

SerenityOS 开源操作系统:从零自研全部组件的完整 64 位系统,一篇看懂

【免费下载链接】serenityThe Serenity Operating System 🐞项目地址: https://gitcode.com/GitHub_Trending/se/serenity

SerenityOS 是一套图形化的开源操作系统,从内核、C 库到浏览器几乎都是作者自己写的。它把 90 年代的桌面美感和现代 Unix 的能玩到一起,还配了一个能跑 JavaScript 的浏览器。想搞懂操作系统到底怎么搭起来,这里值得先花十分钟。

🧩 为什么选单片内核:SerenityOS 内核设计拆解

很多人以为操作系统要么"微内核"要么"大内核",其实没有绝对好坏。SerenityOS 用的是现代 64 位单片内核(monolithic kernel),意思是进程调度、内存管理这些核心逻辑都直接跑在内核里,而不是拆到一个个用户态小服务。

换来的是简单和快:调度器 Scheduler.cpp 支持抢占式多线程,一个线程卡住不会拖死整个系统。

更关键的一点是,它坚持单仓库(monorepo)——内核、库、应用、工具链全在一个仓库里,用同一套工具链交叉编译。好处是你能从启动代码一路追到桌面图标,中间没有断点。

🌐 Ladybird 浏览器:如何跑起 JavaScript 和 WebAssembly

这个系统内置了一个叫 Browser 的浏览器,底层是 Ladybird/LibWeb 引擎。它不是壳,而是自研的:

  • 能执行 JavaScript,还有一套 test262 合规测试。
  • 支持 WebAssembly,可以跑编译成 Wasm 的程序。
  • CSS、HTML 的解析渲染逻辑都在 LibWeb 里。

想理解一个网页从加载到画出来的全过程,LibWeb: From Loading to Painting 这篇是现成的导读。

📦 如何扩展 SerenityOS:Ports 移植机制

它没有"下载现成安装包"的包管理器,而是用 Ports 目录里的移植脚本,把第三方软件从源码编译进去。目前已经有 300 多个移植,包括游戏、编译器、Unix 工具和多媒体软件。

想加一个软件,就仿照某个已有 port 的写法,加一个 build.sh 脚本即可。整个机制对"操作系统里软件是怎么装进来的"这件事,给出了一个非常直观的答案。

🛠️ 从 0 写一个应用:HackStudio 与 GML 构建器

系统自带开发环境 HackStudio,支持 C++ 的语法高亮和调试。它还有个可视化构建器(Visual Builder),配合GML标记语言,拖一拖控件就能搭出窗体,再自动生成对应的 C++ 代码。

也就是说,从"写代码"到"调试"再到"打包成 .af 应用文件",整套链路都在这一个仓库里,GML 格式说明 有详细文档。

能干嘛、适合谁

  • 学操作系统原理:从内核调度、内存分配到文件系统都能追到源码,比只看教材强太多。
  • 想写自己的桌面应用:用 HackStudio + GML,几小时就能跑起来一个窗口程序。
  • 折腾复古桌面的爱好者:一套完全自研、风格统一的 90 年代风系统,可换肤、可换字体。

它不是给非技术用户装的成品(官方 FAQ 明确说没有 ISO),更适合愿意动手、想"看明白"的人。

上手入口

最快的路径是跟着构建说明走,它会拉起一个 QEMU 虚拟机把系统跑起来:

  • 构建与运行说明(Linux / macOS / Windows 分平台)
  • 内核源码(调度、内存、进程都在这里)
  • 用户态应用(浏览器、编辑器、游戏)
  • Ports 移植列表
  • FAQ(常见问题,比如"为什么不给 ISO")

仓库拉下来:

git clone https://gitcode.com/GitHub_Trending/se/serenity

然后打开 Documentation/README.md 按平台走一遍,第一次成功看到桌面,比看十篇教程都直观。

【免费下载链接】serenityThe Serenity Operating System 🐞项目地址: https://gitcode.com/GitHub_Trending/se/serenity

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询