feature article
Subscribe Now

Next Door to Genius

Was Microsoft Built on Pirated Software from Digital Research?

“If you can’t say something nice about someone, come sit right here by me.” – Alice Roosevelt Longworth

This story is part grave digging, part mythology, part forensic analysis, and part courtroom drama. It’s new and it’s old. It’s about computers and it’s about people; good guys and bad guys; intrigue and betrayal. And it’s all true. Well, most of it, anyway.

Some of you already know the story – or think you do – and it starts like this. A computer science professor named Gary Kildall, working out of his house in tiny Pacific Grove, California, invented his own programming language called PL/M as well as an operating system he called CP/M. When he wasn’t teaching, he consulted part-time for Intel, but the chip company wasn’t interested in his new OS.

So Kildall formed his own company, Digital Research, and, before long, he was selling more copies of CP/M than he’d ever expected. Homebrew computer builders and hobbyists liked CP/M for its modularity and portability. It became the de facto standard operating system for these new things called “personal computers.”

That’s about the time IBM entered the market. The computer giant needed software for its new PC, so IBM representatives flew to Seattle to see Bill Gates about licensing his BASIC programming language. Gates suggested that IBM also pay a visit to Gary Kildall in California to see about licensing the CP/M operating system to go along with his BASIC interpreter. But Kildall and company weren’t available when IBM arrived, so the men in the blue suits made a return trip to Seattle to seek a second alternative. Thinking quickly, Gates bought the rights to the QDOS operating system from another local Seattle company, made some minor tweaks, renamed it MS-DOS, licensed it to IBM, and started down the path to becoming the world’s richest company. The End.

Ever since then, people have accused Microsoft of “stealing” CP/M from Digital Research and Gary Kildall. The two operating systems are certainly very similar. Anyone who’s used them both will tell you that they’re nearly interchangeable from a user’s point of view. The commands, the file structure, the programming interface – it’s all uncannily familiar.

So did Microsoft rip off CP/M? Should Gary Kildall have been the next Bill Gates?


It’s that simple. For all of its similarities, MS-DOS is emphatically not a copy of CP/M. It was, instead, written from scratch by a guy named Tim Paterson at Seattle Computer Products. Microsoft bought QDOS (Quick and Dirty Operating System) for $75,000, hired Paterson, and that was that. QDOS was original, just as CP/M was original. But the rumors refuse to die.

How do we know for sure that MS-DOS wasn’t copied from CP/M? Because a recent expert forensic analysis says so. Bob Zeidman specializes in exactly this kind of binary, bit-for-bit comparison, and he says they’re hardly similar at all. Zeidman’s company serves as expert witness on numerous high-tech court cases, including the recent Google/Oracle fracas and the more famous Facebook (The Social Network) infringement case. Scouring source code and object code for infringement is what they do all day, and they just last week concluded that no, MS-DOS does not copy anything significant from CP/M.

Why bring this up now? Because early copies of MS-DOS source code have recently come to light, thanks to a donation from Microsoft to The Computer History Museum. This allowed Zeidman to examine different versions of MS-DOS source code, line by line, for the first time. (The source for CP/M was already available.) They also examined the binaries of both operating systems, which can be just as useful.

Their conclusion? There was no copying between the two. MS-DOS and CP/M were developed independently, largely by two individual programmers, working at two different times. Yes, there are many similarities in how they work – their “look and feel” – but that’s to be expected in an era when microcomputers, floppy disks, and CRTs are all new. There are only so many ways you can send ASCII text to a console. Other contemporary operating systems, such as Apple DOS and VMS, look pretty similar, too.

Adding to the similarities was the fact that MS-DOS (like QDOS before it) was deliberately designed to have partial file compatibility with CP/M diskettes. Given that CP/M was the dominant PC operating system at the time, it only made sense to be compatible with CP/M’s filesystem.

The only place where CP/M and MS-DOS do align is in their respective tables of system calls. Both offer an array of callable functions to read from the keyboard, check device status, open and close files, and so on. These are all accessible via a jump table. Intriguingly, both operating systems organize their system calls in nearly the same order. Function 0 is the same for both; Function 1 is the same for both, and so on.

