https://github.com/erik-donath/sodium
An small x86 Operating System which uses multiboot2 and the grub bootloader.
https://github.com/erik-donath/sodium
boot grub i686 kernel multiboot2 operating-system os uefi-boot x86
Last synced: 9 months ago
JSON representation
An small x86 Operating System which uses multiboot2 and the grub bootloader.
- Host: GitHub
- URL: https://github.com/erik-donath/sodium
- Owner: Erik-Donath
- License: mit
- Created: 2024-07-15T16:30:47.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-15T17:03:58.000Z (about 1 year ago)
- Last Synced: 2025-03-26T16:48:18.919Z (12 months ago)
- Topics: boot, grub, i686, kernel, multiboot2, operating-system, os, uefi-boot, x86
- Language: C
- Homepage: https://github.com/Erik-Donath/Sodium/
- Size: 281 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sodium
An small, hobbyist-grade x86 operating system which uses Multiboot2
with the GRUB bootloader.
> Warning: This sytem is still in early development. Many things can
> (and probably will) go wrong.
## What is an Operating System

## Building on Windows (Release 10 & 11)
Visit [QEMU's website](https://www.qemu.org/) and install the binaries
by *Stefan Weil*.
Open a command-line and install the Docker containerization system by
running the command:
```
winget install Docker.DockerDesktop
```
To build the operating system, the following command should be run
*but* `PROJECT_PATH` should be replaced with the full, absolute path
at which the project resides.
```
docker run --rm -it -v PROJECT_PATH:/root/env sodium-buildenv
```
## Building on Debian Linux
Install Docker by running the following command as super-user:
```Bash
apt install docker qemu
```
Create the build environment container by running the following (with
super-user permissions):
```Bash
docker buildx build buildenv -t sodium-os:buildenv
```
Build the project using the newly-created container with:
```Bash
sudo docker run --rm -it -v ./:/root/env:Z sodium-buildenv
```
## Running
If no error was produced by the previous command, it now is possible
to run the operating system using:
```Bash
qemu-system-x86_64 -debugcon stdio -cdrom dist/Sodium.iso
```
You can also run the OS by using the `.iso` file directly (For example
in VirtualBox or on a flash drive).
## Folder Structure
The following is an overview of Sodium's current folder structure:
- `buildenv/`
- `docker-entrypoint.sh`
- `Dockerfile`
- `src/`
- `kernel/`
Contains all sources of the kernel and its drivers.
- `arch/i686/`
- *i686 Driver and Systems*
- `boot/i686/`
- `boot.asm`
- `multiboot.inc`
- `shutdown.asm`
- `grub/`
- `grub.cfg`
- `linker.ld`
- `dist/`
Contains the output file; the file produced by the build script.
- `Sodium.iso`
- `kernel.bin`
- `build/`
Contains intermediate (object code) files used to build the system.
- `Makefile`
- `README.md`
- `LICENSE`