Skip to content

nuid64/kernull

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kernull

This is a personal playground for tinkering with OS kernel development. It's not meant for production or serious use; it's a space for experimenting, learning, and having fun with low-level code.

Nonetheless...

Building

For building kernull you'll need:

  • nasm assembler.
  • clang compiler.
  • lld linker.
  • make tool.
  • grub-mkrescue from the grub package.
  • An emulator, such as qemu.

Typically to check it out you want to type

make run

(there's nothing interesting you can do at the moment). All make options are:

  • make - build kernel binary.
  • make iso - above + generate kernel image.
  • make run - above + launch it in QEMU.
  • make clean - remove binary and image.
  • make clean_all - remove generated objects, binary and image.

Roadmap

To achieve usability and, as a victory gesture, compile kernull under kernull, the following must be done:

  • Boot
  • Enter 64-bit mode
  • Setup interrupts
  • Setup paging
  • Frame allocator
  • Kernel heap allocator
  • PS/2 support
  • Multitasking support
  • VFS
  • Userspace
  • Keyboard support
  • Program loading
  • Syscalls
  • Fork and execute
  • Shell

After that I can have some fun and do:

  • Symmetric multiprocessing
  • ext2 support
  • Bitmap graphics instead of VGA text mode
  • TCP/IP stack
  • USB support

...and so on.