Skip to content
This repository was archived by the owner on Feb 10, 2024. It is now read-only.

OBOS-dev/obos-old

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OBOS

Goals

  • A module loader/interface
  • An initrd driver
  • A VFS
  • PS2 Keyboard driver
  • AHCI Driver
  • NVME Driver.
  • A FAT driver.
  • Ext2/3/4 Driver.
  • POSIX Compatibility Layer
  • Porting mlibc.
  • A terminal.
  • Support for USB.
  • Support for ACPI power management.
  • Making a GCC/Binutils target for the os.
  • Porting binutils and GCC to the os.
  • Porting CMake and Make.
  • Porting tar.
  • A network stack.
  • An audio stack.
  • A GUI.
  • Porting python.
  • Porting 7zip.
  • Porting a browser and curl.
  • Porting qemu.

Building

Prerequisites

  • CMake
  • Ninja
  • Make
  • xorriso
  • An x86_64-elf-gcc cross compiler if you are building for x86_64.
  • WSL2 if you are on windows.

Build Instructions (x86_64)

  1. Open a terminal (or WSL if on windows), and clone the GitHub repository with these commands:
git clone https://github.com/oberrow/obos.git
cd obos
git clone https://github.com/limine-bootloader/limine.git --branch=v5.2023-20241006.0-binary --depth=1

You can ignore any warnings.
2. Configure cmake with this command:

cmake --toolchain src/scripts-toolchains/x86_64/toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja .
  1. Finally, build the kernel with these commands:
make -C limine
ninja -j 0

The iso image will be stored in out/obos.iso
If you have qemu installed, you can run a virtual machine with the os by running scripts/launch-qemu.sh