Skip to content

tricky-ninja/Druid-OS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Druid OS

Overview

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)

Building

Clone this repo with

git clone https://github.com/Xhackers7/Druid-OS.git
cd Druid-OS/

Building dependencies

Debian or debian based(Ubuntu, Zorin, Mint, etc)

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

Arch or arch based

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.

Running/Debugging

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

Features

Current

  • Simple bootloader, loads the kernel in memory and jumps to it
  • Flat memory model
  • VGA driver
  • Basic Logging system (E9 hack)
  • Basic standard library

In development

  • Kernel GDT
  • Interupts
  • Keyboard driver
  • Basic shell
  • Dynamic memory allocation
  • Filesystem

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published