KnutOS icon indicating copy to clipboard operation
KnutOS copied to clipboard

An x86_64 hobbyist OS written in C and Assembly

KnutOS

An x86_64 hobbyist OS made for FUN and LEARNING! It is written in C and Assembly and features a monolithic kernel.


Screenshots

⤷ Silent boot

⤷ Verbose boot

⤷ Shell

⤷ Interrupt screen

⤷ Local terminal showing serial communication

Features

  • Limine bootloader
  • Stivale2 boot protocol
  • GDT
  • TSS
  • IDT & ISR's
  • Physical memory manager -> Bitmap based
  • Virtual memory manager -> 4- & 5-level paging
  • Slab allocator
  • ACPI table parsing
  • Local APIC
  • Serial communication
  • Basic framebuffer
  • Basic keyboard driver with a small shell
  • Basic kernel libraries

Future Features

  • ACPI Parser (custom or ACPICA)
  • C standard library port
  • ELF loader
  • IPC support
  • SMP
  • Double buffering
  • Compositor
  • GUI library

Dependencies

NOTE: Depending on your Linux Distribution the package names might be different (supposing you are using Linux)

  • x86_64-elf-binutils
  • x86_64-elf-gcc
  • nasm-git
  • make
  • xorriso
  • qemu

Installation

  • Install the dependencies
  • Get the repository
    • git clone https://github.com/Tix3Dev/KnutOS --recursive
    • cd KnutOS
  • Build it
    • make all
  • Run it
    • make run

Contributing

For those interested in contributing, please refer to the contributing guidelines.