DentOS icon indicating copy to clipboard operation
DentOS copied to clipboard

Experimental Stand-alone 32-bit Kernel with Bootloader written in AT&T Assembly and Freestanding C

DentOS Kernel

My first experimental Stand-alone 32-bit Kernel with Bootloader, written in;

  • x86 AT&T Assembly
  • Freestanding C
  • Rust (Soon)

...with features;

  • 16-bit Bootloader
  • 32-bit Protected Mode
  • CPU ISR's IRQ's
  • Assembly level inline function calls
  • Primitive data types: bool, uint8_t and other sizes
  • Colorful printing
  • printf() function

In order to build the OS image file, use make os-image.bin V=1 To run the kernel on the qemu-system-x86_64, use make run To clean project build files, use make clean

SS: https://prnt.sc/mw1tiz CI: https://travis-ci.org/Dentrax/DentOS

TOOLS:

  • GCC (for native building)
  • LD (for linking Bootloader)

TODO:

  • [KERNEL] Add scanf() function

  • [KERNEL] Add getch function

  • [KERNEL] Add keyboard IO features

  • [KERNEL] Add interrupt descriptor table

  • [KERNEL] Add global descriptor table

  • [KERNEL] Add timer interrupts

  • [KERNEL] Add 64 bit support

  • [USR] Add Rust binding betweeb kernel and usr level

The DentOS Kernel is provided under: GNU GPLv3