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.