世界を動かす技術を、日本語で。

Os8088: IBM XT、286、386用の強力なMac風OS

2026年8月9日原文(os8088.com)

概要

  • os8088 のデスクトップ環境における多重プログラム実行の様子
  • 各ウィンドウやアプリの 動作仕様リソース管理 の詳細
  • メモリ管理スケジューラ の仕組み
  • 代表的な アプリケーション の特徴と挙動
  • ユーザーインターフェース の操作感や設計思想

os8088 デスクトップ環境の多重プログラム動作

  • 5つのプログラム 同時実行:Note Pad、Clock、Bounce、Control Panel、Task Manager
  • 各アプリは 独立したインスタンス として動作し、 個別のDockタイル を持つ設計
  • Task Managerによる CPU使用率70%RAM使用量147K のレポート
  • 起動直後 のデスクトップ:512バイトのブートセクタがカーネルをロードし実行
  • BIOS経由で認識したドライブごとに フロッピーアイコン を表示
  • Dockは初期状態で空 :os8088は自動起動アプリなし

ユーザーインターフェースとウィンドウ管理

  • メニューバー操作 :ボタンを押している間だけメニューが開く方式
  • プルダウン表示時、 裏のピクセルをヒープから確保した領域に一時保存 し、メニューが閉じると復元
  • ウィンドウのドラッグ :XORモードで1ピクセル枠を描画し、移動中は元の位置を反転表示
  • 同一アプリの複数インスタンス :例としてDiskウィンドウ、2つのClock、2つのBounce
  • 各インスタンスは インスタンステーブル で管理され、Dockタイルの位置も対応
  • キーストロークは最前面ウィンドウのみ に入力
  • Note Padの各インスタンスは 512文字バッファ を個別保持、ヒープ容量次第で複数同時オープン可能

システム情報とスケジューラ

  • Aboutボックス はカーネルのライブ状態を表示
  • スケジューラの状態 (pre-emptive/cooperative)はカーネルのバイト値を直接参照し、全ての情報表示が一致
  • Task Managerの 履歴グラフ :80秒分の履歴、160カラムリングバッファ
  • ウィンドウコールバックのタイミング計測 とリソース割り当て
  • スケジューラ設定 はカーネルから直接読み出し、設定変更は即時反映

ウィンドウの最小化とタスク管理

  • 最小化 されたClockとBounce:Dockタイルが反転表示、動作は継続し描画のみ停止
  • Minimized状態 でもプログラムは実行中

ファイルマネージャとプログラムロード

  • ファイルマネージャ :ソフトウェアフロッピーの内容を表示
  • 各ファイルの 名前・サイズ・アイコン 表示、アイコンはファイル先頭セクタから直接取得(16x16ビットマップ)
  • 複数プログラムの同時ロード :MINESとHELLOは独立したセグメントにロード
    • 各プログラムは 独立セグメント・オフセット0 で実行、パッチ不要
  • Minesweeper:1,510バイト、独自セグメントにロード後、カーネルが組込アプリと同様に呼び出し

主要アプリケーションの特徴

  • ArtfulType :Markdownライター、クラシック68k Mac用アプリの8086移植版、フルスクリーン対応、Markdownファイル互換
  • Tracker :4チャンネルMODプレイヤー、Amiga .MOD再生、再生中もデスクトップ操作可
  • Paint :ビットマップエディタ、16色対応、BMP/GIF入出力、各種描画ツール・クリップボード・アンドゥ機能
  • Fractal :Mandelbrot探索、ズーム・配色選択・3パス描画、バックグラウンド処理で他作業と両立
  • Piano :2オクターブキーボード、マウス/キー操作、譜面表示・再生、FM音源/PCスピーカー対応
  • Recorder :サウンド録音・再生、波形表示、Sound Blaster/PCスピーカー自動判別
  • Solitaire (Klondike):カードドラッグはウィンドウ同様XORアウトライン、7列・4ファウンデーション
  • Arkanoid :ブロック崩し、ボールは独立タイマーで安定速度、スコア継続
  • Minesweeper :9x9盤面・10地雷、初回クリック安全、空白領域は一括オープン、Fでフラグ、Nで新規ゲーム
  • Note Pad :プレーンテキストエディタ、ワードラップ・キャレット・FAT12書き込みで他PCとの互換
  • Hello :2行テキストのみの最小サンプル、唯一アイコンなしで汎用アイコン表示

システム設計の特徴

  • 全体として省メモリ・省リソース設計
  • リアルタイムなカーネル状態参照 による一貫性
  • ユーザーインターフェース は即時反応・最小限の冗長性
  • 複数アプリの同時実行直感的なウィンドウ管理

Hackerたちの意見

IBM XTのために作られたかもしれないグラフィカルオペレーティングシステム。Intel 8086用のMacOS風デスクトップで、リアルモードアセンブリで完全に書かれてる(Claudeと一緒に)。実際のハードウェアで動作することが確認されていて、FAT12/16サポート、移植されたアプリやゲーム、Sound Blasterサポート、そして今後のハードドライブサポートもあるんだって。

動画を見つけたばかり(https://www.youtube.com/@NostalgiaPCTV)…それに、GitHubのソースコードはまるで本みたいだ。すごいね。

そういえばGeoWorksがあったね(AOLはそのGUIをうまく使ってた): https://github.com/bluewaysw/pcgeos

手書きのリアルモード8086。Cもリンクもランタイムライブラリもなし。もっと手動で促された感じ…

Claudeが実際にリアルモードのアセンブリがそこそこできるのには驚いたけど、もしかしたら人間のサポートや試行錯誤がたくさんあったのかもね。

ランディングページから: > 66,183行の手書きリアルモードアセンブリ。GitHubの貢献者はjggonzとCLAUDE。README.mdの最後にはライセンスについても触れられてる。 > ここにあるのはすべて手書きで、OSにサードパーティのコードは使われてないから、全体がその一つのライセンスでカバーされてる。LLMに広告文を書かせるとこうなるんだね…

それに、LLMはまだ自信満々で嘘をついてる: > その後は、1984年のMacintoshから覚えているインターフェースだよ: […] そして、下に実行中のプログラムごとに一つのタイルがあるドックがある。そういうわけで、OS XのAquaがIBM PS/2に移植されるのを楽しみにしてるよ。

AIが書いたコードには何も文句はないけど、もし人がHNに投稿するなら、少なくともREADMEやウェブサイトのメインページは手で書くことを考えた方がいいよね。やっぱり時々は人間の声が聞きたいし。

os8088の「作者」です。そう、手動でプロンプトを出してるんだ。ClaudeのOpusやFableが、私と他の貢献者がこのオペレーティングシステムを形作るのにすごく役立ってくれたよ。LisaOSやMacOS、Windows、GEOSなどの他のオペレーティングシステムが使ってきた技術を学ぶのは本当に面白い経験だった。XTクラスのマシンで640x480のパフォーマンスを出すのは難しいし、64KBのセグメント制限を克服するのも興味深かった!

AIにasmを書かせる意味があるのか分からない。Cを書く方が、コンパイラがAIよりも最適化できる可能性が高いと思うんだけど。

HNのほとんどの人がAIを使ってコードを書いてるのに、同時に面白い新しいソフトウェアをAIが書いたものとして片付けるのが面白いよね。

まるでそれが二つの異なる人々の集まりみたいだね?

Hacker Newsで議論の続きを見る