2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux起動を「理解する」ための自作OS ― UmuOS 0.1.1 設計と実装

2
Posted at

はじめに

お疲れ様です。
10日間のお正月休みももうすぐ終わりですねーー。
私は、自作OSである、UmuOS0.1.1を必ず完成させようとお正月休みを楽しみにしていました!
上手く、事が運び、一旦完成で、今後のユーザーランド部分の開発や、UmuOS0.1.2とか機能拡張のベースOSとして
利用する予定です。
AIの Copilot(通称:ぴこたん)と GitHub Copilot(通称:ぴこぴん)と共に 相談、実装・トライ&エラー・レビューを
繰り返しながらなんとか実装できました。

以前から自作OSには興味があり、色々書籍を参考にしましたが、中々高度で、私には、スッと頭に入ってこなかったです。
おそらく、挫折した方もいらっしゃると思います。
今回のUmuOS0.1.1は、すでに完成した記事を投稿させて頂きましたが、説明書?的なものも必要かと思い、教科書的な?感じで
作りましたので、是非参考になればなーーーと思いました。
試行錯誤の最終として、失敗して分かったことや、ハマる処理とか、記載しましたので、参考にどうぞ!

※ 本記事は「Linuxを普段使っているが、起動の中身までは理解していなかった方」や
「自作OSに興味はあるが、どこから手を付けてよいか分からなかった方」を主な対象としています。


開発体制

本プロジェクトは、主に次の「1人 + AIツール」で進めました。

  • 私(リーダー):設計・実装・検証・レビュー
  • Copilot(通称:ぴこたん):全体の相談、進め方の整理、文章の構成検討
  • GitHub Copilot(通称:ぴこぴん):技術相談、実装のアドバイス、レビュー観点の補助

この体制で「設計 → 実装 → レビュー → 思考整理」を何度も往復しながら進めました。
<重要> AIに手伝ってもらったが、設計・実装・レビューは、本当にトライ&エラーの連続です。何度もハマりました

また、今回 AI と共同で開発を進めて強く感じたのは、
「設計段階でのレビューが最も重要である」 という点です。
実装フェーズで AI に助けてもらうことは多々ありましたが、
設計が曖昧なまま進めると、後から必ず手戻りが発生しました。
設計フェーズ(基本設計、詳細設計)は、人の手でレビューしないと、かなり厳しい印象でした!
逆に、設計を言語化し、前提条件や非目的を明確にした上でレビューを行うことで、
AI とのやり取りも格段にスムーズになりました。


リポジトリ(git clone すれば全部あります)


研究開発環境

開発端末

  • MiniPC (MEM 32GB)
  • CPU: 12th Gen Intel(R) Core(TM) i9-12900HK (2.50GHz)
  • OS: Windows 11 Pro (25H2)
  • エディタ: Visual Studio Code 1.107.1

開発形態

  • 上記、Windows 11 Pro 25H2マシンから自宅サーバー(RocyLinux9.7)上に仮想マシン(Ubuntu24.04LTS)にSSH接続して開発
  • ビルド、ISO作成、disk.img 等、且つ QEMU 実行環境は、すべてUbuntu24.04LTSで完結
  • 自宅サーバー:富士通 PRIMERGY(Xeon / MEM 32GB)仮想化基盤:QEMU-KVM

ドキュメント成果物

最後に

普段LinuxやWindowsを使っていると、あまり気にしていなかった起動のメカニズムが、分かりました。
C言語も重要ですが、shellの理解も重要と思いました。
今後は、Coreutilsのコマンド解析をしながら、UmuOSに環境依存した、汎用的でないコマンドの本質を探りながら
実装していくことと、OSそのものの理解を深め、機能を追加し0.1.1、0.1.2とバージョンを上げていければ
楽しいかなーーと思いました。
本記事やドキュメントが、「OSはブラックボックスではない」と感じるきっかけになれば幸いです。


2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?