A totally from scratch all-in-one operating system, written for speed, memory conservation, and reliability.
Formerly known as reduceOS
Ethereal is a project with the goal of creating a fully functional OS from scratch with all components a modern OS would have.
Currently, the project is developing its usermode stages.
Ethereal booting in debug mode
Ethereal on Libera chat (#ethereal)
Ethereal running a neofetch clone made for it (whatarewe)
- Advanced driver system with a well-documented kernel API
- Strong support for x86_64 mode
- USB support for UHCI/EHCI controllers
- AHCI/IDE support
- Networking stack with E1000 network card driver
- Priority-based round-robin scheduler with a well-tested API
- Custom C library with support for many functions
- Full ACPI support with the ACPICA library
base
: Contains the base filesystem. Files inbase/initrd
go in the initial ramdisk (for non LiveCD boots) and files inbase/sysroot
go in sysroot.buildscripts
: Contains buildscripts for the build systemconf
: Contains misc. configuration files, such as architecture files, GRUB configs, extra boot files, etc.drivers
: Drivers for Hexahedron, copied based on their configuration.external
: Contains external projects, such as ACPICA. See External Components.hexahedron
: The main kernel projectlibpolyhedron
: The libc/libk for the project.libkstructures
: Contains misc. kernel structures, like lists/hashmaps/parsers/whatever
To build Ethereal, you will need an Ethereal toolchain for your target architecture.
The Ethereal toolchain can be found at the repository
Other packages required: grub-common
, xorriso
, qemu-system
Edit buildscripts/build-arch.sh
to change the target build architecture.
Running make all
will build an ISO in build-output/ethereal.iso
Currently, Ethereal's lack of filesystem drivers means that LiveCD boots are usually the best option.
The initial ramdisk in a LiveCD is the sysroot, and if the OS detects the boot it will copy the initial ramdisk into RAM.
Certain external components are available in external
. Here is a list of them and their versions:
- ACPICA UNIX* (Intel License): Version 20240927 available here
- libmusl math library (MIT License): available here
- freetype (GPL license): available here
Hexahedron, libpolyhedron, and all other components of Ethereal fall under the terms of the BSD 3-clause license (available in LICENSE).
All files, unless specified, fall under this license.