TempleOS

Unofficial mirror of God's chosen operating system.

Public domain.

Enterprise Edition additions

What was added (all under TempleOSCD/):

  • Adam/Net/ - Ethernet, ARP, IPv4, ICMP, UDP, TCP, DHCP, DNS, HTTP client, BSD-style sockets
  • Adam/HwSupp/ - PCI helpers and the AMD PCnet-PCI II driver
  • Adam/MakeAdam.HC - loads the stack at boot (#include "Net/MakeNet")
  • Once.HC - runs Netcfg (DHCP) at startup when a NIC is found
  • Demo/Network/ - TCP/UDP echo client/server demos
  • snail.py - host side of the Snail serial tunnel

Building and running on macOS

TempleOS can only be compiled by TempleOS, so the build boots a stock TempleOS live CD in QEMU, attaches a FAT32 disk with TempleOSCD/ and runs tools/MakeISO.HC there (kernel compile + RedSeaISO).

brew install qemu
tools/build_iso_mac.py [path/to/TempleOS.ISO]   # default: ../templeos/TempleOS.ISO
tools/run_mac.sh                                 # boots out/TempleOSEE.ISO with a PCnet NIC

Like the official distro, files are stored compressed (.Z) in the ISO; some TempleOS code looks for the .Z names explicitly (FileFind(BIBLE_FILENAME)), and with uncompressed files e.g. Bible passages came out empty.

The build takes about 3 minutes. It types commands into the VM on a timer, so on a slow machine increase BOOT_WAIT in the script.

Running with networking

QEMU: -netdev user,id=u1 -device pcnet,netdev=u1. VirtualBox: adapter type PCnet-PCI II, attached to NAT.

After boot:

Netcfg;                                      // DHCP (runs automatically from Once.HC)
Host("templeos.org");                        // DNS lookup