Hi,

On Tue, Aug 8, 2023 at 10:46 AM Kirn Gill via Freedos-devel
<freedos-devel@lists.sourceforge.net> wrote:
>
> On Mon, Aug 7, 2023 at 7:24 PM Rugxulo via Freedos-devel 
> <freedos-devel@lists.sourceforge.net> wrote:
>>
>> Wikipedia says the 286 "was designed for multi-user systems with
>> multitasking applications". OS/2 1.x targeted it.
>
> Multitasking requires no special hardware whatsoever. Cooperative 
> multitasking simply requires an API
> designed to yield control to the next task upon a system call. Preemptive 
> multitasking only requires a timer
> that generates a hardware interrupt with sufficient regularity.

I have never used Desqview nor Desqview/X (DJGPP v1 SDK), so I don't
know how those worked. But I have used DR-DOS 7.03's 386 multitasking.
To me it was nice but limited use (to my usage scenario) because it
was limited to 64 MB per task and required their DPMI (and their
EMM386) to always be enabled. (DR-DOS also can run Windows 3.x but not
quite run Win95 although allegedly comes close.)

> ELKS - the Embeddable Linux Kernel Subset - performs preemptive multitasking 
> on an 8086.

I never got around to trying ELKS. The lack of obvious releases (back
in the day) confused me. I can't remember if they used a FreeDOS boot
disk or not. They claimed networking and LFNs. It sounded interesting,
but I was never sure what apps were precompiled for it (IIRC, using
BCC/dev86). QEMU Advent Calendar had an image for it, but I don't
think I ever got around to trying it.

Comparatively, I've (rarely) run the 16-bit Minix 2.0.x a few times.
They used segmentation to share static code between processes, I think
(e.g. multiple instances of the same executable). Several caveats but
still a cool OS.

>> > >  For
>> > > instance, DR-DOS 7.03 supports "task swapping" on 286s but only
>> > > "multitasks" on 386s.
>> >
>> > Yes, because it uses 386 hardware features to do multitasking.

Its proprietary EMM386 doesn't need a separate HIMEM.SYS and has
embedded VXDs (or something weird like that which I don't understand)
and a built-in DPMI server. Although it reports "XMS 3.0", it really
caps out at 64 MB.

>> OS/2 was "a better DOS than DOS". Originally it was even codenamed
>> "DOS 5", right? The so-called "European MS-DOS v4 that multitasks"
>> used NE format in real mode. That's similar to OS/2 (which also used
>> NE, as did Win 3.x).
>>
>> DOS was never their top priority, but it made them money.
>> Compatibility was important (for a time).
>>
>> I doubt they originally intended to sell multiple OSes, but when you
>> try to support 8086, 286, 386 ... what can you do? Ever-increasing
>> memory amounts needed newer OSes and APIs.
>
> The original plan was to let Windows fade away after 2.x; there was an 
> engineer at Microsoft that mostly
> improved Windows by himself enough to run all of the Microsoft Office 
> components at the same time
> (a difficult, if not impossible feat under Windows 2.x of any flavor) and got 
> an executive's attention shortly
> after the OS/2 launch with his experimental Windows build that it caused 
> Microsoft to repivot around DOS
> and Windows again.

Gordon Letwin had a long post explaining his view of the MS split from IBM:

* 
https://groups.google.com/g/comp.os.ms-windows.misc/c/-iNeep60eVE/m/Xl5ddAtJENcJ?hl=en

> My understanding is that OS/2 is a direct descendant of Multitasking MS-DOS 
> 4.10 (an even rarer update
> to the already-rare multitasking 4.00) with a LOT of reengineering behind the 
> scenes. Limited analysis with
> Ghidra, however, can neither confirm nor deny this hypothesis at this time.

Most of the work on the 1.x (16-bit) versions of OS/2 was done by
Microsoft. Supposedly their 32-bit "portable rewrite" is what became
NT. (However, Win95 could still barely run atop a 386 with 4 MB of
RAM, so it stuck around on the consumer side.)

>> > > NT was not aimed at DOS software. It was incomplete in DOS support in
>> > > many ways (and had a much higher footprint).
>>
>> Win95 had DOS features (FAT32, LFNs) that NT didn't get until Windows 2000.
>
> But back to DOS, NT's support for DOS is cruddy on purpose. It's meant as a 
> developer compatibility tool
> to keep old compilers working, it wasn't really meant for consumer use. On 
> i386, it's uses the Virtual 8086
> Mode to implement a fresh DOS environment.

Windows 3.0 and Windows NT 3.1 both had many DOS bugs that were only
fixed later. Heck, Win95 had various bugs. Even XP (which "mostly"
worked) had bugs. NT wouldn't run Quake because of its DJGPP's nearptr
usage while Win95 could (with help from CWS of CWSDPMI). Some bugs in
XP were worked around in DJGPP "patchlevel 2" to 2.03 (aka 2.03p2). So
apps compiled after that (late 2001) actually worked again. I don't
think OpenWatcom for DOS had the same fixes / workarounds, so it's
less stable on NT. A ton of DJGPP code relied (and still relies) on
building atop NTVDM (mostly due to LFNs). DJGPP still hosts a TSR /
DLL combo for NT 4 to work with LFNs.

> Visi-On used a p-code type bitcode system a la modern .NET or Java.

James Gosling was familiar with UCSD Pascal (based upon ETH Zurich's
Pascal P sources) which also used pseudo code. (P4 has been ported to
DOS, so has its successor P5.)

There was also (an official??) Java 1.1 build for DOS in 1997 via
DJGPP, but I've never seen much mention of it being used.

> Because of this, Visi-On was able to implement a multitasking scheme that was 
> completely divorced from
> the hardware (in)capabilities of the IBM Personal Computer and/or its Intel 
> 8086 processor. However,
> it doesn't multitask DOS applications, only Visi-On GUI applications.

Feel free to make P4 or P5 multitask. (The old Copascal and various
Ada interpreters for DOS were loosely based upon Pascal-S, I think.
GWU Ada was verified at one point. There also was an EZ2LOAD
GNAT/DJGPP build in the late '90s that allegedly had some tasking
support. But later GNAT builds didn't due to whatever obscure reason.)

Yes, this is getting a bit off-topic, but Jim mentioned GEM and apps,
so I was reminded of Visi On (running atop DOS with its own apps).

Long story short: I don't think FreeDOS not having a DOSshell clone is
a significant omission. Nobody will write the "program switcher" code
(too complex), and we already have file managers. So I don't see what
else it would offer. Feel free to prove me wrong, but there's just too
much inertia and not enough time or experience to do such heavy tasks
like that. FreeDOS is already good enough as it is.


_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to