An open API service indexing awesome lists of open source software.

https://github.com/dentrax/dentos

Experimental Stand-alone 32-bit Kernel with Bootloader written in AT&T Assembly and Freestanding C
https://github.com/dentrax/dentos

assembly c c99 kernel operating-system os osdev standalone x86-os

Last synced: 14 days ago
JSON representation

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

Awesome Lists containing this project

README

        

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