MicroEmpix

MicroEmpix is the microkernel (much nearer to an exokernel) version of Empix, an operating system (OS) developed at the Computing Systems Laboratory (CSLab) of the Electrical & Computer Engineering department at the National Technical University of Athens.

Empix began in the late 1980's as the laboratory's effort to write a small Unix-like modern multitasking OS, intended for educational use. Borrowing most of its basic characteristics (file system, binary format, shell) from other popular OSes of the time (Xinu, Minix, DOS). Empix is quite small (about 10,000 lines of code) and supports Intel x86 processors, in the IBM Personal Computers (PC) XT (8088), and AT (80286) architectures, floppy disks and hard disk drives (with the File Allocation Table (FAT) 16 limits), and Enhanced Graphics Adapter (EGA) graphics (80x25 color terminal) and the serial ports. It has a shell with some basic commands, and the ability to execute multiple processes.

MicroEmpix is far different. It's about 1,600 lines of code (over which about 1,000 devoted to serial port control), and it's a microkernel, meaning that it creates and runs processes in kernel-space, with no distinction between process-space and kernel space. What the kernel sees, the process sees and vice versa. No system calls occur to require a system call dispatcher or a similar mechanism. Kernel functions are inherent to the processes created, and there is but one user.