설명 없음

Jelle Raaijmakers c87d3521e4 LibGL: East-const `glTex*` methods 3 년 전
.github bc98ad9cc1 CI: Disable compiletime header check 3 년 전
AK 9d8da1697e AK: Automatically shrink HashTable when removing entries 3 년 전
Base 2dad3dca9a Base: Add ratio tests to media-query test page 3 년 전
Documentation 24a98b888a Documentation: Improve VS Code settings 3 년 전
Kernel 6354a9a030 Kernel: Mark sys$fsync() as not needing the big lock 3 년 전
Meta 1422bd45eb LibWeb: Move Window from DOM directory & namespace to HTML 3 년 전
Ports f8bdb36f4c Ports: Add OpenGL include dir to quake2 build 3 년 전
Tests 1422bd45eb LibWeb: Move Window from DOM directory & namespace to HTML 3 년 전
Toolchain 4bd01b7fe9 Kernel: Add support for SA_SIGINFO 3 년 전
Userland c87d3521e4 LibGL: East-const `glTex*` methods 3 년 전
.clang-format 1ec4771904 Meta: Update .clang-format to not indent nested namespaces 5 년 전
.clang-tidy 2b206b1854 Meta: Disable readability-use-anyofallof clang-tidy check 3 년 전
.gitattributes c0c72c6b91 Repository: Protect port patches from CRLF/LF normalization 3 년 전
.gitignore 7e52b6fa24 man.serenityos.org: Simplify local builds 3 년 전
.mailmap f06e7dd13f Meta: Fix my .mailmap entry by adding the name 3 년 전
.pre-commit-config.yaml 028dad6e87 Meta: Add a post-commit commit message linter hook 4 년 전
.prettierignore f538df7572 CI: Bump prettier to latest version (2.4.1) 3 년 전
.prettierrc 54036d660a Meta: Move prettier config files to the root of the repository 5 년 전
CMakeLists.txt ee9125fa9a Meta: Use correct variable for checking if the mold linker is used 3 년 전
CONTRIBUTING.md 2925725c9a Meta: Add Tim Flynn to list of project maintainers :^) 3 년 전
LICENSE ad6694d0db Meta: Update year range in LICENSE :^) 3 년 전
README.md 2daaa48bab Meta: Remove SB16 driver from the features list in README.md 3 년 전
azure-pipelines.yml 6a4c1e4b7b CI: Disallow test failures on macOS Lagom :^) 3 년 전

README.md

SerenityOS

Graphical Unix-like operating system for x86 computers.

GitHub Actions Status Azure DevOps Status Fuzzing Status Sonar Cube Static Analysis Discord

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

Screenshot as of b36968c.png

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
  • 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

Contributors

(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.