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),仅供参考