64bitへの挑戦。自作OSの前提を固める3日目。
【AIによるこの記事の3行まとめと解説】
昔の記憶を頼りに、今回は未知の「64bit」でのOS作りに挑戦し、まずは「何かが動くこと」を目標にしました。 プログラムはAIに書いてもらいますが、丸投げではなく自分でも仕組みを理解しながら進めます。 最初から完璧を目指さず、できることから少しずつ積み上げていく、OS自作の土台作りの記録です。
あらすじ
何を決めないといけないのか、最低限どこまでやるのかをAIに提案してもらったのだった。
未知の64bit環境へ。ゴールは「何かが動く」こと
前回、AIと共に自作OSの全体地図(大枠)を描き出しました。今回は、それに沿って実際の開発を始めるための「大前提(ターゲットと環境)」を決めていきます。
昔、私がOS自作本で遊んでいた当時は32bit環境だったため、プロテクトモードでの動作を想定したものでした。
しかし、せっかく今やり直すなら、今まで対象にしたことがなく「試してみたい」「やったことがない」という好奇心から、今回は 「64bit OS」 を作ってみたいと思います!
とはいえ、目標としているのは商用レベルの厳密なOSではありません。
安全で安心な本物のOSが必要なら、Linuxを使ったほうが圧倒的に早いですからね。
あくまで楽しみのための大人の泥沼ですから、そこは曖昧に「OSっぽいもの」で十分です。 「とにかく電源を入れたら自分の作ったものが立ち上がってきて、何かが動く」 これが、今回の最大の成功条件(ゴール設定)です。
ブートローダは自作で再挑戦
ブート(起動)に関しても、せっかくなので現代の便利なツール(GRUBなど)は使わず、昔の記憶にならって 「自作ブートローダ」 で再挑戦してみたいと思います。
「自作」とは言っても、実際のコードはAIに作ってもらい、それを解説してもらうのがメインになります。
その意味では「AI作」になってしまいますが、ただコピペして終わらせるつもりはありません。
実装にあたってはAIの補助を大いに活用しつつも、 「理解して進めること」 を優先します。
自作ローダを通して、PCが起動する一連の流れを自分の言葉で説明できるようになるのが目標です。
安全第一のエミュレータと、懐かしのツールチェイン
次に、実行環境と開発ツールの方針です。
今回も、実機ではなくエミュレータである 「QEMU」 を前提とします。家に余分なパソコンがあれば実機で試すところですが、残念ながら我が家にあるのはどれもこれも潰すわけにはいかないパソコンばかり。
まずは安全に、心置きなく試行錯誤(破壊)できる環境を選びます。
そして、開発ツール(ツールチェイン)は昔にならって 「GAS(アセンブラ)」と「GCC(Cコンパイラ)」 を使います。
GCCはともかく、GASに至ってはこのOS自作の時にしか触った記憶がありません。
「そうそう、こんな書き方だったな」と当時を懐かしむ意味も込めて、あえて昔と同じツールを使うことにしました。
大事なのは「何をやらないか」
そして、泥沼に深くハマりすぎないための重要なルール。それは「何をやらないか」を決めておくことです。
Linux相当の完成度は目指さない
いきなり高機能化しない
まずは起動し、画面に何かを出力して「観測できる(動いていることがわかる)」状態にすることを最優先します。
最初から完璧なものを目指すのではなく、 「小さく動かして、それを積み上げていく」 スタイルで進めます。
準備完了。次は環境構築へ
これで、今回の自作OSにおける「目的」「手段」、そして「制約」が出揃いました!
目的 :64bit環境で「電源ON→自作コード起動→何かが動く」を体験する
手段 :自作ブートローダ、QEMU、GAS/GCC、そして相棒のAI
制約 :高望みせず、小さく動かして積む
次回は、この前提に従って、実際に開発を回せる「環境構築」に入っていきたいと思います!
次回、開発環境の選択肢を教えてもらう。
公開中の全記事はこちら!
記事作成のお供に!お役立ちツール!
コピペするだけ!簡単「タイトル+URL一撃コピー(note特化型)」|へろん
コピペするだけ!簡単「AI記事から**を消す(note特化型)」|へろん
その他、こんなことやってみてます!
気に入ったらスキ、フォローよろしくお願いします!
note外から見にきてくださったかたも、もしよければハートマーク押して頂けたら励みになります😊
いいなと思ったら応援しよう!
いつも応援ありがとうございます!
快適な制作を進めるためのおやつ活動費に使わせて頂きます!