MS-DOSはCP/Mのコピー品ではなかった 63
ストーリー by hylom
歴史の闇 部門より
歴史の闇 部門より
あるAnonymous Coward 曰く、
MS-DOSやその前身である86-DOS(QDOS)はCP/Mをモデルにしていたとされており、多くの類似点がある。しかし、IEEE Spectrumによると、「MS-DOSはCP/Mのコピーではない」という。
コードの相違点や著作権侵害を解析するツール「CodeSuite」を使ってフォレンジック解析を行った結果、このような結論がでたという。解析ではThe Unofficial CP/M Web siteで公開されているCP/Mのソースコードと、Howard's Seattle Computer Products SCP 86-DOS Resource Websiteで公開されている、MS-DOSのベースとされる86-DOS(QDOS)のソースコードを使ったそうだ。また、MS-DOS 1.11も入手してそのバイナリを使っての比較もしている。その結果、MS-DOSやQDOSがCP/Mのコードを流用している、という明確な証拠は見つからなかったという。
CP/Mの開発者であるゲイリー・キルドール氏は、かつてQDOSにCP/Mのコードが含まれているとしてIBMから和解金を得ていたが、これはIBMの勇み足だったということだろうか。
CP/Mを実際に使ってました? (スコア:1)
今現在、当時のCP/M(8ビット)の所有者や使用者って、このスラッシュドットにどれくらいいるのかちょっと気になりました。実際どれくらいいるのでしょうか?それは昔からPCにかかわっていた昔の若者が多いのでしょうか?それともいまだにCP/Mを使って仕事をしているのでしょうか??なにせ、この世界から遠く離れた仕事をしているもので、、、
ふた昔も前なら、私も趣味で持ってたのですがね...
Re:CP/Mを実際に使ってました? (スコア:2)
98年頃CP/M86の制御プログラムをWindowsNTに移植
2000年頃CP/Mのソフトを改修しました。
その当時の開発に使った環境はHDDのどこかに残っていると思います。
#名前しか知らなかったOSをさわれるってのは楽しかったけど・・・。
Re:CP/Mを実際に使ってました? (スコア:2)
OKIのif800 model30を会社で使ってました。尤もCP/Mを使ってると言うより、OKI-BASICを使ってたんですが。
Re:CP/Mを実際に使ってました? (スコア:1)
最初はDUXというICE付きCP/Mマシンで開発していましたが
カノープスのPlus180ボードを使ったクロス開発をするようになりました。
その後、どうしてもCP/M環境のソフト変更をする時は、CP/MエミュレータをDOS上で動かしていました。
さすがに最近は2764なんてROMを焼くこともなくなりましたね。
Re:CP/Mを実際に使ってました? (スコア:1)
CP/M-86なら新入社員研修の時に1回だけつかったんですけどね.
8bitクラスのOSでまともに使ったのはOS-9ぐらいですね.
Re:CP/Mを実際に使ってました? (スコア:1)
ちょっとだけ使いました。
暫くしてCP/M86になりましたが、PC-98にZ80カード入れて使ったり。
客の都合でFM-8+Z80ってのも有りましたね。
さらにちょい先にMS-DOSになったりしましたが、まさかのCCP/Mの逆襲が有ったり。
Re:CP/Mを実際に使ってました? (スコア:1)
高校の頃、富士通から部活用にFM-11BSを貰ったので部員で触ってましたが……。
あの頃もう少しハックする気力があれば良かったんですがねえ、と遠い目で述懐。
Re: (スコア:0)
CP/M上で動くZ80のコンパイラHi-tech C等がフリーで公開されているので
windows上で動くCP/Mエミュ上とかで使っている人はいるのでは。
当時PC-8801でCP/Mを少し動かしてみましたが、忍耐がいるシステムだったので
あんまり使い込んだ記憶はありません。OSの雰囲気を楽しんだくらいで・・・
アセンブラはエディタが付いた技評のものができがよかったなぁ
仕事で、というとやはりあの手のコンパイラ類(BDS-Cとかalpha-Cとか)で
何かなさってたのでしょうか。
商用といえばウイザードリィがPascalで書かれていたなぁ
CP/Mの上で開発したのだろうか。
#ということでおっさんほいほいはここですよ
Re: (スコア:0)
Re: (スコア:0)
> CP/Mの上で開発したのだろうか。
98でクロス開発となんかの本で読んだ。
もともとUCSDだし、p-codeインタプリタはまあなんかで組んで、アプリ部分は98のUCSD環境でってことだと思う。
木頭さん (スコア:1)
98のクロス環境でオリジナルが開発されたのは、シナリオ4だけじゃないですかね。
あの環境構築は、多分フォーチューンの移植組がかなり頑張ったんだと思う。
Re: (スコア:0)
SHARP X1turboでCP/MとCOBOLコンパイラ使ってました。
他には三菱MULTI16でも使ってましたが、これは16bitマシンすね。
それよりも (スコア:1)
CP/M のソースコードが公開されていたとは知りませんでした。
PIP や STAT は アセンブラではなく PL/M で書いてあったんか〜。
Re:それよりも (スコア:1)
当時キルドールはPL/Mをインテルに売り込んで成功したので、それを使っていろいろコーディングしたのは自然の成り行きかと。
Re: (スコア:0)
CCPもBDOSもでしょ
ヒント (スコア:0)
8080 vs 8088
ソースはトランスレータが移植に使われたんでしたっけ。
第二ヒント (スコア:0)
PL/M
Re: (スコア:0)
CP/MもMS-DOSもカーネルのかなりの部分はファイルシステムだし、CP/MとMS-DOSとでファイルシステムの構造からして違うし、トランスレータなんか使うとこほとんどないと思うぞ。
Re: (スコア:0)
もしかしてMS-DOS V2の話ですか?
Re: (スコア:0)
Ver.2で組み込まれた階層ディレクトリかなんかの話と勘違いしてるのかな?
MS-DOSはそれ以前のQDOSの頃からファイルシステムはFATですよ。CP/Mとはぜんぜん違う。
Re:ヒント (スコア:1)
Re: (スコア:0)
アプリの移植とOSの移植と区別つかない人ですか?
Re: (スコア:0)
大元コメのトランスレータはアプリの話であって、お前がOSの話だと勘違いしてるだけやないの?
Re: (スコア:0)
じゃあ大元コメは関係ない話をしてることになるなw
Re: (スコア:0)
>ソースはトランスレータが移植に使われたんでしたっけ。
の変換のソースはどこからやってくるんだよ。
CP/MのソースをMSが持ってるわけじゃないんだから、アプリの話だと分かるだろ。
Re: (スコア:0)
ふつーに考えて逆アセンブルだろ。
Re: (スコア:0)
>変換のソースはどこからやってくるんだよ。
逆汗とか、事務所忍び込むとか、内通者がいるとか、可能性は色々考えられる罠。
>CP/MのソースをMSが持ってるわけじゃないんだから
QDOS作ってた頃はMSじゃないぞ。
Re: (スコア:0)
逆アセンブル→トランスレート→アセンブルするぐらいだったら、直接バイナリ変換すると思う。
Re: (スコア:0)
完全に自動でできるわけではなかったから人間にも(多少は)読みやすい形式のほうが都合よかったんじゃね。当時は16進のダンプリストを直接読めたとかオープンリールの磁気の濃淡からプログラムを読み取れたとか信じられないような伝説もあるみたいだけど
Re: (スコア:0)
コードとデータの判別どーすんの?
Re: (スコア:0)
当時のコードは自己書き換えとか命令の途中にジャンプで飛び込むと違う命令列として解釈されるとか当たり前のように行ってたしな
Re:ヒント (スコア:4, 興味深い)
CP/M-80でしたら、BDOS(ファイルシステム)とCCP(コンソール)はそんなトリッキーなことはしてなかった
ような。大半はPL/Mで書いてあって、レジスタの使い方が決まっていましたし。
思い出すと、ユーザプログラムのロードを低位アドレスからにしているため、CP/M自体は最上位に置かれました。
ただしユーザが使用するメモリサイズを自由に(といっても上限64kB)設定できるので、OSのメモリマップが確定しません。
ところが8080は絶対ジャンプ/コールしかできないのでプログラムはリロケータブルにできません。
そこで、専用のリロケータがOSの一部として含まれていました(MOVCPM.COM)。
これは逆アセンブルしてみたところ、たとえばDEレジスタにポインタが入っている、といった前提で絶対アドレスを
書き換える仕組みのものでした。なので、あまりハンドコーディングで最適化してしまうと問題がでたんじゃないかと
想像します。
BIOS(コンソールやFDDなどの入出力)はハードウェア依存なので、お手本のソースが添付されており、それをユーザが
めいめいカスタマイズして使うことができました。もちろん、メーカーが自社製品に添付するものは専用にカスタマイズ
したものが最初からFDに書き込まれれていましたが、多くはソースコードが添付されていたようです。
以上オフトピック気味な昔話でした。
Re:ヒント (スコア:1)
マルウェア業界では今でも使われてませんか?>命令の途中にジャンプで~
Re: (スコア:0)
途中の命令にジャンプ~は使われてると思うけど、命令の途中にジャンプ~はあんまないんじゃないかな。
Re: (スコア:0)
整理しよう
・CP/Mのソースは当時公開されていた(も同然だった)
・CP/MとCP/M-86の関係は別物なので論点には要注意
・インテルニーモニックで表記しておけば、8080→8086への変換はトランスレータを作らずとも簡単だった
Re: (スコア:0)
それは構成的にわざと互換を持たせたってだけだと思うのだが。
勇み足 (スコア:0)
どこぞのペテン師が「フロッピーディスクの発明者は自分」と主張することになろうとも、予防措置的にろくに関係もない特許に使用料を支払うIBMですから、それよりマシな根拠を認めた上であれば勇み足というほどのこともないかと。
Re:勇み足 (スコア:1)
そのペテン師の自宅の門は、フロッピーディスクの形になっているとか。
多くの人が、○松がフロッピーディスクの発明者だと勘違いしているのだろうな。
Re: (スコア:0)
牧歌的な当時ならともかく、今だとパテントトロールに払うくらいならドブに捨てたほうがマシ [srad.jp]だという判断もあるかもね。
Re: (スコア:0)
CP/Mの件にしろ、フロッピーディスクの件にしろ、「勇み足」って言うのかな、そういうの?
いさみあし【勇み足】
(1)相撲で、相手を土俵際へ追いつめながら勢い余って相手より先に足を出して負けること。
(2)転じて、つい勢いにのって、やり損なうこと。
(広辞苑より)
「金持ちケンカせず」とかだったら、まだわからなくもない
そんなこと言ってる奴、まだいたの? (スコア:0)
マカーとキルドールぐらいか?
Re: (スコア:0)
君が飼っている犬のキルドール君の話をされても困るんだが?
Re: (スコア:0)
「行末の記号がなんでCP/M互換なのかよく見てみろ」とはキルドール氏の談
構造も似てるといえば似てるかな。コマンド体系も、これはお手本があったようだけど。
それはIBMのミニコン用DOSだったと思う。
負けた本当の原因は値段だわな。
Re:そんなこと言ってる奴、まだいたの? (スコア:1)
行末じゃなくて文字列出力ファンクションコールへ渡す文字列の
終端が$であることじゃなかったっけ?
オリジナルだというなら何で$なのか説明してみろとか。
Re: (スコア:0)
これ当時からAPI真似して実装すんのとコードを盗用すんのとでは随分違うだろと思ってたんだが、いまだにキルドールの真意が分からん。
Re: (スコア:0)
CP/Mのお手本はPDP-11のRT-11とかそのへん
何を今さら (スコア:0)
MS-DOSがCP/Mのコピーなら,MS-DOSの逆アセ本が堂々と売られていた大昔にすでに話題になっていただろうに
Re:何を今さら (スコア:1)
まぁ、開発者が同じだから一緒か。
----------------------------------------
業界が違うからIDでいいや。
Re:何を今さら (スコア:1)
失礼いたしました。
(遅くてすいません)
----------------------------------------
恥ずかしいけど、業界が違うから許して。
Re: (スコア:0)
> MS-DOSの逆アセ本が堂々と売られていた
時代だったらCP/Mのコピーが堂々と売られていても誰も気にしなかったんじゃね