FreeNOS is an experimental microkernel operating system for learning purposes. The system is very experimental, yet it currently supports virtual memory, simple task scheduling, and interprocess communication (IPC). It currently contains support for a few devices, including VGA, keyboard, i8250 serial, ATA drives, and PCI controllers. FreeNOS has an experimental implementation of several filesystems, such as the virtual file system, procfs, tmpfs, linnfs, and ext2fs. Current application libraries include libposix, libc, libteken (terminal emulation), and libexec (executable formats). All source code has been documented with Doxygen tags. It has been tested on recent versions of Qemu, VMWare, VirtualBox, Bochs, and bare hardware.