Zeidman is quick to point out that the code implementing these functions is quite different. There’s no similarity between their implementations. Only their order of appearance in the table of APIs is mostly (but not entirely) the same. It can’t be explained by coincidence, but it’s not software plagiarism, either.

The issue is reminiscent of the recent Oracle/Google lawsuit, where the similarities between Android’s APIs and those of Java were in dispute. But in that case, the code implementing the APIs actually was the same. With CP/M vs. MS-DOS, that’s not the case.

So why, out of the blue, did Tim Paterson copy most of Gary Kildall’s list of system calls? The short answer is, why not? Both operating systems implemented a similar set of features (albeit with different code), and a certain level of compatibility would have been desirable. So Paterson could either (a) arrange the system calls in some sequence that made sense to him; (b) organize them at random; or (c) reuse an existing order that was already proven to work. In the absence of any compelling reason to change CP/M’s established methods, he chose the quick and dirty route. 

So the technical analysis is done, the evidence is in, and the jury has gone home. MS-DOS is not a copy of CP/M, just a similar operating system developed at a similar time. And yet, the rumor persists. “Microsoft stole MS-DOS! The company is built on ill-gotten gains!”

Some people just need a bad guy. For many, an illicit story fuels their resentment of Microsoft and its success. We like to root for the underdog, but we have mixed reactions to their success. Our own success is good and right; others must have gotten theirs unfairly.

Kildall himself could be resentful of Microsoft, too. He felt that his own contributions to the industry had been overshadowed, and that other companies didn’t always emphasize software elegance the way he did. But his work didn’t stop at CP/M. He went on to create MP/M (multiuser CP/M), a LOGO language compiler, a graphical user interface, and his own PBX system. He later sold Digital Research to Novell, made millions on the deal, and retired to an opulent house near the ocean in Pebble Beach. Life didn’t suck.

On a personal note, Gary Kildall’s old house is just a few doors down from mine on the same street. I see the Kildall family home (which doubled as Digital Research’s headquarters) every day. When the company expanded into a second building, it was also in our same little neighborhood. There’s now a brass plaque mounted in the sidewalk in front of the Kildall/DRI building, put there by the IEEE in honor of his contributions to the computer industry.

Gary Kildall wasn’t the man who should have been Bill Gates. He’s the man who was Gary Kildall. 

One thought on “Next Door to Genius”

Leave a Reply

featured blogs
Jan 19, 2021
As promised, we'€™re back with some more of the big improvements that are part of the QIR2 update release of 17.4 (HotFix 013). This time, everything is specific to our Allegro ® Package Designer... [[ Click on the title to access the full blog on the Cadence Communit...
Jan 19, 2021
I'€™ve been reading year-end and upcoming year lists about the future trends affecting technology and electronics. Topics run the gamut from expanding technologies like 5G, AI, electric vehicles, and various realities (XR, VR, MR), to external pressures like increased gover...
Jan 18, 2021
The DIY electronics portion AliExpress website can be a time-sink for the unwary because one tempting project leads to another....
Jan 14, 2021
Learn how electronic design automation (EDA) tools & silicon-proven IP enable today's most influential smart tech, including ADAS, 5G, IoT, and Cloud services. The post 5 Key Innovations that Are Making Everything Smarter appeared first on From Silicon To Software....

featured paper

Common Design Pitfalls When Designing With Hall 2D Sensors And How To Avoid Them

Sponsored by Texas Instruments

This article discusses three widespread application issues in industrial and automotive end equipment – rotary encoding, in-plane magnetic sensing, and safety-critical – that can be solved more efficiently using devices with new features and higher performance. We will discuss in which end products these applications can be found and also provide a comparison with our traditional digital Hall-effect sensors showing how the new releases complement our existing portfolio.

Click here to download the whitepaper

Featured Chalk Talk

Benefits of FPGAs & eFPGA IP in Futureproofing Compute Acceleration

Sponsored by Achronix

In the quest to accelerate and optimize today’s computing challenges such as AI inference, our system designs have to be flexible above all else. At the confluence of speed and flexibility are today’s new FPGAs and e-FPGA IP. In this episode of Chalk Talk, Amelia Dalton chats with Mike Fitton from Achronix about how to design systems to be both fast and future-proof using FPGA and e-FPGA technology.

Click here for more information about the Achronix Speedster7 FPGAs