POSIX /
ABOUT ANTLER
655360 bytes used in 1 system.

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.

APPLICATIONS GET ANTLER

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.

SYSTEM BOOT
10 services started in 10 stages.
Antler graphical system boot Kernel 0.1 CPU i8086 [OK] 01 DRIVERD non-video devices [OK] 02 FSYS POSIX filesystem [OK] 03 KEYSYS GEM keyboard [OK] 04 POINTERSYS GEM pointer [OK] 05 NATIVESYS native processes [OK] 06 VDISYS GEM video [OK] 07 AESSYS GEM desktop services [OK] 08 ROOT POSIX root mounted [OK] 09 POLICY startup policy complete [OK] 10 LOGIN graphical login manager
SYSTEM INFORMATION
6 facts used in 1 sheet.
Processor
Intel 8086 / 8088, real mode
Memory
640 KB conventional
Desktop
GEM AES + VDI
Core
POSIX: fork/exec, PTYs, ext2
Kernel
antler.elf, microkernel nucleus
Licence
GPL-2.0-only
TRASH