A friend bitched to me, a particularly youthful friend, about how hard it was to create a Windows 7 based USB boot key. He was incensed that you had to use a command line utility to create an NTFS partition that was bootable on the USB drive’s partition. While he was blah blah blahing about how computers would be far better off if Microsoft had never existed because of how hard we make everything, I tuned the email out and took a trip through the wormhole.
The development of Windows 95 really was a watershed moment in computing. For the first time, an operating system was going to work alongside BIOS development to end the ritual of hardware IRQ jumper settings, arcane memory offsets, COM port conflicts and…
Wait. It’s likely some of you young’uns probably have no idea what I am talking about. Ok imagine this, every time you want to use some new application on your Apple Jesus Phone you have to solve a Rubick’s Cube, then thread the eye of a needle blindfolded, followed by drawing a per point accurate Mandelbrot fractal using only a thick tip ink quill pen and a Bounty paper towel.
Now you know what it was like to get a 9600 baud modem working under Windows 3.1.
Except it was harder.
When you bought a new hardware card for your PC, you had to physically modify tiny plastic covers over jumper pins on the card precisely such that no one card would interfere with any other card’s resource settings. Never mind trying to not slice your fingers on the razor sharp interior edges of the computer case.
This was roughly like trying to separate, through mere persuasion only, four extremely hungry fat men from reaching for the same rib on a plate of only four ribs. When two grabbed the same rib, well let’s just say the whole dinner got interrupted. Never mind the other two who mistake your bleeding fingers for ribs.
Thus was born the idea of “Plug and Play” or, as it was known before it had an easily mocked name, “soft jumper setting”.
The idea behind plug and play is that the Operating System, the computer BIOS, and the hardware cards that you installed would never need any more hard configuration than simply plugging the card in. Everything would be handled through software such that conflicts could not occur. If they did, then the OS, BIOS, and hardware card could be set through software to resolve the conflict instead of creating a situation where the entire machine could not start due to resource conflicts.
Windows 95 was the first widely available operating system that supported this type of capability. At the same time, it had to work with existing hardware set solutions. So during its development a lot of testing went into the hardware detection section of the install for the product. Essentially, when you first installed Windows 95 it would go through an investigative phase where it queried various elements of the computer both hardware set and software set and tried to understand what was on the computer so it could either use it, or prompt you for a driver that would allow the OS to use it.
The problem was, some hardware was unprepared for being jabbed in the ass and being asked who the hell they were and what they were doing.
Case in point: a particular Uninterruptable Power Supply used a serial based interface to the computer to link its software monitoring of power status to the UPS battery itself. During setup, Windows 95’s hardware detection of the serial COM port caused the UPS to think the power had been cut. If setup lasted longer than the UPS battery, then the entire setup would fail because the power would die and the computer would unexpectedly switch off.
In another case, detection during the beta had a harsher effect due to buggy hardware. A particular laptop manufacturer used a BIOS that had a unique way of responding to a hardware PnP query. When Windows 95 calmly asked the BIOS “Hi, who are you and what version are you” the BIOS put a gun to its head and replied “YOU’LL NEVER GET ME TO TELL” and would overwrite its firmware strap code with zeros, rendering the entire computer a doorstop. It actually had to be physically repaired by the manufacturer. It’s one of the few documented cases of actual computer suicide that I have ever seen.
Of course, even back then BIOS manufacturers were trying to implement OS type features. Once the FAT32 file system was introduced, in place conversion of FAT16 to FAT32 file systems became possible. BIOS manufacturers had developed “Hardware Hibernation” capability into their products, meaning that by hitting a button on the computer the BIOS, using the OS file system driver, would dump the contents of the RAM to a file on the hard drive to be read on next boot.
Great idea. Unless your BIOS couldn’t read the file system on next boot. They could write using the OS to FAT32, but on next boot couldn’t read the hiberfile. This again rendered the computer essentially a doorstop because you couldn’t point the BIOS bootstrap to anywhere else.
I faded back to the rant email about how its all so very hard today, because of us.
I hit reply and simply said “Get back to me when you have a fat man gnawing on your fingers”