zurück zum Artikel

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

| Thorsten Leemhuis

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.

Bereits Ende März hat Pekka Enberg auf der LKML [1] die Entwicklung eines nativen KVM-Tools bekannt gegeben [2]. 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 [3] ist zudem, in wie weit das Mini-Tool vielleicht zum Debuggen interessanter als Qemu ist.

In der daraufhin auf der LKML entstandenen Diskussion [4] 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 [5].

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 [6], 2 [7]). 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 [8]; die damals weitgehend ergebnislose LKML-Diskussion [9] 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 [10] – 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 [11] 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 [12] aufsetzende Treiber des Projekts NTFS-3G [13] 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.

Die Entwickler der Grafiktreiber für die in vielen Chipsätzen und Prozessoren von Intel integrierten Grafikchips haben das als Intel 2011Q1 [14] bezeichnete Treiberpaket freigegeben [15]. Es umfasst alle Komponenten, die für eine ordentliche Linux-Unterstützung der Intel-Grafikchips nötig sind. Dazu gehört ein Kernel 2.6.38 mit einigen Patches, Mesa 7.10.2, Libdrm 2.4.25 [16] und der X.org-Treiber 2.15.0 [17]; die neuen Versionen der beiden letztgenannten Bausteine des Linux-Grafik-Stacks hatte ein Intel-Programmierer erst kurz zuvor freigegeben, der bei der Entwicklung dieser Komponenten involviert ist. Zum Paket gehört zudem die libva [18] – eine Implementation des Video Acceleration API (VAAPI [19]), über das Anwendungen einige Aufgaben zum De- oder Encodieren von Video-Daten an den Grafikchip übertragen können.

Zwei der wichtigsten Änderungen finden sich auch genau in diesem Bereich, denn mit dem Treiber-Paket lässt sich das Decodieren von VC1-Videos und das Encodieren mit H.264 an den Grafikkern auslagern, der in den auch als Sandy Bridge bekannten Prozessoren steckt – die hat Intel Anfang des Jahres [20] unter den Familiennamen Core i3-2000, Core i5-2000 und Core i7-2000 eingeführt. Zudem unterstützen die Treiber die GPU-Stromspartechniken dieser Prozessoren besser und sollen mit aktuellen Entwicklerversionen von Mesa bessere Performance erzielen.

Die neue Version von Libdrm bringt zudem ein auch für andere Grafiktreiber interessantes Framebuffer-Interface. Das soll das Design von Plymouth [21] vereinfachen, das sich bei aktuellen Version von Distributionen wie Fedora oder Red Hat Enterprise Linux um die Animation beim Systemstart kümmert.

Paul Gortmaker hat zum Wochenstart den Longterm-Kernel 2.6.34.9 freigegeben [22]. Anders als Greg Kroah-Hartman, der die Longterm-Kernel 2.6.32 und 2.6.33 sowie die Stable-Kernel betreut, weist er darauf hin, dass die neue 34er-Version Korrekturen für Sicherheitslücken enthält. Einige von ihnen haben die Kernel-Hacker in anderen Serien allerdings schon lange behoben – darunter etwa die im Dezember [23] gestopfte Lücke [24] im Econet-Protokoll.

Bereits letzte Woche hat Kroah-Hartman den Stable-Kernel 2.6.38.3 [25] veröffentlicht, der wie alle Stable- und Longterm-Kernel Fehlerkorrekturen und kleine, ungefährliche Änderungen bringt. Manchmal schleicht sich aber doch ein Fehler ein. So etwa bei den ebenfalls erst kürzlich erschienenen Versionen 2.6.32.37 [26] und 2.6.33.10 [27]; das Problem wurde aber schnell bemerkt und mit 2.6.32.38 [28] und 2.6.33.11 [29] behoben.

Kurz nach dem letzten regulären Kernel-Log [30] hatte auch Andi Kleen eine neue Version der von ihm gepflegten Longterm-Serie 2.6.35 freigegeben [31]. Wie Paul Gortmaker wies er darauf hin, dass diese Version Sicherheitslücken beseitigt.

Nach dem im ersten Teil [32] der Mini-Serie "Was 2.6.39 bringt" erwähnten RC3 folgte in der Nacht von Montag auf Dienstag [33] die vierte Vorabversion von Linux 2.6.39. Dabei merkte Torvalds an, es habe zwischen dem RC3 und RC4 mehr Änderungen gegeben als beim Zwischenschritt davor; allerdings hatten der RC2 und der RC3 auch ungewöhnlich wenig Änderungen [34] enthalten.

Kernel

Unterstützung für Grafikhardware

Kernel-Umland ("Plumbing layer"), Userland-Treiber, Entwicklertools, ...

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs [57] auf heise open [58] und in c't [59]. Neue Ausgaben des Kernel-Logs [60] werden auf den Identi.ca [61]- und Twitter [62]-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H [63]" erscheinenden Übersetzungen auf den Identi.ca [64]- und Twitter [65]-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca [66] und Twitter [67] als "@kernellogauthor". (thl [68]).

(thl [69])


URL dieses Artikels:
https://www.heise.de/-1229562

