Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Windows IT

After 30 Years, We Finally Know Why Windows 95's Installer Juggled Three Operating Systems 80

In a technical blog post, Microsoft veteran Raymond Chen has explained why Windows 95's installation process required users to pass through three different operating systems -- MS-DOS, Windows 3.1, and Windows 95. The design choice stemmed from the need to support upgrades from multiple starting points while maintaining a graphical user interface throughout the process.

Rather than creating separate installers for MS-DOS, Windows 3.1, and Windows 95 users, developers opted for a unified approach using three chained setup programs. The process began with installing a minimal version of Windows 3.1 when starting from MS-DOS, followed by a 16-bit Windows application that handled core installation tasks, and concluded with a 32-bit Windows 95 program for final configuration steps.
This discussion has been archived. No new comments can be posted.

After 30 Years, We Finally Know Why Windows 95's Installer Juggled Three Operating Systems

Comments Filter:
  • by Gavino ( 560149 ) on Tuesday November 19, 2024 @09:10AM (#64957041)
    Windows 95 - you make a grown man cry.
  • Windows 3.1 (Score:5, Informative)

    by vbdasc ( 146051 ) on Tuesday November 19, 2024 @09:19AM (#64957065)

    is not an operating system.

    • Re:Windows 3.1 (Score:5, Interesting)

      by DarkOx ( 621550 ) on Tuesday November 19, 2024 @09:25AM (#64957083) Journal

      arguably when running in 386 mode it was.

    • So what is it?
      • Re: (Score:2, Interesting)

        by AmiMoJo ( 196126 )

        You could argue it is a shell that sits on top of MS-DOS to provide a GUI. It's a bit like how Android sits on top of Linux, and like Android it is an OS because it provides a lot of OS features that supplement or replace the underlying DOS.

        • Re:Windows 3.1 (Score:5, Informative)

          by _merlin ( 160982 ) on Tuesday November 19, 2024 @10:50AM (#64957407) Homepage Journal

          In 386 mode, it virtualises the underlying DOS and only calls out to it occasionally for things like accessing storage devices that it doesn't have a VxD for. Windows 3.1 in 386 mode is more like an OS that uses DOS as a fancy bootloader. Novell NetWare used DOS as a bootloader, too.

          • by narcc ( 412956 )

            It's been a while, but I remember logging in to NetWare and launching Windows 3.1 from OS/2 Warp. I can't for the life of me remember why OS/2 was in the mix.

          • It's very different with NetWare. In Windows
            3.1, any filesystem call gets propagated all the way down to DOS for handling. That's right, Windows 3.1 can't even open files without DOS' help (Windows for Workgroups 3.11 fixes this tbh). How people are calling it an OS is beyond me.

            OTOH NetWare , once loaded, never calls DOS. Same with Linux, when loaded from DOS via LOADLIN.

          • by tlhIngan ( 30335 )

            In 386 mode, it virtualises the underlying DOS and only calls out to it occasionally for things like accessing storage devices that it doesn't have a VxD for. Windows 3.1 in 386 mode is more like an OS that uses DOS as a fancy bootloader. Novell NetWare used DOS as a bootloader, too.

            And this is where Windows got into anti-trust trouble.

            When you started Windows 3.x in 386 mode, Windows "sucks the brains" of DOS - that is, it pokes inside private DOS data structures and extracts information like the list of o

          • Right, a "bootloader". Because when it failed... it returned to a DOS prompt.

            • by _merlin ( 160982 )

              when it failed... it returned to a DOS prompt

              Not if it was running in 386 mode. If Windows running in 386 mode crashed, the virtualised DOS would be in an inconsistent state, and it wouldn't be able to return you to the DOS prompt. You had to Ctrl+Alt+Del out of a Windows/386 crash.

      • by drnb ( 2434720 ) on Tuesday November 19, 2024 @11:05AM (#64957465)

        So what is it?

        Look to Microsoft's preview vision of an upgrade path for MS-DOS. It was OS/2 1.x, another text environment, with an optional GUI, Presentation Manager. Windows was originally a comparable GUI for MS-DOS. Just a temporary stepping stone on the way to OS/2 plus Presentation manager. From the developers perspective Windows had a nearly identical API as Presentation Manager. Porting from Windows to Presentation Manager was quite easy.

        So for early adopter MS-DOS users they could just go straight to OS/2 plus Presentation Manager and all the 3rd party apps.
        For the ladder MS-DOS users they could add Windows to DOS, start using 3rd party GUI apps, then in the future migrate to OS/2 plus Presentation Manager and find their familiar apps there too. Windows was to be a bridge from DOS to OS/2 plus Presentation Manager. As Win95 was become a bridge from MS-DOS plus Windows to WinNT.

        Halfway through this plan Microsoft noticed how viable Windows was and decided to divorce their partner IBM. Windows would now be their GUI based operating system. The OS/2 NT project (the architecture portable OS/2 3.0) was renamed Windows NT. Win95 was created to be a bridge to WinNT.

      • A really fancy menu system and graphics library.

        All the actual operating of the system was still being done by DOS and config.sys drivers underneath, which didn't require Windows at all.

    • by Zak3056 ( 69287 ) on Tuesday November 19, 2024 @10:33AM (#64957333) Journal

      Windows: a 64-bit bolt on to a set of 32-bit extensions of a 16-bit shell for an 8-bit operating system written for a 4-bit computer by a two bit company that can't stand one bit of competition.

      • Windows: a 64-bit bolt on to a set of 32-bit extensions of a 16-bit shell for an 8-bit operating system written for a 4-bit computer by a two bit company that can't stand one bit of competition.

        Well, sort of, at least for Win9x, minus the 64-bit.

        WinNT, starting life as OS/2 NT, was a completely clean, architecture portable OS. It was simultaneously developed on MIPS and Intel to ensure portability. Its second major release, WinNT 4, ran on MIPS, Intel, PowerPC, and Alpha. And the market said we don't really care about anything other than the Intel version. So non-Intel architectures were resigned to internal use at Microsoft to ensure code remained architecture neutral. At some point ARM became

        • by Zak3056 ( 69287 )

          I'm aware of the history, I've just been telling that joke (which I do not claim to have written) for +/-30 years and just made it longer (IIRC, the first time I heard it it started at 16-bit).

      • There is nothing 4-bit in the genealogy tree of DOS, Windows and Intel x86 CPUs, however. Intel made some 4-bit CPUs, but they were a dead end, unrelated to x86 stuff.

        • by tlhIngan ( 30335 )

          There is nothing 4-bit in the genealogy tree of DOS, Windows and Intel x86 CPUs, however. Intel made some 4-bit CPUs, but they were a dead end, unrelated to x86 stuff.

          Well, in the geneology of Intel CPUs, you had the 4004, which was a 4 bit CPU. That begat the 8008, which was an 8 bit CPU. Which begat the 8080 which fixed a lot of things about the 8008 and which may be actually seen as a CPU. The 8080 was really popular, and Intel worked on the 8086, which was a 16-bit CPU to complement the 8-bit 8080.

          The a

          • There is no such thing as "4004/8008 architecture", and the 4004 didn't beget the 8008. In fact, 4004 and 8008 are two completely different designs, a fact that can easily be verified by checking the datasheets. The 4004 was mostly designed by a Japanese calculator company, while the 8008 was designed by Datapoint Corp., a firm specialized in intelligent terminals. The 4004 was basically a dead end, although it had one descendant, the 4040, while the 8008 evolved into 8080, which is the spiritual ancestor o

    • Emacs is my favorite OS. The text editor is a bit weak, but overall a pretty good OS.
    • by sosume ( 680416 )

      People don't appreciate how good it was for the time. It worked on 16-bit systems such as the 80286 at 5 mhz with only 1 megabyte of ram and it had multitasking (although cooperative) and provided the win16 api. I'd call that a proper OS.

    • by gweihir ( 88907 )

      One could argue that MS-DOS and Windows 95 are not either. Unless you allow crappy toys to count, that is.

  • by awwshit ( 6214476 ) on Tuesday November 19, 2024 @09:27AM (#64957093)

    I once installed Windows95 from 25 floppy disks. It was painful.

    • Re:floppies (Score:5, Funny)

      by qbast ( 1265706 ) on Tuesday November 19, 2024 @09:35AM (#64957121)
      The fun part is that 20th disk has errors.
    • by pcaylor ( 648195 )

      25 floppies? Was there a 720k floppy version of Windows 95? I only ever used (way, way too often) the 13 floppy HD version.

      • If it's a later version with IE4 I could see taking 24 floppies.
      • by drnb ( 2434720 )

        25 floppies? Was there a 720k floppy version of Windows 95? I only ever used (way, way too often) the 13 floppy HD version.

        It was the Dell version, the extra 12 floppies had all the "convenient" preinstalled Dell apps and 3rd party trial software.

      • by nbvb ( 32836 )

        Not the release, but I remember the Chicago betas coming on what seemed like infinite 3.5" floppies.

        Still not as many as Warp 3, though.

      • I'm having trouble finding a reference, definitely 25 floppies.

        Here is someone in the comments saying it was an upgrade version that had 25, but no source:
        https://superuser.com/question... [superuser.com]

      • by Torodung ( 31985 )

        OSR2b had 29 floppies (including the boot disk). I just checked it out in my archives. And it was on those weird-ass 1.62MB floppies.

    • by drnb ( 2434720 )

      I once installed Windows95 from 25 floppy disks. It was painful.

      Yeah, but then you had a lifetime supply of blank floppies a year later when you got Win95 plus Service Pack on CD-ROM. :-)

    • I once installed Windows95 from 25 floppy disks. It was painful.

      It was a rite of passage. Wear it with pride, and tell your kids "Psssshaw, you and your online installations. In MY day, we installed the OS from 25 floppies, uphill both ways in the snow. And we were grateful for it!"

    • That's nothing. I first had to MAKE my own 25 installation floppy disks for the computer I purchased before I could do a reinstall. Those cheap bastards at Compaq didn't want to include them.
  • Many argued at the time, and the article misleads, that Windows 95 was an app. IMHO, it was. It had more memory leaks that could be tolerated, leading to emblematic COMDEX and Windows World demo gaffes.

    The OS/2 - Windows divorce that lead to Windows NT, finally rid itself of loading an actual Windows kernel instead of an app. NT 3.51 was the firsts table example of this. It blew up easily, anyway. OS/2 then became used for reliability, itself a kernel, for apps like voicemail servers and "high reliability"

    • At Windows NT 4.0, Microsoft had shed much of the problems, but one remained that was a show-stopper: User as root. Until Windows XPSP2, user was root and WinXP was not only exploitable, but as stable as an Indonesian volcano.

      You provably do not know what you are talking about.

      Users did not have to be administrators even in NT 3.5[1], let alone 4.0.

      The Windows legacy is fraught with bad decisions.

      Your comment is fraught with inaccuracies.

      • Users didn't have to be admin back in XP, but in practice everyone used it as such and most apps only worked properly when running with Admin rights. A huge part of Windows Vista was about moving away from running most apps as admin, which paved the way for a reasonably smooth Windows 7 app and driver experience.
      • You're incorrect, but let me clarify.

        User had root authority. User apps had root. Download something evil, and it ran root.

        I said nothing about administration.

        User-invoked apps had root. Only after Windows XP SP2 did Microsoft distance user mode from the kernel.

        • by DarkOx ( 621550 )

          No you are talking nonsense. All they way back to NT 3 there was system, Administrators, and users. There were various additional permissions that could be delegated to users. Things like NTFS and the registry had ACL/DACLS that could be assigned to objects within them and associated with specific users.

          If you were/are an Administrator on those machines you can cause something to be run as system. You cannot do so through normal means as an ordinary user.

          Please stop talking nonsense - there were plenty of

          • We're talking Windows 95 here. Get your story straight.

            The timeline is Windows 1/2/3/95/98/ME.

            OS2, divorce, NT3, 3.51, 4, and beyond.

            Until Windows XPSP2, there was little diff between user and admin, so far as execution was concerned.

            The NT timeline merged at Vista with XP. Vista broke a lot of stuff. As a user OS, it wasn't ready. Windows 7 stabilized the merger. At Vista, there was little difference between the NT branch and the user branch in Vista, the Ring 0 destiny complete. I was there, wrote books o

            • Windows NT3, NT3.51, 4, 2000, XP all have user controls and you an have a user account that's not an admin.
              However, since people upgraded from 9x to 2000 or XP, they took their programs with them, programs that were written for 9x and expected the user to have root access. Since people wanted their programs to work, they just used admin accounts.

        • You are not only wrong, you have it ass backwards.

          In NT3.51 the kernel, user, and graphics memory spaces were separate. They merged kernel and GDI in NT4.0 in order to improve graphics performance, and security and reliability went to shit.

          Again, you do not know at all what you are talking about. Some of us were actually there and actually administered these NT versions, and you clearly did not.

      • by KlomDark ( 6370 )
        It's gonna be a weird day - I'm agreeing with Drinky on something!
    • Cool! It's like listening in on a bunch of people on death row debating whether lethal injection, hanging, snu-snu or a firing squad are the best way to go.

    • by drnb ( 2434720 )
      Windows NT 3.51 was a joy to use compared to Windows 3.x or Windows 9.x. It was far more stable, more responsive. If you had an unreliable system it was likely due to a bad 3rd party driver. I had BYO at work and home, carefully picked cards, dual booted DOS/Win9x, WinNT, and Linux. The latter two were joys to use.
  • by The-Forge ( 84105 ) on Tuesday November 19, 2024 @10:13AM (#64957239)

    It's easy to look back with 20/20 vision and criticize decisions Microsoft has made, but the one that has kept them firmly embedded in business is backwards compatibility.

    Businesses have custom apps they will never rewrite unless they are forced too because it will cost them too much money, so MS has gone to great pains to keep the ability to run old code as long as possible. Until the jump to 64bit, Windows could still run 16bit Windows code. Today, 32bit VB6 code on Windows 11 runs fine because they have kept quietly patching the VB runtime (this is still a big enterprise thing). Compatibility modes on some apps preloaded into the OS and manually configurable for others have kept lots of other code running. All of these have led to MS staying dominant.

    I love Linux, but it has a backwards compatibility problem. You can't run something compiled a few years ago and expect it to run on a fresh install of any distribution without running into a dependency nightmare for some library. MS and Windows may be messy, but they have Linux beat on this front.

    • Win95 required 4mb of ram, it needed 6 and really 8.

      4mb was just enough to install it, and it was completely unusable like that.

      This would be fine and all but to get 95 into that 4mb so it could boot (and nothing else) a bunch of short cuts were taken that made it much, much less stable.

      You can thank a lot of your crashes back in the day on that one decision made for a few extra upgrade sales.
      • by edwdig ( 47888 )

        An interesting take. I never tried Win95 with 4 MB, but I hated it with 8 MB. I'm not sure at what point I considered it usable... 16 or 32? Memory capacity went up fast in those days.

        • I only have a ran it on 16 megabytes of RAM as well but I knew people who bought it, brought it home to their 4 megabyte systems and then immediately had to go out and drop several hundred dollars on RAM.

          When Windows 95 launched ram was still pretty expensive which is why Microsoft didn't just make 8mb The minimum system requirement.
        • by DarkOx ( 621550 )

          IIRC Win95 ran pretty well on 8mb systems as long as you were mostly a single task type user. If you really started doing things like switching between a browser, word processor, spreadsheet, etc, it would do a lot of paging. Even 4mb was probably use-able for people mostly running older apps doing a lot of multi-media.

          As long as you kept to one foreground activity and did not have to ton of weird background and tray tasks it was mostly fine, and in 1995, that is what most home users did.

          Certainly toward

    • by Targon ( 17348 )

      Of course, Microsoft killed that by removing the 16 bit libraries from 64 bit Windows. This is why Windows 7 and older tended to be the last version of Windows that could run a bunch of programs from the Windows 3.1 through ME era. If Microsoft had included the libraries, or made them optional at least for 16 bit, they could fix it, or a "compatibility mode" could run these in a sandbox environment on the modern versions of Windows.

      • Not quite the same. Linux has enough problems just traversing a few years. The range from Windows 3.1 release to Windows 7 EOL is just shy of 3 decades.

        The issue fundamentally is that keeping old libraries around isn't just a case of throwing in a DLL here or there. There are very real maintenance issues maintaining old code and testing it against new changes. Even Linux gave up on i386 and while Windows was known as the system that had great software backwards compatibility, Linux was the OS that had great

    • "It's easy to look back with 20/20 vision and criticize decisions Microsoft has made, but the one that has kept them firmly embedded in business is backwards compatibility"

      Which is mostly a myth since Vista. You can't even run unpatched Civ2 on XP Mode on Windows 7. A whole ass virtual machine isn't enough to make old windows software work.

      Microsoft deliberately chose not to support 16 bit applications in the NTVDM used on 64 bit Windows, despite the fact that it is completely possible. In fact there is fre

  • a. Clone a working image to the new drive.

    b. Boot into safe mode. Erase the Registry ENUM entries.

    c. Reboot and re-detect the hardware.
  • Most users had Windows 3.1 or 3.11, running an install that started there, replaced the OS, rebooted and continued on the new one made sense to me back then.

    But carrying around a stack of 27 floppy disks no one asks about?

    If funny how that was probably a factor here as well. If zip drives were mainstream they would've probably taken a different direction.

    The pre-internet times were not cool :D

    • by narcc ( 412956 )

      CD ROM drives were common by 1995, and Windows 95 came out at the end of August of that year. The internet says that Zip drives would have been about for about 5 months. A flyer I found online shows CD ROM drives at the time ranging in price from $500 for a 6x beast to just $125 for one a 2x model on the high and low ends. A Zip drive would set you back $200.

      This was also the age of the multi-media, so a CD drive offered a lot of value. CDs were cheap to produce and had a lot of storage, so we were absol

  • by Mirnotoriety ( 10462951 ) on Tuesday November 19, 2024 @11:18AM (#64957511)
    The-Forge [slashdot.org]: “I love Linux, but it has a backwards compatibility problem. You can't run something compiled a few years ago and expect it to run on a fresh install of any distribution without running into a dependency nightmare for some library. MS and Windows may be messy, but they have Linux beat on this front.”

    You're talking nonsense. It's with the MICROS~1 product the people on older Windows/Office versions have difficulty in reading files sent from the latest Windows/Office version.
    --

    ps: I don't love an Operating System, that would be weird ;)
    • by HatofPig ( 904660 ) <clintonthegeek@noSPam.gmail.com> on Tuesday November 19, 2024 @11:45AM (#64957613) Homepage
      Yeah. Linux doesn't have a backward compatability problem. Society has a user-doesn't-have-the-source-code problem.
      • It's not just about source code availability.
        Many APIs and driver interfaces change over time, in ways that break things. Source compatibility is not always guaranteed, let alone binary compatibility.

        For all their faults, MS tries to maintain both source and binary compatibility. They don't always succeed, of course. But they try. Linux often breaks things, very intentionally.

    • I see you haven't actually tried this.

      Loki_Compat would like a word. Except even it isn't enough to get the old Loki games working on modern Linux.

      If you want to run old Linux binaries by far your best bet is to use an old Linux in a virtual machine.

      • > If you want to run old Linux binaries by far your best bet is to use an old Linux in a virtual machine.

        Slashdot user The-Forge [slashdot.org] doesn't seem to be aware of this.
        • That means Linux has a problem with backward compatibility. If I have a 32bit Windows program that I used on Windows 2000 I can likely run it on Windows 11. The compatibility is not perfect and some programs fail to run, but most do run. I do not need to have Windows 2000 in a VM to run the program.

          • I have a ton of old windows software that doesn't work on 7, let alone anything newer.

            These days Linux is better at running old windows software than Windows is. Thanks wine team and valve!

        • Fair enough.

          Anywho RAM is pretty cheap again, at least if you are still on the DDR4. I have 64GB now for the first time (had 32GB for a long time) and it's lovely. It feels kind of like when I got up to 24MB on my 4/260. What have we wrought?

    • You have it backwards - a new program is not required to run on an old system or produce a file format that can be read by an old program (though Office most certainly can save files in a way that is compatible with Office 2003 or older).

      It is about running an old program on a new system. You will likely have trouble running an old binary on Debian 12 for example.

  • Microsoft Copilot: I see that you want to install Windows 11 on your computer.

    To begin the installation, we first need to install MS/DOS 2.11

    ......

    Now we upgrade to MS/DOS 3.1

    ......

    Next let us install Windows 3.1

    .....

    And now Windows Vista

    .....

    Installing now Windows 8

    (desperate customer hangs himself at the ceiling...)

  • I bought my first desktop PC in 1997, and by that time clearly most hardware was good enough to run in. It was more than fine for using desktop productivity apps and browsing the web. In fact, I preferred using Windows 95 or NT to Macs of the same era in university computer labs because Macs were notoriously slower and more unstable. I have seen Macs crash and eat my work with them many times. The only real problem with Win 95 started to become apparent if you were a gamer and tended to download lots of sof

Truly simple systems... require infinite testing. -- Norman Augustine

Working...