Ktux is an fully open-source operating system written for the Intel 80×86 architecture.  The goals for Ktux aim to provide the following features:

  • Full x86 32-bit protected mode
  • Preemptive multitasking kernel
  • Paging & virtual memory support
  • Dynamic loadable module support
  • ATA disks with basic filesystems
  • Possible GUI interface
  • Trying to stay POSIX compatible

This is by no means a comprehensive list, more of a general direction I would like to see the project headed in.  As being a Linux user, I plan on incorporating several features from GNU/Linux within Ktux.  These ideas will be solidified as the OS progresses further.

Purpose : Ktux was not written with the intention of being a full production-level operating system, it’s a “small hobby OS” mainly used for educational purposes (we’ve heard that one before havn’t we?).  If it ever matures to a significant level I would certainly be pleased but not expecting it to head in that direction at this time.

Currently, it has support for interrupt handling, virtual memory management [malloc()] and a priority-based thread framework and scheduler.  Next phase includes implementation of synchronization primitives along with more comprehensive paging code to support user-level (ring 3) threads.  Since I am not aiming for full SMP support (makes it much easier), only basic code will be needed for semaphores and mutexes.

Development environment setup docs are available here while the most recent code can be found on my latest ktux blog posting (currently a svn snapshot).