/complementOS

Complement OS - A minimal operating system targeting 32-bit x86 (IA-32) architecture.

Primary LanguageC

complementOS

Complement OS - A minimal operating system targeting 32-bit x86 (IA-32) architecture.

Motivation

The main reason behind developing an OS from scratch is to grasp and practice the main concepts behind software, hardware, low-level development, assemblers, compilers, linkers, loaders, and specifically IA-32 architecture.

I believe that reinventing the wheel is beneficial in many aspects.

Roadmap

General

  • 32-bit protected mode
  • ELF support

Booting

  • Custom bootloader (No GRUB)

Drivers

  • VGA (25x80)
  • PS/2 keyboard
  • PS/2 mouse
  • Sound card
  • Network interface controller

Interrupts

  • CPU Exceptions
  • IRQs
  • Programmable Interval Timer

Memory

  • Segmentation
  • Virtual memory (with paging)
  • Dynamic allocation (malloc)

Multiprocessing

  • Processes
  • Threads
  • Scheduling

Synchronization

  • Locks

Misc

  • Shell
  • System clock
  • Custom GUI