가상화를 이해하는 한 가지로 KVM의 지원을 확장하고 새로운 명령어를 정의하려고합니다. 명령은 이전에 사용되지 않은 opcode를 사용합니다. ref-ref.x86asm.net/coder32.html사용하지 않는 x86 op 코드에서 Linux KVM에서 새 명령어를 구현하는 방법
이제 'CPUID'(VM-exit가 발생 함)와 같은 명령어를 추가하고 새로운 명령어 인 'NEWCPUID'를 추가하려고합니다. 권한이있는 'CPUID'와 유사하며 다음과 같이 트랩됩니다. 하이퍼 바이저이지만, 구현이 다를 수 있습니다.
일부 온라인 리소스를 살펴본 후에 새로운 시스템 호출을 정의하는 방법을 이해할 수 있었지만 Linux 소스 코드의 모든 파일이 NEWCPUID 코드를 추가해야하는지 잘 모르겠습니다. '찾기'명령에만 의존하는 것보다 나은 방법이 있습니까?
나는 도전 과제를 직면하고있다 : 1. 리눅스 소스 코드의 어느 부분에서 코드를 추가해야합니까? 2.이 새로운 명령어를 이전에 사용하지 않은 opcode에 어떻게 매핑 할 수 있는지 잘 모르십니까?
나는이 분야에 대해 완전히 새롭기 때문에 이것을 배우고 자 할 때, 누군가이 과제에 대해 어떻게 설명 할 수 있는지 간단히 설명 할 수 있습니까? 이를 달성하기 위해서는 올바른 방향이 필요합니다. 프로세스를 설명하는 참조/자습서/블로그가 있다면 큰 도움이 될 것입니다!
AFAIK, AFAIK, KVM은 실제로 어떤 에뮬레이션도하지 않습니다. 어떻게 새로운 명령을 추가 할 것을 제안합니까? 잘못된 opcode를 사용하여 CPU 예외를 트리거하려고합니까? – tangrs