スポンサーリンク

KVM(3) FreeBSD ライブラリ関数マニュアル KVM(3)

名称

kvm − カーネルメモリインタフェース

ライブラリ

カーネルデータアクセスライブラリ (libkvm, −lkvm)

解説

kvm(3) ライブラリは、作動中のシステムとクラッシュダンプを含めて、カーネル 仮想メモリイメージをアクセスするための一様なインタフェースを提供します。 作動中のシステムへのアクセスは /dev/mem を経由して行われます。他方、ク ラッシュダンプは savecore(8) が生成するコアファイルを経由して検証できま す。インタフェースは同じように動作します。メモリは読み取りと書き込みがで き、カーネルシンボルアドレスは効率的に調べることができ、ユーザプロセスの 情報が収集できます。

kvm_open() は、すべての後続する呼び出しで必要となる記述子を得るために、最 初に呼び出されます。

互換性

kvm インタフェースは最初に SunOS で取込まれました。このインタフェースを使 用するかなりの数のプログラムが開発されましたので、後方互換性を保つことが 非常に望まれています。ほとんどの点で、Sun kvm インタフェースは一貫してお り、クリーンです。従って、インタフェースのジェネリックな部分 (すなわち kvm_open(), kvm_close(), kvm_read(), kvm_write(), kvm_nlist()) は BSD イ ンタフェースに組み込まれてしまっています。実際、多くの kvm アプリケーショ ン (たとえばデバッガや統計的モニタ) はインタフェースのこのサブセットのみ を使用します。プロセスインタフェースは残されませんでした。これは移植性の 問題ではありません。プロセスを操作するどのようなコードも、本質的にマシン 依存だからです。

最後に、Sun kvm エラー報告セマンティクスはうまく定義されていません。ライ ブラリは、stderr に自動的にエラーを印字する、あるいはエラーメッセージを まったく印字しないのどちらかに設定できます。後者の場合には、エラーの性質 は決定できません。この問題を克服するために、 BSD インタフェースは kvm_geterr(3) ルーチンを持ち、該当の記述子における最新のエラー状態に対応 するエラーメッセージを返します (印字しません)。

関連項目

kvm_close(3), kvm_getargv(3), kvm_getenvv(3), kvm_geterr(3,) kvm_getfiles(3), kvm_getloadavg(3), kvm_getprocs(3), kvm_getswapinfo(3), kvm_nlist(3), kvm_open(3), kvm_openfiles(3), kvm_read(3), kvm_write(3)

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク