22 ms·
The Windows Update Marathon in a VM: From Windows 1.01 to XP
- mikece 7y agoThe 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 7y agoDepends 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 7y agoI'm curious why you think Win95 wasn't a 32bit OS?
- skissane 7y agoIIRC, the accurate statement is that Win95 wasn't pure 32-bit. In Win9x/Me, the core of the OS (the VMM) is 32-bit (which was true even in Windows 3.x in 386 Enhanced mode.) But, some other parts of the OS remained 16-bit code, and 32-bit apps will sometimes end up invoking 16-bit code via thunks when calling OS APIs. By contrast, NT-based Windows, a 32-bit app will never invoke any 16-bit code. The only scenario in which 16-bit code would ever run would be when running a legacy 16-bit app. (Someone please correct me if I'm remembering this wrong.)
- ChrisSD 7y agoHm, if you were using 32bit applications and 32bit drivers then you wouldn't touch 16bit code (unless of course you did so explicitly). However there were commonly used built-in dos utilities that were 16bit so if you called out to any of those then obviously you would invoke 16bit code.
- skissane 7y agoOne other difference: on Win9x/Me, it was possible for a 32-bit process to load a 16-bit DLL. It was a bit convoluted, in that you needed to create a 32-bit companion DLL which mediated between the 32-bit process and the 16-bit DLL, but it was supported – known as "flat thunking". By contrast, Windows NT doesn't support 32-bit processes loading 16-bit DLLs, although it does support the reverse (16-bit processes loading 32-bit DLLs – "general thunking") http://rgmroman.narod.ru/flthunk.htm http://rgmroman.narod.ru/flthunk.htm I'm not sure how widely this facility, of loading 16-bit DLLs into 32-bit processes, was used. I thought, Microsoft actually used it internally in implementing parts of Win95, but I could be misremembering that.
- pmjordan 7y agoIt 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.)
- ChrisSD 7y agoI agree with most of what you said except for the statement that "there was a 32-bit kernel running on top of this 16-bit foundation". The 32-bit kernel didn't run on top of 16-bit anything. If anything it ran on top of the 32-bit VMM (virtual machine manager), as did the DOS compatibility layer.
- warp 7y ago> 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.
- vwuon 7y agohttps://devblogs.microsoft.com/oldnewthing/20071224-00/?p=24063 https://devblogs.microsoft.com/oldnewthing/20071224-00/?p=24...
- dspillett 7y agoIt wasn't entirely 32bit. The core certainly was, but large chunks of the UI portions were still 16-bit hence for example there was a limit of 16,386 GDI objects across the whole OS so you would get resource depletion errors with many programs running especially if one or more of them "leaked" GDI handles. 16,386 comes from the fact that while they were four-byte (32-bit) values they were stared in a single 64Kbyte byte block of memory (the largest block byte-wise addressable by a single 16-bit register).
- ChrisSD 7y agoSure there were still some data structures that were limited by being designed in the old 16bit era. Fun fact: even today kernel "Unicode strings" are limited to a length that can be held in a signed 16bit value. Fortunately 32,767 is enough for anybody so it was never changed.
- dspillett 7y ago> Sure there were still some data structure IIRC it was more than just data structures and that other chunks of GDI were 16-bit, in part due to problems with 32-bit driver support for graphics hardware at the time.
- philwelch 7y agoTotal tangent, but this reminds me of the old Windows 95 joke: 32-bit extensions and a graphical shell for a 16-bit patch for an 8-bit operating system originally coded for a 4-bit microprocessor by a 2-bit company that can’t stand 1 bit of competition.
- lima 7y agoThe 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 7y agoI 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.
- lima 7y agoHas its downsides, though - one of the reasons Active Directory has been (and still is) so insecure out of the box is backwards compatibility with an ecosystem of shitty third party vendor solutions. Sometimes, change is good, even if it's painful in the short term.
- jplayer01 7y agoI'm sure. I still much prefer Microsoft's model over Apple's, even if there are some drawbacks.
- fouronnes3 7y agoReminds 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-equation-editor-flaw-without-fixing-the-source-code/ https://arstechnica.com/gadgets/2017/11/microsoft-patches-eq...
- Jonnax 7y agoIs 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.
- 0x4a42 7y ago>Is there a 32bit Windows 10? Yes, all Windows 10 editions are availables in 32 or 64bit.
- ahje 7y agoYes, and yes. I saw some video of it once, so it can be done.
- shawnz 7y agoHere you go: https://youtu.be/GgylNXTZxmA https://youtu.be/GgylNXTZxmA
- leeter 7y agoAs much as Microsoft would love to kill 32bit windows, 16bit line of business apps are sadly still a thing in some large companies. Companies that may not have the source of or cannot for a variety of reasons port the code to 32bit or 64bit. Because 32bit windows can still run 16bit apps it will continue to live on in the consumer and end user space. But as far as I know windows server 32bit does exist but is not licensed such that it can be used in production.
- djsumdog 7y agoI 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-support-windows-10/ https://www.groovypost.com/howto/enable-16-bit-application-s... Getting 16-bit on 64-bit Windows takes a little more work: https://medium.com/hackernoon/win3mu-part-1-why-im-writing-a-16-bit-windows-emulator-2eae946c935d#.fqddlzmq6 https://medium.com/hackernoon/win3mu-part-1-why-im-writing-a...
- 7y ago
- slowenough 7y agoThis is beautiful
- romanovcode 7y agoI 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 7y agoStability 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.
- gandalfian 7y agoA bunch of gadgets and stuff that worked fine with 95 and 98 mysteriously broke with ME. Because it was a dead end with a short life there was never any incentive to support or fix it. And what was the point of breaking everything for a year?
- aasasd 7y agoResetting the machine two times a day got old after a while.
- mike22 7y agoI remember first being able to use USB mass storage devices (like a Lexar Jumpdrive with capacity measured in tens of MBs) with ME on the family computer. Then I learned that 98 SE had such support...but my HP Pavilion 8530 (with an AMD K6 CPU!!!) had the original 98. Copying files between the two was still limited to Zip 100s. Slightly related, apparently MSFT put out an update for 95 that included rudimentary USB support.
- hs86 7y agoMy 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.
- kccqzy 7y agoI totally agree. Periodic clean installation of OS for your personal computers is unnecessary and only creates hassle. I've upgraded from Leopard to Mojave without problem, with several different computers. Servers, though, are a completely different story. Servers are like cattle, but personal computers are like pets.
- shifto 7y agoThe 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.
- em500 7y agoOTOH, 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.
- 0xffff2 7y agoI had a similar issue one my Microsoft Surface a while ago. After several months of completely failing to install updates, it finally succeeded last month for reasons I can't figure out. The Surface didn't get much use anyway when this started, so I wasn't really interested in investing a lot of time if fixing it, but it's really amazing to me that Microsoft can't even get Windows 10 updates right one their own hardware.
- AnIdiotOnTheNet 7y agoYes, it is true, Microsoft has not taken good care of Windows in recent years.
- dejawu 7y agoYep, 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)
- shpongled 7y agoI can't update to 1903 either. Continuously tells me that my PC can't run Windows 10 because they can't access the system reserved partition. It's going to take a manual reinstall, so I've been putting it off.
- skyyler 7y agoI don't think your experience is very common. Deploying Windows 10 to users from Windows 7 has been a lot less hassle than XP to 7 in my environments, and I haven't heard different stories from other admins.
- dx87 7y agoCool 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.
- pcr910303 7y agoAm 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 7y agoWe 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 7y ago> 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 7y ago> 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.
- retrovm 7y agoIs 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.
- neilobremski 7y agoI'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.
- hcarvalhoalves 7y agoThe nostalgia... spent many hours of my life looking at some of those install screens and inserting new floppy disks.
- jldugger 7y agoOkay, 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 7y agoI'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.
- aogl 7y agoDamn I'm old. I remember all of them :/