SerenityOS/serenity
GitHub: SerenityOS/serenity
从零构建的图形化类Unix操作系统,融合90年代美学与现代Unix特性,适合操作系统研究与学习。
Stars: 32952 | Forks: 3310
# SerenityOS
适用于 64 位 x86、Arm 和 RISC-V 计算机的图形化类 Unix 操作系统。
[](https://github.com/SerenityOS/serenity/actions/workflows/ci.yml)
[](https://issues.oss-fuzz.com/issues?q=project:serenity)
[](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)
## 截图

## 功能特性
- 支持抢占式多线程的现代 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) [](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) [](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) [](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) [](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) [](https://github.com/sponsors/Xexxa)
- **kleines Filmröllchen** - [kleinesfilmroellchen](https://github.com/kleinesfilmroellchen) [](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) [](https://github.com/sponsors/djwisdom)
- **frhun** - [frhun](https://github.com/frhun)
- **networkException** - [networkException](https://github.com/networkException) [](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)
还有更多人查看完整的贡献者列表。上面列出的人在本项目中提交了超过 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系统, 系统安全, 系统编程, 网络安全, 自主开发内核, 自动回退, 身份验证强制, 逆向工具, 防御工具, 隐私保护