Popcorn2 is a hobby microkernel, written in Rust, designed and developed by @egkoppel.
Popcorn2 is made up of several subprojects, each in it's own repository:
- popcorn-2 - The kernel, bootloader, and crates needed to support the kernel
- book - An in-progress
mdBookbook, explaining some of the design philosophy behind Popcorn2 - specifications - Specifications for some Popcorn2 formats, such as Popcorn2 IPC Protocol files
- pipc - The Popcorn2 IPC Protocol Compiler
- core-protocols - Sources for the Popcorn2 IPC Protocol files needed for a typical installation
Core userspace projects
- file-server - The VFS and
initddaemon (intrinsically tangled together too much) - revolution - The Revolution compositor (though for now just a terminal multiplexer)
- devman - The Popcorn2 device manangement server
Drivers
- ia32_acpi_root - Root bus driver for x86 and x86-64 ACPI based systems
- pci - PCI bus driver
- i8042 - i8042 PS/2 driver, supporting mice and keyboards
More information about each subproject can be found in the README is the corresponding repository.
Additionally, forks of several other repositories are kept here, with patches to support Popcorn2. The major ones are:
- llvm - C and C++ toolchain and C++ standard library
- mlibc - C standard library
- rust - Rust toolchain and standard library
- libc (rust) - Rust C standard library bindings
- @bluewhale64
- @hiornso
- @workingjubilee