Sin descripción

Luke Wilde 87d19dfa28 Ports: Update curl port to version 7.81.0 hace 3 años
.github aa35b6e3c3 CI: Don't let APT ask for confirmation on package installation hace 3 años
AK 10ec98dd38 Everywhere: Fix spelling mistakes hace 3 años
Base 2aff8b4a27 Base: Port serenity-application template to LibMain hace 3 años
Documentation 10ec98dd38 Everywhere: Fix spelling mistakes hace 3 años
Kernel 3e066d380d Kernel/Memory: Remove needless VERIFY in /dev/mem mmap validation method hace 3 años
Meta 3938a2cca7 CI: Extract toolchain ccache in the Serenity build stage hace 3 años
Ports 87d19dfa28 Ports: Update curl port to version 7.81.0 hace 3 años
Tests 10ec98dd38 Everywhere: Fix spelling mistakes hace 3 años
Toolchain 41ea37f25a Toolchain/GCC: Declare we don't have memalign hace 3 años
Userland 524381aa78 LibTLS: Mark the socket as idle after a TLS-level disconnection hace 3 años
.clang-format 1ec4771904 Meta: Update .clang-format to not indent nested namespaces hace 5 años
.clang-tidy 4dbda2d5b4 Meta: Enable the "bugprone-dangling-handle" clang-tidy check hace 3 años
.gitattributes a43bccfc3c Meta: Mark the other image file formats as binary in .gitattributes hace 4 años
.gitignore 7e52b6fa24 man.serenityos.org: Simplify local builds hace 3 años
.mailmap aff2c59f37 Meta: Update my .mailmap entry to contain all the emails I use hace 3 años
.pre-commit-config.yaml 028dad6e87 Meta: Add a post-commit commit message linter hook hace 4 años
.prettierignore f538df7572 CI: Bump prettier to latest version (2.4.1) hace 3 años
.prettierrc 54036d660a Meta: Move prettier config files to the root of the repository hace 5 años
CMakeLists.txt 1a17425fb5 Meta: Remove clang warnings with no violations hace 3 años
CONTRIBUTING.md 0306cf2030 Docs: Fixed grammar "diagnose what is the problem" hace 3 años
LICENSE ad6694d0db Meta: Update year range in LICENSE :^) hace 3 años
README.md a7f2c40119 Meta: Link to Linus's YouTube channel from our README :^) hace 3 años
azure-pipelines.yml b11a34330a CI: Build the Clang toolchain a single time for both onboard pipelines hace 3 años

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

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.