Kennisbank › Virtualisatie › kvm: Virtualisation
virtualisatie starter 09 October 2026

kvm: Virtualisation

KVM, afkorting voor Kernel-based Virtual Machine, is een open source virtualisatiemodule die direct in de Linux-kernel is geïntegreerd. Het stelt Linux in

KVM, afkorting voor Kernel-based Virtual Machine, is een open source virtualisatiemodule die direct in de Linux-kernel is geïntegreerd. Het stelt Linux in staat om als een type-1 hypervisor te functioneren, wat betekent dat het virtuele machines direct op de fysieke hardware kan uitvoeren zonder een afzonderlijk besturingssysteem als tussenlaag te gebruiken. KVM maakt gebruik van hardwareondersteuning voor virtualisatie, zoals Intel’s VMX (Virtual Machine Extensions) en AMD’s SVM (Secure Virtual Machine), om efficiënte en veilige virtualisatie te bieden. De module werd ontwikkeld door Avi Kivity, die op dat moment werkzaam was bij het Israëlische technologiebedrijf Qumranet. De oorspronkelijke doelstelling was om een lichtgewicht, performante en integrale virtualisatieoplossing te creëren die volledig in de Linux-kernel past, in plaats van als een aparte laag buiten de kernel te opereren.

De eerste officiële aankondiging van KVM vond plaats op 19 oktober 2006, toen Avi Kivity de module introduceerde op de Linux-kernel mailinglist. Dit is een belangrijk kanaal voor ontwikkelaars die bijdragen aan de Linux-kernel, en het gebruik ervan benadrukte dat KVM bedoeld was als een integraal onderdeel van het Linux-ecosysteem. De presentatie op deze lijst was geen demonstratie van een experimenteel project, maar een serieuze inzending van een werkende patchreeks die andere kernelpersoneelsleden kon beoordelen en integreren. De ontwikkeling van KVM was vanaf het begin gericht op gebruik van bestaande hardwarevirtualisatiefuncties, wat een cruciaal onderscheid was ten opzichte van oudere virtualisatietechnologieën die vaak op software-emulatie moesten vertrouwen, wat veel rekenkracht kostte.

In december 2006 werd de KVM-patchreeks officieel opgenomen in de upstream Linux-kernel. Dit betekent dat de code niet langer een aparte, externe module was, maar onderdeel werd van de officiële Linux-kernelbroncode. Deze integratie was een belangrijke mijlpaal, omdat het KVM toegankelijk maakte voor alle Linux-distributies die de upstream-kernel volgen. Het garandeerde ook dat KVM zou worden onderhouden, beveiligd en geüpdatet in lijn met de rest van de kernel. De integratie in de kernel was geen triviale aangelegenheid: het vereiste dat de code voldoende stabiel, veilig en goed gedocumenteerd was om door de strenge maintainers van de Linux-kernel te worden geaccepteerd.

Op 5 februari 2007 werd Linux-versie 2.6.20 uitgebracht, en daarmee werd KVM voor het eerst officieel beschikbaar in een gereleaseerde kernelversie. Vanaf dat moment konden gebruikers die deze kernel of een nieuwere versie gebruikten, KVM activeren door de juiste kernelmodule te laden. De functionaliteit was vanaf het begin beperkt tot x86-architecturen, maar de basis was gelegd voor verdere uitbreiding. KVM zelf biedt de kernvirtualisatiefuncties, zoals het creëren van virtuele CPU’s (vCPU’s) en het beheren van geheugentoegang, maar maakt voor de emulatie van hardwareapparatuur zoals netwerkkaarten, schijven en grafische interfaces gebruik van QEMU. QEMU fungeert in dit geval als gebruikersruimtecomplement van KVM: KVM zorgt voor de snelle, hardware-geaccelereerde virtualisatie, terwijl QEMU de virtuele hardware emuleert.

Een technisch kenmerk van KVM is het gebruik van een ioctl-gebaseerde interface. Ioctl staat voor "input/output control" en is een systeemaanroep in Unix-achtige besturingssystemen die gebruikt wordt om apparaat-specifieke operaties uit te voeren. Via deze interface kunnen gebruikersruimteprogramma’s zoals QEMU instructies geven aan de KVM-module in de kernel om virtuele machines te starten, te pauzeren, te beheren en te beëindigen. Deze aanpak maakt KVM flexibel en efficiënt, omdat het de complexiteit van virtualisatie in de kernel houdt, waar deze het dichtst bij de hardware is, terwijl de configuratie en controle in de gebruikersruimte plaatsvinden.

