Реферат: Making Utilities For MSDOS Essay Research Paper
a multitasker, a local area network, or another operating system extension,
without knowing this undocumented functionality in MS-DOS. And, sure enough,
Microsoft is using this functionality extensively when developing operating
system extensions. For example, Microsoft Windows, Microsoft Network, and
Microsoft CD-ROM Extensions (MSCDEX) rely heavily on the undocumented internals
of MS-DOS.
The reader can ask, “Why do they leave functionality undocumented?” To answer
that question, we should look at what this “functionality” actually is. In MS-
DOS, the undocumented “functionality” is actually the internal structures that
MS-DOS uses to implement its documented INT 21h API. Any operating system must
have some internal structures in which it keeps information about disk drives,
open files, network connections, alien file systems, running tasks, etc. And MS-
DOS (later I’ll call it simply DOS) has internal structures too. These
structures form the core of undocumented “functionality” in MS-DOS. This
operating system also has some undocumented INT 21h API functions, but they
serve merely to access the internal structures.
These internal structures are extremely version-dependent. Each new major MS-DOS
version up to 4.00 introduced a significant change to these structures.
Applications using them will always be unportable and suffer compatibility
problems. Every computer science textbook would teach you not to mingle with
operating system internals. That’s exactly why these internal structures are
undocumented.
This bring another question, “Why does Microsoft rely on these structures in its
own applications?” To answer this question, we should take a look at an
important class of software products called utilities. Utilities are programs
that don’t serve end users directly, but extend an operating system to help
applications serve end users. To put it another way, utilities are helper
programs. Perhaps the best way to learn when you have to mingle with DOS
internals is to spend some time developing an utility for MS-DOS. A good example