Skip to content

RobotApocalypseCommittee/bekOS

Repository files navigation

bekOS

A basic Unix-adjacent Operating System for 64-bit ARM processors written in C++. Not the OS you wanted, but the one you deserve.

Features

  • Multitasking process management
  • DeviceTree parsing on boot and dynamic probing of devices.
  • USB xHCI host driver and peripherals
  • Support for QEMU virt device
  • [WIP] Userspace Windowing Manager
  • [WIP] Support for Raspberry Pi 4/5
  • Symmetric Multiprocessing

Project Layout

.
├─ bek      # Alternative C++ standard library for kernel and userspace
├─ docs     # Unsorted documentation/description
├─ kernel   # Kernel Source
├─ tools    # Scripts for running/testing
└─ userspace
   ├─ libcore   # Core (C++) library (with init + syscalls)
   └─ programs  # Executables for running in bekOS

Running

  1. Install freestanding toolchain (aarch64-none-elf-gcc) and QEMU.
  2. Adapt toolchain-arm.cmake.template for toolchain, and use as -DCMAKE_TOOLCHAIN_FILE=toolchain-arm.cmake.
  3. Configure and build with CMake. Target kernel_with_userspace is recommended.
  4. Run kernel with tools/run-qemu.sh virt <EXECUTABLE>, passing the .img file produced in build directory.

About

Not the OS you wanted, but the one you deserve

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •