kvm インタフェースは最初に SunOS で取込まれました。
このインタフェースを使用するかなりの数のプログラムが開発されましたので、
後方互換性を保つことが非常に望まれています。
ほとんどの点で、Sun kvm インタフェースは一貫しており、クリーンです。
従って、インタフェースのジェネリックな部分
(すなわち
kvm_open(),
kvm_close(),
kvm_read(),
kvm_write(),
kvm_nlist())
は
BSD
インタフェースに組み込まれてしまっています。
実際、多くの kvm アプリケーション (たとえばデバッガや統計的モニタ)
はインタフェースのこのサブセットのみを使用します。
プロセスインタフェースは残されませんでした。
これは移植性の問題ではありません。
プロセスを操作するどのようなコードも、本質的にマシン依存だからです。
最後に、Sun kvm エラー報告セマンティクスはうまく定義されていません。
ライブラリは、stderr に自動的にエラーを印字する、
あるいはエラーメッセージをまったく印字しないのどちらかに設定できます。
後者の場合には、エラーの性質は決定できません。
この問題を克服するために、
BSD
インタフェースは
kvm_geterr(3)
ルーチンを持ち、
該当の記述子における最新のエラー状態に対応する
エラーメッセージを返します (印字しません)。