ソースコードリーディング: KVM_CREATE_VM / KVM_CREATE_VCPU

Linux カーネルソースコードはちょいちょい読んできていたが、KVM 周辺は全くふれていなかったので、ソースを追いかけている

KVM_CREATE_VM

github.com

KVM_CREATE_VCPU

github.com

O'Reilly の『詳解 Linux カーネル』 のような 凶器 書籍が無いので、Web 上のあれこれや Linux カーネルのドキュメントをエントリポイントにして読んでいる。なお「解説」を目指したものではなく、メモ書きが飛散している程度で第三者の閲覧に耐えうる感じでは書けていない。ご勘弁を

感想

KVMAPI を把握するにあたって https://kernel.org/doc/Documentation/virtual/kvm/api.txt をとっかかりとした。 1章と2章を読んで ioctl(2) で /dev/kvm, struct kvm, struct kvm_vcpu をどう扱うかを整理すると、ソースを読む道筋を立てやすいと思う

アーキテクチャ依存のコードが強敵。syuu1228 さんの「ハイパーバイザの作り方」シリーズを眺めると Intel VT-x の全体像をつかみやすい

syuu1228.github.io

さらに Intel のマニュアル読んで更に詳細を追っている ( システム・プログラミング・ガイド の 23章あたり )

www.intel.co.jp


まだまだ序盤なので、せっせと読んでいく