Linux カーネルのソースコードはちょいちょい読んできていたが、KVM 周辺は全くふれていなかったので、ソースを追いかけている
KVM_CREATE_VM
KVM_CREATE_VCPU
O'Reilly の『詳解 Linux カーネル』 のような 凶器 書籍が無いので、Web 上のあれこれや Linux カーネルのドキュメントをエントリポイントにして読んでいる。なお「解説」を目指したものではなく、メモ書きが飛散している程度で第三者の閲覧に耐えうる感じでは書けていない。ご勘弁を
感想
KVM の API を把握するにあたって https://kernel.org/doc/Documentation/virtual/kvm/api.txt をとっかかりとした。 1章と2章を読んで ioctl(2) で /dev/kvm
, struct kvm, struct kvm_vcpu をどう扱うかを整理すると、ソースを読む道筋を立てやすいと思う
アーキテクチャ依存のコードが強敵。syuu1228 さんの「ハイパーバイザの作り方」シリーズを眺めると Intel VT-x の全体像をつかみやすい
さらに Intel のマニュアル読んで更に詳細を追っている ( システム・プログラミング・ガイド の 23章あたり )
まだまだ序盤なので、せっせと読んでいく