見出し画像

いきなりコードは書かない。AIに「OS自作の地図」を描かせる2日目。

【AIによるこの記事の3行まとめと解説】

OS自作という未知の挑戦にあたり、いきなり難しいプログラムを書き始めるのではなく、まずはAIに「全体の地図(進め方の手順)」を作ってもらいます。 「どこを最初のゴールにするか」「どの順番で作れば失敗しないか」をAIに質問し、無理のない小さな目標(画面に何かを出す等)を設定します,。 AIの提案をそのまま鵜呑みにするのではなく、自分のやりたいこととすり合わせていく、本格的な開発前のワクワクする「作戦会議」の記録です。


あらすじ

突然思い出したOS自作本の記憶。本もコードもなくしてしまったけど、AIとやってみることにするのだった。


いきなり実装しない理由

自作OSへの挑戦を始めます!

普通ならここで「まずはエディタを開いてコードを書こう!」となるところですが、如何せんきちんとした内容はほとんど覚えていません。

ガイドラインもありません。

なので、まずはどう進めるのが良いか、AIに相談するところから着手です。

AIに投げた「3つの問い」

迷子にならないための地図を作るべく、AIに以下の問いを投げかけました。

  1. 何を最小構成(ゴール)にすべきか?

  2. どの順番で進めると破綻しにくいか?

  3. ブート(起動)、カーネル(中核)、出力(画面表示)、割り込み(入力など)は、どう繋がっていくのか?

ただコードを出させるのではなく、「考え方」と「進め方」の設計を求めたわけです。

AIから得られた大枠(地図の原案)

AIからの回答を要約すると以下の通りです。

  • 目的設定(到達点を小さく): 「本物の汎用OS」を目指すのではなく、まずはブートして画面に何か出し、キーボードやタイマーを少し触るくらいまでを最初のゴールにする。「デスクトップっぽい」はその次の段階として置く。

  • 実行環境を固定する: 対象CPU(例としてx86の32bit保護モードかx86-64のロングモード)、エミュレータ(QEMU)、ツールチェイン(GAS+GCC+LD)をブレさせない。

  • ブートの入口確保: 「電源投入後、自分のコードの最初の命令が動く」まで。ここがOSの“第0歩”。

  • カーネル骨格と出力: アセンブリでのスタック設定や割り込み準備を経て、C言語の kernel_main 的な入口へ。VGAテキストモードかシリアルへの出力がないと デバッグが地獄になる

  • 「OSらしさ」の核: 割り込み処理(タイマー、キーボード)や、簡単なメモリ管理(まずは物理メモリのbitmap程度で十分)。

  • 「デスクトップっぽい」へ(余力で): グラフィックモードやマウス、簡易ウィンドウ風の描画など。

▼ AIが提示した「最低限つくるもの」

  1. 自作MBRブートローダ(+ディスクイメージ) : カーネルへ制御を渡す

  2. カーネル入口+スタック+基本割り込み基盤 : C とハードの橋渡し

  3. 画面またはシリアルへのログ : デバッグと達成感

  4. タイマー/キーボードなど最低限のデバイス : 「動いてる感」

  5. (発展)メモリ管理・マルチタスク・描画 : 「OSっぽさ」の増幅

AIの回答は「正解」ではなく「たたき台」

AIの回答は絶対の正解ではありません。あくまで私の経験や記憶を引き出し、議論するための「たたき台」です。

大枠の地図が手に入りました。

次回は、このAIの提案を私の経験や制約に合わせて揉み込み、開発を進めるための「大前提」をカチッと確定させていきたいと思います!


次回、何をやって何をやらないのか大枠を決める。


公開中の全記事はこちら!

記事作成のお供に!お役立ちツール!

コピペするだけ!簡単「タイトル+URL一撃コピー(note特化型)」|へろん
コピペするだけ!簡単「AI記事から**を消す(note特化型)」|へろん

その他、こんなことやってみてます!


気に入ったらスキ、フォローよろしくお願いします!
note外から見にきてくださったかたも、もしよければハートマーク押して頂けたら励みになります😊





いいなと思ったら応援しよう!