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
Mar 24, 2023
With CadenceCONNECT CFD less than a month away, now is the time to make your travel plans to join us at the Santa Clara Convention Center on 19 April for our biggest CFD event of the year. As a bonus, CadenceCONNECT CFD is co-located with the first day of CadenceLIVE Silicon ...
Mar 23, 2023
Explore AI chip architecture and learn how AI's requirements and applications shape AI optimized hardware design across processors, memory chips, and more. The post Why AI Requires a New Chip Architecture appeared first on New Horizons for Chip Design....
Mar 10, 2023
A proven guide to enable project managers to successfully take over ongoing projects and get the work done!...

featured video

First CXL 2.0 IP Interoperability Demo with Compliance Tests

Sponsored by Synopsys

In this video, Sr. R&D Engineer Rehan Iqbal, will guide you through Synopsys CXL IP passing compliance tests and demonstrating our seamless interoperability with Teladyne LeCroy Z516 Exerciser. This first-of-its-kind interoperability demo is a testament to Synopsys' commitment to delivering reliable IP solutions.

Learn more about Synopsys CXL here

featured chalk talk

NXP GoldVIP: Integration Platform for Intelligent Connected Vehicles
Today’s intelligent connected vehicle designs are smarter and safer than ever before and this has a lot to do with a rapidly increasing technological convergence of sensors, machine learning, over the air updates, in-vehicle high bandwidth networking and more. In this episode of Chalk Talk, Amelia Dalton chats with Brian Carlson from NXP about NXP’s new GoldVIP Platform. They examine the benefits that this kind of software integration platform can bring to automotive designs and how you can take a test drive of the GoldVIP for yourself.
Nov 29, 2022