
Empirical Comparison of DOS Kernels (2015) - unixhero
https://flaterco.com/kb/DOS-kernels.html
======
fuzzfactor
Keep in mind that DOS 7 from W98SE can boot, access and format SATA and USB
drives usually natively from BIOS mode, with multiple FAT32 partitions as
large as 32GB starting within the first 120GB from the MBR at sector 0, and
much deeper when the MBR has been replaced by one from NT6 and up to 2TB HDD's
can be often used.

Just like W95b, and W95b can be made to fit and work well within 32mb of drive
space, 8mb memory or more but preferring under 1 or 2GB memory, and allowing
2.0GHz or less with the AMD K3 patch, it runs better than the relatively
bloated W98SE, whose type of built-in networking can optionally be added to
W95b, and LAN drivers are still widely available for DOS/W9x.

With a little more drive space and Office 97, you get Word, Excel, and even
Power Point whose primary features are still fully capable of creating for and
opening files from any later version of Windows or Open Source Office keeping
simple well-defined limitations in mind at both ends.

The drawback is usually graphics drivers for which pleasing high resolution
can not easily be obtained.

~~~
winrid
What about security?

~~~
unixhero
Well the DOS operating system exposes RING0 to the user and to all programs,
privileged mode. DOS isn't secure as such.

You can install some antivirus software which sits resident in memory and
enables some protection against malicious viruses interacting with files,
memory, MBR.

------
etaioinshrdlu
Philosophically, I cannot help but feel like a kernel without memory
protection or any multitasking is better called a library than a kernel. It's
effectively a series of function calls the applications can call, to my
knowledge. I guess we expect a whole lot more of OS's now.

~~~
MisterTea
It's closer to an RTOS as all it does is load a single program and provides
that program an API to access services and hardware. Sure, you can run other
programs within programs but you switch execution between programs and
whatever is running has full control of the machine. There are no interrupts
or scheduling so the running program has to voulinteraillary yield or exit to
switch back.

~~~
etaioinshrdlu
> Sure, you can run other programs within programs but you switch execution
> between programs and whatever is running has full control of the machine

Are you talking about terminate and stay resident, TSR? Barely qualifies as
multitasking IMO because I don't think yield() can even be done.

~~~
MisterTea
I remember calling them subprograms and TSR's were things like memory managers
and drivers. e.g. you could open a shell or other program from within a
program like norton commander or dos shell. I can't remember if you could
switch between them or the subprogram had to exit before control was returned
to the the calling program.

~~~
temac
There is no multitasking for regular programs in DOS: if a program launches
another one, the parent is simply paused until the child exits.

Also DOS used various interrupt handlers (not just the synchronous int 21h)

~~~
MisterTea
> There is no multitasking for regular programs in DOS: if a program launches
> another one, the parent is simply paused until the child exits.

Well aware of that fact but my question is could you switch from the
subprogram back to the main program without exiting the subprogram? I feel the
answer is no but I can't remember.

e.g. I open norton commander and run qbasic. norton commander is paused and
qbasic takes control. Is there an interrupt call which allows me to return
control to norton commander without exiting qbasic and let qbasic stay paused?

~~~
Falkon1313
>could you switch from the subprogram back to the main program without exiting
the subprogram?

There were TSR task-switcher programs to do that, effectively allowing you to
turn normal programs into TSRs. I had a single floppy-drive PC with no hard
drive, but I had 640K of RAM. So I would run the task switcher from its
floppy, allocate task 1 some RAM and load that program from its floppy, then
allocate task 2 some RAM and load that from its floppy, then switch to task 3
and use the rest of the RAM for whatever. Whenever needed, I could switch back
to task 1 or task 2, without having to switch floppies or exit the current
task. I think it was DOS 3.30 when I used that. It was handy to keep small
utilities (like a text editor and unarchiver) loaded and ready to look at the
contents of any disk.

The list from Ralf Brown's Interrupt List gives an idea of what some of the
task switchers were:
[http://www.ctyme.com/intr/cat-011.htm](http://www.ctyme.com/intr/cat-011.htm)

[Topview]([https://en.wikipedia.org/wiki/IBM_TopView](https://en.wikipedia.org/wiki/IBM_TopView))
appears to have had an interesting story. And of course DESQview followed. I
never used either of those.

You could do a lot in DOS with ASM and interrupts, as long as the code was
small. But with the hardware limitations, and the way people usually used PCs
during DOS's prime years, it didn't really make sense to put too much effort
into multitasking. Towards the end we were often rebooting with distinct boot
disks, each with a different AUTOEXEC.BAT and CONFIG.SYS customized to get the
most out of the hardware for each specific program. Multitasking would be
pointless in that case.

------
iforgotpassword
> •With the FreeDOS kernel and FreeCOM, conveniences are gained and the memory
> footprint under 1 MB is reduced, but compatibility is sacrificed, both in
> the post-DOS-3.3 sense and in terms of known quirks and bugs.

Anyone got some insight what exactly post 3.3 is referring to? I've seen once
or twice that retro enthusiasts like to use dos 3.3, so what's happened with
versions after that?

~~~
andrewf
I'm not sure exactly what the author was referring to but
[http://www.os2museum.com/wp/dos/dos-4-0/](http://www.os2museum.com/wp/dos/dos-4-0/)
might be of interest.

