Hi,

On Thu, May 3, 2012 at 8:29 AM, Michael B. Brutman
<mbbrut...@brutman.com> wrote:
>
> Rugxulo,
>
> You read into things too literally at times ...  ;-0

I know, and I was being facetious (somewhat).

> The 808x series of processor was segmented.

But compared to CP/M (64k max. per app), it was a big improvement.

> It was used on a machine
> that reserved a portion of memory for system BIOS, system BIOS
> extensions, and video RAM.

IBM architecture, yes, and you had to have some of that stuff. Well,
maybe not, SCP's original 8086 board could (and did) use the full 1 MB
(according to Tim Paterson).

> The first versions of the operating system (DOS) did very little to mask
> the architecture of the PC.

16k or 64k isn't a lot of RAM to begin with, so you can't have too
many bells and whistles.

> If you wanted to read the keyboard or draw
> the screen, you could use the DOS functions which were very incomplete
> in their implementation.  Or you could go directly to hardware.  Except
> for a few small warnings ("please don't go to BIOS, it might break your
> application on a completely non-conforming machine), many people went
> straight to the hardware.  It only supported contiguous chunks of
> memory, making it hard to deal with the transition to machines with more
> than 1MB.

The 8086 was only intended to support 1 MB. That was a lot at the
time. The only workaround was EMS. I know you know this, and 10x
better than me, just saying .... It wasn't until the 286 (PC AT?
1984?) that 16 MB became the new "limit", not that anyone had that
much RAM for years to come.

> So now you have a thin shell of an operating system that does nothing to
> avoid exposing the hardware to the end applications.  And we've been
> applying one kludge after another on top of that ever since.

The BIOS supported video gfx stuff (right?), but it was too slow for
most people. This is also why many people want / use gfx acceleration
these days, they want fastest speed! But that's for games, and
admittedly, the IBM PC was never (directly) intended for home gamers.
Nevertheless, it became popular for that anyways.

We're long past all that. We could easily have a stable driver
framework if we wanted. It's just nobody has bothered. A common
interface for sound cards would be better than letting every app do it
themselves. Allegro tried this but faltered on all the "modern"
SB-incompatible stuff. I don't expect miracles, but I do know that the
problem exists.

> For example, you mention Win 3.0 (DPMI).  DPMI is a kludge to allow DOS
> applications to use more memory while still being able to invoke BIOS
> functions and DOS kernel functions.

It's far from a kludge, it's well thought out, better than VCPI even
(which was the whole point). And it was directly meant to play well
together with various environments. And yes, it was meant for DOS apps
to use more extended RAM. DPMI probably saved DOS from death (though
you could argue it was only a temporary solution until Win95 appeared
with easy support for 32-bit Windows stuff ... but MS "controlled"
Win32, unlike DOS).

> Windows and OS/2 don't add
> multi-tasking to DOS - they let several copies of DOS run side-by-side
> in what is effectively a dedicated virtual machine!

Thank the Intel 386 cpu's V86 mode for that. And keep in mind that
task swapping already existed (esp. on 286), but with 386's V86 mode
and DPMI, you could run several multi-megabyte 32-bit DOS apps at the
same time. So that was a big improvement.

> If I lock you in a
> prison decorated to look like 1988 you'll think you live in 1988 too ...

Not sure what 1988 refers to, but it's definitely not modern DOS.
Almost everybody nowadays assumes MS-DOS 5.x or compatible circa 1991.
Big difference in memory management, utils, etc. And that's not
counting all the third-party stuff.

> PC DOS 6.x and 7 still support FCB based programs.  Yes, people should
> still use file handles.  But my point was that once something gets
> added, it never gets removed no matter how archaic.

Welcome to the modern world. C++ suffers the same way, same as Java,
etc. I wish Win64 didn't kill NTVDM, but they wimped out (and don't
tell me it's impossible, it's not!!). Unless you prefer to be like Mac
OS X, which seems to drop support for something every other week.

> If you want to modernize DOS even just to support more current hardware
> you are going to have to duplicate a lot of work that has already been
> done

Yeah, do the work or do without.

> for drive controllers, video cards, USB controllers, BIOS bootstrap
> requirements, etc.  Like I said, that would be redoing a lot of the work
> that has already gone into Linux.

Some of it, yes, some of it, no. And we don't want another Linux. IMO,
Linux is too big and complicated. But yeah, DOSEMU is pretty good, so
maybe it would be more "sane" to just make a lean Linux with that
atop. But I don't think the idea of "fixing" the DOS bootup
environment etc. is too shabby either.

> If you want to really modernize DOS you are going to have to fix or
> break a lot of things that exist today.

I was fairly content with WinXP's DOS support. Not perfect but way
better than nothing (and certainly better than a slow software-only
emulator with bugs, no offense to anyone). I'm not expecting
perfection. In fact, I don't expect anything! (Is barely anybody still
active around here??)

I don't think we have to break anything, and that's not the goal. The
imaginary (hopeless?) goal is to support a few extras. But I'm pretty
content already, just not perfectly so.   ;-)     I just don't
necessarily "want" to throw everything about DOS away. Is that so
wrong?

Was Linux so wrong in copying *nix instead of reinventing everything?
"We don't need to reinvent UNIX, it already exists!" "Why are we
working on Linux when FreeBSD exists? It's the real deal!" "Why use
Linux when Windows already just works?" (See what I mean? You can
argue anything if you're lazy or just prefer something else, no
offense intended.)

> You can implement a simple OS
> that uses the INT 0x21 programming interface, but if it doesn't run
> existing software (because you have a 32 bit kernel that doesn't handle
> segment wrapping correctly),

V86 ftw!

> doesn't load existing TSRs,

IIRC, both Win9x and WinXP allowed those (more or less).

> has a different
> memory map, and doesn't allow direct access to hardware, is it really
> DOS anymore?

You can have direct access to hardware. At least memory, you can
directly access it with DPMI. As for video and sound, emulating VGA or
SB isn't impossible (as has been proven with DOSEMU, DOSBox, NTVDM,
etc). Though I'm not specifically thinking about multimedia here, just
normal productivity (mostly cmdline?) apps.

Hey, this is all just thinking outloud. I'm not much of a programmer,
and I have no huge projects in the works, so don't expect Jack
(miracle worker) from me.  :-)  But it doesn't mean some ideas aren't
worth using. I'm just saying, a "better DOS" has already been done.
We've already "adapted" a lot over the years. It's not the same DOS as
it was in the '80s. I don't want to throw anything out, but certainly
some things are worth improving, right??

We've got to change sometime, esp. since AMD64 and UEFI are pretty
much trying to squash us.  :-(

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to