Truly independent web browser
Find a file
Idan Horowitz 0218c62be4 Kernel: Make Process::procfs_get_pledge_stats OOM-fallible
We can completely avoid the string allocation by using string_view().
2022-02-16 22:21:37 +01:00
.github CI: Disable compiletime header check 2022-02-16 23:19:50 +02:00
AK AK+Kernel: Return KString from UUID::to_string() in the Kernel 2022-02-16 22:21:37 +01:00
Base Base: Add test page for progress bar element 2022-02-16 15:34:08 -05:00
Documentation Documentation: Add Rosetta/Homebrew macOS note 2022-02-16 11:29:31 -05:00
Kernel Kernel: Make Process::procfs_get_pledge_stats OOM-fallible 2022-02-16 22:21:37 +01:00
Meta Meta: Make the WrapperGenerator generate includes based on imports 2022-02-16 22:48:32 +03:30
Ports Ports: Add ImageMagick 2022-02-14 11:40:06 +01:00
Tests AK: Fix userland parsing of rounded floating point numbers 2022-02-16 07:22:51 -05:00
Toolchain Toolchain: Update Dockerfile to use gcc 11 and add texinfo package 2022-02-14 12:52:06 +03:30
Userland LibWeb: Explain discrepancy with media-query parsing 2022-02-16 21:51:15 +01:00
.clang-format Meta: Update .clang-format to not indent nested namespaces 2020-03-14 10:10:21 +01:00
.clang-tidy Meta: Disable readability-use-anyofallof clang-tidy check 2022-01-09 23:29:57 -08:00
.gitattributes Repository: Protect port patches from CRLF/LF normalization 2022-01-12 01:08:38 +01:00
.gitignore man.serenityos.org: Simplify local builds 2021-10-22 19:49:28 +03:00
.mailmap Meta: Fix my .mailmap entry by adding the name 2022-01-25 23:26:14 +00:00
.pre-commit-config.yaml Meta: Add a post-commit commit message linter hook 2021-05-02 16:28:01 +02:00
.prettierignore CI: Bump prettier to latest version (2.4.1) 2021-11-21 01:18:23 +00:00
.prettierrc Meta: Move prettier config files to the root of the repository 2020-08-24 18:21:33 +02:00
azure-pipelines.yml CI: Disallow test failures on macOS Lagom :^) 2022-01-14 22:39:06 +01:00
CMakeLists.txt Meta: Add support for the Limine bootloader 2022-02-14 11:52:07 +01:00
CONTRIBUTING.md Meta: Add Tim Flynn to list of project maintainers :^) 2022-02-11 22:24:10 +01:00
LICENSE Meta: Update year range in LICENSE :^) 2022-01-02 18:08:02 +01:00
README.md Meta: Add Kenneth Myhra to the contributors list :^) 2022-02-04 00:13:43 +01:00

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.