8000 GitHub - sasdallas/Ethereal: A from-scratch operating system attempting to make a full user experience.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

sasdallas/Ethereal

Ethereal

A totally from scratch all-in-one operating system, written for speed, memory conservation, and reliability.
Formerly known as reduceOS

What is Ethereal?

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.

Screenshots


Ethereal booting in debug mode

Ethereal but REALLY on IRC
Ethereal on Libera chat (#ethereal)


Ethereal running DOOM


Ethereal running uname

fixed
Ethereal running a neofetch clone made for it (whatarewe)

Features

  • 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

Project structure

  • base: Contains the base filesystem. Files in base/initrd go in the initial ramdisk (for non LiveCD boots) and files in base/sysroot go in sysroot.
  • buildscripts: Contains buildscripts for the build system
  • conf: 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 project
  • libpolyhedron: The libc/libk for the project.
  • libkstructures: Contains misc. kernel structures, like lists/hashmaps/parsers/whatever

Building

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.

External components

Certain external components are available in external. Here is a list of them and their versions:

Licensing

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.

0