dos系统时代
1、蒂姆·帕特森 是 “洁净室”方法吗 还是IBM
一、帕特森开发86-DOS:不是“洁净室”,而是“直接参考”
帕特森在1980年开发86-DOS(最初叫QDOS)时,并没有采用“洁净室”这种规避侵权的合法逆向工程方法。
实际上,他的做法简单直接得多:
他手边有一本公开出版的CP/M手册(CP/M是基尔代尔开发的行业标准操作系统)
他从手册中直接复制了CP/M的API接口定义和系统调用编号
然后自己重新编写代码来实现这些功能
简单说就是:“接口照着抄,代码自己写”。
这是一种常见的兼容性做法,但它在法律上存在风险——因为接口设计本身也可能被视为受保护的智力成果。这也解释了为什么后来西雅图计算机产品公司(SCP)会起诉微软,最终微软支付了100万美元和解。
二、IBM改造DOS:也不是“洁净室”,而是“常规开发”
你之前问到的“洁净室”,在IBM和微软这次合作中根本没有使用。
根据历史资料,IBM PC的DOS开发过程是这样的:
微软已经买下了86-DOS的完整版权(1981年7月,5万美元)
帕特森本人被挖到了微软(1981年4月离开SCP,5月加入微软)
IBM和微软的工程师是“并肩作战”的——双方人员在西雅图的一间小办公室里一起工作,用IBM提供的原型机进行开发和调试
这种模式恰恰是“洁净室”方法最反对的——洁净室的核心要求就是“分析组”和“实现组”严格隔离,不能有任何交流。而IBM和微软的做法是:原代码作者(帕特森)直接参与改造,IBM工程师随时介入配合。
三、“洁净室”真正用在哪儿了?
这个方法是后来才被广泛使用的,最有名的案例是:
| 时间 | 案例 | 说明 |
|---|---|---|
| 1980年代初 | IBM克隆基尔代尔的BIOS | 用洁净室方法独立写出与CP/M BIOS功能兼容的代码 |
| 1988年 | Digital Research开发DR-DOS | 为了兼容MS-DOS,采用洁净室逆向工程 |
Digital Research(基尔代尔的公司)开发DR-DOS时,为了确保不与MS-DOS产生法律纠纷,正是采用了洁净室方法:一组人反汇编MS-DOS、写功能文档,另一组人完全隔离、只看文档重写代码。
这成了一个历史性的讽刺:基尔代尔发明的CP/M被帕特森“参考”了,但没走洁净室流程;后来基尔代尔自己的公司为了兼容对手的系统,反倒严格遵守了洁净室规范。
四、总结对比
| 事件 | 使用洁净室吗? | 实际做法 |
|---|---|---|
| 帕特森开发86-DOS | ❌ 否 | 直接参考公开的CP/M手册,复制API接口 |
| IBM+微软改造PC-DOS | ❌ 否 | 原代码作者(帕特森)直接加入项目,双方工程师合作开发 |
| IBM克隆基尔代尔BIOS | ✅ 是 | 用洁净室方法规避侵权 |
| Digital Research开发DR-DOS | ✅ 是 | 用洁净室方法兼容MS-DOS |
一句话总结:帕特森是直接“参考”了CP/M,IBM和微软是“拿来改造”——两者都没有用“洁净室”。这个方法后来主要被想兼容别人系统但怕被告的公司使用,比如IBM自己(克隆BIOS时)和Digital Research(开发DR-DOS时)。
参考部分
https://retrocomputing.stackexchange.com/posts/26541/revisions
https://retrocomputing.stackexchange.com/posts/26541/revisions
From https://en.wikipedia.org/wiki/DR-DOS DR-DOS (written as DR DOS, without a hyphen, in versions up to and including 6.0) is a disk operating system for IBM PC compatibles. Upon its introduction in 1988, it was the first DOS attempting to be compatible with IBM PC DOS and MS-DOS (which were the same product sold under different names). DR-DOS was developed by Gary A. Kildall's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86. As ownership changed, various later versions were produced with names including Novell DOS and Caldera OpenDOS. Though DR-DOS was a descendentdescendant of CP/M (and indeed MS-DOS started life as QDOS, a clone of CP/M), achieving full compatibility with MS-DOS in the late eighties was nontrivial; applications depended on all sorts of quirks of the system. Some of these were documented in a book called Undocumented DOS, but this was only published in 1990. It seems to me therefore that DR, to achieve full compatibility without legal vulnerability, must have used clean room reverse engineering: one team disassembles MS-DOS and fully documents their findings, another never looks at the MS-DOS code, but writes DR-DOS based on the documentation. (This would be similar to the way IBM-compatible BIOSes were written, but with the difference that IBM published the source code for their BIOS, so in that case, the first team didn't need to use a disassembler.) Are there historical records confirming that this was done, and giving any details of the process, like how long it took, and who worked on each team? Became Hot Network Question occurred Mar 1, 2023 at 0:56 1 Source Link asked Feb 28, 2023 at 16:56 rwallace 65.7k 20 266 631 Did DR cleanroom MS-DOS? From https://en.wikipedia.org/wiki/DR-DOS DR-DOS (written as DR DOS, without a hyphen, in versions up to and including 6.0) is a disk operating system for IBM PC compatibles. Upon its introduction in 1988, it was the first DOS attempting to be compatible with IBM PC DOS and MS-DOS (which were the same product sold under different names). DR-DOS was developed by Gary A. Kildall's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86. As ownership changed, various later versions were produced with names including Novell DOS and Caldera OpenDOS. Though DR-DOS was a descendent of CP/M (and indeed MS-DOS started life as QDOS, a clone of CP/M), achieving full compatibility with MS-DOS in the late eighties was nontrivial; applications depended on all sorts of quirks of the system. Some of these were documented in a book called Undocumented DOS, but this was only published in 1990. It seems to me therefore that DR, to achieve full compatibility without legal vulnerability, must have used clean room reverse engineering: one team disassembles MS-DOS and fully documents their findings, another never looks at the MS-DOS code, but writes DR-DOS based on the documentation. (This would be similar to the way IBM-compatible BIOSes were written, but with the difference that IBM published the source code for their BIOS, so in that case, the first team didn't need to use a disassembler.) Are there historical records confirming that this was done, and giving any details of the process, like how long it took, and who worked on each team? historyms-dosreverse-engineering