I don't think it's fair that Windows 3.1/3.11 gets referred to as "just a shell".
Posted by T-tail88@reddit | vintagecomputing | View on Reddit | 140 comments
Comparing Windows 3.1/3.11 to the MS DOS Shell, Norton Commander, etc is like comparing grapes to Watermelons. While Windows required DOS, it was an operating environment. It required its own drivers, had a registry, config/system files, networking protocols, etc. It was also a system requirement for tons of programs and applications. Oh yeah, and it was a total game changer for multimedia computing. The Windows 3.1/3.11 era was a time where many people said in amazement "the computer can do that?!"
If you want to refer to Win 3.1/3.11 as "just a shell" since it required DOS; then you may as well say the same for all non-NT based versions.
chuckop@reddit
Anyone who says it’s just a shell is mis-informed at best, and woefully ignorant at worst.
Man_of_Ice@reddit
Please show the process as explained to a five year old by which you can get Windows 3.1 to function without MSDOS running underneath it?
If your answer is "uhhhh, uuuuhhhh....but but but uhhhh," then it's a shell.
A super fancy shell with lots of functionality, but a shell nonetheless.
Artistic-Branch7393@reddit
Windows 3.1 actually isn't a shell or a graphical environment/GUI, that's a very common misconception, it's an operating system
It uses DOS as a bootloader, but booting from it doesn't mean it runs on top of it, it uses DOS as a bootloader, then, once it's started, it virtualizes DOS and places it into a virtual machine. It has its own kernel (KRNL386), a full VMM, VxDs for hardware abstraction, and preemptively multitasks those dos VMs while cooperatively multitasking Windows applications
For simplicity's sake this should visualize it fine:
WIN is typed > WIN . COM executes and takes the CPU into protected mode > KRNL386.EXE and WIN386.EXE take control of the machine > DOS is virtualized fully under VMs, preemptively multitasked by Windows
Artistic-Branch7393@reddit
Also, by saying this you're officially saying that Linux is also a shell on top of GRUB and Windows is a shell on the UEFI, so I win the debate again
chuckop@reddit
I never said that you could run Windows 3.1 without MS-DOS.
Even a 5-yr old could understand that.
Artistic-Branch7393@reddit
You also couldn't run 98 or 95 or any other 9x line without MS-DOS, but you already won the debate, Windows 3.1 is a true OS
fnordius@reddit
Windows 3.x was a shell on top of the OS, especially in comparison to the other four platforms of the time: Commodore Amiga, Atari ST, NeXT, and of course the Apple Macintosh's System 6/System 7.
As someone who lived through that era, I remember all too well that the IBM compatibles (as the computers capable of running MS-DOS and Windows were known) were severely lacking in multimedia capabilities right up to the release of Windows 95. Video artists used the Amiga, musicians used the ST, and graphic designers stuck with the Mac and PostScript. NeXT was mostly just for academics. And for real computing power, you went to Silicon Graphics or Sun. And most of the cool games of the era, the ones that had people amazed, would quit Windows and run on DOS because of how they needed the resources that Windows was consuming.
But people bought IBM compatibles because they were slightly cheaper, and the compatibility to the IBM PC they had at work was the main selling point.
Albedo101@reddit
Windows 3.1 came with built in support for TrueType fonts, something Amiga didn't have. TTF was huge in desktop publishing, with Aldus Pagemaker, CorelDraw and similar apps. Also 32bit SVGA cards were super affordable, while Amiga accelerators were ridiculously expensive. Windows 3.1 got Photoshop in 1993 - 32bit editing, RGB and CMYK. God bless Deluxe Paint, but this was the next level. Home computers were suddenly competing with Apple Macs three times the price.
Windows 3.1 also came with built-in support for Soundblaster cards and midi interfaces. SoundBlaster16 with a WaveBlaster addon was a self contained wavetable synth. Atari ST could communicate with synths. Properly equipped Windows PC *was* the synth. Again, for a fraction of the price of an Atari + Hardware synth rig.
Windows 3.1 was, in terms of multimedia, almost equally capable as Windows 95. The reason we didn't see much multimedia on W3.1 is that it took a couple of years for users to upgrade to faster 486DX2 CPUs and it took developers a few years to make newer, more capable apps. By that time, Windows 95 jumped on scene and all of a sudden there's tons of multimedia apps built for it. In reality, all those apps could run just fine in Windows 3.1 32bit mode, as they were actually built for it.
It was all a super clever marketing move by Microsoft - they managed to sell a GUI and disk interface upgrade as a revolutionary new OS. At the same time they were soft-launching a truly new and revolutionary OS with Windows NT3.1 and NT 3.5. It was a complete release-numbering smoke and mirrors by Microsoft.
sixothree@reddit
If you’re arguing win 3.1 was a shell then you need to extend that argument to windows 95.
cristobaldelicia@reddit
You could install Windows 3 on DR.DOS. Also on later versions of OS/2. WIN95 used DOS to boot, and I guess in vmm, but you could not install on DR.DOS or any other OS.
Artistic-Branch7393@reddit
Windows 3.1 actually isn't a shell or a graphical environment/GUI, that's a very common misconception, it's an operating system
It uses DOS as a bootloader, but booting from it doesn't mean it runs on top of it, it uses DOS as a bootloader, then, once it's started, it virtualizes DOS and places it into a virtual machine. It has its own kernel (KRNL386), a full VMM, VxDs for hardware abstraction, and preemptively multitasks those dos VMs while cooperatively multitasking Windows applications
For simplicity's sake this should visualize it fine:
WIN is typed > WIN . COM executes and takes the CPU into protected mode > KRNL386.EXE and WIN386.EXE take control of the machine > DOS is virtualized fully under VMs, preemptively multitasked by Windows
Which-World-6533@reddit
In theory Windows 3.1 could do Desktop Publishing, but back then Mac's still ruled. I used to do Graphic Design at the time, and pretty much any printer would laugh in your face if you tried to give them something from Windows.
It wasn't until the late 90's that Windows started being taken seriously in DTP.
Home PC's weren't at the same level as Mac's. Mac's came ready to be calibrated for professional colour printing.
Shejidan@reddit
I think pdf was the real game changer there. Then it didn’t matter what system you created your stuff on because it was portable between all of them.
drosmi@reddit
The associated press started delivering print ads to newspapers via pdf before pdf could properly handle color separations.
fnordius@reddit
Yeah, I was doing DTP on the side in the 1990s, and Macs had all of the advantages: PostScript, ColorSync, and so on. It wasn't until the 2000's that companies started considering making the typographers use Win2000 workplaces, and even then the shops I worked for as a multimedia programmer made the final touches and preflight checks on a Mac before sending the files to the printer.
ILikeBumblebees@reddit
YMMV on all of that. My dad was a commercial artist doing extensive DTP work in the early '90s, and he and most of the people he worked with swore by the Corel suite on Windows 3.x. QuarkXpress was just taking off on the Mac at that point, and it got a head start on that platform before being ported to Windows, but the Mac was not nearly as dominant in this space in the '90s as you're making out.
My experience is the exact opposite of yours -- there was a lot of variation in the early '90s, with lots of software like Ventura Publisher, the Aldus suite, CorelDraw, and other applications distributed acorss multiple platforms, and it wasn't until the late '90s that the Mac started to become unambiguously dominant in this segment.
T-tail88@reddit (OP)
Agreed. Aldus PageMaker was quite popular for desktop publishing in Windows.
cristobaldelicia@reddit
But, I think it was popular at places, businesses that already had a fleet of PCs. There were quite a lot of those.. But full-time print shops, and some small free-lancers, would have Macs and stick with them. This is around Boston in the mid to late 90s.
"Desktop Publishing" perhaps means different things to different people depending on their relationship to traditional printing. It was a wild time.
Which-World-6533@reddit
In London in the 90's most printers would only accept PageMaker or increasingly Quark Xpress, either on Jazz or Syquest. Trying to give them other formats meant they would charge an arm and a leg converting it to those.
There was also the option of using new-fangled things like ISDN lines.
Printers being big steel things that started print runs in thousands. Anything else was just too small to think about.
Adorable-Cut-4711@reddit
Amiga had Agfa Compugrahic fonts from release 2.0 (1990, I.E. before Windows 3.1). I don't know if either font type made any of them better or worse for DTP though.
There for sure were DTP programs for the Amiga, and there for sure were bugs resulting in the color separation being incorrect for some Amiga magazines that were actually produced on Amigas in the early 90's :)
cristobaldelicia@reddit
Although, didn't Macs have TTFs?
fnordius@reddit
Yeah, Apple developed TrueType together with Microsoft and IBM, as PostScript Type 1 fonts had a vector component and a bitmap component for the screen. Apple's System 7 was the first to offer built-in support, beating out Win3.1
Artistic-Branch7393@reddit
Windows 3.1 actually isn't a shell or a graphical environment/GUI, that's a very common misconception, it's an operating system
It uses DOS as a bootloader, but booting from it doesn't mean it runs on top of it, it uses DOS as a bootloader, then, once it's started, it virtualizes DOS and places it into a virtual machine. It has its own kernel (KRNL386), a full VMM, VxDs for hardware abstraction, and preemptively multitasks those dos VMs while cooperatively multitasking Windows applications
For simplicity's sake this should visualize it fine:
WIN is typed > WIN . COM executes and takes the CPU into protected mode > KRNL386.EXE and WIN386.EXE take control of the machine > DOS is virtualized fully under VMs, preemptively multitasked by Windows
Artistic-Branch7393@reddit
Windows 3.1 actually isn't a shell or a graphical environment/GUI, that's a very common misconception, it's an operating system
It uses DOS as a bootloader, but booting from it doesn't mean it runs on top of it, it uses DOS as a bootloader, then, once it's started, it virtualizes DOS and places it into a virtual machine. It has its own kernel (KRNL386), a full VMM, VxDs for hardware abstraction, and preemptively multitasks those dos VMs while cooperatively multitasking Windows applications
For simplicity's sake this should visualize it fine:
WIN is typed > WIN . COM executes and takes the CPU into protected mode > KRNL386.EXE and WIN386.EXE take control of the machine > DOS is virtualized fully under VMs, preemptively multitasked by Windows
xternocleidomastoide@reddit
Not really. One of the reasons why Windows 3.x spread like wildfire is because by then Multimedia support on PCs was pretty decent.
A 486/Pentium machine, with PCI, and decent video and audio boards and CDROM, would pretty much spank any Amiga or ST. Which is why those platforms went the way of the dodo
Ironically the PC was the platform that was ahead in multimedia by the start of the 90s.
fnordius@reddit
I have to question if you really were around back then. In the time when Windows 3.1 was being offered, it severely lagged behind Atari, Commodore and Apple. OEMs like CompaQ, Gateway and Dell were careful not to compare to the Amiga, ST or the Mac, instead positioning themselves as IBM compatibles with better graphics and sound for a lower price. That, along with Atari and Commodore's impression in consumers' minds of being gaming devices and not fit for office work, is why Microsoft was able to slowly expand their reach in the early 1990s.
As for multimedia, Microsoft was always playing catchup. One of the reasons why Steve Jobs was able to get Microsoft to invest in Apple (remember that infamous moment?) was because Apple had proof that Microsoft developers had stolen the source code for QuickTime and integrated it into Windows 95.
xternocleidomastoide@reddit
The ST was a crappy muiltimedia machine, and it only made a tiny dent in the creative space because it was a cheap way to get a midi controller.
Other than Video Toasters, there was little market penetration by Amigas as actual pro multimedia machines. They were viewed as gaming machines, because that was literally what most people were buying them for, since there was not that much pro-level software for it compared to either Windows or Mac.
And by the time Doom came out, it was game over for the Amiga. Since their core audience, gamers, moved to PC. 486/Pentium PCI/Local Bus PCs with a decent VGA and Audio were curb stomping the Amiga.
The main reason why MS invested in Apple was to prevent possible antitrust headaches, and because MS was making a pretty penny from Office on Mac, so it was in their best interest not to let Apple go under.
LocalH@reddit
Windows/386 and Windows 3.x preemptively multitasked virtual 8086 machines. One of those also hosted the shell.
ElHeim@reddit
As a way to be able to run (and contain!) MS-DOS programs. But Windows native programs famously (and hilariously) ran in a cooperative multitasking environment.
ILikeBumblebees@reddit
If you're going to put NeXT in the same category as Wintel boxes, Amigas, STs and Macs, then there are a whole lot of other workstation-class platforms you're leaving out. Sun, HP-UX, SGI, etc.
fnordius@reddit
I only include it because it was offered at huge discounts to students at the beginning, and because we talked about it a lot, more than Sun or SGI or the other Unix workhorses.
But you are right, it only covered the professional/academic market, and wasn't intended for home use.
T-tail88@reddit (OP)
It just depended on the game. Many had versions for DOS and Windows on the same disk such as Myst and Kings Quest. They ran just fine in Windows 3.1.
cristobaldelicia@reddit
But Win3 is just a graphical shell. I think the argument is that even after 95 came out, most all games ran on DOS(because booting into DOS was always an option on 95-98) Doom being the big game that made a huge difference in gaming. Myst and KQ ran fine on Win 3 because IT IS DOS. No difference under the graphical shell. Do you understand?
T-tail88@reddit (OP)
Why did you downvote me for stating a fact? Must, Kings Quest, etc shipped with both DOS and Windows versions. All I stated was that the Windoss versions of those games worked just fine.
victorsmonster@reddit
Starting with 3.0, Windows ran in protected mode which gave it access to resources a normal DOS program didn't have. But it was still a DOS program at the point of execution. All the most advanced DOS games of that era ran in protected mode as well in order to make full use of the hardware. This is true of all consumer (that is, not NT) versions of windows prior to XP.
I think it's fair to say that 3.0 as well as 9x/Vista were supershells. As sophisticated as Win9x became, it still ran on top of DOS. Remember Microsoft made a joke out of exiting from DOS for the last time as part of the marketing for XP!
InnerChain4163@reddit
> As sophisticated as Win9x became, it still ran on top of DOS.
No, both OSes ran in separate virtual machines since at least 3.11:
https://devblogs.microsoft.com/oldnewthing/20240903-00/?p=110205
https://devblogs.microsoft.com/oldnewthing/20100517-00/?p=14013
dartfoxy@reddit
What do you mean by "Vista" here? 9x and Vista are not related - 9x is on top of DOS, 2k/XP/Vista and later are NT technologies
victorsmonster@reddit
Ah you’re right, I thought Vista was the last version before XP. I was thinking of the other bad Windows release: Windows ME!
dartfoxy@reddit
Ohhhh yes, millennium edition. We... We don't talk about that one. 😆
TkachukMitts@reddit
It was kind of a weird time for the PC. Windows 3.X was definitely where it started to feel less like a shell and more like a proper OS, though. Previous versions even looked like the MS-DOS shell.
Win95 was the point where it really started to integrate and replace the underlying DOS. That definitely felt like a full-blown OS. DOS drivers that were loaded in CONFIG or AUTOEXEC weren’t used in Win95, and could cause issues in the GUI unless you restarted in the full DOS 7.0 mode. In comparison Win 3.X relied on DOS drivers for a lot of hardware, including basic things like CD-ROMs.
You could even run the majority of DOS games straight in Win95 - that wasn’t the case for 3.1, where it was mostly designed for running old DOS-based business software, and DOS games would often crash or have other issues.
InnerChain4163@reddit
Because starting 3.x it did become a proper OS - DOS was working in a separate virtual machine
https://devblogs.microsoft.com/oldnewthing/20100517-00/?p=14013
https://devblogs.microsoft.com/oldnewthing/20240903-00/?p=110205
bwyer@reddit
Eh, I disagree that drivers are a litmus test for an operating system. WordStar used printer drivers and it was just a (very popular) word processor.
Windows 3.1 was just an application running on top of an operating system (DOS). Granted, it was highly complex and allowed applications to run in tandem with it, but it couldn’t run without the DOS services supporting it.
Look at it this way: DOS could run just fine without Windows, but the reverse was untrue. DOS was the executive in that context.
Now, when Windows 95 came out the paradigm shifted. The executive was now the Windows core and DOS was now just an application; it could no longer run standalone.
Here’s a pretty good definition. The key being the fact that the OS is the program that is initially loaded:
An operating system (OS) is the program that, after being initially loaded into the computer by a boot program, manages all the other application programs in a computer. The application programs use the OS by requesting services through a defined application program interface (API). In addition, users can interact directly with the operating system through a user interface (UI), such as a command-line interface (CLI) or a graphical user interface (GUI).
rosmaniac@reddit
Once all the VxD's were loaded, there was very little DOS code ever run by Windows 3.1 in Enhanced Mode. By Windows for Workgroups 3.11 there was none. Same with Windows 95: once fully booted with all VxD's loaded DOS was no longer used for anything.
The Windows GUI application was written for a DPMI provider; VMM386.VXD is that provider and just happens to be loaded at the same time the 'application' is started. But VMM386.VXD is a modular 386 protected mode 32-bit kernel, not an application. It's no different from AutoCAD loading Phar-lap 386: the Phar-Lap extender is a kernel and replaced DOS to some degree, allowing AutoCAD to use the DOS API from protected mode. The most widely used DIS Extender prior to Eo does 386 Enhanced Modes was DOS/4G, used in many many places, especially and most famously for DOOM. Reference: https://en.m.wikipedia.org/wiki/DOS_extender
Windows that could run totally without DOS even being used for booting is possible; if you could take a full memory image of a fully booted WfW 3.11 system and load the whole thing via a custom boot sector you could have a system that didn't run any DOS code at all.
But we call a Windows system that doesn't need any DOS at all 'NT.'
cristobaldelicia@reddit
Now wait a second! What about hundreds of DOS Applications? What about offices running DOS apps? The whole idea about not plunging the public into Windows NT is because of legacy software, and you're talking like they didn't exist. And I'm not talking about games!! Theoretically it could run "pure Windows" but the whole point was to be able to run DOS apps. I guess it's too late to ask you to "touch grass" in the 90s, but your argument is pretty academic, in the bad sense.
InnerChain4163@reddit
In an enhanced mode DOS runs in a separate virtual machine. Windows also runs in a virtual machine.
https://devblogs.microsoft.com/oldnewthing/20240903-00/?p=110205
https://devblogs.microsoft.com/oldnewthing/20100517-00/?p=14013
rosmaniac@reddit
The VMM386.VXD OS completely emulates the DOS API, and just in case its emulation isn't complete the DOS code is still sitting there in ring 3 and can be run just in case.
Of course legacy software exists; what in my comment leads you to believe that I think otherwise?
unrealmaniac@reddit
There is no way that windows running 386 enhanced mode fits into the definition of "just an application running on dos"
bwyer@reddit
Will it run without DOS?
unrealmaniac@reddit
Yes. Once wfw3.11 is booted in 386 enhanced mode it doesn't need to use dos at all.
if you mean can it boot without dos then you could say that any os isn't really an os. Can dos boot without a bios? No, Does that make dos just a shell on top of the bios? Linux needs bios / firmware to boot does that make it just a shell as well?
bwyer@reddit
There's a vast difference between a BIOS (Basic I/O Subsystem) and an Operating System.
All machines since the '70s have depended on a BIOS to bootstrap an operating system. The purpose of a BIOS is to provide a very basic and minimal API to abstract disk, console, and possibly network I/O. Only just enough functionality to boot the OS, nothing more.
An operating system provides filesystem functions, process management, user management (in a multi-user system), network communication, etc. It's general-purpose and designed to provide a user interface to the hardware's capabilities.
Here's a bit about why DOS continued to be core to pre-Windows NT environments:
A significant reason for retaining DOS as a foundational element was to ensure backward compatibility with the vast ecosystem of existing hardware and software. Many older hardware devices, such as sound cards, CD-ROM drives, and network cards, relied on 16-bit DOS-based drivers (VxD drivers). Windows 95 and 98 used this underlying DOS layer to communicate with such devices, providing a crucial bridge between older technology and the newer operating systems.
This dependency meant that for these legacy devices to function correctly within Windows, their drivers often needed to be loaded via the CONFIG.SYS or AUTOEXEC.BAT files before the graphical interface started.
unrealmaniac@reddit
There's a vast difference between lots of different things in a PC.
Wfw 3.11 fits every single one of these, minus multi user of course. It has its own native 32bit file and disk access drivers, process scheduler, memory manager including virtual memory, it has a native network stack and all its own native default drivers. You can choose to use dos drivers if you want (i.e CDROM driver) yes but it's not required.
Yes DOS is kept for compatibility and legacy device driver purposes but if you don't care about that you can theoretically run it without any DOS.
T-tail88@reddit (OP)
I've always been under the impression that DOS was required to load Win 96/98/ME. It didn't have its own kernel.
rosmaniac@reddit
DOS was the bootloader; VMM386.VXD is the actual kernel. This kernel would by default use DOS handlers in the absence of a VxD handler, but as soon as a VxD was loaded to handle a particular kernel call, the DOS handler for that call would no longer be used.
DOS was still resident in its ring 3 sandbox, but got used by fewer and fewer calls as more and more VxD's got loaded by VMM386.VXD.
cristobaldelicia@reddit
Backwards compatibility loo.ed large in MS decisions.
bwyer@reddit
Nope. That was the core difference. Windows 95 was the first to ditch DOS as the underlying OS. You actually booted your machine into Windows 95. You could then spin up DOS inside Windows.
If I remember correctly, there was a way to boot into a hybrid DOS mode, but it still relied on the Windows executive.
T-tail88@reddit (OP)
Ok. I'm not going to argue about it. But countless sources in a Google search all say that DOS was used in the initial loading of Windows 9X.
bwyer@reddit
I stand corrected. Clearly my memory failed me and you are correct. It was actually Windows NT that ditched DOS completely.
cristobaldelicia@reddit
Sorry, that's still wrong. WinNT was mostly contemporary with DOS, just a bit behind. It was built from scratch without DOS. The 90s were Microsoft's struggle to get consumers away from DOS code and toward NT. It was a long slow process Businesses with serious computing needs and workstations were using Windows NT 3.5 then 4.0, while home users and low level clerical were using Win 3, 95, 98. It made me feel like suckered, knowing I was running antiquated OS when so much more was available, IOW this is why I became a Linux fanatic.
fnordius@reddit
That is partially true: Microsoft did work hard to hide the DOS layer under Win95, as the "true" OS was to be found in Windows NT/Windows 2000. But it was still there, until Windows XP unified the two branches of OS development.
I admit, my experience with WinNT/Win2000 in the workplace back then may be why I am such a diehard macOS user. It's Unix, with PostScript and high quality fonts, and hardware that lasts.
6502zx81@reddit
Well, there was loadlin to start linux from DOS. So 'initial program' might be an indicator, but not enough. I'd add "loads programs into memory to start then" as a strong indicator (although browsers with jit compilers come close here). So I'd add another indicator for an OS: it is programmed against hardware not API.
Shotz718@reddit
Windows 9x still relied on DOS to boot Windows. It reduced DOS's role in the process as much as was probably technically possible though. Windows NT was the one that handled everything
SpaceCadet87@reddit
I don't think it's fair but I can see where they are coming from when you look at the progression from Windows 1.0 -> 2.0 -> 3.11 -> 95
In that context Windows 3.1 very much looks like "just a shell".
As far as MS DOS Shell and Norton Commander, I've seen way lesser softwares get referred to as operating systems. Arguably MS DOS Shell is more of an OS than Windows 1.0/2.0
I've spent some time thinking about this myself after experimenting writing MS-DOS binaries in raw hex code and realizing - "Holy shit, there's nothing underneath this - I'm basically just writing microcontroller firmware!" and questioning whether DOS was an operating system at all.
The conclusion I eventually came to is "if it has opcodes, then it's an OS", if that ends up meaning some freak shell script that barely does more than print "Hello World!" but for some reason handles an opcode or two ends up technically counting as an OS then I figure I'm okay with that.
nhaines@reddit
It was. It was a disk operating system, and like others before it was mainly focused on operating the various disks on the computer. So you didn't have to worry about that, you just had to worry about all the other computer stuff.
xternocleidomastoide@reddit
Huh? what does that even mean?
SpaceCadet87@reddit
Oh, shit. Must've had a brainfart, how did I end up writing "opcode" instead of "syscall"?
Albedo101@reddit
Windows 3.1 was a huge leap over 3.0 even, let alone older versions. There's a bigger difference in usability between Windows 3.1 and 3.0 than between Windows 95 and 3.1.
It all also depended on hardware Windows was running on. When running on a 386DX or a 486, in the protected/enhanced 32bit mode, it would perform remarkably well.
In that regard, we could say MS-DOS was actually a shell for Windows.
Adorable-Cut-4711@reddit
TBH the leap from Windows 2 to Windows 3.0 might had been the biggest one though, as it was when Windows applications and the Windows GUI started running in protected mode. In Windows 2 it all ran in real mode (and Windows/386 had provisions for running multiple DOS applications at the same time, the same as in Windows 3.x, but afaik the actual Windows part wasn't particularly good).
This allowed almost unlimited large applications, about 15M on a 286 and 4G on a 386, as compared to the few hundred k's in real mode.
SpaceCadet87@reddit
We can agree with that! Barely an OS even by the standards of the time.
I should give windows 3.0 a try, the gap between windows 1.0/2.0 and 3.11 was massive.
cristobaldelicia@reddit
Trick was that, it, and the Seattle forerunner, was literally the DISK operating system. CP/M as well. There was also AppleDOS, same sotuation: Specifically for the computers to run disks. Without it microcomputers everywhere booted into Basic. It would be interesting if DOS was burned in ROM like some palmtops. Microsoft made people forget the distinction between "operating systems" like Unix, or WniNT for that matter. "Disk operating systems" -DOS grew into a full OS by default. It was there.
SpaceCadet87@reddit
Ah, so it wasn't so much "disk Operating System" but rather "Disk Operating system"
w3lbow@reddit
IIRC, INT 21h was handled by DOS.
rosmaniac@reddit
No. All INT calls are 'handled' by VMM386.VXD in Enhanced Mode Windows. If another VxD hooked the INT 21H call, DOS would never see it, even if it were DOS code that issued it. VMM386.VXD would call the DOS INT 21H handler only if no VxD hooked it.
Adorable-Cut-4711@reddit
Also in particular with Windows 3.11 (not 3.1) i 386 mode, with "32-bit file access" (FAT file system code) and "32-bit disk access" (MFM/IDE disk driver) enabled, no DOS / real mode code was used for reading/writing files to the hard disk, and for floppies (and other hard disk controllers that didn't have a Windows 3.x driver) the call was directly to BIOS to read/write sectors, bypassing DOS.
Also, the network that were supplied with Windows for Workgroups 3.11, and also the TCP/IP add-on (TCP32b), all could run in protected mode and thus bypassed the (small) redirector part of DOS).
This also applied to running DOS applications. I.E. Windows 3.x would intercept the INT calls and handle some of them without passing them on to DOS (or BIOS).
w3lbow@reddit
While it is possible to write Windows apps via assembly, I took the comment to mean a DOS program written in assembly.
rosmaniac@reddit
Understood; the INT calls are handled by DOS if VMM386.VXD is not loaded, which is the context of the comment you replied to. I'll make a minor edit to my comment to clarify that it is intended for the larger context of the original post.
SpaceCadet87@reddit
Yeah, that was how I justified that DOS is an OS.
The difficulty was that you could far too easily write just about any DOS program you wanted in such a way that DOS is completely unnecessary and you could just run it as a ROM or something.
Once I started looking into INT 21h I figured I couldn't reasonably name anything other than an OS that should need to be able to do that therefore DOS is (albeit barely) an OS.
w3lbow@reddit
Very true. Of course, without DOS to load your code into memory, manage the stack, and move the instruction pointer to the right location, you really would have to burn it to an EEPROM and swap BIOS chips in your motherboard :D
ElHeim@reddit
That would be totally over the top. The BIOS was something totally separate from MS-DOS.
SpaceCadet87@reddit
Or write a boot sector, I don't know if my compiler was a bit rudimentary but I found stack was being managed without the OS getting involved. Keep in mind, this is limited to .COM programs, .exe is obviously a different story.
w3lbow@reddit
I forgot about boot sector programs :D I didn't write .EXEs until much later too. I was thinking about DOS having to manage returning back to COMMAND.COM after your program finishes.
CubicleHermit@reddit
Even Windows 1 provided video, mouse, and printer drivers. It had some level of its own memory management.
By Windows 3, in 386 Enhanced mode it redirected some things around the BIOS/DOS, and it had more complicated memory management, and it had a scheduler of sorts even though it was a cooperative one.
I'm fairly sure that GRUB or the EFI shell is more complicated than DOS.
What counts as an OS is a religious debate, and I'm somewhat qualified to say that since I was in a PhD program researching operating systems. OTOH, only somewhat, since I dropped out to go back to industry.
Not all OSes offer all services. Single-user, single-tasking ones don't need the same kind of memory management, or scheduling. They do need a file system, which DOS has, and console IO (which DOS has a primitive form us. as does the BIOS) and driver models to support both (which are split between DOS and BIOS.)
Windows, in that it layers on top of DOS, adds various things that are clearly OS functions, and has a consistent ABI that lets you write "Windows Programs" - very different from Norton Commander.
Note that by some definitions, you could easily say Linux (or most forms of Unix) is clearly a real OS, and it doesn't have any of the native batch job support that IBM zOS (and it's ancestors and semi-relatives like OS/400), OpenVMS, or even the Windows NT family does. Of course, it doesn't need to - it can do any of the same things in userspace. Same for the GUI - like DOS, the GUI is not part of the core OS, but rather in userspace.
OTOH, by another perspective, pretty much every Linux distribution has some kind of cron, and most non-server, non-embedded ones some kind of GUI whether X or Wayland or a combination. Which themselves on their own don't offer a full GUI tookbit - to get something equivalent to GDI, you need one of GTK+/QT or somehting more obscure like Tk or wxWidgets. Which a Linux distribution will typically have one or more of.
See also folks insisting it's not Linux, it's GNU/Linux. So maybe it's DOS/Windows, but since unlike the GNU stuff (where you can happily run non-GNU on a Linux kernel) Windows up through ME in that chain always implied DOS.
ExternalMany7200@reddit
Yes, I was there. Started at dos3 and win286. Windows thru 3.x was a shell. A pretty good one eventually but still a shell.
ElectricSpock@reddit
OS has a pretty clear set of functions: allocates computers resources (cpu time and memory) for user applications. Everything else is a fluff, and that includes graphical interface.
Windows 3.1 did not really interact with the hardware directly, but through the DOS API. The networking stack is technically not a part of operating systems, although most of modern include those.
Windows 3.1 was „graphical user interface” to the operating system, and offered its own API. That still doesn’t make it an operating system.
xternocleidomastoide@reddit
The easiest way to understand the relationship between DOS and non NT windows, is seeing DOS as a bootloader and a BIOS of sorts for Windows.
All versions of Windows, at least from 2.x on were not just mere shells, there was a kernel. It was just a kludge of an architecture.
indicava@reddit
I tend to agree, I think a better comparison for Windows3.1/Dos is what Gnome (or X) is to Linux OS’s.
My nitpick though is that I do believe that the “the computer can do that?!” moment was totally owned by the first Macintosh much more than Windows 3.1.
lproven@reddit
No, not at all.
DOS is not really an OS as we understand the word today (post-1990s).
In post-1990s terms, an OS is a collection of software that is always running, which manages memory and disk and other hardware like sound and graphics output and printers. The OS loads others programs, it assigns them resources, it manages and mediates their access to those resources, and it also manages communications between programs. It provides standardised ways to access hardware: it drives the hardware via device drivers, and the apps don't need to know, they just request OS services.
DOS does none of that.
It is a sort of program loader with a dead simple filesystem bolted on. When a DOS program is running, DOS is not running. There is only 1 task at a time, and when that task is running, DOS is not running. The app has full control of all the hardware and must have its own device drivers to access it.
DOS doesn't manage memory, and it has no device drivers. It only supports a US English QWERTY keyboard and US format times and dates. It does not support mice, graphics, printers except for plain text, optical drives, networking, anything.
All DOS can do is issue calls to the BIOS -- the firmware -- to do this stuff. (That's why DOS can't run on the bare metal of a UEFI computer: there's no BIOS.)
There are a bunch of optional extras that bolt on to DOS that give it some poor facilities: memory managers, disk caches, mouse drivers, CD-ROM drivers, networking, etc. etc. Over time, from DR-DOS 5 onwards, this stuff gradually got bundled with the OS, but if you boot with the Shift key held down, it's all gone and you are back in US English, month-day-year dates, no mouse, nothing.
Apps can ask DOS to do some simple stuff, but they can also call the BIOS themselves. However the rise of PC compatibles, which to be compatible had to be 100% hardware identical with the IBM original, meant that for performance most apps just access the hardware directly, ignoring the BIOS.
Without a GUI desktop, Linux still multitasks, it does networking, it does removable drives and disk caching and all that stuff. You can sit at a text terminal and run a dozen apps, tile your display, hop between half a dozen apps, some of them on other PCs, while watching a system monitor.
The GUI just makes this easier.
On DOS, none of that is possible without addons and extra apps doing it all for you. Over time, apps like network stacks came for free, DESQview gave you windows and multitasking, but they were all subtly incompatible and there was little standard UI. You couldn't cut and paste from one app to another. Every app needed its own printer drivers and things. Forget about running 2 apps in graphics mode side-by-side, or 2 apps playing sound at once: that was flat impossible.
Until Windows 3 came along.
Windows did the device management, Windows did memory management and multitasking, Windows did device drivers, Windows handled printing, Windows handled sound, Windows handled copy and paste and help and so on.
But Windows was, in essence, a layer on top of DOS and you could still quit and get back to DOS. And you wanted that and needed it, if you wanted to play a game.
You could run Windows on top of DR's DOS instead of Microsoft's and it worked 100% perfectly.
You could quit Windows and run GEM or GEOS instead. It wasn't part of DOS.
(MS did the reverse and made MS-DOS part of Win95, which was handy but also a dirty trick, as it put DR-DOS out of business.)
agrk@reddit
Nitpick: DOS supported both non-US keyboards and codepages (depending on version).
As for the rest, I guess one could say DOS is half of an operating system, while Windows would be the other half.
bigbigdummie@reddit
And drivers. And emm386. And DOS calls. It may not have been “always running” but it was always in memory. OP is selling DOS short.
lproven@reddit
I'm really not. I supported it in production for a decade.
bigbigdummie@reddit
A decade? Is that all? ;)
lproven@reddit
Yep. I was an early adopter of Windows, with version 2.01, and made as living from that for another decade. Then I guess I was relatively early adopter of NT, and a decade of that followed. Then 2 decades of Linux.
lproven@reddit
Only if you added the drivers. They came with it, sure, but you had to manually configure it.
I had too memorise the codepage,
KEYB.COM&COUNTRY.SYSsettings and type then by hand inEDLIN. A setup program for DOS icky appeared with version 5 or so, after I'd been doing for years.Worse still in 1992 I took over IT for a Swedish stockbroker and had to do it for Swedish, Norwegian and Danish as well.
Norwegian redefined the backslash character for one of the Norwegian letters. Ø or something. The backslash is really quite important in DOS.
The point is, yes, it could do it, but all this stuff was extra. Gradually more and more was bundled but it wasn't integral. It all needed manual configuration and as I said, don't get too used to it because as soon as you boot the PC with F5 it all went away.
chuckop@reddit
And some drivers
ElHeim@reddit
Dude. That concept of an OS was there before MS-DOS. Heck, if we stick just to PCs, Microsoft themselves published the first version of Xenix in 1980. Check the release date of PC-DOS/MS-DOS.
lproven@reddit
Oh come on. If I was working with this stuff on the 1980s, do you really think I wouldn't know that?
I cut my teeth on VAX/VMS before I ever touched a PC.
T-tail88@reddit (OP)
I also wondered why Microsoft didn't ask users during Windows setup if they wanted to start Windows when they turned their computer on. As a kid, I added the c:\windows\win.com to many an autoexec.bat for people.
Gamer7928@reddit
Now that I think of it, Windows 3.1/311 was much more than a mere shell since you it's own device drivers, registry, config/system files, network protocols and all the applications it was capable of running is in it's own self-contained environment that systematically operated together in unison.
My verdict is this: While it's true Windows 3.1/3.11 did indeed run on top of DOS, an OS does not need to be automatically bootable if it's environment can perform similar command-line functions from a UI (User Interface).
Low-Charge-8554@reddit
Windows 386 2.11 WAS a shell, not Windows 3.xx
BCProgramming@reddit
Back then I believe the logic was simply related to how you had to install Windows after installing the operating system, MS-DOS or PC-DOS. Then you would boot a computer into DOS, and separately start windows; then when you exited windows, you returned to the DOS prompt. Windows, by all appearances, was a program you were running in DOS, similar to programs like G.E.M or desqview or topview.
The problem with the argument that Windows 3.1/3.11 was it's own operating system because it had it's own drivers, config, networking, etc. is that would suggest that a lot of DOS games are "Operating Systems" for the same reasons!
Something being a "Shell" was more of a perceptual term than a technical one, I'd say. (with exception to say, *nix environments where a shell is something more specific, of course)
Balentius@reddit
Wow, you were bored and wanted to start the day off with people arguing? :D
The concept of "Operating System" is remarkably vague. Personally, I would call DOS an operating system the same way that the various Unix kernels (and/or Busybox, depending on your preference) are the operating system. For Linux, you can start the kernel and load the basic drivers, but then when you want to interact with it as a user you either use X11 (windowing system on top of the OS) or various flavors of "shells' - Bash (Bourne Again Shell), ksh (Korn Shell), etc.
Does that make the kernel less of an OS? No. It just means that it handles the basics of getting the hardware to a usable state, sometimes with other things running automatically on boot. That completely describes DOS (of the various flavors). Personally, I used DR-DOS from 5-6.x, followed by Novell DOS. It included various things like a different DOS shell (never used it, but it was there...), memory management, disk caching, disk compression... And task-swapping.
Side note - one of the main complaints about Windows (pre-Windows XP) was the registry! Before, there were the text files (config.sys, autoexec.bat) that you could use to control what was loaded on boot. Similarly, configuration files for programs were stored in their directories, not in this monolithic registry that had strange paths you had to look up in magazines or BBSs... Windows 3.x had win.ini and system.ini, as well as the registry, so even then it still required the other files.
(Yes, I'm old too.)
Windows brought a unifying structure to this. However, the same could be said of Geoworks - it did most of the same things you mentioned and still had text configuration files.
So, long ramble aside, yes - Windows pre-95 was completely a shell over DOS. No questions about it at the time either; except for Microsoft marketing materials. Even Win-9x still used DOS, but it was so built in that it wasn't distinguishable from the Windows OS. (Read the Wiki page for DR-DOS about that...) Without DOS you couldn't run Windows; with DOS you didn't need Windows but it was nice to have.
T-tail88@reddit (OP)
Lol it has just been something that has weighed on me for a while. Believe it or not, there are several businesses in my area that still use it to run some very specific older hardware. I maintain them on the side. There is a church around here that still uses Foxbase!
But overall, I've just had a soft spot for Windows 3.11 as it was what we had growing up. I still run it on my Pentium 2 system and even found drivers that work with its video and sound card. I didn't have to swap anything out. I just think it deserves more credit than some give it.
Balentius@reddit
Oh, it's a great OS (shell! :D ) and it deserves a lot of credit for bringing the GUI to the PC world. Unfortunately, there were a number of other choices and old farts like me are a little bitter that Microsoft ended up ruling the PC market. However, I started off in my professional career supporting WfW 3.11 on MS-DOS 5.x, and I've used pretty much every Windows OS since then. (Windows ME excluded; only time I used that was to get one of the TCP driver DLLs to put on a Windows 98 system.)
So, it deserves a lot of praise, but it's a mixed bag. If you're not familiar with the background, I highly recommend the Wikipedia page on DR-DOS; MS really saw it as primary competition for a while, and Windows became one of the key ways to kill it.
ILikeBumblebees@reddit
I think there's been some semantic drift involving the term "OS". In the most basic sense, the term "operating system" has traditionally referred to the software that is controlling the operation of the computer: managing processes, memory, hardware I/O, etc. If you take an "operating systems" class as part of a CS program, this is the stuff you're learning about.
So in the strictest sense, the kernel is the OS, with the shell being a UI layer around it. But these things have gradually become lumped together over time, probably furthered by numerous interjections on the part of GNU folks.
CubicleHermit@reddit
Just a shell doesn't provide a general-purpose ABI for other programs and have loadable drivers for core system components.
Maybe it's Windows/DOS for the whole Windows 1.0-ME family like some folks like to call it GNU/Linux for normal distributions, but it's a silly distinction - basically implying a 21st-century idea of what a multitasking desktop OS should be to something dating to the mid-1980s.
The Mac system up through 7.x (after which I lost track) didn't really offer anything that Windows up through 3.1 didn't have; it was booted all as one piece, but so what?
MisterEd_ak@reddit
That was the period of Windows where it was transitioning to being an OS. At that stage, Windows was not an operating system as it still required an operating system to run (and that didn't have to be MS-DOS).
degaart@reddit
It was an operating system because it managed processes and memory allocation, and added a common interface for hardware access. It was just a little bit incomplete, as it still relied on dos int 21h for disk I/O and fs access
unrealmaniac@reddit
Even then, Wfw3.11 had full 32bit disk and file access
WillisBlackburn@reddit
I had this argument in the early 1990s with people who maintained that Windows 3.x was not "a real operating system" which is kind of the same as saying it's just a shell. It doesn't really make sense because Windows has all the characteristics of an operating system: it is always running, controls access to devices and system resources, launches applications, offers system APIs, etc. If it does all the things an operating system does, then it's probably an operating system. Sure, it depends on DOS, but so what. DOS depends on the BIOS, but that doesn't make DOS "just a shell."
Someone might argue that Windows isn't really an operating system because you can exit Windows and return to DOS. According to that way of thinking, Windows could be turned into an operating system simply by launching it at startup and removing the exit command. Which is kind of what Windows 95 did. Could the difference between an "operating system" and a "shell" really be so small? I think that the argument fails because it's always possible to quit one operating system and run a different one on the same computer for a while. Windows 11 doesn't stop being an OS because I can shut it down and boot Linux.
Another argument in favor of Windows 3.x being an operating system and not a "shell" is that it has its own shell, Program Manager. Shells don't usually have shells.
Psy1@reddit
Unix sweats nervously. In *nix you can have a front end shell running in your terminal shell, running on desktop that itself that itself has shell ontop it that run on top of the windowing system.
leventp@reddit
Not just a shell, but not a complete OS either.
rosmaniac@reddit
You're right, it's not fair. Why? Because at the core of Windows/386 (as it was called in Windows 2.0 days), is a real 32-bit kernel that gradually took more and more OS duties from the MS-DOS 'bootloader' and eventually, as of Windows for Workgroups 3.11, ran no real-mode code at all: real mode INT calls 'thunked' into 32-bit handlers. Windows 95 added more, and removed the visibility of DOS as the bootloader.
The book "Unauthorized Windows 95" by Andrew Schulman takes a deep dive into how the VMM386.VXD 'kernel' works and how it progressively takes over the role of an operating system, beginning from managing memory, through video, through keyboard and mouse, through printing, through disk access, through file access and long filenames, through multiple versions of Windows. Schulman even guides the reader through creating a 32-bit protected mode OS running COMMAND.COM on top, with 3-bit memory (DPMI), 32-bit disk, and 32-bit file with long filenames using pieces of Windows; 32-bit code via INT21H. Here's a link to OS/2 Museum's review: https://www.os2museum.com/wp/book-review-unauthorized-windows-95/
This mechanism that allows real mode code to call 32-bit routines is a form of thunking (https://en.m.wikipedia.org/wiki/Thunk ). Windows on Windows64 does the same thing for 64-bit Windows running 32-bit Windows code.
You can read even more about the internals, specifically of Windows 3, at https://www.xtof.info/inside-windows3.html quoting the first paragraph:
The key word is 'progressively' in this paragraph: VMM386.VXD gradually took over as the actual OS by loading more and more VxD's that took over whole sections of the old MSDOS.SYS and IO.SYS real mode OS using thunks to 32-bit code.
It would be more correct to call Windows' Standard and Enhanced modes "a Graphical Operating Environment on top of a protected mode DOS Extender" where both the OE and the Extender are loaded when you execute windows.com. Anyone who else remember the Phar-Lap DOS Extender? Similar concept; Microsoft of course had to roll their own DOS Protected Mode Interface (DPMI) and this is what the core of VMM386.VXD does; it does all the work to set up V86 mode, resides in ring 0 to handle various traps and faults (including the tables for the 32-bit handlers for INT), and loads the rest of the old real mode system into a V86 ring 3. So DOS is running on top of VMM386.VXD, which has taken over memory management, much like EMM386.SYS does.
The most important thing to note is that the INT mechanism used to call DOS routines is no longer handled by DOS, but by ring 0 VMM386.VXD code. This is the way V86 protected mode works. Even without any other VxD loaded, every INT call in the real mode DOS routines calls the VMM386.VXD INT handler, not DOS's.
Other VxD's are then loaded by VMM386.VXD and the MS-DOS death by a thousand cuts begins, as each VxD carves code out of DOS with surgical precision, eventually making it where no more DOS code runs even though it's still resident in its ring 3 V86 container and VMM386.VXD with its army of VxD's is doing everything.
No, Windows the DPMI kernel is not a shell around DOS. Windows the GUI Operating Environment can be (Real Mode Windows 3.0?).
To use Star Trek the Next Generation and Deep Space Nine terminology, Windows 386 Enhanced Mode's DPMI kernel is like a joined Trill: the symbiont is much like the VMM386.VXD kernel with its VxD drivers, and the ring 3 DOS is like the host.
T-tail88@reddit (OP)
Thank you for that highly detailed explanation!
rosmaniac@reddit
It's not original to me, that's for sure. Andrew Schulman and others did the heavy lifting, I'm just spreading around what they found.
cristobaldelicia@reddit
Microsoft didn't make the slightest step toward elucidation that, and the contrary. it promoted Windows 3, not just Windows for Workgroups nor 3.11, as a brand new operating system. You won't blind me with science, even computer science! THEY LIED. All the programming wizard on the world is going to change that. BTW, wanna tell us how Win 3 worked in OS/2? Is it any less enlightening?
rosmaniac@reddit
Of course the marketing folks lied, that's what marketing does.
But facts are facts, and the code doesn't lie. Enhanced Mode Windows really was its own OS, and little by little it completely overrode DOS at every level, with the starting point being the redirection of the software interrupt instruction INT by way of replacing the real mode interrupt vector table (IVT) with the protected mode interrupt descriptor table (IDT). This allows V86-mode programs to call out to 32-bit protected mode. VMM386.VXD is what is known as a Virtual Machine Manager and manages the various virtual machines running in virtual 8086 mode as well as other modes.
OS/2 and the Win16 interface? It would have worked just like the NT kernel's support of Win16 did: OS/2 exposed a DOSish API, and programs that were well-behaved and only used the published API worked fine. As long as INT 21H and the others returned the correct results given the correct parameters DOS programs that stuck to the point blushed API didn't care; as long as the Windows programs followed the published Win16 API, as implemented by the Win16-on-OS/2 compatibility layer, they didn't care, either. It's when programs took undocumented shortcuts and didn't stick to the published API (and lots of software did NOT stick to the published API!) were there issues. Well, that and Microsoft's misdirection and attempts to keep the competitor's code from working, of course.
That would probably be part of the reason Schulman titled his book Unauthorized Windows 95.
zoharel@reddit
I think it's entirely fair. Also there were far better such stands built on top of DOS. It may not even be in the top 5.
Zalenka@reddit
But at the time 95% of the programs would just take you to dos anyway. 100% of games.
cristobaldelicia@reddit
You could run Windows 3 (3.1 and 3.11) on top of Dr.DOS which is a lot less like MS-DOS than it sounds. You could also Install it on OS/2. The big takeaway is that neither Apple nor Atari called them shells, and the original Mac OS was an OS where the graphical aspects were intrinsic. People seem to resist the idea that M$ could fool so many people into believing it was a whole new operating system.
felixthecat59@reddit
Windows didn't come into it's own, until multitasking support was built in. Up until Win95, you needed a multitasking program like Desqview, that was able to switch programs in, and out of memory, and move it to the memory space above the 640K limit.
T-tail88@reddit (OP)
Multitasking has been part of Windows since Windows 386 in 1987.
darthuna@reddit
I've never seen any windows referred to as a shell. I've only seen the MSDOS shell referred to as a shell when running Windows.
djnw@reddit
It’s a reference to a “witty” thing some people had on their signature on forums and usenet:
“32 bit extensions and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company, that can't stand 1 bit of competition.”
You know the ones - they think spelling Microsoft with a cent and dollar symbol instead of the c and s is a savage burn, instead of what what a literal child would do.
stuffitystuff@reddit
Were you around back then? Because Microsoft's "embrace, extend, extinguish" and "FUD" playbooks were continually killing any competition, culminating in a criminal trial that they lost? They deserved to be pilloried every chance anyone got, no matter how juvenile someone 30+ years later might've seen it. Plus, they were (and still are) wildly uncool.
Is SCO going to get whitewashed, next?
djnw@reddit
Yes, my first computer was a C64, then a 386SX/16.
I did follow the various shenanigans with SCO at the time, having heard about the case from one of the IT professors at college who ran a small SCO network.
Yes, what Microsoft did was bad, but what dorks were doing online was still infantile.
Ps: Peepee poopoo Microsoft are a bad company.
stuffitystuff@reddit
It was pretty cool to us teenagers/early 20-somethings at the time. Maybe you were just too grown-up and cool or something?
Lobster_McGee@reddit
Yeah this take that making fun of Microsoft is “childish” ignores the massive harm that the company did and continues to do to the computing industry. Buying and destroying competitors, stealing IP and bankrupting companies that called them out. So many easy-to-find examples.
Microsoft is the industry leader because of their monopoly, their greed, and their shady business tactics, not the quality of their code.
djnw@reddit
I’m sorry about your usenet signature.
Lobster_McGee@reddit
I’m not bitter about the past, I’m bitter that corporate America is bought and sold to Microsoft, and millions of people are forced to use shitty software like Outlook, OneDrive, and Teams, all the while getting pointless AI shoved down their throats. It’s a bad timeline.
ILikeBumblebees@reddit
The common term people used in the Win3.x era was "operating environment", but "shell" was common as well.
RevolutionaryArt3026@reddit
I may as well say:
Windows 1.0 is just a shell Windows 2.0 is just a shell Windows 3.0 is just a shell Windows 3.1 is just a shell Windows 3.11 is just a shell Windows 95 is just a shell Windows 98 is just a shell Windows 98 SE is just a shell Windows Me is just a shell
Timbit42@reddit
The early ones are just a shell. The later ones are still not fully independent OSes and are still somewhat just a shell.
cheezballs@reddit
Meh kinda disagree. Even using 3.1 back then, I was constantly making boot disks and things to free conventional memory, which of course also included skipping booting windows. It was clear to me that DOS was the one doing all the heavy lifting.
nobody2008@reddit
If Norton Commander had its own apps, then sure compare it to Windows 3.x. Windows 3.x was a shell in the sense that you couldn't just install it to a barebone computer. It installed on top of DOS. But it was a lot more complicated than a program like NC.
Psy1@reddit
It is kinda of desktop and windowing system like X11 and KDE or GNOME on Linux. At the very least Dos is the back end for example Windows 3.x will still rely on your dos drivers for the SCSI and CD drivers. And really most Amiga drivers are on the AmigaDos level rather then Workbench level so it in itself is not a bad design decision.
Also those that used computers based on the Motorola 68k never was in amazement of the Windows 3.x as you had MacOS, GEM, AmigaOS and Unix.
pyrulyto@reddit
The actual comparison made at the time (source: being old 😅) was to the likes of OS/2 (which had a clearer separation between OS and graphic shell, among other layer), and to 95 and NT when they came around. Also Windows 3.x gained increasingly more OS powers in minor version upgrades with the introduction of 386 enhanced mode, win32s, etc., so it’s indeed nuanced.
Shotz718@reddit
For me, I somewhat agree. Windows/386 was really the beginnings of Windows becoming a fully fledged OS. When Windows itself would unload DOS and then manage all the hardware itself.
By the time of Windows 3, and especially WfW 3.11, Windows literally did everything but boot itself. It relied on DOS to set up lower memory management and to call Windows into action, but then took essentially complete control of the system. Up to and including managing DOS itself.
By the time of Windows 9x, even TSR's had become irrelevant and Windows drivers could handle calls from DOS applications. To the point that the old config.sys and autoexec.bat files were relegated to compatibility purposes only.
By Windows 95 I would argue that it was an OS. The line is muddy with Windows 3.x in 386 enhanced mode. There's so much at the low level that Windows is taking care of instead of DOS.
yodamastertampa@reddit
It was an windowed application runtime on steroids.
computix@reddit
I agree with you, with some nuances.
Is Novell Netware, a shell? It was also started from DOS, but it does take over the whole machine once it's started. AFAIK it doesn't use any DOS functions.
Linux loaded with Loadlin, also a shell? Linux fully takes over, but Loadin was sometimes used to initialize devices with MS-DOS utilities.
Windows 3.1 uses a lot of MS-DOS stuff, especially in Standard mode, but Windows 3.11, which only has 386 enhanced mode and 32 BDA and 32 bit FSA is an OS in basically every way that counts. It has its own File system and storage stack that runs inside its own kernel. It also has its own network stack (TCP/IP 32 bit). It does do some small things through MS-DOS for compatibility, and it can, for compatibility reasons, do a lot of things through MS-DOS when needed, but it doesn't have to if you have drivers and a clean system. Strangely it does accesses CD-ROMs through MS-DOS (with MSCDEX), they just didn't build that into Windows for some reason.
When you start Windows 3.11 in 386 enhanced mode takes over the machine and MS-DOS runs inside a virtual machine using the 386's v86 mode. It does this in a clever way so you can return to MS-DOS, unlike Netware and Linux with Loadlin, but that's just by design, it could have also used destructive loading if Microsoft designed it that way.
For Windows 9x it's even more ridiculous to call it a shell, because it takes over every aspect of the system. This stuff about it being a shell was popularized by people that basically didn't know what they were talking about. The popular press, not people that are experts in OS design.
Tokimemofan@reddit
The features you refer to as being Windows 3.11 are from “Windows for Workgroups 3.11”. They aren’t the same, don’t conflate them.
ken_the_boxer@reddit
Yo, I heard you like shells, so we made a Norton shell for your Windows 3.0 shell, so you can shell in your shell!