Antler
Antler is an operating system for the 8086. Not a DOS shell, not a toy bootloader — a whole OS with a GEM desktop on top and a POSIX core underneath, built to run on real IBM PC/XT-class machines with 640K of RAM and no protected mode, no MMU, no FPU. It also runs happily under MartyPC, 86Box and QEMU.
You boot it, a graphical login form comes up, you type your user name and password, and you land on a GEM desktop with windows, drop-down menus, desk accessories and a suite of native applications. Underneath that desktop there are real processes, a real ext2 root filesystem, PTYs, and a shell — the whole thing looks like 1986 but behaves like a small Unix.
The project was known as Gemos for a while; it is now called Antler, and the kernel binary has always been antler.elf. If you spot the old name in a screenshot that's why.
How it is put together
Antler is microkernel shaped. The privileged core (the nucleus, antler.elf) holds the scheduler, IPC, traps, memory policy and the POSIX syscall handlers — and very little else. Everything you would normally expect inside a kernel runs as a seperate named service process in userland:
- vdisys — GEM VDI: owns the video adapter, drawing, fonts and the cursor.
- aessys — GEM AES: windows, menus, objects, events, the desktop protocol.
- fsys — the VFS front end, delegating formats to ext2fs, fatfs and nfs.
- driverd — device manager for the non-video hardware.
- keysys / pointersys / sersys — keyboard, mouse and serial ports.
- netsys — the TCP/IP stack, plus ipserial, ramdisk and nativesys.
Each service is its own ELF binary talking native IPC across the kernel boundary. On an 8086 that discipline is not free, so a lot of the fun in this project is making a message-passing desktop enviroment feel quick on a 4.77 MHz machine.
If you grew up on an Atari ST or a GEM-era PC this will all look very familiar. That is entirely the point.