SerenityOS/serenity

GitHub: SerenityOS/serenity

从零构建的图形化类Unix操作系统,融合90年代美学与现代Unix特性,适合操作系统研究与学习。

Stars: 32952 | Forks: 3310

# SerenityOS 适用于 64 位 x86、Arm 和 RISC-V 计算机的图形化类 Unix 操作系统。 [![GitHub Actions Status](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7babe81dee162308.svg)](https://github.com/SerenityOS/serenity/actions/workflows/ci.yml) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/serenity.svg)](https://issues.oss-fuzz.com/issues?q=project:serenity) [![Discord](https://img.shields.io/discord/830522505605283862.svg?logo=discord&logoColor=white&logoWidth=20&labelColor=7289DA&label=Discord&color=17cf48)](https://serenityos.org/discord) [常见问题](Documentation/FAQ.md) | [文档](#how-do-i-read-the-documentation) | [构建说明](#how-do-i-build-and-run-this) ## 关于 SerenityOS 是一封写给 90 年代用户界面的情书,拥有一个定制的类 Unix 内核。它通过借鉴其他各种系统的优秀理念,以此表达真诚的赞美。 粗略地说,我们的目标是实现 1990 年代后期生产力软件的美学与 2000 年代后期 \*nix 的超级用户易用性的结合。这是一个由我们为自己构建的系统,基于我们喜欢的事物。 您可以在 YouTube 上观看系统开发的视频: - [Andreas Kling 的频道](https://youtube.com/andreaskling) - [Linus Groh 的频道](https://youtube.com/linusgroh) - [kleines Filmröllchen 的频道](https://www.youtube.com/c/kleinesfilmroellchen) ## 截图 ![Screenshot as of c03b788.png](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/97b89f5a6a162310.png) ## 功能特性 - 支持抢占式多线程的现代 64 位内核 - 支持 JavaScript、WebAssembly 等功能的[浏览器](Userland/Applications/Browser/)(查看 [JS](https://serenityos.github.io/libjs-website/test262/)、[CSS](https://css.tobyase.de/) 和 [Wasm](https://serenityos.github.io/libjs-website/wasm/) 的规范符合度) - 安全特性(硬件保护、有限的用户态权限、W^X 内存、`pledge` & `unveil`、(K)ASLR、OOM 防御、Web 内容隔离、最先进的 TLS 算法等) - [系统服务](Userland/Services/)(WindowServer、LoginServer、AudioServer、WebServer、RequestServer、CrashServer 等)和现代 IPC - 良好的 POSIX 兼容性([LibC](Userland/Libraries/LibC/)、Shell、syscalls、信号、伪终端、文件系统通知、标准 Unix [工具](Userland/Utilities/)等) - 类 POSIX 虚拟文件系统(/proc、/dev、/sys、/tmp 等)和 ext2 文件系统 - 网络协议栈和应用程序,支持 IPv4、TCP、UDP;DNS、HTTP、Gemini、IMAP、NTP - 性能分析、调试和其他开发工具(内核支持的性能分析、CrashReporter、交互式 GUI 演练场、HexEditor、用于 C++ 的 HackStudio IDE 等) - 用于从密码学到 OpenGL、音频、JavaScript、GUI、下棋等各方面的[库](Userland/Libraries/) - 支持多种常见和不常见的文件格式(PNG、JPEG、GIF、MP3、WAV、FLAC、ZIP、TAR、PDF、QOI、Gemini 等) - 统一的风格和设计理念、灵活的主题系统、[自定义(位图和矢量)字体](https://fonts.serenityos.net/font-family) - [游戏](Userland/Games/)(纸牌、扫雷、2048、国际象棋、康威生命游戏等)和[演示](Userland/Demos/)(CatDog、星空、眼睛、曼德博集合、WidgetGallery 等) - 日常 GUI 程序和实用工具(带 JavaScript 的电子表格、文本编辑器、终端、PixelPaint、各种多媒体查看器和播放器、邮件、助手、计算器等) ……以上所有内容都在这个仓库中,没有额外的依赖项,全部由我们从零开始构建 :^) 此外,还有[三百多个流行开源软件的移植](Ports/AvailablePorts.md),包括游戏、编译器、Unix 工具、多媒体应用等。 ## 如何阅读文档? Man 手册可在线访问:[man.serenityos.org](https://man.serenityos.org)。这些页面是根据 [`Base/usr/share/man`](https://github.com/SerenityOS/serenity/tree/master/Base/usr/share/man) 中的 Markdown 源文件生成的,并自动更新。 运行 SerenityOS 时,您可以在终端中使用 `man`,或者在 GUI 中使用 `help`。 与代码相关的文档可以在 [documentation](Documentation/) 文件夹中找到。 ## 如何构建和运行? 请参阅 [SerenityOS 构建说明](https://github.com/SerenityOS/serenity/blob/master/Documentation/BuildInstructions.md)或 [Ladybird 构建说明](Documentation/BuildInstructionsLadybird.md)。 构建系统支持从 Linux、macOS、Windows(通过 WSL2)和许多其他 \*Nix 系统交叉编译构建 SerenityOS。 默认的构建系统命令将启动一个运行该操作系统的 QEMU 实例,并根据支持情况启用硬件或软件虚拟化。 Ladybird 可以在作为 SerenityOS 交叉编译主机的相同平台上运行,也可以在 SerenityOS 本身上运行。 ## 联系我们并参与其中! 加入我们的 Discord 服务器:[SerenityOS Discord](https://serenityos.org/discord) 在提交 issue 之前,请参阅 [issue 政策](https://github.com/SerenityOS/serenity/blob/master/CONTRIBUTING.md#issue-policy)。 关于贡献的通用指南可以在 [`CONTRIBUTING.md`](CONTRIBUTING.md) 中找到。 ## 作者 - **Andreas Kling** - [awesomekling](https://twitter.com/awesomekling) [![GitHub Sponsors](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/awesomekling) - **Robin Burchell** - [rburchell](https://github.com/rburchell) - **Conrad Pankoff** - [deoxxa](https://github.com/deoxxa) - **Sergey Bugaev** - [bugaevc](https://github.com/bugaevc) - **Liav A** - [supercomputer7](https://github.com/supercomputer7) - **Linus Groh** - [linusg](https://github.com/linusg) [![GitHub Sponsors](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/linusg) - **Ali Mohammad Pur** - [alimpfard](https://github.com/alimpfard) - **Shannon Booth** - [shannonbooth](https://github.com/shannonbooth) - **Hüseyin ASLITÜRK** - [asliturk](https://github.com/asliturk) - **Matthew Olsson** - [mattco98](https://github.com/mattco98) - **Nico Weber** - [nico](https://github.com/nico) - **Brian Gianforcaro** - [bgianfo](https://github.com/bgianfo) - **Ben Wiederhake** - [BenWiederhake](https://github.com/BenWiederhake) - **Tom** - [tomuta](https://github.com/tomuta) - **Paul Scharnofske** - [asynts](https://github.com/asynts) - **Itamar Shenhar** - [itamar8910](https://github.com/itamar8910) - **Luke Wilde** - [Lubrsi](https://github.com/Lubrsi) - **Brendan Coles** - [bcoles](https://github.com/bcoles) - **Andrew Kaster** - [ADKaster](https://github.com/ADKaster) [![GitHub Sponsors](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/ADKaster) - **thankyouverycool** - [thankyouverycool](https://github.com/thankyouverycool) - **Idan Horowitz** - [IdanHo](https://github.com/IdanHo) - **Gunnar Beutner** - [gunnarbeutner](https://github.com/gunnarbeutner) - **Tim Flynn** - [trflynn89](https://github.com/trflynn89) - **Jean-Baptiste Boric** - [boricj](https://github.com/boricj) - **Stephan Unverwerth** - [sunverwerth](https://github.com/sunverwerth) - **Max Wipfli** - [MaxWipfli](https://github.com/MaxWipfli) - **Daniel Bertalan** - [BertalanD](https://github.com/BertalanD) - **Jelle Raaijmakers** - [GMTA](https://github.com/GMTA) - **Sam Atkins** - [AtkinsSJ](https://github.com/AtkinsSJ) [![GitHub Sponsors](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/AtkinsSJ) - **Tobias Christiansen** - [TobyAsE](https://github.com/TobyAsE) - **Lenny Maiorani** - [ldm5180](https://github.com/ldm5180) - **sin-ack** - [sin-ack](https://github.com/sin-ack) - **Jesse Buhagiar** - [Quaker762](https://github.com/Quaker762) - **Peter Elliott** - [Petelliott](https://github.com/Petelliott) - **Karol Kosek** - [krkk](https://github.com/krkk) - **Mustafa Quraish** - [mustafaquraish](https://github.com/mustafaquraish) - **David Tuin** - [davidot](https://github.com/davidot) - **Leon Albrecht** - [Hendiadyoin1](https://github.com/Hendiadyoin1) - **Tim Schumacher** - [timschumi](https://github.com/timschumi) - **Marcus Nilsson** - [metmo](https://github.com/metmo) - **Gegga Thor** - [Xexxa](https://github.com/Xexxa) [![GitHub Sponsors](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/Xexxa) - **kleines Filmröllchen** - [kleinesfilmroellchen](https://github.com/kleinesfilmroellchen) [![GitHub Sponsors](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/kleinesfilmroellchen) - **Kenneth Myhra** - [kennethmyhra](https://github.com/kennethmyhra) - **Maciej** - [sppmacd](https://github.com/sppmacd) - **Sahan Fernando** - [ccapitalK](https://github.com/ccapitalK) - **Benjamin Maxwell** - [MacDue](https://github.com/MacDue) - **Dennis Esternon** - [djwisdom](https://github.com/djwisdom) [![GitHub Sponsors](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/djwisdom) - **frhun** - [frhun](https://github.com/frhun) - **networkException** - [networkException](https://github.com/networkException) [![GitHub Sponsors](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub)](https://github.com/sponsors/networkException) - **Brandon Jordan** - [electrikmilk](https://github.com/electrikmilk) - **Lucas Chollet** - [LucasChollet](https://github.com/LucasChollet) - **Timon Kruiper** - [FireFox317](https://github.com/FireFox317) - **Martin Falisse** - [martinfalisse](https://github.com/martinfalisse) - **Gregory Bertilson** - [Zaggy1024](https://github.com/Zaggy1024) - **Erik Wouters** - [EWouters](https://github.com/EWouters) - **Rodrigo Tobar** - [rtobar](https://github.com/rtobar) - **Alexander Kalenik** - [kalenikaliaksandr](https://github.com/kalenikaliaksandr) - **Tim Ledbetter** - [tcl3](https://github.com/tcl3) - **Steffen T. Larssen** - [stelar7](https://github.com/stelar7) - **Andi Gallo** - [axgallo](https://github.com/axgallo) - **Simon Wanner** - [skyrising](https://github.com/skyrising) - **FalseHonesty** - [FalseHonesty](https://github.com/FalseHonesty) - **Bastiaan van der Plaat** - [bplaat](https://github.com/bplaat) - **Dan Klishch** - [DanShaders](https://github.com/DanShaders) - **Julian Offenhäuser** - [janso3](https://github.com/janso3) - **Sönke Holz** - [spholz](https://github.com/spholz) - **implicitfield** - [implicitfield](https://github.com/implicitfield) 还有更多人![点击这里](https://github.com/SerenityOS/serenity/graphs/contributors)查看完整的贡献者列表。上面列出的人在本项目中提交了超过 100 个 commit。:^) ## 许可证 SerenityOS 根据 2 条款 BSD 许可证授权。
标签:90年代风格, ARM架构, ASLR, Bash脚本, C++, CSS支持, DNS 反向解析, JavaScript引擎, RISC-V, SerenityOS, TLS, Unix-like, WebAssembly, Web报告查看器, Web浏览器, W^X, x86-64, 内核开发, 图形界面, 复古界面, 子域名枚举, 开源, 操作系统, 数据擦除, 无线安全, 桌面环境, 沙箱技术, 流量嗅探, 浏览器引擎, 类Unix系统, 系统安全, 系统编程, 网络安全, 自主开发内核, 自动回退, 身份验证强制, 逆向工具, 防御工具, 隐私保护