3 ms·
Multitasking DOS apps is always a minefield. Most DOS apps are expecting to have total control of any aspect of the machine they want, so if they're suddenly b
by jandrese 1y ago
Multitasking DOS apps is always a minefield. Most DOS apps are expecting to have total control of any aspect of the machine they want, so if they're suddenly being asked to share it's bad news. This is why DOS stuff is all virtual machines now, and while Virtual Machines have many virtues, light weight is rarely one of them.
- rep_lodsb 1y agoVirtual 8086 mode on the 32-bit x86 processors was quite lightweight. EMM386.EXE used it just to emulate EMS :) And the virtualization done by Win9x or OS/2 wasn't that much more resource intensive either.
- lproven 1y agoYes, but as the comment below notes, the 386 has hardware-assisted DOS multitasking: basically, V86 mode is a hardware-enforced real mode VM. CP/M-86 was late -- years late, and MS-DOS got control of the market in that time. It didn't help that when CP/M-86 arrived on the IBM PC it was 5x the price of DOS. So, to make a more compelling product, DR merged CP/M-86 with MP/M to make Concurrent CP/M. The intent was multiple users on terminals, not multitasking on one PC, but it could do that. Concurrent CP/M got an MS-DOS emulator called DOS-mode. This was later built in and Concurrent CP/M became Concurrent DOS. (Later that bit was effectively spun out to become DR-DOS.) Concurrent DOS 286 ran in protected mode on 80286 machines and could multitask DOS apps in protect mode, which even OS/2 couldn't do. But this depended on a feature of pre-release 286 chips that Intel removed before release, crippling the new OS. (With it unable to multitask DOS on early shipping 286s, DR retargeted CDOS 286 as a real-time OS, renaming it FlexOS. That survived for decades. It's still supported by IBM and Toshiba today I think.) So when the 386 came along it did a big rewrite. CDOS 386 supports hardware-assisted DOS multitasking, including on terminals, but on the console too. No GUI, no windowing, only (by default) 4 full-screen virtual consoles, just as Linux has 7 vconsoles by default accessed with Alt-F1...F7. (Ctrl+Alt+F-keys in X11.) Including in graphics mode. At work in my first job, I ran MS-DOS COMMAND.COM on top of CDOS in one session, so it reported it was MS-DOS 3.3, but in the background the machine was running FRACTINT generating Mandelbrots for hours. No CPU heatsinks back then, no power management, no fans, so the PC was no louder running flat-out. It could even handle FRACTINT's fancy direct-VGA-register-writing graphics modes, which reliably crashed OS/2 2.0.