MS-DOSはCP/Mのソースコードを盗んで作られたのか?証明できたら総額20万ドルの賞金 192
ストーリー by headless
賞金 部門より
賞金 部門より
41064
MS-DOSとその前身のQDOSはCP/Mをモデルに作られたとされるが、CP/Mのソースコードを盗んで作られたのかどうかという点で論争が続いている。これについて、2012年にIEEE Spectrumで分析結果を発表したBob Zeidman氏が総額20万ドルの賞金をかけたそうだ(IEEE Spectrumの記事、
Softpediaの記事、
The Next Webの記事)。
Zeidman氏は2012年にフォレンジックソフトウェアを使ってCP/MとQDOSのソースコードを分析し、MS-DOSがCP/Mをコピーしたとの証拠は見つからないとの結論に達している。また、MS-DOSにはCP/Mの開発者Gary Kildall氏の名前を著作権表示する隠しコマンドがあるとも噂されているが、そのような隠しコマンドも見つけられなかったとのこと。分析結果は「Did Bill Gates Steal the Heart of DOS?」としてIEEE Spectrumに掲載されている。
記事が掲載されたのち、CP/Mのソースコードを所蔵するComputer History MuseumにMicrosoftがMS-DOSのソースコードを寄贈したため、Zeidman氏は再び同様の分析を行っている。この調査でもMS-DOSがCP/Mをコピーしたとの証拠は見つからなかったが、MS-DOSの22のシステムコールがCP/Mと同じ関数番号と関数を使用していることが発見されている。
しかし、記事が掲載された当時、Zeidman氏とMicrosoftとのコンサルティング契約の存在が明らかになった(この契約についてZeidman氏は古く、使われていないものであったと説明しており、その後すべての契約を解除しているという)こともあり、多くの反論を受けたそうだ。
このような経緯があってZeidman氏は証明に賞金をかけることにしたようだ。賞金は適切と認められるフォレンジック技術を用いてMS-DOSがCP/Mをコピーしたと証明できた場合に10万ドル、Kildall氏の著作権を表示する隠しコマンドを発見した場合に10万ドルとなっている。Zeidman氏による2回の分析結果については、詳細な資料がZeidman ConsultingのWebサイトからダウンロードできる。
Zeidman氏は2012年にフォレンジックソフトウェアを使ってCP/MとQDOSのソースコードを分析し、MS-DOSがCP/Mをコピーしたとの証拠は見つからないとの結論に達している。また、MS-DOSにはCP/Mの開発者Gary Kildall氏の名前を著作権表示する隠しコマンドがあるとも噂されているが、そのような隠しコマンドも見つけられなかったとのこと。分析結果は「Did Bill Gates Steal the Heart of DOS?」としてIEEE Spectrumに掲載されている。
記事が掲載されたのち、CP/Mのソースコードを所蔵するComputer History MuseumにMicrosoftがMS-DOSのソースコードを寄贈したため、Zeidman氏は再び同様の分析を行っている。この調査でもMS-DOSがCP/Mをコピーしたとの証拠は見つからなかったが、MS-DOSの22のシステムコールがCP/Mと同じ関数番号と関数を使用していることが発見されている。
しかし、記事が掲載された当時、Zeidman氏とMicrosoftとのコンサルティング契約の存在が明らかになった(この契約についてZeidman氏は古く、使われていないものであったと説明しており、その後すべての契約を解除しているという)こともあり、多くの反論を受けたそうだ。
このような経緯があってZeidman氏は証明に賞金をかけることにしたようだ。賞金は適切と認められるフォレンジック技術を用いてMS-DOSがCP/Mをコピーしたと証明できた場合に10万ドル、Kildall氏の著作権を表示する隠しコマンドを発見した場合に10万ドルとなっている。Zeidman氏による2回の分析結果については、詳細な資料がZeidman ConsultingのWebサイトからダウンロードできる。
逆にクリーンだという証明もできない (スコア:2)
MS-DOSが他のOSのコードを盗んでいないフルスクラッチであるという証明も
同じようにできないだろうね。
Re:逆にクリーンだという証明もできない (スコア:1)
それを悪魔の証明といいます。
Re:逆にクリーンだという証明もできない (スコア:1)
当時有名なOSは限られていて、今のように個人で配布なんてそう簡単にできない
時代だから、いわゆる悪魔の証明と違い、対象はかなり限られているよ。
GPL汚染されていないことの証明の数倍程度じゃないか。
問題は、今となってはということ。
Re:逆にクリーンだという証明もできない (スコア:1)
犯罪を犯していないというのと違い、双方のコードがあるんだから
検証は可能だね。コード以上の材料がないってだけで。
悪魔の証明じゃない。
Re: (スコア:0)
ログインしてるからじゃないですかね
Re:逆にクリーンだという証明もできない (スコア:1)
なつかしいですね。
47分ごろから。
おかしいよね (スコア:1)
もし盗んだんなら公開したソースコードなんて修正して渡しているだろうし、
ちゃんと同じバイナリになっているのかな?
盗用のプロに聞け!: 隠しコマンドもコピーする? (スコア:1)
1、完璧を目指すため、もちろんコピーする
2、該当コードをまるごと削除
3、コードは残すがメッセージを“Prease enjoy this OS!”に書き換える
Re:盗用のプロに聞け!: 隠しコマンドもコピーする? (スコア:1)
3番はAC版ゼビウスのコピー製品の話でしたっけ。
どうしたら証明したことになるの? (スコア:0)
たいとるおんりー
Re: (スコア:0)
デジタルリサーチのコンサル「これはソースの盗用デース」
22のシステムコールがCP/Mと同じ関数番号 (スコア:0)
CP/Mとの互換のために同じ番号使ってるって話じゃなくて? 当時は米国でもAPIに著作権があるという判決は出てなかったはずだし
Re:22のシステムコールがCP/Mと同じ関数番号 (スコア:1)
Human68k「…」
Re: (スコア:0)
> 当時は米国でもAPIに著作権があるという判決は出てなかったはずだし
じゃぁAPIに著作権があると判決している今なら
著作権侵害で金取れるんじゃないの?
Re: (スコア:0)
が、PC-DOS(MS-DOS)を販売していた、IBMはDR社にお金を払っているんだよねぇ。
Re: (スコア:0)
IBMはフロッピーとほぼ無関係のゴミ屑発明にも金払う会社だから
Re:22のシステムコールがCP/Mと同じ関数番号 (スコア:1)
それは法務部が有能だから。
サブマリン特許等にやられないように、常に見張っていたから念の為に買い上げた訳。
あの当時のIBM(今でもそうかな)にしてみれば、端金で将来の巨額訴訟の可能性を潰しただけのこと。
--- de FTNS.
フルアセンブラなんですがそれは (スコア:0)
ソースが欲しけりゃ、わざわざ盗むまでもなく逆アセンブルすればええだけやん
現代におけるソースコード盗用とは意味が違いすぎますわ
Re:フルアセンブラなんですがそれは (スコア:1)
PL/M で書かれていたという記憶があったんだけど...
http://www.cpm.z80.de/binary.html [z80.de]
PLM compiler のあたりとか
https://ja.wikipedia.org/wiki/CP/M [wikipedia.org]
生い立ちのあたりとか
Re: (スコア:0)
アセンブラ知らなさすぎ。
ディスアセンブラが吐き出したものは、ラベル付けやワークエリアの解析など
かなり手間暇かけないとアセンブラのソースにはならんよ。
この場合の盗用は、現代におけるソースの盗用とほぼ同じ。
Re:フルアセンブラなんですがそれは (スコア:5, 参考になる)
特にワークの意味合いまで完全に調べるのは、相当に手間がかかる。
「簡単」と言っている人は多分実際にはやったことなくて、「やった事例がある」のを知ってるだけだと思う。やったのなら、その手間に辟易してるだろうから。
ただし、だからと言ってソース化が不可能と言っている訳ではない。もちろん可能。
dis.xや半自動化ツールは親コメがいう所の「ワークの解析」なんてのはやってくれない。
(=親コメで言っているものと同等ですらないものを持ち出しているだけ)
毎日逆アセと解析している身としては、まぁCP/Mぐらいの規模になれば、ソースを盗用するよりは、むしろ見えているAPIを下敷きに、模倣する方が100倍くらい楽。
仮にCP/Mの動作を確認したいとしても、テストコード書いて確認すれば良いだけだから、わざわざコストの高い解析をするとは考えにくい。
Re: (スコア:0)
> 特にワークの意味合いまで完全に調べるのは、相当に手間がかかる。
他アーキテクチャへの移植が目的なら「ワークの意味合いまで完全に調べる」必要はあんまないだろ。
コードとデータの区別ができれば、8080 → 8086/8088 の移植は、キレイに書かれたプログラムならニモニックの機械的な変換でいけるよ。
Re:フルアセンブラなんですがそれは (スコア:3)
それがテンポラリ的に使いまわしされるのか、とか、
グローバル的に意味合いを持たされて使われるのか、とか、
「同じものを指しているが、意味合いが違う場合」が多々あるからなんですね。
全く改変する予定がない(機械的な逆アセではかれたコードを一対一で再利用するだけ)のであれば
最低限それで良いかもしれませんが、
それをもとに、発展継続を考えているのであれば、どう考えてもシステムの構造や、ワークの意味合いの解析は必要でしょう。
まぁこういうのは実際にやったことがないと、どのくらい大変かはわからないですよね~。
Re:フルアセンブラなんですがそれは (スコア:2)
曲がりなりにも「システム」のプログラムならそれなりの量はあるし、もちろん複雑。
あなたが記述してるのは「パッチあて」であって、システムの動作や構造をあらわにするレベルの「解析」ではないよ。
そもそも比較しているものが違いすぎる。
hello worldが書けたからOSも書けるだろって言ってるようなもんですわ。
俺も毎日8bit-32bitのコードを解析してるけど、どれも面倒くさいよ。
CPUの挙動じゃなくて単純にコードの規模の話。
Re:フルアセンブラなんですがそれは (スコア:1)
ゲームのチートやちょっとしたパッチあてなら、それでいいけど、
システム一通り読もうとすると、メモ書き程度では破たんだろう。
というか、そんなに楽なら次から頼むわ。あの不毛とも思える作業。
CP/M程度なら挙動を模倣するコードを自分で書くのが一番楽かと。
まあこの時代、ソースの盗用,いいソフトをまねた習作,移植,あたりは
渾然一体としていて厳密に分けられないことも多いけどね。
Re:フルアセンブラなんですがそれは (スコア:2)
「できるか、できないか、で言えば、できる」んですよ。
でも、当初のコメにあるような
「簡単、簡単!誰でもできる!」はどう考えても違う。
「誰でもできる」なんて言葉を現時点で発言するのは
「文系大卒でも、今すぐできる」って言ってるようなもんですよ?
あの当時にしろ、そんなに誰でもできる、とかいうのであれば
swordだとか、そういった「互換性」が取り沙汰される事もなかったはずです。
なんというか「自分ができたことができないやつは全員バカ」みたいな狭い視野で議論されてますけど、それって自己満足以外に何があるんですか?
俺も解析や移植なんかは多々やってますけど(なので「できない」なんて主張する気はない)それでもフラットに考えても、CP/Mの全解析が「簡単、できないやつはバカ」なんて思えない。
自分という例外的な事例を取り上げて、反論したいのなら、どっか他所でやるべきなんじゃないですかね?
ただのマウント取りたいだけのモヒカンにしか見えませんよ。
Re:フルアセンブラなんですがそれは (スコア:1)
まぁACですし、とりあえず場を荒らしたかった人だったんですね。
お疲れ様でした。
Re:フルアセンブラなんですがそれは (スコア:1)
特定する根拠はかなり強力なのがそろってるんだよ。
その根拠を知らずに、特定に否定的な事を言いたがる人物もおのずと特定されるよな。
関係ない他人なら「特定方法はなんだろう」と気になるだろうからな。
他にもお前の特徴はある。
数行の短い反射的な、相手を批判するためだけのレス
ACとそうでない時は意図的に語尾を変えてる
なんの実績もないお前がまぁよくも他人にあれだけ言えたな。
典型的な口だけオタクのおっさんだろ。
Re:フルアセンブラなんですがそれは (スコア:1)
「マクロアセンブラは、マクロアセンブラというツールであって、
アセンブラとは違う」と思えるくらい違うよね。
個人的にはIFと書けたら高機能マクロなイメージがある。
Re:フルアセンブラなんですがそれは (スコア:1)
> とはいえ、CP/Mがどんなアセンブラを使ってたか知らないので
付属のASM.COMなら、マクロどころかリロケータブルなオブジェクト生成やリンケージなどできない単純なアセンブラでしたよ。
出力はIntel Hexフォーマットのみで、バイナリを作るためにLOAD.COMで変換してましたな。
後にMACというマクロアセンブラが派生したけど、CP/M1.4時代からあったのはASM.COM。
まあ、それは商品としてそうであったということだけで、開発したKildallさんが自前で持っていなかったとはいわない。
> マクロ機能はCPPみたいな低機能なものではなくて、VHDLのgenericとかを考えてくれればいいです。
例えばMS-DOSのMASMなどと比べるとかなり基本的なマクロ機能しかなかったです。数KB~10数KB程度(MACは手元にないですが、マイクロソフトのMACRO-80アセンブラは19KB、リンカが10KB)のバイナリや32kB~56KB程度のフリーエリアしかない開発環境に多くを求められないでしょう。
Re: (スコア:0)
昔々X68k用にソースコードジェネレータdis.xというのがありましての。
実行ファイルをアセンブラのソースに変換して数行書き換えてまたアセンブル・リンクするなんてことが
簡単に行えたのじゃ
Re: (スコア:0)
アセンブラにかけられる程度なら、中学の頃よくやってた。
問題は、中身だよ。
Cのソースでも変数が全部a00012とかだったらコンパイラは通るけど、読めないべ。
それと一緒。
Re: (スコア:0)
アセンブラ知らなさすぎ。
ディスアセンブラが吐き出したものは、ラベル付けやワークエリアの解析など
かなり手間暇かけないとアセンブラのソースにはならんよ。
半自動化でやってくれるツールなんていくつもあったけど何言ってんの??
Re: (スコア:0)
半分じゃん。なんだ。
Re: (スコア:0)
アセンブラ知らなさすぎ。
ディスアセンブラが吐き出したものは、ラベル付けやワークエリアの解析など
かなり手間暇かけないとアセンブラのソースにはならんよ。
CP/Mよりぜんぜん大きい24kBあるPC-8001のN-BASICを逆アセンブルしてアセンブラのソース化し本として出版した例とか知らんのかな?
結果がどうであれ不毛 (スコア:0)
既に役割を終えたOSの盗用を証明したところで、労力の無駄な気がするな。
Re:結果がどうであれ不毛 (スコア:1)
20万ドルも貰えれば毛は生えると思います。
Re: (スコア:0)
証明できればの話だけどな。
Re: (スコア:0)
年寄りのライフワークにケチつけるのは無粋
Re: (スコア:0)
結果如何によっては裁判に発展するだろう。
Re: (スコア:0)
歴史家の存在全否定だな。
歴史的に何があったかを知る事自体は無駄ではあるめえよ。
ところで法的にはどういう扱いになるんだろう。
大抵の犯罪なら既に時効だろうが、著作権なら死後70年だっけ?
Re:結果がどうであれ不毛 (スコア:1)
日本の法しか分からないんで、日本国内で販売された分のみの議論になっちゃうけど
(日本の場合、死後)50年ってのは著作権の権利そのもので、
権利侵害が起こってからの時効ではない。
著作権侵害で民事訴訟を起こして金をとる場合、
まず不法行為による損害賠償、それが時効なら不当利得返還請求権を使うのが一般的
不法行為による損害賠償請求権の時効は、民法724条より
「被害者又はその法定代理人が損害及び加害者を知った時から三年間行使しないとき」
「不法行為の時から二十年を経過したとき」
で時効。
不当利得返還請求権は債権扱いで10年で時効(民法167条)
ついでに刑事の方も
著作権侵害に関する罪のほとんどは知っての通り親告罪(著作権法123条)
で、親告罪の時効は「犯人を知つた日から六箇月」(刑事訴訟法235条)で時効
非親告罪の部分や犯人不明の場合の時効は罪の重さによるけど、
著作権侵害の罪は最も重いもので懲役10年以下
刑事訴訟法250条2項が
「時効は、人を死亡させた罪であつて禁錮以上の刑に当たるもの以外の罪については、次に掲げる期間を経過することによつて完成する。
(略)
四 長期十五年未満の懲役又は禁錮に当たる罪については七年
五 長期十年未満の懲役又は禁錮に当たる罪については五年
(以下略)
」
未満と以下の違いがあるんで時効7年であってるのかな?
そもそも盗用ってどういうレベルのことを言ってるのかな (スコア:0)
CP/MやMS-DOSのカーネルコードの大部分はファイルシステムだと思うけど、CP/MとMS-DOSでファイルシステムの構造は違うので、それ以外の部分で盗用があったとしても極僅かな部分に限られると思うのだけど。
Re:そもそも盗用ってどういうレベルのことを言ってるのかな (スコア:2)
多分相当初期のMS-DOS限定になりますが・・・。
すいません、あんまり確度の高い話ではないです。
Re: (スコア:0)
COMモデルと、FCBに限定すれば、CP/MとMS-DOS互換のバイナリが作れる、というような感じだったように思うんですが・・・。
この辺の話 [wikipedia.org]を勘違いされてるのでは?
Re:そもそも盗用ってどういうレベルのことを言ってるのかな (スコア:2)
Re: (スコア:0)
盗用論っていうのはつまり、丸ごとコピーして差分を差し替えてつくった、けしからん。と言ってるのだと理解している。
そのころは汎用のMPU用OSなんて他になかったわけで、アイデアの盗用がいかんというのが論点の中心じゃないかな。
そもそもCPU違うし、コピーしただけじゃ動かないはずだし。
創造的価値があったかとかの合理性より感情論なんじゃないかな。かなり昔から論争だけはあって、当事者は何もしていない。
まだMSが悪の帝国、FUDの大魔王だった時代だからねぇ。
Re: (スコア:0)
盗用論っていうのはつまり、丸ごとコピーして差分を差し替えてつくった、けしからん。と言ってるのだと理解している。
たぶんBob Zeidmanの言う盗用というのはアイディアの話ではない…
証明できたらまずすべきこと (スコア:0)
ビル・ゲイツに賞金の倍額を要求する
Re:証明できたらまずすべきこと (スコア:2)
裁判で取るより、本人と関係作って脅し取る方がいっぱいとれる、って主張なのだと思う。
# 常人の発想ではない、って意図ならばその通りだと思う。