An small x86 Operating System which uses multiboot2 and the grub bootloader.
Warning: This Sytem is still in early development. Many things can (and propatly will) go wrong.
This project is build by using a Docker container.
Steps to Build and Run:
1: Install Docker (Linux: apt install docker
, Windows: winget install Docker.DockerDesktop
)
2: Optional: Install qemu (Linux: apt install qemu
, Windows: visit 'https://www.qemu.org/' and use 'Stefan Weil' binaries.
3: Run docker build buildenv -t sodium-buildenv
to build the builenv
4: Windows: Use docker run --rm -it -v C:/Sodium/:/root/env sodium-buildenv
and replace 'C:/Sodium/' with the project directory
4: Linux: Use sudo docker run --rm -it -v ./:/root/env:Z sodium-buildenv
5: Run qemu-system-x86_64 -debugcon stdio -cdrom dist/Sodium.iso
to start the OS! (Only if qemu is install)
You can also run the OS by using the .iso file directly (For example in VBox or on a LiveUSB).
Here is an overview of the current project Architekture
Sodium
├── buildenv
│ ├── docker-entrypoint.sh
│ └── Dockerfile
├── script
│ └── Code Generation Scripts (used by Makefile)
├── src
│ ├── kernel
│ │ ├── arch/i686
│ │ │ └── / i686 Driver and Systems /
│ │ ├── hal
│ │ │ └── / Hardware Abstraction Layer /
│ │ ├── util
│ │ │ └── / Universal Stuff /
│ │ ├── kernel.c
│ │ └── ...
│ ├── boot/i686
│ │ ├── boot.asm
│ │ ├── multiboot.asm
│ │ └── grub
│ │ └── grub.cfg
│ └── linker.ld
├── dist
│ ├── Sodium.iso
│ └── kernel.bin
├── build
│ └── Build Directory
├── Makefile
├── README.md
└── LICENSE