« Spa | Main | OSC Students Visit Microsoft »

March 02, 2005

Origins of MS-DOS

Tim Paterson, who wrote the operating system QDOS on which the original PC-DOS and MS-DOS was based, is suing the author of a book which claims that QDOS was a ripoff of CP/M.

Microsoft legally acquired QDOS; the issue is whether Paterson had earlier "ripped off" CP/M when writing QDOS. It's not clear what exactly "rip-off" means; there's no doubt that QDOS looked like CP/M, because most command-line-based OSes back then looked the same (and still do; Monad on the surface looks a lot like CP/M, QDOS, PC-/MS-DOS, and any Unix shell). The exact story of how IBM came to use a Microsoft OS instead of CP/M on its original PC, and where that Microsoft OS came from, has been told many times in many ways. I know Kildall felt that Gates violated a gentleman's agreement that Microsoft would sell languages and Digital Research would sell operating systems; rumors about the origins of QDOS just add fuel to the fire. Kildall is dead, Don Estridge is dead, Sir Bill ain't really talking, and the "truth" may never be known.

(Actually there's another story floating around about this, which is that Microsoft "ripped off" Tim Paterson because they made so much money off of his baby, but Paterson eventually went to work for Microsoft, and I don't think there are any holes in his shoes today).

There is absolutely no doubt, however, that wherever QDOS came from, Microsoft took the ball and ran with it in terms of enhancing, marketing, and evangelizing PC-DOS and MS-DOS. I discussed this in my first book, and it's actually one of my favorite sections, so with all modesty I am going to post a link to it: start reading at the bottom of p. 186 and go to p. 192. As it says at the end:

"Selling it cheaply, having the hardware manufacturers present it as the standard, making it 'fun', attacking the competition on technical issues, not porting applications to competitors' systems, making sure that its developer tools ran only on its operating systems, signing up potential competitors as partners, talking about a 'family' of operating systems--these are all techniques it would use later with Windows. And above all, the most important one, evangelism: getting out there and selling other software developers on its operating system, explaining why everyone was going to be developing for it and they should to."

Posted by AdamBa at March 2, 2005 11:14 AM

Trackback Pings

TrackBack URL for this entry:
http://proudlyserving.com/cgi-bin/mt-tb.cgi/162

Comments

According to article it is more an wording issue.

Well this reminded me of that slashdot comment:
http://slashdot.org/comments.pl?sid=20149&cid=2133018
(probably copyright notice is easter egg pop-up-ing Gary Kildall's name. More rummors on http://www.jmusheneaux.com/index1.htm)


I wonder do you still keep MS-DOS 1.0 diskette?
;)

Posted by: Ivan at March 3, 2005 07:39 AM

Interesting, but I doubt it's true. Yes, I still have our PC-DOS 1.0 diskette, and I guess my father still has the original computer that can boot it (if it is readable after 23 years). But we don't know the secret code.

- adam

Posted by: Adam Barr at March 3, 2005 12:53 PM

Tim Paterson did a better job of rewriting CP/M for 16 bits than Digital Research did, and it's related to the DOS vs CPM/86 porting issue you mentioned in Proudly Serving. At the time I was doing development work on CP/M Z80 systems, and we were looking for a way to move to a 16 bit OS (8086, NSC8000, 68000). I still have an original Seattle DOS manual (unfortunately, somewhere in storage) from when we did our research. Whether or not the Seattle DOS code was based on CP/M (which was in practice the open source OS of its time), Tim wisely made the basic API the same as CP/M and provided an extended API for 16 bit functions. CP/M-86, on the other hand, replaced the API with a single "new, improved" 16 bit version. This meant that I could port my programs and utilities to Seattle DOS simply by changing a few macro definitions, maintaining single source for both operating systems. I would have had to change all my source code to port to CP/M-86 (don't forget, this was all assembler). When IBM introduced the PC, with the choice of DOS or CP/M-86, it was clear that "DOS" took the Seattle DOS approach. I remember disassembling DOS 1.0 up to 2.1 - if only I could find those files ... Even if CP/M-86 hadn't been priced way too high, DOS still would have been the sensible choice since it was much easier (hence cheaper) to preserve our applications.

Posted by: Eric Hartwell at April 18, 2005 09:50 AM