Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 C++ operating-system Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
haiku
The Haiku operating system. (Pull requests will be ignored; patches may be sent to https://review.haiku-os.org).
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: Why does part of the Windows 98 Setup program look older than the rest? | news.ycombinator.com | 2024-04-09SerenityOS replicates that look and feel. It is also implemented in a dialect of C++ that adheres to some of the good parts of C++98: https://serenityos.org
So sad IncludeOS https://github.com/includeos/IncludeOS is no longer developed.
Project mention: Haiku's (Kernel) Condition Variables API: Design and Implementation | news.ycombinator.com | 2023-04-24Haiku uses the System V ABI (mostly.) So, we're doing the same things Linux and the BSDs are here, simply by using GCC or Clang without any special tuning here.
> I reckon that before trying to claim you've innovated here it might be a good sense check to compare baseline.
The baseline is "what are other operating systems' kernel- and userland-level condition variables APIs?" And none of the ones I looked at had anything like what Haiku has here, they all have something which is the more classical "lock-switched condvars" just like POSIX has.
The API itself does not depend on what memory ordering semantics are any more than a "mutex_lock()" API does. The implementation will be somewhat contingent on it, of course, but those are two separate matters.
> What exactly are the Haiku atomic operations, in terms of the C++ 11 Memory Model?
The atomic_() functions are (on most architectures, x86 included) implemented using GCC/Clang's __atomic_* functions, with various __ATOMIC_* orderings chosen as appropriate. You can see them defined in the system header here: https://github.com/haiku/haiku/blob/master/headers/os/suppor...
> because you're innovating before 2011, you're inventing the model
No, not really? GCC has had atomic builtins since at least 4.1.0 in 2006. The documentation (https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins...) says: "In most cases, these builtins are considered a full barrier. That is, no memory operand will be moved across the operation, either forward or backward." -- which is basically equivalent to today's __ATOMIC_SEQ_CST.
> so Haiku is off in the jungle on its own and everybody else has a map now, figure out where you are on that map first.
We already did that years ago. The atomic_() functions linked above in SupportDefs.h have been implemented using the C++11-standard GCC builtins since 2014, and the older __sync_ builtins for years before that.
Anyway, the algorithm described in this article, even if Haiku's atomic functions were not 1:1 with C++11-standard definitions (which they are, as noted above), is clearly portable to other OS kernels. So I am not sure what basis your comment has, regardless.
Project mention: RISC-V support (super-duper ultra WIP) by ElectrodeYT · Pull Request #534 · managarm/managarm | /r/RISCV | 2023-07-09
Project mention: What are some concepts/tools/tricks that are frequently used in C/C++ code for embedded software? | /r/embedded | 2023-07-10The only all-C++ RTOS implementation (that I've come across) is Distortos..
Project mention: Ask HN: Best computer that can't run a modern browser | news.ycombinator.com | 2023-05-12any "Raspberry Pi" with 256 MB - is a perfect test machine.
https://en.wikipedia.org/wiki/Raspberry_Pi
And there is an extra minimal alternative:
Raspberry Pi Pico ( 264 KB; available from $4 + https://github.com/asynts/pico-os )
"Raspberry Pi Pico comes with Dual-Core ARM Cortex M0+ processor, which can run up to 133MHz. It has 264KB of SRAM and 2MB of on-board flash storage, but we can extend up to 16MB of off-chip Flash memory via a dedicated Quad-SPI bus."
Project mention: Progress on GevOS | from scratch 32-bit graphical operating system written in C++ | /r/osdev | 2023-06-07Find it on GitHub.
Source code: MaxOS
C++ operating-system related posts
- Why does part of the Windows 98 Setup program look older than the rest?
- SerenityOS
- Fuzzing Ladybird with tools from Google Project Zero
- Sane C++ Libraries
- Serenum: OS from scratch to save computers [video]
- Using Zig to Unit Test a C Application
- SerenityOS – a love letter to '90s user interfaces with a custom Unix-like core
-
A note from our sponsor - InfluxDB
www.influxdata.com | 24 Apr 2024
Index
What are some of the best open-source operating-system projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | serenity | 28,519 |
2 | IncludeOS | 4,824 |
3 | skift | 2,182 |
4 | haiku | 1,762 |
5 | managarm | 1,302 |
6 | Lemon-OS | 1,175 |
7 | WingOS | 750 |
8 | distortos | 430 |
9 | xyris | 153 |
10 | JsOS | 140 |
11 | sweb | 114 |
12 | MaslOS | 86 |
13 | LensorOS | 78 |
14 | l4re-core | 65 |
15 | BadAppleOS | 55 |
16 | pico-os | 49 |
17 | TempleOS-EE | 48 |
18 | GodsEyeView | 47 |
19 | Macaron | 43 |
20 | cyberWatch | 30 |
21 | MaxOS | 30 |
22 | apex | 24 |
23 | FluxedOS | 21 |
Sponsored