Il est donc nécessaire de vérifier les informations dans le SMBIOS (System Management BIOS)\cite{virt-c}. Pour ce faire, systemd-detect-virt lit le fichier \textit{/sys/firmware/dmi/entries/0-0/raw} s'il existe et vérifie l'état du bit 19.\\\\
Si ce bit est set, alors il y a de la virtualisation, mais un bit unset ne signifie pas que la machine est réelle.\cite{virt-c}.\\\\
Ensuite, le fichier \textit{/proc/cpuinfo} est lu afin de vérifier le \textit{vendor\_id}, si ce dernier est spécifié en tant que \textit{User mode Linux}, indiquant la virtualisation UML.\\\\
Afin de vérifier que Xen est utilisé, systemd-detect-virt cherche l'existance du fichier \textit{/proc/xen}, indiquant l'existance d'une VM Xen, tout en cherchant dans une fonction à part la VM privilégiée \textit{Dom0} en lisant \textit{/sys/hypervisor/properties/features}, et en utilisant un ET logique sur le 11ème bit afin de détecter la virtualisation avec Xen.
Afin de vérifier que Xen est utilisé, systemd-detect-virt cherche l'existance du fichier \textit{/proc/xen}, indiquant l'existance d'une VM Xen, tout en cherchant dans une fonction à part la VM privilégiée \textit{Dom0} en lisant \textit{/sys/hypervisor/properties/features}, et en utilisant un \textit{bit-wise AND}( \&) sur le 11ème bit afin de détecter la virtualisation avec Xen.\\\\
Une autre méthode de détection est de regarder ce qui s'appelle le CPUID.\\
Une table de string des différents CPUIDs est formé