Hacker News new | past | comments | ask | show | jobs | submit login
EMM386 and VDS: Not Quite Working (os2museum.com)
45 points by eaguyhn on March 1, 2020 | hide | past | favorite | 5 comments



I've always found DOS esoterica --- and how it behaves with Windows (from Windows/386 up through the 9x line) very interesting in that it's one of the examples of how virtualisation can be a powerful tool. Windows could multitask DOS applications by effectively virtualising the hardware, and the whole VXD driver model was based around the notion that DOS applications --- and even Windows ones via userspace driver libraries --- could continue to be written as though they accessed the hardware directly, but the virtual device driver (VXD) that runs in ring0 would catch the accesses and manage sharing the physical device between different "virtual machines".

Of course it wasn't perfect in practice, but I thought it was a rather elegant solution to the problem of both backwards compatibilty and performance (since virtual devices often only needed to handle multiplexing the physical device, which could be as simple as saving and restoring state when switching between VMs, there is no additional API layer and applications could still act like they access hardware directly.)


OS/2 was supposed to be a better DOS than DOS but suffered these glitches in the article.

Windows 95 ran WWIV BBS better than OS/2 at the time. You had to write in OS/2 routines to make use of it which is what WWIV did later.

DOSbox is what I use now for DOS programs.


Seeing terms like EMM386 and DesqView conjured up some strange flashbacks from the late 80s for me. Thanks for that!


Then check out the rest of the site this article was posted on.

Welcome to the rabbit hole.

This is practically explaining what was pure magic to me in my childhood. I can't stop reading this blog


Virtual memory manipulation maybe making it look like magic. I would verify in a good emulator with complex, conditional breakpoints that the page tables weren't being modified and TSS wasn't being switched within one of these API calls.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: