Kernel-Log: Natives KVM-Tool, lauter neue Kernel

Unzufriedenheit mit dem Qemu-Code hat zur Entwicklung eines einfachen Emulations-Werkzeugs für KVM geführt. Die neusten Treiber für Intel-Grafikchips verbessern die Unterstützung für die Video-Einheiten aktueller Prozessoren; eine Fülle neuer Longterm- und Stable-Kernel beseitigt derweil Fehler und Sicherheitslücken.

In Pocket speichern vorlesen Druckansicht 11 Kommentare lesen
Lesezeit: 11 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Bereits Ende März hat Pekka Enberg auf der LKML die Entwicklung eines nativen KVM-Tools bekannt gegeben. Es emuliert einige der Hardware-Komponenten, auf die Gastsysteme im Betrieb zugreifen; heutzutage erledigt diese Aufgabe bei der Virtualisierung mit KVM meist ein im KVM-Projekt entstandener und gewarteter QEMU-Ableger (qemu-kvm). Der KVM-Code im Kernel arbeitet eng mit diesem Emulationscode zusammen und sorgt für die Zuteilung von Prozessorressourcen; einige wenige Hardware-Komponenten wie den Interrupt-Controller emuliert der KVM-Kernel-Code allerdings selbst, weil das die Performance erheblich steigert.

Enberg schreibt in seiner Mail, dass er eine leichtgewichtige und saubere Emulationslösung für KVM aufsetzen wolle, die Linux-Gäste booten kann. Es sei nur ein Hobby und würde nicht so groß und professionell werden wie QEMU ("[...] just a hobby, won't be big and professional like QEMU [...]") – damit spielt er auf die Worte an, die Linus Torvalds bei der ersten öffentlichen Mail zur Arbeit an Linux gewählt hat.

Die jetzige Version des schlicht "kvm" genannten Tools beschreibt Enberg als ein großartiges Werkzeug, um einige Dinge rund um Virtualisierung zu lernen. Es sei lediglich fünftausend Zeilen lang und könne ein Linux-Image starten. Dem "development prototype" würden aber noch einige essenzielle Dinge fehlen; darunter Netzwerk-, Grafik- und SMP-Unterstützung – zum Interagieren mit dem erwähnten Linux-Image dient daher eine emulierte serielle Schnittstelle. Durch die mit einem Linux-Kernel vergleichsweise leicht umschiffbaren Einschränkungen eignet sich das Tool bislang nicht zum Start von Windows oder anderen Betriebssystemen. Umstritten ist zudem, in wie weit das Mini-Tool vielleicht zum Debuggen interessanter als Qemu ist.

In der daraufhin auf der LKML entstandenen Diskussion zeigten sich einige Entwickler überaus interessiert an dem Werkzeug und spekulierten darüber, ob eine Weiterentwicklung langfristig Qemu ersetzen könnte. Mit dessen Code sind einige der Kernel- und KVM-Hacker eher unglücklich, da er schon viele Jahre alt ist und an einigen Stellen als recht unsauber gilt.

Es ist derzeit noch ungewiss, ob die Unzufriedenheit mit dem Qemu-Code genug Entwickler motiviert, um langfristig alle für den performanten Alltagseinsatz von KVM wichtigen Features im neuen Tool einzubauen. Trotz der schon lange zu hörenden Unzufriedenheit mit dem Qemu-Code arbeiten zahlreiche KVM-Entwickler schon seit langem daran, alle für den ordentlichen KVM-Betrieb wichtigen Funktionen aus der KVM-Variante von Qemu in das offizielle Qemu einzubauen, um die Entwicklung der KVM-Variante irgendwann einzustellen und die Wartung zu vereinfachen (1, 2). Offensichtlich versprechen sie sich von diesem Weg derzeit mehr, als den Qemu-Code unter Eigenregie weiterzuentwickeln und dabei aufzuräumen. Darüber war schon vor einem Jahr diskutiert worden; die damals weitgehend ergebnislose LKML-Diskussion ist Enberg zufolge eine Motivation für das neue Tool.

Die Tuxera-Entwickler haben NTFS-3G und ntfsprogs unter dem Namen ntfs-3g-ntfsprogs zusammengeführt – das soll die Verwaltung des Codes erleichtern, damit sich die Programmierer bei der Weiterentwicklung auf die Arbeit an Verbesserungen konzentrieren können. Ntfsprogs ist das ältere der beiden Projekte und enthielt Programme wie mkfs.ntfs, ntfsfix oder ntfsresize, mit denen sich NTFS-Dateisysteme erstellen, korrigieren oder in der Größe verändern lassen.

Diese Programme wurden ursprünglich parallel zum NTFS-Code entwickelt, der dem Linux-Kernel beiliegt. Der NTFS-Kernel-Code findet dieser Tage aber nur noch wenig Beachtung, da der auf Fuse aufsetzende Treiber des Projekts NTFS-3G viel mehr Funktionen bietet – darunter vollwertige Unterstützung zum Schreiben auf NTFS-Dateisystemen. Die Projekte haben aber schon mehrfach Code ausgetauscht, sodass dieser doppelt vorlag; das ist derzeit auch beim zusammengefügten Code noch so, dürfte sich mit der Zeit aber ändern.