palm
初めまして。
通称mikanOSの本を購入したので読みつつメモをしたいと思います。
OSに興味を持った理由は、友達にOS一緒に作ってみようとお声がけを頂いたからです。結構なボリュームなので小分けで投稿をしようと思います。
楽天ブックス
¥4,180 (2025/05/30 18:15時点 | 楽天市場調べ)
ポチップ
第0章
【更新日: 5月30日】
- アプリケーションに対するインターフェースとしての側面
- OSはアプリケーションの機能を利用するための窓口
- システムへのアクセスやメモリの利用
- 計算資源分配者としての側面
- OSはCPU、メモリ、ストレージなどの限れれたリソースを管理し、複数のアプリケーションやプロセスに効率的に分配
- マルチタスク、リソースの利用
- 人間に対するインターフェースとしての側面
- ハードウェア操作を意識せずファイルを開く、アプリケーションを起動
- 開発用パソコンでOSのソースコードを書き、コンパイルする
- プログラミング言語で記述し、コンピュータが理解できる形式に変換する。
- OS自作ではコンパイル作業が不可欠
- 生成された実行ファイルをUSBメモリに書き込む
- コンパイルによって出来上がったOSの実行イメージを、USBメモリに準備する。
- 試験用パソコンにUSBメモリを接続し、電源を入れ、実行する
- 作成したOSを実際にハードウェア上で動かしてテストする。
第1章
【更新日: 5月31日】
UEFI BIOSは、コンピュータの電源を入れた際に最初に実行されるファームウェアです。BOOTX64.EFIという名前のファイルとしてUSBメモリなどに保存されます。
EfiMain() の実装をするために、hello.cを作成しました。
- プログラムの本体は EfiMain という関数(main 関数のようなもの)
- 画面に “Hello, world!” と出力するために、SystemTable->ConOut->OutputString という関数を使用
- コンパイルとリンクには、Clangとlldを使用
- そしてhello.efi ファイルが作られる。
この手順でQEMUというエミュレータでhello.efi を実行すると、黒い画面に小さく”Hello, world!”と表示されました。
- PE (Portable Executable)
- UEFI起動はPE形式ファイル(hello.efi など)を読み込んで実行する。
- ELF (Executable and Linkable Format)
- COFF (Common Object File Format)
- PEファイルの作成過程で使用される中間的なオブジェクトファイル形式。
第2章
【更新日: 5月31日】
EDK IIは、UEFI (Unified Extensible Firmware Interface) アプリケーションを作ることができる開発キット。スクリプトを実行し、何をビルドするかのファイルとコンパイラを設定用のファイルの設定をしてビルドを行い、HogePkg/には各種パッケージが収められる。
ABOUT ME
22歳の学生です。
趣味は小説を読むことです。たまに技術の入門書も読みます。
テスト