Druid OS is a hobby operating system that we are working on in our free time. Our goal with Druid OS is to make it into a usable os with a functional shell, filesystem, dynamic memory management, ability to run other programs from the shell and a built in text editor, when that is all completed we have plans to add multi tasking user space programs and maybe a graphical shell(that maybe too far fetched)
Clone this repo with
git clone https://github.com/Xhackers7/Druid-OS.git
cd Druid-OS/
Setting up and building this project is fairly easy on debian, once in the project directory, run
chmod +x ./scripts/setup-debian.sh
./scripts/setup-debian.sh
When its done, you will have all the tools needed to test (and develop) this os depending on what you need
Building this on arch might need a little more effort, run the following command to install all the required packages
paru -S gcc make bison flex libgmp-static libmpc mpfr texinfo nasm mtools qemu-system-x86
NOTE: to install all the required packages on Arch, you need an AUR helper (the one used here is paru).
The above commands will set everything needed to build this project except a cross compiler, it is a lengthy process but all you need to do is edit scripts/cross-gcc-debian.sh
to make it use pacman and change the package names as needed, this page explains the process in detail.
After all the necessary packages are installed you're ready to dive in, once you're in the project directory you can run the os with qemu emulator by running
make run
# or
make run_floppy
Debugging is done with BOCHS emulator and can be run by
make debug
- Simple bootloader, loads the kernel in memory and jumps to it
- Flat memory model
- VGA driver
- Basic Logging system (E9 hack)
- Basic standard library
- Kernel GDT
- Interupts
- Keyboard driver
- Basic shell
- Dynamic memory allocation
- Filesystem