On Sun, 26 Dec 2021 at 22:19, Aitor Santamaría <aitor...@gmail.com> wrote: > > Why isn't multitasking just another feature that you "add" on top?
It was. There were multiple multitaskers for DOS, of which the best was generally agreed to be DESQview. The snag was the 640 kB memory limit. On an 8086 or 80286, all apps had to fit into that 640 kB along with DOS and the multitasker itself. You had about 500 kB to try to fit 2 apps side by side. Doesn't allow much. The main use was that you could leave your work, open a DOS prompt and format a floppy or move some files around or something. DESQview/386 changed that. It ran in conjunction with the QEMM386 memory manager, ran an 80386 or higher in virtual 86 mode, so you could use multiple megabytes of RAM to run many DOS programs side by side. The slight snag was that you needed to load all your drivers first -- CD, sound card, network, mouse, etc. Maybe network stack. *Then* DESQview. So your apps didn't get 640 kB each. They got whatever was left after loading DESQview each: but 550 kB or so each was doable, and allowed a lot of flexibility. So, yes, this was 100% viable as an add-on, and TBH I do not really understand why you would pick on a component of Windows as being notable. This seems to me a bit like saying that one particular building was significant, when what you're talking about is bricks. The benefit of Windows 3 was that everyone got this functionality as standard -- but that came at a very high price. You had to buy Windows as well as DOS, then you needed a lot more RAM -- DESQview was useful in 1MB and quite capable in 2MB, whereas Windows really wanted 4MB to work well. And Windows was not just big, it was also slow. DESQview imposed no perceptible overhead, really. Windows made your whole PC slower because it was a GUI for its own GUI apps that just happened to have DOS multitasking as a bonus feature. The one clever thing in Windows 3.x was the concept of the "system VM". Windows had a special dedicated DOS box for running drivers and things in, which meant it could load some of your network stack or something in that VM via a special batch file that most people didn't know about. This meant that you got a network redirector or whatever available to Windows but it didn't take up memory in DOS boxes. But Windows was not unique in adding multitasking. MS had its own special MS-DOS 4 with multitasking, which was only released via a few OEMs in Europe: http://www.os2museum.com/wp/multitasking-ms-dos-4-0-lives/ ... such as Goupil: http://www.os2museum.com/wp/multitasking-ms-dos-4-0-goupil-oem/ This evolved into a pre-OS/2 prototype multitasking OS, MT-DOS or CP-DOS: https://www.os2museum.com/wp/before-os2-was-os2/ > Why DOS386.EXE (later renamed to VMM32.VXD) would run "on top" of DOS and not > be DOS itself, the natural way DOS adapts to a 386? > Just because, for commercial reasons, Microsoft never sold this DOS unbundled > from their GUI, I don't see this to be part of Windows, but DOS. This is a red herring. It isn't what you think it is. It's not a multitasking add-on for DOS; it's a component of Windows. Windows has DOS multitasking long before Windows 3. There was a special 386 edition of Windows 2.01 that also could multitask DOS apps: http://oldcomputermuseum.com/os/windows_386_v2.10.html > (and if it isn't, where is the technical limit? EMM386.EXE is more alike to > VMM32.VXD than to MSDOS.SYS) But this is still Windows and not DOS. You are again confusing product lines. No, DOS multitasking was not some separate function that could be extracted from Windows and made stand-alone. It was an integral part of Windows right back to Windows/386. Windows 3 did not introduce major new functionality: what it did was _combine_ Windows 2, Windows/286 and Windows/386 into a single product that detected which kind of computer you had and enabled the appropriate level of functionality when you started the GUI. But what you are getting wrong is that DOS multitasking was something separate or additional. An entirely separate, unrelated line of MS OSes included DOS multitasking, independently of and before Windows. This shows that Microsoft was aware of the need and the abilities of newer PCs. IBM wrote PC DOS 4, not Microsoft. It's the only major version of DOS that MS adapted from IBM rather than the other way round. The worldwide retail MS-DOS 4 had no multitasking. IBM marketing didn't want it and made other mistakes, such as restricting OS/2 1.x to the 80286, leaving it crippled and unable to use the hardware-assisted DOS multitasking of the 386. The problem here is that if you bolt multitasking right into the DOS kernel, then programs that aren't compatible with multitasking, or which need to interact with it (such as filesystem redirectors, needed for networking and for CD-ROM drive support) need to be rewritten to be multitasking-compatible. A multitasking DOS is not and can't really be 100% compatible with all DOS apps, and I think that is why MS didn't pursue this line. If the multitasking is in an additional layer, on top of DOS, then you can just quit that layer to run your games or other incompatible apps. Then, as PCs grew much more capable, you could run an entire virtual machine with a copy of DOS inside, to run those apps that need the whole PC to themselves in their own private environment, where they think that they do have the whole PC. That was doable by the early 1990s, for example in OS/2 2.0, but it wasn't really viable in the late 1980s. > My point here is, NT has indeed quite a bunch of more stable and better > thought features of an operating system that was conceived in the late 80's > rather in the late 70's (a better filesystem, more suitable to networks, and > basically, a brand new Win32 API more suitable for writing stable > applications), but I don't see multitasking as the feature that killed DOS. You know that NT is derived from 2 parent OSes, right? It was written by the architect and lead team of DEC's VAX-VMS OS, Dave Cutler, built on the basis of what was planned to be OS/2 3.0, a planned processor-independent version of OS/2 that would run on non-x86 chips. The prototype was built on Intel's i860 RISC processor, which was not x86. The chip was codenamed N-Ten: that is why the initials "NT". The design of NT owes a little to OS/2 and a lot to VMS -- a 1970s OS. > If Microsoft did not do it, imagine how nice it would be that there were in > FreeDOS an open source version of VMM32 with a good set of well written VxDs > (and that the very first thing it does after loading is NOT to find that > KRNL386.EXE and run it). Of course, that's an outstanding challenge, I don't > think anyone would do it :( Again, I think you are looking in the wrong direction at the wrong thing. Windows features are irrelevant. Look at DOS features and DOS multitaskers. Sadly DESQview never went open source. Nor did Concurrent DOS, or the multitasking bits of DR-DOS (just its kernel and command interpreter). In fact the only multitasking DOS that did become FOSS was PC-MOS/386. https://www.zdnet.com/article/ms-dos-variant-pc-mos386-reborn-as-open-source/ https://en.wikipedia.org/wiki/PC-MOS/386 -- Liam Proven ~ Profile: https://about.me/liamproven Email: lpro...@cix.co.uk ~ gMail/gTalk/FB: lpro...@gmail.com Twitter/LinkedIn: lproven ~ Skype: liamproven UK: (+44) 7939-087884 ~ Czech [+ WhatsApp/Telegram/Signal]: (+420) 702-829-053 _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user