A PDP11/70 emulator running on POSIX and ESP32 systems
It is capable of running UNIX 5 upto and including UNIX 7 in multi-user mode. Since recently (April 12, 2026) it can also run BSD 2.11 UNIX in multi-user mode on an ESP32 (using DZ11 serial port multiplexer emulation). Floating point emulation is missing but that'll change eventually.
Thanks a lot to Neil Webber for his help and for his python PDP emulator (which allowed me to compare disassembly of runs). Neil's emulator can be found on github.
speed
Its speed is around 0.5% (takes almost 9 minutes to boot to single user mode) on an ESP32 and around 700-1500% on a Threadripper 1950X (boots in less than a second). Multi-user UNIX 7 requires either an ESP32 with 2 MB PSRAM or a posix system like Linux.
Kek (09c0f58) runs at 37.4% of the speed compared of open simh 4.1-0 (aea26349) - both running on the ThreadRipper 1950X (benchmark: test.c which is an adaption of this program).
how to use it
Most things can be configured via the commandline. Run "kek -h" to see a list of commandline switches.
In the console (run kek with -d), there's on-line help available by entering "help" (+ enter).
Kek can create snapshots. That way you can restart the emulated system exactly from the point you snapshotted it. Enter "ser filename" in the console/debugger for that. Afterwards kek can be (re-)started with "kek -D filename". Note: kek must be started with the -P switch for this to work (=create disk snapshots).
pictures
Running on an ESP32 connected to a real VT510 terminal.
In this photo it (old version of kek) runs the XXDP diagnostics software. It booted over the network using the NBD protocol (this is a convenience feature of the emulator).
Running on Linux (should run also on *BSD and microsoft windows systems):
Also a 'SHA2017 badge' is capable of running this emulator:
Test setup: Wemos32 with a card-reader and a serial port and a led ring (which simulates the panel):
Picture on an ESP32S3 on which BSD 2.11 is running. Only the ESP though :-) This ESP32S3 has 4.3 MB of RAM (and 8 MB flash): more than enough to run a multi-user BSD setup.
videos
Old video showing it running UNIX 5 (in debug mode):
More recent video showing it booting UNIX 7:
Another more recent video showing it booting UNIX 7 and playing chess: