Microsoft、「これまでに見つかった中で最古のDOSソースコード」をオープンソース公開
(arstechnica.com)- Microsoftが、MS-DOSという名称が付く以前にまでさかのぼる初期DOS資料を公開し、従来の公開分よりさらに古い開発段階を示した
- 公開資料には 86-DOS 1.00 のカーネルソース、PC-DOS 1.00カーネルの複数の開発スナップショット、
CHKDSKなどのユーティリティが含まれる - Tim Paterson は Seattle Computer Products の Intel 8086 コンピュータキット向けに 86-DOS を開発し、このOSは QDOS としても知られていた
- Microsoft は IBM PC 5150 向けOSのために 86-DOS をライセンスし、Paterson を雇用した後、権利を買い取って PC-DOS と MS-DOS へ発展させた
- 今回のコードはデジタル保存版ではなく、Paterson の 紙の出力物 から手作業で転記・スキャンされており、初期PCオペレーティングシステム研究資料の範囲を広げるものとなっている
公開された初期DOSソースコード
- Microsoftが「これまで公開したDOSソースコードの中で最古のDOSソースコード」を公開した
- 今回の公開は MS-DOS という名称が付く前のコードにまでさかのぼり、Microsoft の 公開記事 には
86-DOS 1.00のカーネルソース、PC-DOS 1.00カーネルの複数の開発スナップショット、CHKDSKなどのユーティリティが含まれている - 既存公開の MS-DOS ソースよりもさらに早い時点の資料であり、初期 DOS 開発の過程をより前段階から確認できる
86-DOSからMS-DOSへ続く道筋
- Tim Paterson は Seattle Computer Products が販売した Intel 8086 ベースのコンピュータキット向けに、最初に 86-DOS を開発した
- 86-DOS は以前は QDOS として知られ、QDOS は “quick and dirty operating system” の略だった
- Microsoft は、まだ開発中だった IBM PC 5150 にOSを提供するため、86-DOS をライセンスし、Paterson を雇用して開発を継続させた
- その後 Microsoft は 86-DOS の権利を完全に買い取り、IBM には PC-DOS としてライセンスしつつ、他社にも販売できる権利を維持した
- Microsoft が販売した版は MS-DOS と呼ばれ、1980年代から1990年代にかけてサードパーティ製の IBM PC 互換機が普及する中で広く使われるOSとなった
紙の出力物から復元されたコード
- 今回のソースコードは古すぎて、デジタル形式では保存されていなかった
- Yufeng Gao と Rich Cini が率いる歴史家・保存専門家チームは、「DOS Disassembly Group」の名で、Paterson が提供した紙の出力物からコードを 手作業で転記・スキャン した
- 数十年前の出力物の品質のため、現代のOCRソフトウェアでは うまく処理しにくく、復元作業はさらに困難だった
関連する公開と保存の流れ
- Microsoft は 2014 年に MS-DOS 1.25 と 2.0 をオープンソース公開し、2018 年に 再公開 した
- 2024 年には、特異なバージョンと評された MS-DOS 4.0 のソースコード も公開しており、これらのバージョンは同じ GitHub リポジトリ に置かれている
- 今回の公開は、2020年代に新たに再発見された最初の 86-DOS 関連資料ではなく、2年前には既知で最古の 86-DOS バージョンが 再発見されて Internet Archive にアップロード されている
- MS-DOS ブランド以前のコード、開発スナップショット、ユーティリティがまとめて公開されたことで、初期PCオペレーティングシステム史を研究するための一次資料がさらに広がった
1件のコメント
Hacker Newsのコメント
こんなことを言うのは珍しいけれど、ありがとう Microsoft。実のところ DOS と同じくらい、あるいはそれ以上に重要だったのは Microsoft が作った BASIC だった
彼らが本当にやりたかったのは BASIC で、DOS は IBM との契約を勝ち取るきっかけになった。数十年にわたって Microsoft は、OS やその他のソフトウェアを副業として作る開発ツール企業に近く、その BASIC のコードもオープンソースとして公開している https://opensource.microsoft.com/blog/2025/09/03/microsoft-o...
Dartmouth BASIC は後に構造化プログラミング言語の SBASIC (Structured BASIC) へと発展したが、Microsoft BASIC の人気が逆に SBASIC の ANSI 標準化を止めてしまった
https://en.wikipedia.org/wiki/Microsoft_BASIC
Altair BASIC インタプリタは、Paul Allen と Bill Gates が PDP-10 ミニコンピュータ上で自作した Intel 8080 エミュレータを用いて開発され、Microsoft 方言は Gates が高校時代に使っていた DEC の BASIC-PLUS を手本にしていた
https://en.wikipedia.org/wiki/Dartmouth_BASIC
Dartmouth BASIC は John G. Kemeny と Thomas E. Kurtz が作った元祖 BASIC であり、DTSS とともに学部生や大学コミュニティ全体に対話的なプログラミング環境を提供した。1975年には構造化プログラミングの概念を取り入れた SBASIC を発表し、これは 1980年代初頭の ANSI 「Standard BASIC」策定作業の土台となった
しかし 1980年代後半には、数千万台の家庭用コンピュータが MS BASIC インタプリタの派生版を動かすようになって事実上の標準となり、最終的に ANSI SBASIC の取り組みは中止された。Kemeny と Kurtz はその理念を引き継いで True BASIC を作ったが、2026年2月時点で TrueBASIC のウェブサイトは正式に閉鎖されている
https://en.wikipedia.org/wiki/True_BASIC
あの時代には、数千行のアセンブリ を書くだけで成功するソフトウェア企業を立ち上げられたという事実が本当にうらやましい
Microsoft は DOS のコードを自分たちで書いたのではなく、買収した。もちろんその後で開発や修正はしたが、それは技術的偉業というより、抜け目なく運にも恵まれたビジネス取引だった
Microsoft の本当の出発点はそれ以前に Allen、Gates、Davidoff が Altair BASIC インタプリタ を作ったことにあり、これはかなりの偉業だった
彼らは対象のコンピュータを見たことすらなく、所有もしていなかった。使ってはいけない大学のコンピュータで 8週間作業していた
「Altair は BASIC インタプリタを購入する可能性について会うことに同意したが、Gates と Allen には BASIC インタプリタも Altair システムもなかった。Allen は PDP-10 タイムシェアリングコンピュータ上で動く Intel 8008 エミュレータをすでに作っており、これを Altair プログラマガイドに合わせて修正し、Harvard の PDP-10 でインタプリタを開発・テストした」
完成したインタプリタは独自の入出力システムと行エディタを含めて 4KB メモリに収まり、実行されるプログラムのための空間も十分に残していた。デモの準備として、完成したインタプリタを Altair が読める紙テープに保存し、Paul Allen は Altair に会うため Albuquerque へ飛んだ
着陸直前、Allen はテープをメモリに読み込むブートローダを書き忘れていたことに気づき、飛行機が着陸する前に 8080 機械語でそのプログラムを完成させた。Altair にプログラムを載せ、システムメモリのサイズを尋ねるプロンプトが表示されて初めて、Gates と Allen はそのインタプリタが実機の Altair ハードウェアで動作することを知った
https://en.wikipedia.org/wiki/Altair_BASIC
今では起動しようとするだけでも、メインプロセッサの中に別の小さなプロセッサが必要だ。あの頃こそ黄金時代だった
当時のソースに関する議論はここ。24日前、79ポイント、コメント 19件 https://news.ycombinator.com/item?id=47957494
GitHub クローンに関する議論もある。162ポイント、コメント 15件 https://news.ycombinator.com/item?id=47946813
驚いたことに、紙の出力物を再び OCR で読み取らなければならなかった
このソースコードはデジタル保存されていないほど古く、Yufeng Gao と Rich Cini が率いる歴史家・保存家チーム「DOS Disassembly Group」が、Paterson の提供した紙の出力物から苦労してコードを転記・スキャンした。数十年前の出力物の品質のせいで、最新の OCR ソフトウェアでも苦戦したという
レター品質プリンタの出力なら 97% くらいまで OCR できたことがあるが、主に O と X が問題だった
ただ最近の機械学習ベースの文字認識は、コンピュータコードが人間の言語のように見えないという理由で拒否する方向にもバイアスがあるように思える
Microsoft がどうやって OS 事業に入ったのかは興味深い話だ。IBM は CP/M OS を望んでいたが、Digital Research が IBM の NDA に署名せず、これがコンピューティング史における大きな分岐点になった
「Triumph of the Nerds」の TV 台本から引用すると:
https://www.pbs.org/nerds/part2.html
Jack Sams (IBM) は、Microsoft が BASIC 言語と OS の両方を含むパッケージを持っていると思っていたが、IBM は事前調査をきちんとしていなかった
Steve Ballmer によれば、IBM は Microsoft が SoftCard 製品に CP/M を載せて販売していたため、新しいパーソナルコンピュータ向けの CP/M をライセンスできると考えていた。Microsoft は「その事業はやっていない」と答えた
Jack Sams は Bill Gates が権利を持っていないと説明しつつも、Gary Kildall なら準備ができているはずだと言ったので、その場で Digital Research の Gary に電話して IBM の人たちを丁重にもてなしてくれと頼んだという
最も初期の Windows バージョンのソースが公開されるまで、あとどれくらいかかるのだろう。これほど古い DOS のソースがまだ残っているという事実だけでも、昔の Windows のソースも保存されているだろうという希望が持てる
もちろん、そんな可能性の光でも見える頃には、とっくに死んでいる可能性のほうが高いのだけれど。本当に美しく滑らかに動く OS だった
最近の関連記事: Microsoft open sources DOS 1.00 on 45th anniversary - https://news.ycombinator.com/item?id=47957494 - 2026年4月、コメント 19件
現代コンピューティングの初期時代は本当に輝いていた。私たちは機械をあるがままの 機械 として扱っていた
386 マシンをきちんと動かすには、性能、創意工夫、そして科学のすべてが必要だった。今はライブラリ、仮想化、ひどいコードの上にひどいコード、そのまた上にひどいコードを積み重ねているだけで、好きになれない
Linus Torvalds も数か月前に AI コーディングツールの話をしながら、似たような趣旨のことを言っていた。彼の世代、そして私の世代は低レベルから始めてスタック全体の感覚を保てたという意味で幸運だったが、今の子どもたちはそうした機会を得にくいということだ
子どもの最初のコーディング体験が天才のように見えるチャットボットだったら、コンピュータやアルゴリズム、データ構造についてそのレベルの感覚を身につけるのは簡単ではないだろう
これが最古のソースではあるが、86-DOS v0.1-C バイナリ はこの v1.00 ソースよりさらに古く、v0.34 も見つかっていて、エミュレータでダウンロードして実行できる :-)
https://arstechnica.com/gadgets/2024/01/the-oldest-known-ver...