Lemon-OS
haiku
Our great sponsors
Lemon-OS | haiku | |
---|---|---|
2 | 11 | |
1,178 | 1,765 | |
2.9% | 1.9% | |
3.5 | 9.8 | |
about 2 months ago | 2 days ago | |
C++ | C++ | |
BSD 2-clause "Simplified" License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Lemon-OS
-
A custom OS 0.1 version release.
There is a topic named "What Your OS Looks Like" in OSDEV forum, I got inspiration from it, especially nifanfa and LemonOS. And also a book named "30日でできる! OS自作入門".
-
Downloading, building and runnning nyancat on Lemon OS!
Lemon OS Github: https://github.com/fido2020/Lemon-OS
haiku
-
Haiku's (Kernel) Condition Variables API: Design and Implementation
Haiku 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.
-
Problems while building haiku from source
I'm currently trying to build Haiku from source (following https://github.com/haiku/haiku/blob/master/ReadMe.Compiling.md), but I'm getting errors while building with "jam -q -j12 @nightly-anyboot".
- Haiku R1/beta4 has been released
-
HaikuOS Device Driver References
Something like this? https://github.com/haiku/haiku/tree/master/src/add-ons/accelerants/radeon
- Haiku Beta4 Release Near?
- How to programmatically find out if computer is on
What are some alternatives?
toaruos - A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.
serenity - The Serenity Operating System 🐞
skift - 🥑 The delightful operating system.
reactos - A free Windows-compatible Operating System
Simply-Love-SM5 - a StepMania 5 theme for the post-ITG community
WingOS - a little 64bit operating system written in c++ with smp support
sweb - SWEB Educational OS
nyancat - Nyancat in your terminal, rendered through ANSI escape sequences. This is the source for the Debian package `nyancat`.
Quaternion - A Qt-based IM client for Matrix
crtsys - C/C++ Runtime library for system file (Windows Kernel Driver) - Supports Microsoft STL
WonderBrush-v2 - Last known version of the code to WonderBrush (as included in Haiku)