[TUHS] Bootstrapping UNIX - how was it done
Bakul Shah via TUHS
tuhs at tuhs.org
Tue Mar 24 05:41:55 AEST 2026
> On Mar 23, 2026, at 11:51 AM, Dan Cross <crossd at gmail.com> wrote:
>
> 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
At a later company (1996) Jaime Da Silva added an ethernet
"console" for debugging, broadcasting on a directly connected
net. With separate netbooting this worked very well (though
the system has to at least come up to where the blocking
broadcasting console worked). You could do source level
debugging from another host by attaching gdb. This worked
very well (we could bring up 16 or so physical hosts, each
running multiple virtual hosts running BGP for testing!).
More information about the TUHS
mailing list