Реферат: Making Utilities For MSDOS Essay Research Paper
structure is called SysInitVars. However, in Ralf Brown’s Interrupt List and in
general PC folklore is called the List of Lists. This is an indication that
Microsoft’s programmers sometimes act just like third-party software developers
(Schulman et al., Undocumented DOS, 44).
On several occasions I have made references to the MS-DOS source code. However,
most programmers know that the MS-DOS source code is unavailable to non-
Microsoft employees. Therefore, before we go any further, I need to explain how
could I look at the MS-DOS source code. Microsoft gives it to certain companies,
mostly Original Equipment Manufactures (OEMs). Some people can claim that they
are OEMs and get the Microsoft’s documents available only to OEMs (however, this
costs a lot of money). And then some people who don’t care too much about laws
start distributing the confidential information they have. This is especially
easy in Russia, where copyright laws are not enforced. So one way or another,
knowledge of some parts of MS-DOS source code spreads among the people. The MS-
DOS OEM Adaptation Kit (OAK) contains commented source code for some MS-DOS
modules and include files and .OBJ files made from some other modules.
Let’s summarize what we’ve seen so far. MS-DOS, like any other operating system,
has internal structures. Every computer science textbook would teach you not to
rely on an operating system’s internals. In MS-DOS, the internal structures are
undocumented. Microsoft’s own utilities do rely on them. By reverse engineering
these utilities, looking at the MS-DOS source code, and thinking the problem
through one can come to the conclusion that there is absolutely no safe way of
using the MS-DOS internal structures. The only proper way of using them is not
using them at all.
Not later than I have come to this conclusion, my SteelBox development project
returned me back to the reality. No matter how bad it is to use of the MS-DOS
internals, utility developers like me have to do it because they have no other
choice. Now I’m almost sure that this is precisely why Microsoft uses the MS-DOS
internals itself. Before we go any further, I need to clarify one important