I was pretty amazed to see it even get this far. Credit to Steve Troughton Smith for his patched BootX, which gets the boot process this far. It’ll actually start the NeXTSTEP style install, but the keyboard won’t work either USB or ADB. Oh well.
One nice thing is that now you can boot off the CD-ROM. And you can boot Solaris 2.6 directly into single user mode to format and label the disk. It’s very convenient. All you need here is
And from there you can either kick off the disk partitioning, or the installer will boot up.
And now to the graphical welcome screen!
And then off to the ‘graphical’ installer. Yes, it’s not that graphical at all. Like before, it’s important that you don’t let it reboot on completion, you have to make changes to the system so it’ll boot up correctly, and make changes to the network config. At least in graphical mode vi works.
It is absolutely critical that you make this change or the disk will not boot at all.
# cat >> system
And you will want a default route…
# cat > defaultrouter
Then in the file /etc/nsswitch.conf change the following:
hosts: files dns
Then to ‘fix’ up your /etc/resolv.conf
# cat > resolv.conf
And then I like to add the following hosts to speed up telnet…
And then hit Control+D and it’ll reboot back to the PROM. Now all you have to type in the PROM monitor is:
And in a minute you’ll be at the login screen.
I went ahead with CDE, and over on archive.org the old SimCity for UNIX versions are over there. One nice thing about being able to use CD-ROM’s is that Qemu can finally auto-mount the disk images. It’s great.
There is no license for SimCity, and after 5 minutes the city goes into a ‘meltdown’ mode. It’s a shame that back in the day the upstart x86 Linux was largely ignored by the UNIX market. But Qemu has come quite a bit where you can run some of this proprietary VAR software.
As you may or not be aware of, Microsoft hit it big as a computer languages company, before they added operating systems into it’s portfolio. And for some weird reason after the whole OS/2 divorce thing, someone decided that everything that had been painfully learned in the earlier eras should just be expunged from history. Which is a real shame to anyone interested in Basic, Fortran, Pascal, C and MASM. Years ago I had gone through the steps of extracting the text the only way I could figure out easily, by writing a simple TSR that would dump the contents of the text video buffer, and write it to a file, then press the page down key, and keep repeating the process. The end result being that I had then dumped the MSPL aka the Microsoft Programmer’s Library. I had put the text into an archive, aptly named Microsoft_Programmers_Library.7z, and pretty much used grep whenever I wanted any information, and left it at that..
One thing that is annoying is that information on CD from the late 1980’s seems to be darned near impossible to find. I know that each generation of machines until about 2005 was exponentially larger than the previous one (post 2007 we hit the iThing world, along with most machines being ‘good enough’ for day to day usage). I know this ad may seem insane, but Microsoft really was trying to push people to CD distributions. As we all know that internet thing didn’t quite tickle their fancy. Did they ever put resources like this online? Like on BIX or Compuserve? It seems like an ideal resource. But I was a kid, and didn’t have that kind of money.
So in the interest of a bad idea, here is MSPL, aka qemu/curses in action.
Well as an addendum I thought it’d be cool to put MSPL online, via shellinabox. First off I needed a 5MB MS-DOS disk, basically enough MS-DOS too boot up, run smartdrive, idle and the CD-ROM driver, along with the minimal MSPL install. And to button it up, I added a reboot.com from the autoexec, so when you exit it’ll reboot the VM. Great.
The reboot command was input via debug, as it’ll let you assemble code directly. Although it isn’t a MACRO assembler, so you have to know exactly what you are doing.
XOR AX, AX
(return on a line by itself)
And with that saved, now I have to setup Qemu. Since I’m taking the shellinabox approach that means I need something text mode, and I was thinking this was light weight. Qemu has a curses output so that’ll work. I set it up to use qcow2 and a backing store image so that way every forked user doesn’t eat 5MB of disk space, it’s more like 100kb.
So it’ll find numerical directories that are at least 30 minutes old, kill them and remove their directory. Probably very dangerous to run, but it’s isolated so Im not too worried. Then just have root add that script to it’s crontab, and run it every minute, and it’ll kill the old stuff hanging around.
I’ll add a video later on how to use MSPL via this setup. And maybe I’ll rig something to have RDP access as well, depending on how I’m feeling.
With the textmode setup complete, it’s time to do the graphical setup of Windows NT 4.0
You can use any name/org
Select how many licenses you have for your NT Server.
Give the server a name
I’m not going to build a domain, so a stand alone server is fine.
You can give the Administrator account a password if you so desire.
I don’t need any emergency repair disk, as this server is the epitome of disposable.
I added all the components. Again for this test it really doesn’t matter.
Now for the fun part, we are going to configure the networking.
I’m sticking to ‘wired’ networking. I’ll save RAS for another lifetime.
Everyone wants to be a webserver. Sure why not.
You can either manually select a NIC, or just let it auto-detect. We are going to auto-detect it though.
And it’ll correctly identify the AMD PCNet card.
I selected all the protocols available. I didn’t bother adding other ones like AppleTalk.
It’ll prompt for the media type and duplex. The card isn’t real and it’ll work fine no matter what. I just leave the options alone.
Our network doesn’t have any DHCP server. Since we are plugged into a simple hub. DHCP requests will fail. Let’s give it a static address. For Advanced people, yes you could wireshark on the wire to observe the DHCP. We will touch on how to do that later, as I just want to get NT installed .
There is no need for a gateway.
We don’t have any bindings that need adjusting, so you can just hit Next
And Next again
Again, no domain, so run in workgroup mode.
Finish, although it’s far from over.
IIS components to install. I just hit OK for the defaults.
Confirm the creation of the directory
And the child directories
And creating the IIS child directories
Gopher isn’t happy without a domain name, but I don’t care.
Select your timezone. Or don’t. This is from 1996, so many of the timezones are no-longer correct. Just as DST has changed so many times. But it really doesn’t matter yet again.
The display adapter is SVGA compatible.
Move the resolution slider to 800×600
Then hit OK. It’ll want to test the resolution
Everything looks good
YES I saw the bitmap
OK to accept the display at 800×600
Files will finally start to copy
And now we can finally restart are computer.
By default the NT Loader will wait for 30 seconds. You can hit enter to get it to load right away or wait.
With the NT template ready we will be prompted to give this project a name.
So I called this one ‘what-is-a-vlan’ sticking with the theme.
Now we can drag components out. I selected the NT template that I’ve created, and dragged it out to the design pane. Now we have a computer!
I then selected a simple Ethernet hub, to begin verifying that our configuration is working. Just drag it out to the toplogy pane.
Now for the fun part, we are going to connect the Windows NT VM to the Hub. Right click on the Qemu VM, and it’s available Ethernet interfaces will pop up. It only has one, so select Ethernet 0.
Now you can select the Hub to complete the connection. Hubs repeat every packet they receive, and don’t change anything. They offer zero intelligence, and have no way to save you from yourself, if you do anything stupid (see creating a loop). Every packet that comes into a hub is sent to every port going out. They don’t care about protocols, or anything they just simply repeat.
We are now going to configure a QEMU template for Windows NT. I’m going with Windows NT as its pretty resource low, has TCP/IP and other protocols like IPX/SPX which can be routed and NetBEUI which has to be bridged.
We are going to use the Qemu option
Although we do get this warning, it really doesn’t matter. NT runs fine.
Give the machine a name
The default 256MB of RAM is more than enough.
Set the console to VNC, as NT is graphical
I set it to use the included qemu-2.4.0’s Qcow2 image format for the virtual hard disk
The default options are fine.
I’m not going to try to build anything that sophisticated, so 500MB is more than enough for NT 4.0 . If you do want something more involved 2GB is the effective limit for a boot disk for NT 4.0 SP1
The default name is fine too.
We do however need to make some changes. The network card needs to be the AMD PCnet version, and we need to add an additional flag to Qemu to restrict the CPU functionality to a 486 so that NT will install without any issues.
So the networking tab will let you change the type. AMD PCNet is the one that is supported out of the box, and verified working!
On the Advanced settings tab, is where you can add the -cpu 486 flag, as indicated above.
On the CD/DVD tab, you will want to point it to an ISO of Windows NT. It doesn’t matter if it’s Workstation, Server, Enterprise, Terminal Server. They all install the same.
It will prompt you if you want to copy the ISO into the default images directory. It really doesn’t matter one way or the other.
So it’s always a fun time for me to push my old project Ancient Linux on Windows. And what makes this so special? Well it’s a cross compiler for the ancient Linux kernels, along with source to the kernels so you can easily edit, compile and run early Linux from Windows!
As always the kernels I have built and done super basic testing on are:
All of these are a.out kernels, like things were back in the old days. You can edit stuff in notepad if you so wish, or any other editor. A MSYS environment is included, so you can just type in ‘make’ and a kernel can be built, and it also can be tested in the included Qemu. I’ve updated a few things, first with better environment variables, and only tested on Windows 10. Although building a standalone linux EXE still requires a bit of work, it isn’t my goal here as this whole thing is instead geared around building kernels from source. I included bison in this build, so more of GCC is generated on the host. Not that I think it matters too much, although it ended up being an issue doing DooM on GCC 1.39.
So for people who want to relive the good old bad days of Linux, and want to do so from the comfort of Windows, this is your chance!