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

Reply via email to