
Illustration: Gluekit
Editor’s Note: Upon publication, this article failed to properly disclose the connection between its author, Bob Zeidman, and Microsoft Corp., a key subject of the story. Mr. Zeidman is currently retained by Microsoft as an expert witness in Motorola Mobility v. Microsoft*.* IEEE Spectrum regrets the omission.
The history of the computer industry is filled with fascinating tales of riches that appear to practically fall from the sky.
Along with stories of riches won, there are stories of opportunities missed. Take that of Ronald Wayne, who cofounded Apple Computer with Steve Wozniak and Steve Jobs but sold his shares for just US $2300. And John Atanasoff, who proudly showed his digital computer design to John Mauchly—who later codesigned the Eniac, often defined as the first electronic computer, without credit to Atanasoff.
But by far the most famous story of missed fame and fortune is that of Gary Kildall. A pioneer in computer operating systems, Kildall wrote Control Program for Microcomputers (CP/M), the operating system used on many of the early hobbyist personal computers, such as the MITS Altair 8800, the IMSAI 8080, and the Osborne 1, before IBM introduced its own machine, the PC. Kildall could have virtually owned the personal computer operating system business, had he sold that system to IBM. He didn’t. Why is a matter of speculation, mundane gossip, and urban legend. We’ll get to that.
Bill Gates at Microsoft, however, did sell an operating system to IBM—and reaped then-unimaginable rewards. A cloud of speculation has hung over that part of the story as well. The big question: Was the operating system Gates sold to IBM his to sell? Or was a key part of it stolen from Kildall?
Microsoft has stated that its hands were clean. Kildall maintained that QDOS, and subsequently MS-DOS, had been directly copied from CP/M and thus infringed on his copyright. But until now there’s been no way to conduct a reliable examination of the software itself, to look inside MS-DOS for the fingerprints of CP/M, and settle the issue once and for all.
My company’s CodeSuite forensic software lets us look inside operating systems and other software for fingerprints of other programs. And I applied it to finally answer the question: Did Bill Gates steal the heart of DOS?
But first, here is the sequence of events, part known, part only speculated. IBM in 1980 started a skunkworks project in Boca Raton, Fla., to create the IBM PC. The company decided that rather than developing software in-house, as was typical at IBM, it would instead partner with one of the small companies already producing code for microcomputers. IBM’s first stop was then-small Microsoft in Bellevue, Wash., known for its version of the BASIC programming language. There, the young Gates told IBM that Microsoft didn’t have an operating system, but that the company should contact Kildall at his company, Digital Research Inc. (DRI) in Pacific Grove, Calif., because Kildall did have an operating system—CP/M.
Here’s where the story varies, depending on who’s telling it. In one version, the IBM executives flew down to meet Kildall who, as a member of the personal computer counterculture, didn’t trust “Big Brother” IBM. Rather than meet with the buttoned-down IBM executives, Kildall took off in his plane for a joyride. When the IBM execs showed up, they were met by Kildall’s wife and business partner, Dorothy McEwen, who refused to sign IBM’s nondisclosure agreement, or NDA, a standard business document that would have kept the discussion secret and would have not allowed DRI to make use of confidential information presented by IBM. After several hours of haggling over the NDA, the IBM executives got frustrated and left.
In another version of the story, Kildall and DRI employee Tom Rolander went off in the plane to deliver software to a customer and left the license negotiations with McEwen, who normally handled those matters. McEwen felt the NDA was too restrictive and talked to their attorney, Gerry Davis, who advised her to wait for Kildall to return. Kildall returned later that day. Accounts again differ on whether he signed the NDA or even participated in discussions with IBM.
In any case, it’s a fact that no deal was signed. Kildall later said that he met IBM negotiator Jack Sams on a flight to Florida that evening, negotiated a deal on the flight, and shook hands on it. Sams denied ever meeting Kildall. In fact, the IBM negotiators, still in need of an operating system, flew to Seattle again that day—not Florida—and met with Bill Gates.
Since Gates’s first meeting with IBM, he had conveniently gotten his hands on a microcomputer operating system similar to Kildall’s, from nearby Seattle Computer Products. SCP, which sold microcomputer boards, needed an operating system that ran on the new Intel 8086 processor. Because DRI was late in porting its system to that processor, SCP hired programmer Tim Paterson to create one. It called this system QDOS, for “Quick and Dirty Operating System.” Gates bought the rights to QDOS for $75 000 and hired Paterson to modify it into MS-DOS; that’s what he licensed to IBM for its PC as PC-DOS.
The IBM PC became a huge success, and Microsoft soon displaced DRI as the leading microcomputer operating system company. Kildall resented the success of Gates and Microsoft, and he eventually went back to IBM and negotiated a deal to offer CP/M on IBM PCs. However, Kildall negotiated a very high license fee, much higher than that of MS-DOS, meaning IBM had to charge $240 per copy of CP/M rather than the $40 per copy it charged for PC-DOS. Few people bought CP/M, and PC-DOS sales continued to grow.
Kildall maintained that QDOS, and subsequently MS-DOS, had been directly copied from CP/M and thus infringed on his copyright. DRI attorney Davis claimed forensic experts had proven that MS-DOS had been copied from CP/M, but that in 1981 there was no way to go to court over copyright infringement and get a judgment. The latter, at least, was not true. One year earlier, Congress had passed the Computer Software Copyright Act of 1980, which made copyright protection of software explicit, so why DRI didn’t take the battle to court at the time is not clear.
The claim about the forensic proof was probably false as well. In those days, software forensic tools consisted of off-the-shelf disassemblers and various utilities, typically used for debugging, cobbled together by investigators—they weren’t very effective. Today, however, forensic tools are much more sophisticated; they can divide up programs into various elements to be compared independently, and they can compare object code directly without having to disassemble or decompile it, processes that can add extraneous information or lose elements of the code. The tools available today that compare software source code include Measure of Software Similarity (MOSS) from Stanford University and JPlag from the University of Karlsruhe, in Germany. The tools called CodeSuite, sold by my company, Software Analysis and Forensic Engineering Corp. (SAFE), compare source code and object code as well.
So with CodeSuite in hand, I donned my deerstalker, downed a Rockstar Energy Drink, pulled out my meerschaum-and-mahogany calabash pipe, and set out to answer the Gates/Kildall question once and for all.
The investigation commenced on the Unofficial CP/M Web Site,where I downloaded CP/M source code files. These files included notices of copyright by Gary Kildall from 1975, shortly after he founded DRI. They were written in the PL/M programming language, which Kildall developed for microprocessors while he was employed at Intel. From the same site I downloaded the source code files of CP/M 2.0, which were from 1981 but contained copyright notices from 1976, 1977, and 1978. These files were written in both PL/M and low-level assembly code. I also downloaded executable binary files of CP/M 1.4 that included three source code files dated from 22 March 1979 through 5 September 1981.
Continuing to gather clues, I downloaded 86-DOS (QDOS) source code files and executable binary files from Howard’s Seattle Computer Products SCP 86-DOS Resource Website that contained revision dates in April 1981. The source code files were written in assembly language.