1D475, 1D4A6, 1D4A9, 1D4AA, 1D4AB, 1D4AC, 1D4AE, 1D4AF, 1D4B1, 1D4B3, 1D4B4, 1D4B5, 1D4B6, 1D538, 1D539, 1D53B, 1D53C, 1D53D, 1D53E, 1D540, 1D541, 1D542, 1D543, 1D544, 1D546, 1D54A, 1D54B, 1D54C, 1D54D, 1D54E, 1D54F, 1D550, 1D552, 1D553, 1D554, 1D555, 1D556, 1D557, 1D558, 1D559, 1D55A, 1D55B, 1D55C, 1D55D, 1D55E, 1D55F, 1D560, 1D561, 1D562, 1D563, 1D564, 1D565, 1D566, 1D569, 1D56A, 1D56B, 1D56F, 1D58B, 1D58D, 1D58E, 1D58F, 1D590, 1D591, 1D592, 1D594, 1D597, 1D670, 1D671, 1D672, 1D673, 1D674, 1D675, 1D676, 1D677, 1D678, 1D679, 1D67A, 1D67B, 1D67C, 1D67D, 1D67E, 1D67F, 1D680, 1D681, 1D682, 1D683, 1D684, 1D685, 1D686, 1D687, 1D688, 1D689, 1D68A, 1D68B, 1D68C, 1D68D, 1D68E, 1D68F, 1D690, 1D691, 1D692, 1D693, 1D694, 1D695, 1D696, 1D697, 1D698, 1D699, 1D69A, 1D69B, 1D69C, 1D69D, 1D69E, 1D69F, 1D6A0, 1D6A1, 1D6A2, 1D6A3, 1D7D8, 1D7D9, 1D7DA, 1D7DB, 1D7DC, 1D7DD, 1D7DE, 1D7DF, 1D7E0, 1D7E1 https://www.unicode.org/charts/PDF/U1D400.pdf |
||
|---|---|---|
| .github | ||
| AK | ||
| Base | ||
| Documentation | ||
| Kernel | ||
| Meta | ||
| Ports | ||
| Tests | ||
| Toolchain | ||
| Userland | ||
| .clang-format | ||
| .clang-tidy | ||
| .gitattributes | ||
| .gitignore | ||
| .mailmap | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc | ||
| azure-pipelines.yml | ||
| CMakeLists.txt | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
SerenityOS
Graphical Unix-like operating system for x86 computers.
About
SerenityOS is a love letter to '90s user interfaces with a custom Unix-like core. It flatters with sincerity by stealing beautiful ideas from various other systems.
Roughly speaking, the goal is a marriage between the aesthetic of late-1990s productivity software and the power-user accessibility of late-2000s *nix. This is a system by us, for us, based on the things we like.
You can watch videos of the system being developed on YouTube:
Screenshot
Kernel features
- x86 (32-bit) and x86_64 (64-bit) kernel with pre-emptive multi-threading
- Hardware protections (SMEP, SMAP, UMIP, NX, WP, TSD, ...)
- IPv4 stack with ARP, TCP, UDP and ICMP protocols
- ext2 filesystem
- POSIX signals
- Purgeable memory
- /proc filesystem
- Pseudoterminals (with /dev/pts filesystem)
- Filesystem notifications
- CPU and memory profiling
- SoundBlaster 16 driver
- VMWare/QEMU mouse integration
System services
- Launch/session daemon (SystemServer)
- Compositing window server (WindowServer)
- Text console manager (TTYServer)
- DNS client (LookupServer)
- Network protocols server (RequestServer and WebSocket)
- Software-mixing sound daemon (AudioServer)
- Desktop notifications (NotificationServer)
- HTTP server (WebServer)
- Telnet server (TelnetServer)
- DHCP client (DHCPClient)
Libraries
- C++ templates and containers (AK)
- Event loop and utilities (LibCore)
- 2D graphics library (LibGfx)
- OpenGL 1.x compatible library (LibGL)
- GUI toolkit (LibGUI)
- Cross-process communication library (LibIPC)
- HTML/CSS engine (LibWeb)
- JavaScript engine (LibJS)
- Markdown (LibMarkdown)
- Audio (LibAudio)
- Digital Signal Processing/Synthesizer Chains (LibDSP)
- PCI database (LibPCIDB)
- Terminal emulation (LibVT)
- Out-of-process network protocol I/O (LibProtocol)
- Mathematical functions (LibM)
- ELF file handling (LibELF)
- POSIX threading (LibPthread)
- Higher-level threading (LibThreading)
- Transport Layer Security (LibTLS)
- HTTP and HTTPS (LibHTTP)
- IMAP (LibIMAP)
Userland features
- Unix-like libc and userland
- Shell with pipes and I/O redirection
- On-line help system (both terminal and GUI variants)
- Web browser (Browser)
- C++ IDE (HackStudio)
- Desktop synthesizer (Piano)
- E-mail client (Mail)
- Various desktop apps & games
- Color themes
How do I read the documentation?
Man pages are available online at man.serenityos.org. These pages are generated from the Markdown source files in Base/usr/share/man and updated automatically.
When running SerenityOS you can use man for the terminal interface, or help for the GUI.
How do I build and run this?
See the SerenityOS build instructions
Before opening an issue
Please see the issue policy.
FAQ: Frequently Asked Questions
Get in touch
Join our Discord server: SerenityOS Discord
Author
- Andreas Kling - awesomekling
Contributors
- Robin Burchell - rburchell
- Conrad Pankoff - deoxxa
- Sergey Bugaev - bugaevc
- Liav A - supercomputer7
- Linus Groh - linusg
- Ali Mohammad Pur - alimpfard
- Shannon Booth - shannonbooth
- Hüseyin ASLITÜRK - asliturk
- Matthew Olsson - mattco98
- Nico Weber - nico
- Brian Gianforcaro - bgianfo
- Ben Wiederhake - BenWiederhake
- Tom - tomuta
- Paul Scharnofske - asynts
- Itamar Shenhar - itamar8910
- Luke Wilde - Lubrsi
- Brendan Coles - bcoles
- Andrew Kaster - ADKaster
- thankyouverycool - thankyouverycool
- Idan Horowitz - IdanHo
- Gunnar Beutner - gunnarbeutner
- Tim Flynn - trflynn89
- Jean-Baptiste Boric - boricj
- Stephan Unverwerth - sunverwerth
- Max Wipfli - MaxWipfli
- Daniel Bertalan - BertalanD
- Jelle Raaijmakers - GMTA
- Sam Atkins - AtkinsSJ
- Tobias Christiansen - TobyAsE
- Lenny Maiorani - ldm5180
- sin-ack - sin-ack
- Jesse Buhagiar - Quaker762
- Peter Elliott - Petelliott
- Karol Kosek - krkk
- Mustafa Quraish - mustafaquraish
- David Tuin - davidot
- Leon Albrecht - Hendiadyoin1
- Tim Schumacher - timschumi
- Marcus Nilsson - metmo
- Gegga Thor - Xexxa
- kleines Filmröllchen - kleinesfilmroellchen
- Kenneth Myhra - kennethmyhra
(And many more!) The people listed above have landed more than 100 commits in the project. :^)
License
SerenityOS is licensed under a 2-clause BSD license.
