ghost
serenity
ghost | serenity | |
---|---|---|
1 | 240 | |
557 | 28,823 | |
- | 1.7% | |
5.5 | 10.0 | |
9 months ago | 4 days ago | |
C | C++ | |
GNU General Public License v3.0 only | BSD 2-clause "Simplified" License |
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.
ghost
-
Ghost Kernel
https://ghostkernel.org/about
>"Ghost is a hobby operating system for the Intel x86 platform. The project is licensed as GPLv3. It was started as a research project to learn more about low-level software programming and computer internals. The sources are available on GitHub (https://github.com/maxdev1/ghost).
Features
The kernel and the userspace applications are written from scratch in C++ and Assembly (and some C). It is not based on any existing kernel.
There is a POSIX.1 compatibility layer to simplify porting some software to the system.
o Micro-kernel
o Symmetric multi-processing
o Patched GCC (OS specific toolchain)
o IPC (pipes, signals, messages, shared memory)
o ELF executable & shared library support
o libc, self-made
o libghostapi, kernel API library
o libghostuser, simplified file I/O, creating UIs etc.
o libstdc++ port
o VESA video driver
o Window server (GUI with homemade toolkit)
o PS/2 keyboard & mouse driver
o Userspace filesystem driver support
o Serial COM1 debug interface
o Virtual 8086 for BIOS calls
o Copy-on-write implementation, fork()
serenity
-
Why does part of the Windows 98 Setup program look older than the rest?
SerenityOS 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
- SerenityOS
-
XZ: A Microcosm of the interactions in Open Source projects
One example of a useful technique
https://serenityos.org/ apparently only makes source code available. There are no binary images of the OS to install
I think Andreas said this functions like a little test -- if you're not willing to build it from source, then you probably wouldn't be a good contributor anyway.
---
Likewise, my shell project provides source tarballs only, right now - https://www.oilshell.org/release/0.21.0/
It is packaged in a number of places, which I appreciate. That means some other people are willing to do some work.
And they provide good feedback.
I would like it to be more widely available, but yeah I definitely see that you need to "gate" peanut gallery feedback a bit, because it takes up a lot of time.
Of course, it's a tricky balance, because you also want feedback from casual users, to make the project better.
-
Fuzzing Ladybird with tools from Google Project Zero
Indeed, given the existence of `JS::NonnullGCPtr`, `JS::GcPtr` intentionally corresponds to a nullable pointer, so it seems dangerous to convert one to a reference without a null-check.
That said, a naive code search finds what *may* be more cases of this pattern:
https://github.com/search?q=repo%3ASerenityOS%2Fserenity+%2F...
Eg: https://github.com/SerenityOS/serenity/blob/a68b134e6dea5065... -> https://github.com/SerenityOS/serenity/blob/a68b134e6dea5065...
In some of those search results, it is fine because there is a preceding null-check, and obviously I know nothing about this code other than this naive search result, but perhaps it would be prudent to vet all of them.
-
The Ladybird Browser Project
It is a SerenityOS project. You can find the answer to that question in their primary project's FAQ[1].
1. https://github.com/SerenityOS/serenity/blob/master/Documenta...
-
Sane C++ Libraries
https://github.com/SerenityOS/serenity
The best way to write proper exception free C++ is not to use the C++ Standard Library.
-
Serenum: OS from scratch to save computers [video]
I initially confused it with Serenity OS prior to watching the video: https://github.com/SerenityOS/serenity
-
Ask HN: What side projects landed you a job?
My contributions to SerenityOS[0] helped me get my current job. My team lead (who was also my interviewer) was interested in what I did since I listed some of it in my CV, and I showed him some PRs I made and explained what went into each of them. It was really exciting because I didn't have professional experience with low-level development, and basically got the job due to hobby programming.
[0]: https://github.com/SerenityOS/serenity/pulls?q=is%3Apr+autho...
- SerenityOS – a love letter to '90s user interfaces with a custom Unix-like core
-
Bring garbage collected programming languages efficiently to WebAssembly
Definitely not "literally impossible", just a great deal of work. https://github.com/SerenityOS/serenity/tree/master/Ladybird
What are some alternatives?
seL4 - The seL4 microkernel
Chicago95 - A rendition of everyone's favorite 1995 Microsoft operating system for Linux.
ics-os - An instructional operating system
rust-raspberrypi-OS-tutorials - :books: Learn to write an embedded OS in Rust :crab:
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.
haiku - The Haiku operating system. (Pull requests will be ignored; patches may be sent to https://review.haiku-os.org).
helenos - A portable microkernel-based multiserver operating system written from scratch.
linux - Linux kernel source tree
MoonOS - MoonOS (just a kernel atm) is a micro kernel designed for the x86_64 and arm architecure.
reactos - A free Windows-compatible Operating System
redox - Mirror of https://gitlab.redox-os.org/redox-os/redox
gopher-os - A proof of concept OS kernel written in Go