New in October 2021

Whatever I may have meant—and really do mean still—through the pandemic year about bigger themes of respectability in reverse engineering through improved citation practices and in computer security by avoiding short cuts that would ordinarily be thought unsatisfactory, I must now face that I have put them onto the back burner for a while.

Instead, I have let the relative freedom from attending daily to commercial work, combined with wandering thoughts of what I’ve done for a career, become an excuse for looking fairly intently at some of my earliest work. What might DOS Internals have been if written with the resources of later life instead of those of a post-graduate student! The answer, it turns out, is: not much different. Now I have dozens of pages and fragments of new writing on DOS, but few that are even nearing completion and none that yet fit together as a coherent body of work.

There are serious points to this too, of course. I have quite taken fright at how the most readily accessible history of DOS, notably on Wikipedia, has for decades been in the hands of writers who see it only through the prism of other operating systems. Some of this comes naturally enough from DOS’s vastly superior replacements indulging DOS for compatibility. But much too much is written because what survives as active interest in DOS is a hobbyist enthusiasm for open-source projects that have developed from DOS’s lesser competitors and imitators. It’s a little as if I’ve woken after decades to find that Wikipedia’s pages on milk, cheese and dairy farming got written by fans of almond milk.

Curiously, I also feel that time has stood still. In 1990 when I first got online and even for the first few years in regular exchanges with the published experts I was honestly surprised that most of what had been learnt about DOS was done by observation and experiment, at best with using a debugger to step through code and perhaps unassemble fragments, but not so much by an organised plan of disassembling the whole code to study it as an exercise in logical deduction. Yet now in 2021 I find otherwise well-written, careful studies that talk of discovering an old program’s behaviour by having done extensive testing. Guys, the program’s not even 1KB—yes, kilobyte!

A larger point to such musing is that MS-DOS, including its extensions to support networking and its elaborations to support multi-tasking, was plausibly near the limit of what can be understood well by one expert programmer or even of what can be discussed authoritatively by a group of such experts. Recurringly as I’ve read through transcripts of depositions and even of court proceedings for anti-trust cases involving DOS and especially of Windows, I’ve been overwhelmed by the sense that this was never a process that had any chance of finding facts—even of what lawyers call facts—let alone of establishing firm enough ground for deciding questions of justice. It’s not as if software is getting less complex. As what stage must we face that justice is beyond the courts’ capability? As we contemplate another round of anti-trust investigations, would it not be more honest to admit that whatever may be the fairness that’s aimed for, it’s less a question of law than of policy?