Oorspronkelijk ontwikkeld voor x86-processors, is KVM later uitgebreid naar meerdere processorarchitecturen. Naast x86 ondersteunt KVM tegenwoordig ook IA-64 (Itanium), PowerPC, s390 (gebruikt in IBM-mainframes) en ARM. Deze brede architectuurondersteuning maakt KVM geschikt voor gebruik in diverse omgevingen, van desktops en servers tot embedded systemen en supercomputers. De portabiliteit van KVM is een belangrijke reden waarom het wereldwijd wordt ingezet in datacenters en cloudinfrastructuren.

In september 2008 kondigde Red Hat aan het bedrijf Qumranet over te nemen. Deze overname was een duidelijk signaal dat Red Hat grote ambities had op het gebied van virtualisatie. Qumranet was niet alleen de oorsprong van KVM, maar had ook eigen virtualisatieproducten ontwikkeld rond de technologie. Door de overname kon Red Hat de ontwikkeling van KVM sterk ondersteunen en integreren in zijn eigen producten, met name Red Hat Enterprise Linux (RHEL). In RHEL 5.4, een versie die verscheen na de overname, bood Red Hat nog ondersteuning voor zowel KVM als Xen, een andere populaire open source hypervisor. Dit weerspiegelde een overgangsfase waarin klanten werden overgehaald om te migreren van Xen naar KVM.

Vanaf Red Hat Enterprise Linux 6.0 koos Red Hat echter expliciet voor KVM als de enige ondersteunde hypervisor. Deze strategische keuze was gebaseerd op de integratie van KVM in de Linux-kernel, de betere prestaties, de actieve ontwikkeling en de toekomstbestendigheid van de technologie. Door KVM als kerncomponent van zijn virtualisatiestrategie te benadrukken, zette Red Hat de toon voor de bredere Linux- en open sourcegemeenschap. Andere grote spelers, zoals Canonical (Ubuntu), SUSE en verschillende cloudaanbieders, volgden het voorbeeld en bouwden hun virtualisatieoplossingen steeds meer rond KVM.

KVM is geen afzonderlijke applicatie die je start, maar een kernelmodule die wordt geladen wanneer een virtuele machine wordt opgestart. Het wordt vaak gebruikt in combinatie met managementtools zoals libvirt, die een hogere laag abstractie biedt voor het beheren van virtuele machines. Andere tools zoals virt-manager, virsh en oVirt bouwen hierop voort om grafische of opdrachtregelinterfaces te bieden voor het beheren van KVM-gebaseerde virtualisatie. Populaire Linux-distributies bieden vaak pakketten aan die deze tools samen met KVM en QEMU installeren, waardoor het instellen van een virtuele omgeving relatief eenvoudig wordt.

Hoewel KVM technisch een krachtige en geavanceerde oplossing is, zijn er ook gebruikersvriendelijke programma’s ontwikkeld die KVM en QEMU abstractie bieden voor eindgebruikers. Een voorbeeld is Boxes, een virtuele machine-manager ontworpen voor desktopgebruik. Het stelt gebruikers in staat om besturingssystemen zoals Fedora, Ubuntu of Windows eenvoudig te downloaden en in een virtuele machine te installeren, zonder dat ze kennis hoeven te hebben van de onderliggende KVM- of QEMU-configuraties. Een ander hulpmiddel is Snowglobe, een virtualisatie-viewer die communiceert met draaiende QEMU-instanties via DBus en ondersteuning biedt voor toetsenbord, muis en multi-touch. Deze tools tonen aan dat KVM niet alleen bedoeld is voor systeembeheerders en datacenters, maar ook toegankelijk kan zijn voor gewone gebruikers.

KVM is sinds zijn integratie in 2007 uitgegroeid tot een van de meest gebruikte virtualisatietechnologieën in de wereld. Het vormt de basis van talloze cloudplatforms, waaronder OpenStack, waar KVM vaak de standaard hypervisor is. De combinatie van open source karakter, sterke gemeenschapsontwikkeling, uitstekende prestaties en brede hardwareondersteuning maakt KVM tot een duurzame keuze voor virtualisatie. In tegenstelling tot gesloten hypervisors zoals VMware ESXi of Microsoft Hyper-V, is KVM volledig vrij en transparant, wat het aantrekkelijk maakt voor organisaties die controle willen over hun infrastructuur en afhankelijkheden willen vermijden.

Samenvattend is KVM meer dan alleen een virtualisatietool: het is een bewijs van de kracht van de Linux-kernel als een flexibele en uitbreidbare basis voor complexe systemen. Door virtualisatie rechtstreeks in de kernel te integreren, heeft KVM de grenzen tussen besturingssysteem en hypervisor vervagen, en heeft het de manier waarop servers en clouds worden beheerd fundamenteel veranderd. De ontwikkeling ervan, van een experimenteel project bij Qumranet tot een kerncomponent van moderne IT-infrastructuur, illustreert hoe open source-innovatie op grote schaal kan worden geschaald.

← Terug naar kennisbank
← Terug naar kennisbank