4 ms·
DOS was much more of a glorified process loader than an operating system as we think of one today. It had no knowledge of memory models, very limited knowledge
by bleepblorp 6y ago
DOS was much more of a glorified process loader than an operating system as we think of one today. It had no knowledge of memory models, very limited knowledge of protected mode, and no means to constrain application behavior.
"DOS" memory models were styles of programing rather than features the DOS kernel understood, much less supported. The DOS API always used far pointers for addressing and had no notion of which memory model a calling process used.
As far as protected mode is concerned, DOS has very limited knowledge of protected mode. Any DOS application could switch to protected mode at any time. In earlier versions of DOS, this was done by setting up the processor hardware directly. In version 4 and beyond, DOS software entered protected mode using VCPI or DPMI functionality through emm386.
Any DOS process which went into protected mode essentially became the running operating system and was on its own and had no support from the DOS kernel. Technologies were eventually developed to allow protected mode software to call the DOS kernel and BIOS--typically used for filesystem access and video mode setup--but the protected mode code was ultimately in control of the computer. DOS was a second-class citizen at best.
- alfiedotwtf 6y ago> The DOS API always used far pointers for addressing and had no notion of which memory model a calling process used Ha, yeah it's all coming back to me. > Any DOS process which went into protected mode essentially became the running operating system and was on its own and had no support from the DOS kernel. Technologies were eventually developed to allow protected mode software to call the DOS kernel and BIOS--typically used for filesystem access and video mode setup--but the protected mode code was ultimately in control of the computer. I don't know what it is, but it really felt like a superpower after setup and then flipping CR0. You knew that every single bit of code running on that box after that was hand crafted by you. Unless you go embedded, gone are those days. Computers are too complex these days to know what every single think is doing... we've all now been delegated to mere mortals :(