2013-02-21 1 views
0

가상 시스템 (VMware ESX/ESXi, Xen, Oracle VirtualBox, Microsoft Virtual Server 등)에서 실행 중인지 여부를 감지하려면 Linux 응용 프로그램이 필요합니다.이 탐지 결과에 따라 일부 소프트웨어 라이센스 규칙이 필요합니다 강제.Linux에서 Virtual Machine 내에서 실행을 감지합니까?

라이센스를위한 상용 소프트웨어 라이브러리/프레임 워크가 있으며 그러한 탐지를 수행 할 수 있다는 점을 알고 있지만 몇 가지 이유로 인해 자체적으로 검색해야합니다.

이러한 검색을 수행하는 방법과 수단은 무엇입니까?

+0

하이퍼 바이저의 각 유형을 검색하려면 서로 다른 검색 방법이 필요합니다. 이러한 탐지 방법은 일반적으로 구현 세부 정보를 활용하므로 향후 유지 관리가 필요할 수 있으며 모든 하이퍼 바이저의 모든 새 릴리스에서 테스트 할 수 있습니다. 개인적으로, 나는 내 자신의 구현을 시도하고 롤백하지 않을 것이다. –

+0

...하지만 [VMWare 및 Virtual PC] (http://www.codeproject.com/Articles/9823/Detect-if-your-program-is-running-inside-a-Virtual)에 대한 좋은 시작입니다. 이 기사는 [좀 더 일반적이고 이론에 기초한] (http://weblogs.asp.net/jgalloway/archive/2006/10/27/Can-Operating-Systems-tell-if-they2700_re-running-in- a-Virtual-Machine_3F00_.aspx)는 유용한 배경 정보를 제공합니다. –

+0

@ RB에 감사드립니다. 우리가 라이센스에 대해 COTS 옵션을 조사하지 않은 것은 아닙니다. 우리는했지만 소스 코드 판매 거래를 할 수는 없었습니다. 제품이 규정 준수 요구 사항을 일부 충족 시키려면 소스 코드에 액세스해야합니다. 물론, 그것은 단지 하나이지만, 우리 자신을 굴려야하는 주요 이유입니다. – icarus74

답변

1

현대적인 하드웨어 가속 (VT-x) 하이퍼 바이저 (VMware, VirtualBox, KVM/QEmu)의 경우 모두 "하이퍼 바이저"CPUID 비트를 설정합니다. 이는 Linux에서 읽기가 매우 쉽습니다. /proc/cpuinfo 파일을 열고 플래그 행에서 "하이퍼 바이저"를 찾으십시오.

100 % 아니지만. 소프트웨어 기반 하이퍼 바이저 (Bochs 등)는이를 설정하지 않고 비트가 적용되지 않으므로 비트를 설정하지 않도록 QEmu를 수정할 수 있습니다. 그러나, 그것은 당신의 용도에 충분할 수도 있습니다.

+1

내 지식으로 VirtualBox는 하이퍼 바이저 비트를 설정하지 않습니다. 다음은 Oracle 오피스에 대한 참조입니다. https://www.virtualbox.org/ticket/12731 – Steinfeld