Links in diesem Artikel:
[1] http://www.heise.de/glossar/entry/Linux-Kernel-Mailing-List-397973.html
[2] http://thread.gmane.org/gmane.linux.kernel/1121307
[3] http://thread.gmane.org/gmane.linux.kernel/1121307/focus%3D1124986
[4] http://thread.gmane.org/gmane.linux.kernel/1121307
[5] http://thread.gmane.org/gmane.linux.kernel/1121307/focus%3D1122087
[6] http://thread.gmane.org/gmane.comp.emulators.kvm.devel/67173
[7] http://thread.gmane.org/gmane.comp.emulators.kvm.devel/68899
[8] http://lwn.net/Articles/379869/
[9] http://thread.gmane.org/gmane.linux.kernel/962051/focus%3D962620
[10] http://www.tuxera.com/open-source/release-ntfs-3g-ntfsprogs-2011-4-12/
[11] http://linux.die.net/man/8/ntfsprogs
[12] http://fuse.sourceforge.net/
[13] http://www.tuxera.com/community/ntfs-3g-download/
[14] http://intellinuxgraphics.org/2011Q1.html
[15] http://thread.gmane.org/gmane.comp.freedesktop.xorg.drivers.intel/3792
[16] http://thread.gmane.org/gmane.comp.freedesktop.xorg.drivers.intel/3617
[17] http://thread.gmane.org/gmane.comp.freedesktop.xorg.drivers.intel/3765
[18] http://freedesktop.org/wiki/Software/vaapi
[19] http://freedesktop.org/wiki/Software/vaapi
[20] https://www.heise.de/news/Startschuss-fuer-Intels-Sandy-Bridge-Prozessoren-1162250.html
[21] http://www.freedesktop.org/wiki/Software/Plymouth
[22] http://thread.gmane.org/gmane.linux.kernel.stable/9103
[23] https://www.heise.de/hintergrund/Kernel-Log-Studie-liefert-Hintergruende-zur-Entwicklung-des-Linux-Kernels-1145864.html
[24] https://www.heise.de/news/OOPS-Root-Rechte-auf-Linux-1149512.html
[25] http://thread.gmane.org/gmane.linux.kernel/1126873
[26] http://thread.gmane.org/gmane.linux.kernel/1127202
[27] http://thread.gmane.org/gmane.linux.kernel/1127203
[28] http://thread.gmane.org/gmane.linux.kernel/1127321
[29] http://thread.gmane.org/gmane.linux.kernel/1127320
[30] https://www.heise.de/hintergrund/Kernel-Log-Erster-Release-Candidate-von-Linux-2-6-39-1217118.html
[31] http://thread.gmane.org/gmane.linux.kernel/1121362
[32] https://www.heise.de/hintergrund/Kernel-Log-Was-2-6-39-bringt-1-Netzwerk-Treiber-und-Infrastruktur-1226097.html
[33] http://thread.gmane.org/gmane.linux.kernel/1128248
[34] https://www.heise.de/hintergrund/Kernel-Log-Was-2-6-39-bringt-1-Netzwerk-Treiber-und-Infrastruktur-1226097.html
[35] http://thread.gmane.org/gmane.linux.scsi/67122
[36] http://www.heise.de/glossar/entry/Hauptentwicklungslinie-397933.html
[37] http://thread.gmane.org/gmane.comp.video.dri.devel/56573
[38] http://www.heise.de/glossar/entry/Linux-Kernel-Mailing-List-397973.html
[39] http://thread.gmane.org/gmane.linux.kernel/1125674
[40] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[41] http://thread.gmane.org/gmane.linux.kernel/1128111
[42] http://thread.gmane.org/gmane.comp.freedesktop.xorg/46106
[43] http://www.nvnews.net/vbulletin/showthread.php?p=2417099
[44] https://www.heise.de/hintergrund/Kernel-Log-Erster-Release-Candidate-von-Linux-2-6-39-1217118.html
[45] http://support.amd.com/us/gpudownload/Pages/index.aspx
[46] http://www2.ati.com/relnotes/Catalyst_11.3_Linux_Installer.pdf
[47] http://www.phoronix.com/scan.php?page=news_item&px=OTI3MQ
[48] http://gphoto.sourceforge.net/
[49] http://gphoto.sourceforge.net/news/
[50] http://kernel.org/doc/ols/2010/
[51] http://thread.gmane.org/gmane.linux.documentation/2761
[52] http://linuxsymposium.org/2010/
[53] http://kernel.org/doc/ols/2010/ols2010-pages-63-74.pdf
[54] http://kernel.org/doc/ols/2010/ols2010-pages-245-254.pdf
[55] http://kernel.org/doc/ols/2010/ols2010-pages-35-40.pdf
[56] http://thread.gmane.org/gmane.comp.version-control.git/170685
[57] http://www.heise.de/open/kernel-log-3007.html
[58] http://www.heise.de/open/
[59] http://www.heise.de/suche/?q=Kernel-Log&search_submit=Suchen&rm=search&channel=ct&mediatype=ct_2
[60] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[61] http://identi.ca/kernellog
[62] http://twitter.com/kernellog
[63] http://www.h-online.com
[64] http://identi.ca/kernellog2
[65] http://twitter.com/kernellog2
[66] http://identi.ca/kernellogauthor
[67] http://twitter.com/kernellogauthor
[68] mailto:thl%40ct.de
[69] mailto:thl@ct.de