9 ms·
There’s a $200k reward for anyone who proves Microsoft ripped off MS-DOS source
- Lan 10y ago>He found no evidence it was copied and reported his findings in a piece titled ‘Did Bill Gates Steal the Heart of DOS?‘. More supporting evidence that any title that ends in a question mark can be safely summed up as 'No'.
- dspillett 10y ago> 22 system calls ... that had the same function (and function number) as the CP/M code. That probably shows evidence of reverse engineering, not code copying, similar to the clean-room reimplementation of IBM's BIOS chips by Compaq. > the types of actions that send/receive text from a printer, phone, hard disk, etc. I know they are giving examples for a modern audience, but I was amused by the inclusion of phones in that list. Heck, even hard drives would have been unsupported until version 2 IIRC.
- MichaelMoser123 10y agosystem calls in msdos were interrupts, so you would do the interrupt (int 21h for most parts) with different values of ah register to select the requested service (and remaining registers for arguments). My MS/DOS is a bit rusty - here is the norton guide - the MSDOS bible. http://www.ousob.com/ng/asm/index.php http://www.ousob.com/ng/asm/index.php
- pdkl95 10y ago> int 21h http://www.ctyme.com/intr/int-21.htm http://www.ctyme.com/intr/int-21.htm DOS kernel interrupts by name: http://www.ctyme.com/intr/cat-010.htm http://www.ctyme.com/intr/cat-010.htm # Ralf Brown's Interrupt List
- linker3000 10y ago> # Ralf Brown's Interrupt List Wow, that brings back memories of my ASM and Turbo Pascal programming days (inline ASM). I had a dot matrix printout of Ralf's list and it was invaluable. A couple of weeks back I found some old floppies in the attic and after I unpacked and refitted a 3.5" drive to my desktop machine, I rediscovered a lot of my old work from the late 1980s and early 1990s - for example (using kernel interrupts...) - here's the QT (Qute Time) program which was inspired by an idea from the late, great Jim Button: https://github.com/linker3000/Historic-code-PC-Pascal-and-ASM-/blob/master/QT2.A86 https://github.com/linker3000/Historic-code-PC-Pascal-and-AS... It outputs exciting things like "It's nearly half past three" etc.
- pjc50 10y agoI still have some of my code from that era, where with the interrupt list and the "PC Game Programmer's Encyclopedia" I wrote a few games. Space invaders clone (with soundblaster support!). Flat-shaded 3D engine capable of a few hundred polygons per frame. I've considered putting it on github, but I wouldn't want it to be seen as representative of my current work!
- _0ffh 10y agoNo reverse engineering necessary. Those CP/M system calls were all documented, and it never was a secret that QDOS was heavily modelled after CP/M.
- dspillett 10y agoTFA mentions the 22 calls as if the similarity is in some way potentially surprising though, which I took as meaning they weren't something in that documentation. Internal call points that were (at least at that time) intended to only be used by built-in tools and other internal routines, rather than being part of the published and supported API.
- groovy2shoes 10y ago> it never was a secret that QDOS was heavily modelled after CP/M. Indeed. In fact, when IBM first built the PC, they'd tried to reach a deal with Digital Research to get an official version of CP/M as the PC's flagship OS. The deal fell through for some reason I can't recall at the moment, so IBM went to MicroSoft and explicitly asked for a CP/M work-alike and a BASIC interpreter (which was considered MS's forte back then). This was really a no-brainer, given how supremely popular CP/M and BASIC were on microcomputers at the time. After Digital Research heard about the QDOS/PC-DOS deal, they threatened to sue IBM, alleging even then that it infringed their intellectual property. But they gave IBM an option: also sell CPM/86 alongside PC-DOS, and IBM gladly obliged. Problem was: PC-DOS cost something like $50 whereas CPM/86 cost something like $250, and consumers voted with their wallets. (I recently read somewhere that IBM didn't tell DRI about their planned price tag for PC-DOS, and Gary Kildall was right-miffed about the situation). Besides those two, UCSD Pascal was also available to run on the bare metal of PC, essentially as an OS. I've never used it myself, so I don't know what its OS-y features were like, or if it had any at all.
- deleted 10y ago[deleted]
- kgc 10y agoDidn't Microsoft buy DOS to make MS-DOS?
- rando444 10y agoBill Gates licensed something called QDOS which was made by Tim Paterson at Seattle Computer Products, which Tim had designed to mimick CP/M's API.
- cptskippy 10y agoI heard somewhere that he bought a CP/M manual at RadioShack and based much of his work off of that.
- rbanffy 10y agoIIRC, a lot, if not all, of CP/M was written in PL/M, but the 8086 was designed to make porting assembly code from the 8080/8085 easy, so, I'd assume a disassembly would be easy to automatically port to a 8086/8088. If there is some Easter egg Kildall left it was, probably, in those syscall identifiers. Are they discontinuous or something like that?
- ddebernardy 10y agoYeah, they bought QDOS (Quick and Dirty OS): https://en.wikipedia.org/wiki/86-DOS https://en.wikipedia.org/wiki/86-DOS
- andrewstuart 10y agoAsk Tim Paterson - he probably doesn't stand to lose too much now from telling the truth - assuming "the truth" is any different from conventional wisdom, which of course, it isn't.
- Waterluvian 10y agoHow is it possible to not find the Kildall function if it's there? Isnt it a pretty tiny haystack for today's standards?
- scholia 10y agoIf it were there, you'd have to assume that Bob Zeidman would have found it. He's spent enough time looking. He therefore feels safe in offering $200,000 for it, which makes the whole thing look like more of a publicity stunt....
- phire 10y agoIf he really wanted the truth, he would offer $100,000 to anyone who could prove the existence of the Kildall command in CP/M. Once we know what it is, we can easily prove if the command does or doesn't exist in MSDOS.
- dmix 10y agoSome context from the QDOS wiki posted below > Controversy has continued to surround the similarity between the two systems. Perhaps the most sensational claim comes from Jerry Pournelle, who claims that Kildall personally demonstrated to him that DOS contained CP/M code by entering a command in DOS that displayed Kildall's name; as of 2006 Pournelle has not revealed the command and nobody has come forward to corroborate his story. A 2004 book about Kildall says that he used such an encrypted message to demonstrate that other manufacturers had copied CP/M, but does not say that he found the message in DOS; instead Kildall's memoir (a source for the book) pointed to the well-known interface similarity. Paterson insists that the 86-DOS software was his original work, and has denied referring to or otherwise using CP/M code while writing it. After the 2004 book appeared, he sued the authors and publishers for defamation. The court ruled in summary judgement that no defamation had occurred, as the book's claims were opinions based on research or were not provably false. https://en.wikipedia.org/wiki/86-DOS https://en.wikipedia.org/wiki/86-DOS If this command existed in MSDOS this most certainly would have come up in court for far more than $100k by now, no? This is a good way to dispell the myth though.
- phire 10y agoKildall never explicitly claimed that MSDOS copied CP/M's code. There are just repeated claims that "MSDOS infringed on CP/M's copyrights" and based on all reverse engineering efforts and the lack of an actual lawsuit, we can safely assume Kindall is not using a legally valid definition of "copyrights".
- rbanffy 10y agoIt's "Kildall". And he hasn't been doing anything for quite some time. He died in the 90's.
- phire 10y agoThanks, I fixed the spelling. Though it doesn't really matter what he has been doing recently, my point is that there was no lawsuit back in the '80s when he was alive, so we can safely assume he had no proof of actual infringement. Furthermore, we can infer that what Kildall claimed was "Infringements of CP/M's copyrights" was something more along the lines of what google and oracle are now having massive legal battles over.
- andrewstuart 10y agoDOS has been so thoroughly analysed, reverse engineered, examined and hex dumped by very very smart people that if such a function existed it would have been detected LONG LONG ago. There is no such function.
- nailer 10y ago(the function being referred to in the comment above is the one that allegedly prints Kildall's name)
- 2close4comfort 10y agoYeah well I think it has been proven that Gates was more style than substance and some of the choices he made early in the DOS wars were at the expense of others like Kildall. He was able to take a something that was not technically superior (copied or not) and beat his competition (DOS 6.22 anyone?). So yes he is a "good" capitalist but his 31337 skills are sh!t, he was never a tech genius.
- unsignedqword 10y ago"So yes he is a "good" capitalist but his 31337 skills are sh!t, he was never a tech genius." As Microsoft grew larger, his role became much more associated with managing the company at large than with technical mumbo jumbo, but Gates was more technically competent than you think. He co-developed Altair BASIC and (supposedly) FAT, and was well versed in some more CS-heavy stuff, also: https://people.eecs.berkeley.edu/~christos/papers/Bounds%20For%20Sorting%20By%20Prefix%20Reversal.pdf https://people.eecs.berkeley.edu/~christos/papers/Bounds%20F...
- 2close4comfort 10y agoI even question the BASIC stuff and FAT maybe but I think not, at that point he was more interested in being rich than making something functional. His "contributions" were to take things that people in educational computing had been using and contributing to for the betterment of everyone and package that and sell it to IBM. I think there is more borrowed in DOS than just the Kildall contributions, but it has been whitewashed and forgotten.
- nailer 10y ago> He did, however, find at least 22 system calls — the types of actions that send/receive text from a printer, phone, hard disk, etc. — that had the same function (and function number) as the CP/M code. Older programmers: what are function numbers? Thanks.
- jstanley 10y agoMy guess is they are referring to software interrupt numbers. https://en.wikipedia.org/wiki/MS-DOS_API#Interrupt_vectors_used_by_DOS https://en.wikipedia.org/wiki/MS-DOS_API#Interrupt_vectors_u... In my opinion it's unsurprising that they would be the same as in CP/M.
- EvanAnderson 10y agoThe real-mode DOS system call interface is based on loading a function number into the AH register, other arguments in other registers, and calling interrupt 21h. I haven't used CP/M before, but it sounds like the DOS function numbers must be numbered in a similar fashion as their CP/M equivalents. Edit: This list of BDOS system calls bears a passing resemblance, based on my foggy memory, to some of the interrupt 21h calls I remember: http://www.seasip.info/Cpm/bdos.html http://www.seasip.info/Cpm/bdos.html The conventions with arguments in registers is different, however.
- linker3000 10y agoFrom a link I posted in response to another comment about the calls: [SNIP] ;********************************************************** ;* * ;* Get the time from DOS * ;* * ;********************************************************** MOV AH,2CH ;Set up DOS call to get the current time INT 21H ;And go get it! [SNIP] MOV AX,04C00 ;Return to DOS INT 21H
- revelation 10y agoThat is still how syscalls work today, you only have a limited number of interrupts but possibly many more system calls so what Linux used to do is use 0x80 for the syscall interrupt and then you just specify in a register the index (or function number) of what syscall you actually wanted to invoke. Nowadays processors have a dedicated "syscall" instruction but it has no operands so you still pass the actual index of the syscall you want in a register.
- gwbas1c 10y agoFar too many people underestimate Bill Gates' technical skills. He was an excellent programmer; and in the early 80s, at the top of his game. Outside of the Bill Gates is evil bubble, he's regarded as a technical genius and a business genius; which is why he was able to trounce his competition. (Basically, he wrote better code and ran better businesses.) All of the late 1970s and early 1980s personal computers ran Bill Gates' basic. Basic was their operating system. Why would someone like this need to copy someone else's OS? He didn't, because he was mart enough to write his own OS, and had the experience to do so. The function number thing is no different then Android copying Java's API.
- ThinkBeat 10y agoYou are aware that Bill did not develop ms-dos right? They bought QDOS (Quick and Dirty OS): https://en.wikipedia.org/wiki/86-DOS https://en.wikipedia.org/wiki/86-DOS
- mark-r 10y agoThat just proves his brilliance in the business sense. He was certainly capable of writing MS-DOS himself, but realized he didn't have to and that there was an opportunity in front of him. He certainly exploited it.
- ninkendo 10y agoYeah, that's kind of the important point. It's not whether BillG or any of his engineers would have needed to rip off CP/M, it's whether the dude they bought it from did.
- phire 10y agoIt's not really taught these days, but writing simple Disk Operating Systems isn't that hard. Any decent programmer could do it. And Dos 1.x's feature set was so small that a single programmer should be able to reproduce the it set in well under a year of full-time work. IBM's BIOS did most of the heavy lifting anyway.
- 10y ago
- dorkalorka 10y agoComplete with denigration of women. Nice, thanks for posting...
- brudgers 10y agoI don't understand.
- dorkalorka 10y ago"like a little girl" Why not like a little boy? Because Joel thinks women are weaker then men, obviously.
- brudgers 10y agoMy gut is that it shows a lack of phrase turning expertise, but admits the possibility that converse could be true. To put it another way, I suspect it's more likely an example of poor writing rather than a well honed expository detail. Doesn't change it's effects.
- lucozade 10y ago> Because Joel thinks women are weaker then men, obviously. Well no or, maybe he does, but you can't infer that from this. What he is referring to is the tendency of little girls to like, OMG, get super excited and make squeally noises. As a parent of both sexes and having refereed birthday parties for both I can safely say that his analogy was fair and wouldn't have worked if he had said "little boy". Of course, if he had run around the meeting room, screaming at the top of his lungs, trying to break furniture, then he had indeed picked the wrong gender.
- dorkalorka 10y agoAh. You've just settled the whole nature-vs-nurture debate for us with your anecdote. Thanks! The world owes you a debt.
- brazzledazzle 10y ago
- slededit 10y agoThe source code for DOS is now public. Go verify it yourself: http://www.computerhistory.org/atchm/microsoft-ms-dos-early-source-code/ http://www.computerhistory.org/atchm/microsoft-ms-dos-early-...