パスワードを忘れた? アカウント作成
12873833 story
ソフトウェア

MS-DOSはCP/Mのソースコードを盗んで作られたのか?証明できたら総額20万ドルの賞金 192

ストーリー by headless
賞金 部門より
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サイトからダウンロードできる。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • MS-DOSが他のOSのコードを盗んでいないフルスクラッチであるという証明も
    同じようにできないだろうね。

  • by Anonymous Coward on 2016年08月11日 15時04分 (#3061685)

    もし盗んだんなら公開したソースコードなんて修正して渡しているだろうし、
    ちゃんと同じバイナリになっているのかな?

  • by Anonymous Coward on 2016年08月11日 17時36分 (#3061760)

    1、完璧を目指すため、もちろんコピーする
    2、該当コードをまるごと削除
    3、コードは残すがメッセージを“Prease enjoy this OS!”に書き換える

  • by Anonymous Coward on 2016年08月11日 13時47分 (#3061641)

    たいとるおんりー

    • by Anonymous Coward

      デジタルリサーチのコンサル「これはソースの盗用デース」

  • by Anonymous Coward on 2016年08月11日 13時49分 (#3061642)

    CP/Mとの互換のために同じ番号使ってるって話じゃなくて? 当時は米国でもAPIに著作権があるという判決は出てなかったはずだし

  • by Anonymous Coward on 2016年08月11日 13時51分 (#3061643)

    ソースが欲しけりゃ、わざわざ盗むまでもなく逆アセンブルすればええだけやん

    現代におけるソースコード盗用とは意味が違いすぎますわ

    • by Anonymous Coward on 2016年08月11日 19時46分 (#3061807)

      PL/M で書かれていたという記憶があったんだけど...

      http://www.cpm.z80.de/binary.html [z80.de]
      PLM compiler のあたりとか

      https://ja.wikipedia.org/wiki/CP/M [wikipedia.org]
      生い立ちのあたりとか

      親コメント
    • by Anonymous Coward

      アセンブラ知らなさすぎ。
      ディスアセンブラが吐き出したものは、ラベル付けやワークエリアの解析など
      かなり手間暇かけないとアセンブラのソースにはならんよ。

      この場合の盗用は、現代におけるソースの盗用とほぼ同じ。

      • バイナリを逆アセ>アセンブル(コンパイル)可能なソース化が手間がかかるのは、言われる通り。
        特にワークの意味合いまで完全に調べるのは、相当に手間がかかる。
        「簡単」と言っている人は多分実際にはやったことなくて、「やった事例がある」のを知ってるだけだと思う。やったのなら、その手間に辟易してるだろうから。
        ただし、だからと言ってソース化が不可能と言っている訳ではない。もちろん可能。

        dis.xや半自動化ツールは親コメがいう所の「ワークの解析」なんてのはやってくれない。
        (=親コメで言っているものと同等ですらないものを持ち出しているだけ)

        毎日逆アセと解析している身としては、まぁCP/Mぐらいの規模になれば、ソースを盗用するよりは、むしろ見えているAPIを下敷きに、模倣する方が100倍くらい楽。
        仮にCP/Mの動作を確認したいとしても、テストコード書いて確認すれば良いだけだから、わざわざコストの高い解析をするとは考えにくい。
        親コメント
        • by Anonymous Coward

          > 特にワークの意味合いまで完全に調べるのは、相当に手間がかかる。

          他アーキテクチャへの移植が目的なら「ワークの意味合いまで完全に調べる」必要はあんまないだろ。
          コードとデータの区別ができれば、8080 → 8086/8088 の移植は、キレイに書かれたプログラムならニモニックの機械的な変換でいけるよ。

          • ワークの意味合いまで調べる必要があるのは、
            それがテンポラリ的に使いまわしされるのか、とか、
            グローバル的に意味合いを持たされて使われるのか、とか、
            「同じものを指しているが、意味合いが違う場合」が多々あるからなんですね。

            全く改変する予定がない(機械的な逆アセではかれたコードを一対一で再利用するだけ)のであれば
            最低限それで良いかもしれませんが、
            それをもとに、発展継続を考えているのであれば、どう考えてもシステムの構造や、ワークの意味合いの解析は必要でしょう。

            まぁこういうのは実際にやったことがないと、どのくらい大変かはわからないですよね~。
            親コメント
      • by Anonymous Coward

        昔々X68k用にソースコードジェネレータdis.xというのがありましての。
        実行ファイルをアセンブラのソースに変換して数行書き換えてまたアセンブル・リンクするなんてことが
        簡単に行えたのじゃ

        • by Anonymous Coward

          アセンブラにかけられる程度なら、中学の頃よくやってた。
          問題は、中身だよ。
          Cのソースでも変数が全部a00012とかだったらコンパイラは通るけど、読めないべ。
          それと一緒。

      • by Anonymous Coward

        アセンブラ知らなさすぎ。
        ディスアセンブラが吐き出したものは、ラベル付けやワークエリアの解析など
        かなり手間暇かけないとアセンブラのソースにはならんよ。

        半自動化でやってくれるツールなんていくつもあったけど何言ってんの??

        • by Anonymous Coward

          半分じゃん。なんだ。

      • by Anonymous Coward

        アセンブラ知らなさすぎ。
        ディスアセンブラが吐き出したものは、ラベル付けやワークエリアの解析など
        かなり手間暇かけないとアセンブラのソースにはならんよ。

        CP/Mよりぜんぜん大きい24kBあるPC-8001のN-BASICを逆アセンブルしてアセンブラのソース化し本として出版した例とか知らんのかな?

  • by Anonymous Coward on 2016年08月11日 14時16分 (#3061658)

    既に役割を終えたOSの盗用を証明したところで、労力の無駄な気がするな。

    • by Anonymous Coward on 2016年08月11日 15時01分 (#3061680)

      20万ドルも貰えれば毛は生えると思います。

      親コメント
      • by Anonymous Coward

        証明できればの話だけどな。

    • by Anonymous Coward

      年寄りのライフワークにケチつけるのは無粋

      • by Anonymous Coward

        結果如何によっては裁判に発展するだろう。

    • by Anonymous Coward

      歴史家の存在全否定だな。
      歴史的に何があったかを知る事自体は無駄ではあるめえよ。

      ところで法的にはどういう扱いになるんだろう。
      大抵の犯罪なら既に時効だろうが、著作権なら死後70年だっけ?

      • 日本の法しか分からないんで、日本国内で販売された分のみの議論になっちゃうけど

        (日本の場合、死後)50年ってのは著作権の権利そのもので、
        権利侵害が起こってからの時効ではない。

        著作権侵害で民事訴訟を起こして金をとる場合、
        まず不法行為による損害賠償、それが時効なら不当利得返還請求権を使うのが一般的

        不法行為による損害賠償請求権の時効は、民法724条より
        「被害者又はその法定代理人が損害及び加害者を知った時から三年間行使しないとき」
        「不法行為の時から二十年を経過したとき」
        で時効。

        不当利得返還請求権は債権扱いで10年で時効(民法167条)

        ついでに刑事の方も
        著作権侵害に関する罪のほとんどは知っての通り親告罪(著作権法123条)
        で、親告罪の時効は「犯人を知つた日から六箇月」(刑事訴訟法235条)で時効

        非親告罪の部分や犯人不明の場合の時効は罪の重さによるけど、
        著作権侵害の罪は最も重いもので懲役10年以下
        刑事訴訟法250条2項が
        「時効は、人を死亡させた罪であつて禁錮以上の刑に当たるもの以外の罪については、次に掲げる期間を経過することによつて完成する。
         (略) 
         四 長期十五年未満の懲役又は禁錮に当たる罪については七年
         五 長期十年未満の懲役又は禁錮に当たる罪については五年
         (以下略) 

        未満と以下の違いがあるんで時効7年であってるのかな?

        親コメント
  • CP/MやMS-DOSのカーネルコードの大部分はファイルシステムだと思うけど、CP/MとMS-DOSでファイルシステムの構造は違うので、それ以外の部分で盗用があったとしても極僅かな部分に限られると思うのだけど。

    • COMモデルと、FCBに限定すれば、CP/MとMS-DOS互換のバイナリが作れる、というような感じだったように思うんですが・・・。
      多分相当初期のMS-DOS限定になりますが・・・。

      すいません、あんまり確度の高い話ではないです。
      親コメント
    • by Anonymous Coward

      盗用論っていうのはつまり、丸ごとコピーして差分を差し替えてつくった、けしからん。と言ってるのだと理解している。
      そのころは汎用のMPU用OSなんて他になかったわけで、アイデアの盗用がいかんというのが論点の中心じゃないかな。
      そもそもCPU違うし、コピーしただけじゃ動かないはずだし。
      創造的価値があったかとかの合理性より感情論なんじゃないかな。かなり昔から論争だけはあって、当事者は何もしていない。
      まだMSが悪の帝国、FUDの大魔王だった時代だからねぇ。

      • by Anonymous Coward

        盗用論っていうのはつまり、丸ごとコピーして差分を差し替えてつくった、けしからん。と言ってるのだと理解している。

        たぶんBob Zeidmanの言う盗用というのはアイディアの話ではない…

  • by Anonymous Coward on 2016年08月11日 15時48分 (#3061702)

    ビル・ゲイツに賞金の倍額を要求する

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...