Реферат: Making Utilities For MSDOS Essay Research Paper
Undocumented DOS Andrew Schulman suggests that Microsoft could make an add-in to
MS-DOS that would provide “clean” documented services that would eliminate the
need for the use of DOS internals. Once Microsoft actually did this, when it
introduced the IFSFUNC utility in MS-DOS version 4.00. This utility converted
the “dirty” and extremely version-dependent redirector interface into a device-
driver-like interface. However, this utility was removed from MS-DOS versions
5.00 and later (I’ll explain why in a few paragraphs).
Fortunately, the ill-fated IFSFUNC utility was not the only effort to enhance
MS-DOS. In Microsoft Windows versions 3.00 through 3.11, there is a component
called Win386. It has got its name from Windows/386, its ancestor. In early beta
releases of Microsoft’s Chicago operating system this component was called
DOS386. When Chicago was renamed into Windows 95, this component was given
uninteresting name VMM32. Finally, the beta release of Microsoft C/C++ Compiler
version 7.00 included this component from Microsoft Windows under the name
MSDPMI. I think that the best name for this component is DOS386, so I’ll call it
this way.
Probably the reader would ask, “What this component is?” DOS386 is a
multitasking protected-mode operating system. A close inspection of DOS386
reveals that it has almost nothing to do with Windows, and has a lot to do with
DOS (that’s why I prefer the name DOS386 over Win386). Two of DOS386’s
subcomponents, DOSMGR and IFSMGR, are perhaps the heaviest users of DOS
internals. These modules know a lot about the internals of MS-DOS, and they
provide their own interfaces which in fact can help an utility avoid using DOS
internals. For example, let’s return to our SteelBox utility.
This utility needs to access a file from inside an INT 21h call. Most DOS
programmers know that DOS INT 21h API is non-reentrant. It means that no INT 21h
calls can be made while an INT 21h call is already being serviced. Therefore, an
utility like SteelBox would have to play tricks with DOS internals with all the
consequences. On the other hand, DOS386’s IFSMGR subcomponent provides an