ScaraOS is a 32-bit mutiboot OS kernel for IA32 (PC/AT) systems.
I wrote it to teach myself OS fundamentals and just to have a bit of fun. It already has PCI support, the beginnings of a paged memory management system, and the start of a VFS layer. It supports the basic PC/AT stuff such as timer, PIC, keyboard, floppy.
The most recent version includes a working inode and dentry cache, pre-emptive multi-tasking, demand loading and a system call interface. The only implemented system calls so far are exec(2) and exit(2). Implementations of fork(2) and others are currently pending on the next milestone, context switching to and from userspace.
Here are some key features of "ScaraOS":
· Mostly written in C
· Multiboot compliant
· Pre-emptive multi-tasking
· Paged memory management including demand loading of files, anonymous memory areas and ELF binaries.
· Virtual filesystem switch including inode and page cache
· EXT2 support
· Slab allocator
· Block I/O subsystem
· Floppy disk controller driver
· 32bit protected mode
· 8254 PIT support
· 8259A PIC support
· PCI device enumeration
· VGA text mode output
What's New in This Release: [ read full changelog ]
· This version implements a protected userspace environment and full context switching between user and kernel space.
· It implements and uses semaphores to correctly protect kernel data structures.
· It implements open/close/read/write system calls.
· It includes a /bin/cat userspace tool that can display the README file from the floppy image.
· Numerous other errors were fixed in VFS and core x86 code.