
The Windows Update Marathon in a VM: From Windows 1.01 to XP - pionerkotik
https://www.winhistory.de/more/386/updatem.htm
======
lima
The level of backwards compatibility in Microsoft products is very impressive.

Microsoft Office 2019 can open .doc files created in Microsoft Office 97 and
upgrade them to a modern format, with zero loss (except for things like OLE
objects, which are no longer supported for security reasons). My parent's
computer has documents which haven't been touched in 20 years and they still
open just fine.

Or applications written for Windows NT that still work - unmodified! - on
Windows 10 thanks to layers of compatibility hacks. A true feat of
engineering.

If you want to read more about the horrors of maintaining APIs that are
backwards compatible with software written decades ago, I can heartily
recommend Raymond Chen's blog:
[https://devblogs.microsoft.com/oldnewthing/](https://devblogs.microsoft.com/oldnewthing/)

~~~
jplayer01
I was impressed when I upgraded an old Win7 system and Office 2007 still
worked on W10. Makes me wonder what the oldest version of Office is that would
still work. There are a lot of things to not like about Microsoft, but their
dedication to backwards compatibility is great.

~~~
fouronnes3
Reminds me of that time when they fixed a buffer overflow in the ancient
Office Equation Editor by manually patching the binary because they lost the
source code:

[https://arstechnica.com/gadgets/2017/11/microsoft-patches-
eq...](https://arstechnica.com/gadgets/2017/11/microsoft-patches-equation-
editor-flaw-without-fixing-the-source-code/)

~~~
ohlookabird
Oh that reminds me of learning some assembler by writing cracks to shareware
programs to patch away test period warnings, license key checks, etc. using a
disassembler (w32dasm I believe) on the binary executable. That was a fun
learning experience, helped a 14 year old to use software he otherwise
couldn't buy (me) and helped understanding quite a few internals of binaries.

~~~
anticensor
Some binaries are obfuscated by overlapping several routines together.

~~~
saagarjha
Oh, there's a bunch of ways you can try to make reverse engineering harder,
but I don't think these techniques are really that common for most software.

------
dx87
Cool to see this. I saw a video of someone doing it before, but I didn't want
to share it with co-workers because the person making the video used whatever
the "paint" equivalent was on that version to draw genitalia before upgrading
to the next version.

------
hs86
My last clean install of Windows was with Vista and since then I have done in-
place upgrades without much hassle. There is no hardware left anymore from the
original setup and it even survived several mainboards, switches between AMD
and Intel and the boot drive migrated from an IDE HDD to an AHCI SSD.

I believe that periodic clean installs of OSes are not necessary anymore and
every modern OS install should survive hardware changes and upgrades to newer
versions.

~~~
shifto
The thought alone of this makes me jitter. I reinstall my PC every 3-6 months
and it's always a fresh breath of air.

Probably because I know I will reinstall not too long from any point in time I
just install everything I think I need. I need to convert an IMG to ISO? Let
me just try these 5 apps and forget about them. They will be cleaned after the
fresh install anyway.

------
mikece
The screenshots documenting the process are fun but it would also be neat to
see graphs of install time per OS and how much storage and memory were in use
after completing each upgrade step. I don’t recall: could you upgrade 16-bit
DOS/Windows to 32 bit or did that require a clean install?

~~~
pilif
Depends on what you count Win95 as. It billed itself as a 32 bit OS, but it
wasn't really. However, you could update from Win 3.11 to Win95.

To go from the DOS based Windows (95, 98 and ME) to the NT based Windows
versions (Windows NT 4, Windows 2000, Windows XP) required a fresh install.

Update: Actually, I was wrong: XP could update from ME - as seen in the OP.

~~~
ChrisSD
I'm curious why you think Win95 wasn't a 32bit OS?

~~~
pmjordan
It was still possible to use "real mode" (16-bit DOS) device drivers with
Win95. [1] I believe there was a 32-bit kernel running on top of this 16-bit
foundation, but it was definitely a hybrid arrangement. User space processes
definitely ran in 32-bit "protected mode", and 16-bit legacy processes ran in
their own protected address space when run from inside Win95 - with the 32-bit
OS kernel taking the place of what would normally have been the interplay of
BIOS and DOS, handling the interrupts routinely generated by 16-bit DOS
software for making what we would now call syscalls.

I believe much of this was already in place with Windows 3.1(1)'s 386 enhanced
mode and Win32s, although from memory Windows 95 moved far more device drivers
into the 32-bit kernel. Presumably this was enabled by not having to be able
to end the windowing session and quit back to DOS without rebooting.

[1] I seem to remember CD-ROM drive controller drivers being particularly
common culprits in this regard, with virtual mode device drivers often being
unavailable, so you had to use real mode drivers in config.sys even on Win9x.
Yes, back in the day of single-, double-, and quad-speed CD-ROM drives, you
typically had an ISA card with a custom controller that then connected to the
CD-ROM drive via an "I can't believe it's not IDE" ribbon cable. Only later
did we get ATAPI and hard drives and optical drives could use the same
controller and bus. (Sound cards often had an on-board CD-ROM drive controller
and ribbon cable connector around that time.)

~~~
warp
> Presumably this was enabled by not having to be able to end the windowing
> session and quit back to DOS without rebooting.

The original "It's now safe to turn off your computer" screen after shutting
down windows 95 is actually just a dos prompt.

You cannot see it, because the computer was left in a graphics mode, but if
you can blindly type a command to switch graphics mode you're back at a normal
DOS prompt.

------
em500
OTOH, the history of Windows 10 seems to be one botched update after another.

True story, last week I tried to update Windows 10 v1803 (preinstalled) on my
dinky ASUS VivoBook E12 to v1903. The result was a seemingly endless
"Reverting changes" bootloop that I haven't gotten around to fix yet.

~~~
dejawu
Yep, I had the exact same problem with v1903. In the end I had to make an
install USB, reformat the disk and do a true reinstall (Windows claims it can
do a clean reinstall of itself but it still keeps a ton of data and doesn't
fix a broken installation)

------
romanovcode
I still remember using Windos ME as a kid and loved it because it felt more
modern than Win98. I still don't get what was so bad about it but then again
even if I would know I would have no idea.

~~~
gnode
Stability was the main issue. My personal experience is that the kernel would
crash frequently and unpredictably. If I remember correctly, this would depend
to a large extent on drivers, and so vary depending on your hardware. The
kernel and driver model design is based on the legacy Windows 9x family,
rather than Windows NT (like its successors).

Apparently, according to Wikipedia: "Although Windows 9x features memory
protection, it does not protect the first megabyte of memory from userland
applications. This area of memory contains code critical to the functioning of
the operating system, and by writing into this area of memory an application
can crash or freeze the operating system. This was a source of instability as
faulty applications could accidentally write into this region and with that
halt the operating system"

As it was aimed exclusively at home users, various features aimed at
enterprise (but often desirable to power users) were stripped out or broken.

------
jldugger
Okay, thought experiment time: how far back can you do this with Linux? I
mean, obviously with enough effort you can make Yggdrasil to modern era, but
like, without dropping into a root shell?

I think you can probably get from ubuntu's release to current. But I also
happen to know they 'supported' upgrading from Debian to warty warthog. And
I've done a few Debian OS upgrades, so that's also doable. Possibly all the
way back to 1.1 released in 1996. Can you upgrade from something else to
Debian?

~~~
ars
I've been upgrading Debian continually since around 2000 (don't remember
exactly). It's even the same disk image, migrated to various disks (using
mdadm), expanded, converted to ext3 from ext2.

