About

Koiz-OS is a side project I started in 2020 to create my own operating system from scratch. My initial goal was to get to user processes, which I completed in 2023.

It initially served as a project to help me better understand how operating systems works in general and is a bit of a pet project I do just for fun. It's not meant to be used in production settings. Below is a brief summary of my milestones with links to the full articles.

Milestone 1 - Bootloader

Highlights:

  • Programmed a custom bootloader to load the operating system
  • See Full Post

Milestone 2 - Building a Standard Library

Highlights:

  • Programmed a standard C library that works with my operating system
  • See Full Post

Milestone 3 - Interrupts

Highlights:

  • Added in interrupts and interrupt handlers (ISR/IRQs)
  • Added in PIC interrupts for handling the keyboard.
  • See Full Post

Milestone 4 - Physical Memory Allocation

Highlights:

  • Added memory detection.
  • Added in a physical memory allocator that handles alloc/free while respecting reserved areas of memory
  • See Full Post

Milestone 5 - Virtual Memory Allocation

Highlights:

  • Added Paging (Page Directories/Tables), TLB, and MMU support
  • Added virtual memory translations
  • See Full Post

Milestone 6 - Malloc/Free and Memory

upload in progress, 0

Highlights:

  • Added a slab allocator
  • Added malloc/free
  • Added a basic shell with two shell commands
  • See Full Post

Milestone 7 - Adding More Shell Commands

TODO

Milestone 8 - Dropping to Userspace

TODO

Milestone 9 - Processes and Scheduling

TODO