I'm trying to boot #plan9 1e (1992). Using entirely #FreeSoftware.
It has a surprising number of ports, but for most of them the install process is a very non-trivial procedure that you run on the existing Unix. Figuring out how to run Solaris 2 sun4c or RISC/os binaries feels both out-of-scope and probably involves non-free software. Also they require multiple boxes.
But the 386/486 PC port has no install procedure; just boot this floppy!
But remember how we used to have a bunch of bootloaders and kernels that were #MSDOS programs, so that #DOS could initialize the hardware for it (eg: syslinux)? That's the #Plan9 1e process; run `b.com` from DOS, and that will load the `9dos` kernel.
And unlike Solaris 2 or RISC/os or whatever, #FreeDOS is #FreeSoftware and is easy to get running in #Qemu.
But depending on my `fdconfig.sys` I either get it in a boot-loop (IDK if from b.com or 9dos) or a kernel-panic from 9dos ("double fault"... at least it's getting out of b.com!).
Anyone have troubleshooting resources for adjusting #FreeDOS `fdconfig.sys` or #Qemu flags (or other emulators) for circa-1992 software?
I'm too young to remember config.sys, and my #RetroComputing hasn't involved much #DOS yet.
It was known to work on the "AT&T Safari", "AT&T 6386", and "Gateway 486". That probably means MS-DOS 3.2 or 4.01.
In the long-run, the easiest way to run #Plan9 1e (esp on non-PC platforms) will probably be to write a simple #GNULinux server program that serves BOOTP (pre-DHCP!) + TFTP for PXE boot, and #9P of the archive tarball. But 1e uses a much too old dialect of 9P for any existing software except for 1e itself to be able to serve it. And I don't want to try to write a server for it if I don't have a client to test with.
So getting `/sys/lib/pcdisk` to boot from FreeDOS is in the bootstrapping path.
Actually, #Plan9 4e has a program for serving the old 2e/3e protocol (9P1). And so maybe 2e has a program for serving the old 1e protocol (which I call 9P0)?
So if I can't get the 1e stand-alone PC version working, maybe I get 4e serving PXE+9P1 to boot 2e, and then I get that serving 9P0 to boot 1e?
Keeping the boot quirks of multiple versions of Plan9 straight in my head at once doesn't seem fun tho.
Actually, I think u9fs can serve both 9P2000 and 9P1. So I guess I could cut 4e out of that chain.
WAIT! 1e had /sys/src/cmd/unix/u9fs/ too! That'll serve 9P0! It'll probably take some minor modification to get it to build on a modern system, but that is another potential path.
Ugg, ret-sync is useless here. It relies on gdb `info proc mappings`, which doesn't work on remote targets. But I have already put the mappings in #Ghidra!
@lukeshu I missed this thread when you first posted it. Are you still working on it, or did you get any farther? I spent some time last year booting 2e on some SPARC systems, served by 4e on a Raspberry Pi. Happy to compare notes.
@lukeshu I’d really like to make a set of downloadable, runnable qemu images for the different editions.
@a I'm working on it less actively than I was over the holidays.
I'm more interested in scripts to build images, being a fan of "show your work" :) As far as the "Qemu" part of it, 1e's docs have a very specific list of SPARCs that it can run on, all of which are too old for Qemu, but looks doable with MAME or TME. Similarly, the MIPS port needs a MIPS Magnum 3000, but Qemu only goes down to the 4000, but looks doable with MAME. The NeXTstation port looks doable with https://sourceforge.net/projects/previous/ .
@a And I haven't looked into the emulator situation for SGI, because 1e's SGI port is CPU-server-only; non-graphical.
I'm not sure what edition it changed in, but 1e's file-server OS was a totally separate OS from the "normal" CPU-server/terminal OS. A rather hacked-up copy of the normal kernel.