1 ポイント 投稿者 GN⁺ 3 시간 전 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 3 시간 전
Hacker Newsのコメント
  • こんなことを言うのは珍しいけれど、ありがとう Microsoft。実のところ DOS と同じくらい、あるいはそれ以上に重要だったのは Microsoft が作った BASIC だった
    彼らが本当にやりたかったのは BASIC で、DOS は IBM との契約を勝ち取るきっかけになった。数十年にわたって Microsoft は、OS やその他のソフトウェアを副業として作る開発ツール企業に近く、その BASIC のコードもオープンソースとして公開している https://opensource.microsoft.com/blog/2025/09/03/microsoft-o...

    • コミットに 49年前 と表示されているのは初めて見た気がする
    • Commodore 64 を使っていながら、実はずっと Microsoft を使っていたのだと気づいた記憶がある
    • 興味深いのは、Microsoft BASIC 自体が BASIC-PLUS から派生し、BASIC-PLUS は Dartmouth BASIC に由来することだ
      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
  • あの時代には、数千行のアセンブリ を書くだけで成功するソフトウェア企業を立ち上げられたという事実が本当にうらやましい

    • そうではあるが、そのアセンブリは DOS ではなかったし、簡単なことでもなかった
      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
    • 公平に言えば、会社を率いる 冷酷な実業家 も必要だったのだろう。今でもだいたい同じだ
    • むしろ正反対に感じる。本当に 適切な人が適切な場所に適切なタイミングでいる 必要があったのだ
    • あれほど単純なプロセッサやシステムですらそうだったというのが驚きだ。ディスクリプタテーブルもなく、メモリ管理設定もなかった
      今では起動しようとするだけでも、メインプロセッサの中に別の小さなプロセッサが必要だ。あの頃こそ黄金時代だった
    • アセンブリを TypeScript/Rust/Go のようなものに置き換えても、アイデアが良くて有用なら今でも同じ原理は当てはまる
  • 当時のソースに関する議論はここ。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 ソフトウェアでも苦戦したという

    • ドットマトリクスフォント 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 のソースも保存されているだろうという希望が持てる

    • Windows 2000 コードベース がオープンソースやソース公開の形で出てくる日が来たら、幸せなまま死ねる気がする
      もちろん、そんな可能性の光でも見える頃には、とっくに死んでいる可能性のほうが高いのだけれど。本当に美しく滑らかに動く OS だった
    • ディスアセンブルするのは難しくなさそうだ
    • そう遠くないのかもしれない。Microsoft はプラットフォームとしての Windows をほぼ畳みつつあるように見える
    • 初期の Windows 3.11 を見るだけでも、着想や学ぶ価値のある良い資料がたくさんありそうだ
    • 興味を引くには、公開が数十年ほど遅すぎるようにも思う
  • 最近の関連記事: Microsoft open sources DOS 1.00 on 45th anniversary - https://news.ycombinator.com/item?id=47957494 - 2026年4月、コメント 19件

  • 現代コンピューティングの初期時代は本当に輝いていた。私たちは機械をあるがままの 機械 として扱っていた
    386 マシンをきちんと動かすには、性能、創意工夫、そして科学のすべてが必要だった。今はライブラリ、仮想化、ひどいコードの上にひどいコード、そのまた上にひどいコードを積み重ねているだけで、好きになれない

    • ときどき、自分のコンピュータに対する精神モデルがいまだに 48KB RAM の Apple ][+ だから、より良いコードが書けるのかもしれないと思う
    • かなり前から、低レベルの概念をまったく理解していないプログラマが増えている。JavaScript や Python から始めて、その下を見たことがなく、彼らが普通だと思っている怪物じみた構造には限界がない
      Linus Torvalds も数か月前に AI コーディングツールの話をしながら、似たような趣旨のことを言っていた。彼の世代、そして私の世代は低レベルから始めてスタック全体の感覚を保てたという意味で幸運だったが、今の子どもたちはそうした機会を得にくいということだ
      子どもの最初のコーディング体験が天才のように見えるチャットボットだったら、コンピュータやアルゴリズム、データ構造についてそのレベルの感覚を身につけるのは簡単ではないだろう
    • DOS と「素晴らしい」が同じ文に入っているとは…
  • これが最古のソースではあるが、86-DOS v0.1-C バイナリ はこの v1.00 ソースよりさらに古く、v0.34 も見つかっていて、エミュレータでダウンロードして実行できる :-)
    https://arstechnica.com/gadgets/2024/01/the-oldest-known-ver...