POSIX /
1 root mounted on /dev/hda1 in ext2 format.

A small Unix under the desktop

The GEM desktop is the face of Antler but the machinery underneath is POSIX, and it is not pretend POSIX. Processes fork and exec. Signals are delivered. Sessions and process groups exist, job control works, and when you press ctrl-C in the terminal the right thing dies.

Shell and tools

The shell is /bin/sh (ash), and the userland around it is a full coreutils set — file, text and system utilities, plus bigger residents like elvis, bc and even a BASIC. If you have used any classic Unix you already know how to drive it.

Terminals, real ones

PTYs are first-class: TERMINAL.APP runs your shell on a real pseudo-terminal with full job control. There is deliberately no local text console or recovery shell — the graphical login is the only local way in. The escape hatch is serial: init runs a getty on COM1 at 9600 8N1, so a null-modem cable (or an emulator's serial socket) gets you a login prompt from the same /bin/login and the same account policy as the graphical path. An optional ipserial service offers that same getty over a TCP connection.

Filesystems

  • ext2 root, mounted from /dev/hda1 (or /dev/mfm0p1 on MFM systems).
  • FAT12 floppies for exchanging files with DOS and with your host machine.
  • NFS client service for mounting a share over the network.

Format knowledge is kept out of the core: the fsys front end speaks VFS and delegates each on-disk format to its own server process (ext2fs, fatfs, nfs). A corrupt FAT floppy cant take the root filesystem down with it.

Login and identity

Users are real users — /etc/passwd, crypt, groups, home directories. The graphics stack and the login form run as system; gemsession is the single setuid step down to your account, and the desktop plus everything you start from it runs as you. It is a proper multi-user design even if in practice its one enthusiast at the keyboard.

APPLICATIONS GET ANTLER