[TUHS] Bootstrapping UNIX - how was it done
Dan Cross via TUHS
tuhs at tuhs.org
Tue Mar 24 04:51:55 AEST 2026
On Mon, Mar 23, 2026 at 1:57 PM Bakul Shah via TUHS <tuhs at tuhs.org> wrote:
> On Mar 17, 2026, at 6:03 AM, Adam Koszek via TUHS <tuhs at tuhs.org> wrote:
> > For bootstrapping, some aspects must have been easier: lights connected to registers and displayed on the dashboard. But some aspects must have been hard - after hitting some level of complexity with sizable programs, debugging things from the long log of teletype printout must have been interesting.
>
> For our V7 port to a brand new (in 1981) 68K based board, we
> had to download the kernel using XMODEM or some such protocol
> that we had added to the boot ROM. Our cross-dev environment
> was on a VAX 11/780 so we continued this way until the ported
> system was stable enough and I had a minimal ST412 driver up
> and running using programmed IO! But if the kernel crashed,
> we were back to downloading via the serial connection!
We use a serial UART to do OS bringup on our machines: a minimal
bootloader with some debugging facilities built in starts when the
machine comes out of reset (indeed, it starts from the reset vector:
no BIOS/UEFI on Oxide machines); you send it a command and it
initiates a transfer protocol, currently either ZMODEM or XMODEM. You
then send it a ramdisk imagine with a UFS filesystem on it, which it
will "mount", find the kernel in, load the kernel, and jump into.
We run the UART at 3 MBAUD, so it's quite as painful as the bad old
days of 9600 or slower, but it's still not super fun.
https://github.com/oxidecomputer/bldb
- Dan C.
More information about the TUHS
mailing list