KVM(3)

명칭
kvm - 카네르메모리인타페스

프로그램 라이브러리
libkvm

해설
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) routine를 가져, 해당의 기술자에 있어서의 최신의 에러 상태에 대응한다 에러 메세지를 돌려줍니다 (인자하지 않습니다).

관련 항목
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)