ハイパーバイザ自作中に遭遇したバグたち
先日の記事で書いた通り Writing Hypervisor in Zig に沿ってハイパーバイザを自作した。その際に遭遇したバグの数々についてどんなバグと出会ってどうやって調べて最終的にどう解決したのかをここに残しておく。だいたい自分のミスが原因なので誰の役にも立たないかもしれないけれど、こんなことがあったなあと後で自分で見返したい気持ちもあり。 ...
AMD-V の Nested Paging について
AMD-V/SVM における Nested Paging について、有効化方法や具体的な設定方法をメモ。なお、ここで記載する内容は AMD64 Architecture Programmer’s Manual, Volume 2 (以下、APM, Vol.2) の「15.25 Nested Paging」にすべて書いてあるので詳細はそちらを参照すること。 ...
Writing Hypervisor in Zig を完走した
Writing Hypervisor in Zig をやっているという記事を前に投稿したが、そこからも少しずつ開発を進めて先日ついに完走した。自作ハイパーバイザ上で Linux が最後まで起動した瞬間はもう感無量だった。 ...
AMD-V におけるゲストモードへの移行と復帰の流れ
AMD-V (SVM) を使ってゲスト側で HLT 命令をループして実行するだけのシンプルなコードを動かすことができたので、ゲストモードへの移行とホストモードへの復帰の流れをメモしておく。前回の記事で書いた AMD-V の有効化はしてある前提。なお、今回参照したドキュメントは AMD64 Architecture Programmer’s Manual Volume 2: System Programming の主に以下の項目。 ...
AMD-V/SVM を有効化する
AMD 向けのハイパーバイザを自作するにあたって、AMD の仮想化支援機能 AMD-V (あるいは SVM) を有効化する方法を調べたのでメモ。BIOS の設定で有効にするとかの話ではなく、そちらは有効になっている前提でハイパーバイザ実行時に有効化するお話。 ...