---
name: "ImVirt"
section: "3pm"
platform: "linux"
package: "imvirt"
version: "0.9.6-14"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ImVirt"
---

# ImVirt(3pm)

detects several virtualizations

## NAME

ImVirt - detects several virtualizations

## SYNOPSIS

```
    use ImVirt;
    print imv_get(IMV_PROB_DEFAULT, imv_detect()),"\n";
```

## DESCRIPTION

The `"ImVirt"` package tries to detect if it is run in a virtualization container. At least the following container should be detected:

- ARAnyM

  - KVM

  - lguest

  - LXC

  - OpenVZ

  - QEMU

  - UML

  - VirtualBox

  - Virtual PC/Server

  - VMware

  - Xen

  ## DETECTION HEURISTIC

The detection is based on a heuristic - you should not trust the result at all.

ImVirt probes for different well-known characteristics of different virtualization containers. Any characteristics found or not found are weighted by their significance.

The result of the heuristic is a weighted tree. The leaves are the (not) detected containers.

## FUNCTIONS

The following functions should be used to retrieve the detected virtualization containers:

- imv\_get($prob) Returns exactly one string describing the detected container. If the detected container has a smaller match probability than $prob the string 'Unknown' is returned.

  - **imv\_get\_all()** Returns a hash any positive detected containers as keys and their corresponding match probability as value.

  - **imv\_get\_pos\_results()** Returns a list of all possible results which might be returned by all detection modules. The list entries might be appended by some additional data like version numbers etc.