But not without pain, I've almost always needed to manually intervene and fix
configuration files. So you need root shell.

------
neilobremski
I'd enjoy a timelapse video of this with a timer at the bottom and an
occasional pauses or slow-downs to show specific parts.

Fun stuff. My first thought is the time I was installing Windows 9x from
floppies and one of thirty-something were bad...

Considering how much I fresh install things, I really had no idea that you
could upgrade all the way from 1 to XP.

------
Jonnax
Is there a 32bit Windows 10? Perhaps possible to go all the way.

Would be cool to produce some files in the first Windows like a picture in
Paint 1.0 and then upgrade it again and again.

~~~
djsumdog
I did not realize there was a 32-bit version of Windows 10. Crazy. With a
standard component, 16-bit Windows applications can still run on Windows 10
32-bit:

[https://www.groovypost.com/howto/enable-16-bit-
application-s...](https://www.groovypost.com/howto/enable-16-bit-application-
support-windows-10/)

Getting 16-bit on 64-bit Windows takes a little more work:

[https://medium.com/hackernoon/win3mu-part-1-why-im-
writing-a...](https://medium.com/hackernoon/win3mu-part-1-why-im-
writing-a-16-bit-windows-emulator-2eae946c935d#.fqddlzmq6)

~~~
Crinus
For the latter here is a working VM/layer partially based on Wine:

[https://github.com/otya128/winevdm](https://github.com/otya128/winevdm)

It can be installed systemwide to get almost seamless support for 16bit
Windows apps.

------
aogl
Damn I'm old. I remember all of them :/

------
pcr910303
Am I the only one who doesn’t like the backwards-compatibility that Microsoft
Windows provides? I find it frustrating to see the operating system itself not
coherent, thinks like having multiple places for configuration (settings app
and the control panel), non-HiDPI panels that popup from various parts of the
operating system, etc.

I find it frustrating to not have an operating system that has the polish &
coherency of macOS on non-Macs, and that’s one of the biggest reasons why
these Mac people (myself included) doesn’t even consider moving out of macOS.

~~~
Wowfunhappy
We could retain the ability to launch old apps _and_ still have Settings in
one place. They don't inherently go together.

Microsoft might need to add something like a legacy control panel which only
appears if you install an old app that adds something there. Users who don't
use old apps wouldn't see it, so no harm done versus dropping support
completely. And, I don't understand why Microsoft couldn't integrate those
panels into the modern Settings UI, even if the underlying framework and
visuals were different.

~~~
pcr910303
> I could imagine you might need a legacy Control Panel that only appears if
> you install an old app that adds something to it—but anyone who doesn't use
> those legacy apps wouldn't see it.

Yeah, and that means (at least for me) non-coherency of the platform. Why
should there be two different settings on one OS, depending whether the user
installed the app it or not?

> And even then, there's no reason Microsoft couldn't add a visual update and
> even integrate the UI into Settings.

FYI: the reason Microsoft can’t remove this control panel stuff is because
some legacy apps (mostly designed for enterprise) installs DLLs that adds a
control panel item. This is one of the examples where their backwards
compatibility drags them to make a better OS.

~~~
Wowfunhappy
> Yeah, and that means (at least for me) non-coherency of the platform.

Then don't install old apps and you'll get coherency. This is much better than
outright blocking those old apps for _everyone_.

> FYI: the reason Microsoft can’t remove this control panel stuff is because
> some legacy apps (mostly designed for enterprise) installs DLLs that adds a
> control panel item

If I were Microsoft, I would remove the "Control Panel" as a program the user
can open, but keep the underlying framework. Then, if a legacy program adds a
control panel item, I'd place a shortcut to that item in modern Settings. It
might not be 100% visually perfect, but you'd get most of the way there.

If there's some technical reason Microsoft can't do that (I don't understand
how there could be—we're talking about _shortcuts_ ), at minimum the legacy
Control Panel shouldn't appear until a 3rd party item is pushed to it, and it
shouldn't contain _any_ Microsoft settings. The current situation is
completely unnecessary.

~~~
WorldMaker
> If I were Microsoft, I would remove the "Control Panel" as a program the
> user can open

They did and people got upset. It's a "who moved my cheese" backward
compatibility problem for people. People get upset if they can't find that
thing they always used and worked just fine.

For a brief while Windows 10 the legacy Control Panel was entirely removed
from Search, and there were so many complaints so they backed off and it's
searchable again. That's about the only way to find it; at this point in
Windows 10 it's not in the Start Menu, it's not File Explorer Quick Access.
People have to intentionally find the Control Panel.

People still talk about the COM GUID to the legacy Control Panel as if it were
some secret cheat code to Windows, making shortcuts to the Control Panel
because it looks familiar and powerful and/or they don't want to relearn
anything new, don't want to get used to the all the cheese that moved around
in the modern Settings app.

~~~
Wowfunhappy
I have vague memories of complaints, but I recall it being because Settings
was lacking a lot of really basic functionality at the time.

~~~
WorldMaker
I think the attitude to Settings resembles a lot of the attitude to the Office
Ribbon switch. Just about no one uses more than roughly 20% of Control
Panel/Settings, but just about everyone uses a slightly _different_ 20%, so
even just defining what's "basic functionality" is fraught with a wide variety
of subjective opinions.

------
hcarvalhoalves
The nostalgia... spent many hours of my life looking at some of those install
screens and inserting new floppy disks.

------
slowenough
This is beautiful

------
retrovm
Is MS Virtual PC really this slow? On VMWare Workstation I can install Windows
3.11 in about 7 seconds, not the 6 minutes this author is showing.

