blog

「ゼロからのOS自作入門第4版」を読む

palm

初めまして。
通称mikanOSの本を購入したので読みつつメモをしたいと思います。
OSに興味を持った理由は、友達にOS一緒に作ってみようとお声がけを頂いたからです。結構なボリュームなので小分けで投稿をしようと思います。

楽天ブックス
¥4,180 (2025/05/30 18:15時点 | 楽天市場調べ)
\楽天ポイント4倍セール!/
楽天市場

第0章

【更新日: 5月30日】

OSが持つ3つの側面
  1. アプリケーションに対するインターフェースとしての側面
    • OSはアプリケーションの機能を利用するための窓口
    • システムへのアクセスやメモリの利用
  2. 計算資源分配者としての側面
    • OSはCPU、メモリ、ストレージなどの限れれたリソースを管理し、複数のアプリケーションやプロセスに効率的に分配
    • マルチタスク、リソースの利用
  3. 人間に対するインターフェースとしての側面
    • ハードウェア操作を意識せずファイルを開く、アプリケーションを起動
具体的な方法
  1. 開発用パソコンでOSのソースコードを書き、コンパイルする
    • プログラミング言語で記述し、コンピュータが理解できる形式に変換する。
    • OS自作ではコンパイル作業が不可欠
  2. 生成された実行ファイルをUSBメモリに書き込む
    • コンパイルによって出来上がったOSの実行イメージを、USBメモリに準備する。
  3. 試験用パソコンにUSBメモリを接続し、電源を入れ、実行する
    • 作成したOSを実際にハードウェア上で動かしてテストする。

第1章

【更新日: 5月31日】

ファームウェアの役割

UEFI BIOSは、コンピュータの電源を入れた際に最初に実行されるファームウェアです。BOOTX64.EFIという名前のファイルとしてUSBメモリなどに保存されます。

プログラミング言語でテキスト出力

EfiMain() の実装をするために、hello.cを作成しました。

  • プログラムの本体は EfiMain という関数(main 関数のようなもの)
  • 画面に “Hello, world!” と出力するために、SystemTable->ConOut->OutputString という関数を使用
  • コンパイルとリンクには、Clanglldを使用
  • そしてhello.efi ファイルが作られる。

この手順でQEMUというエミュレータでhello.efi を実行すると、黒い画面に小さく”Hello, world!”と表示されました。

PEとCOFFとELF
  1. PE (Portable Executable)
    • UEFI起動はPE形式ファイル(hello.efi など)を読み込んで実行する。
  2. ELF (Executable and Linkable Format)
    • Linuxで標準的に使用される実行ファイル形式。
  3. COFF (Common Object File Format)
    • PEファイルの作成過程で使用される中間的なオブジェクトファイル形式。

第2章

【更新日: 5月31日】

EDK II とは何か

EDK IIは、UEFI (Unified Extensible Firmware Interface) アプリケーションを作ることができる開発キット。スクリプトを実行し、何をビルドするかのファイルとコンパイラを設定用のファイルの設定をしてビルドを行い、HogePkg/には各種パッケージが収められる。

スポンサーリンク

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

  1. 匿名

    テスト

ABOUT ME
PALM
PALM
東京通信大学 42Tokyo
22歳の学生です。 趣味は小説を読むことです。たまに技術の入門書も読みます。
記事URLをコピーしました