osdev-jpでは、OS開発に有用な情報を収集し公開しています

View My GitHub Profile

OS開発・低レイヤの知識はまだまだ浅いです。OS開発ではあまり使いませんがC#が得意です。今はOS開発の為の準備を進めています。 Takym は「たかやま」と読みます。

目次

リンク

OSに関係のあるプロジェクト

名前 プロジェクト ページ 説明 備考/状態
OSDeveloper GitHub OSの開発ができるIDEになる予定でした。OSを自作したら別の形を模索して再開するかもしれません。 開発中断

日本の低レイヤコミュニティ・OS開発プロジェクト

少しまとめてみましたが、完全では無いです。

いずれ日本語に翻訳したい資料


自分用のメモ

低レイヤに関する自分用のメモです。Slack等で流れた会話を自分なりに要約しています。間違い等がありましたら、教えてください。

EDK II (vUDK2018) on Windows 10

Windows 10 (1709 ビルド 16299.1087) での EDK II (vUDK2018) の自分の環境では上手くできたインストール方法です。

  1. vUDK2018 からツールキットをダウンロードする。
  2. NASM をインストールする。(インストール先のパスは空白を含めると上手く読み込めなくなる)
    • 例: C:\nasm\
  3. 環境変数の NASM_PREFIX と PATH に NASM のインストール先のディレクトリを追加する。
  4. Microsoft Visual Studio 2017 の「C++ によるデスクトップ開発」をインストールする。
  5. Cygwin か MinGW をインストールする? (必要かどうかは試していません。)
  6. ダウンロードしておいたツールキットを適当なディレクトリに配置する。
    • ここでは便宜的に %WORKSPACE% 呼ぶ。
  7. %WORKSPACE%\BaseTools\Bin\Win32 内に edk2-BaseTools-win32 からダウンロードしてきたツールを入れる。
  8. edksetup.bat を実行。
  9. %WORKSPACE%\Conf\tools_def.txt から /WX を全て削除。
  10. %WORKSPACE%\Conf\target.txtTOOL_CHAIN_TAGVS2017 に変更する。
  11. build してテストする。 ***

巨大なコードの読み方

GDTのGビット

VGAのカラーパレット

Rust

HLT命令と特権

UEFIの注意点

プロテクトモード移行とパイプライン

スタック領域の場所とページング

UEFIアプリケーションの開発について

UEFIアプリケーションの開発をする時には必ずしも EDK を使う必要は無い。 最初は絶対に必要な物だと勘違いしていたが、 例えば EDK II に付属している Uefi.hUEFIの仕様に合わせてインターフェースを公開しているだけであって、仕様書を見ながら自ら定義する事もできる。 EDK II に入っているソースコードは UEFI の実装の一つである。 ***

Legacy BIOS に関する資料

Legacy BIOS に関する興味深い資料を見つけた。 https://www.glamenv-septzen.net/view/614