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.
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.
Zusammengeführt
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.
Grafiktreiber, Versions-Status und Staccato
Frisches Treiberpaket für Intel-GPUs
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.
Kernel-Versionsstatus
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-Log-Staccato
Kernel
- Rafael J. Wysocki hat kürzlich wieder eine aktuelle Ausgabe der von ihm zumeist wöchentlich erstellen Regression Reports versandt. Demnach sind bei Linux 2.6.39-rc3-git7 10 Fehler bekannt [35], die 2.6.38 noch nicht zeigte; zudem enthielt dieser vor kurzem erstellte Snapshot des Hauptentwicklungszweigs [36] noch 28 Fehler [37], die sich zwischen der Freigabe von 2.6.37 und 2.6.38 eingeschlichen haben.
- Auf der LKML [38] gab Andreas Schwab einen Tipp [39] zum Einsatz von Git, der auch Lesern des Kernel-Logs [40] gelegentlich helfen könnte: Über "git tag --contains <commitid>" lässt sich bei aktuellen Git-Versionen herausfinden, bei welcher Kernel-Versionen ein bestimmter Commit vorgenommen wurde.
Unterstützung für Grafikhardware
- Matthew Garrett arbeitet [41] an einem einfachen KMS-Treiber für den typischerweise von Qemu-Kvm emulierten Cirrus-Grafikchip.
- Jeremy Huddleston hat die einige Fehler korrigierende Version 1.10.1 des X-Server von X.org freigegeben [42].
- Nvidia hat ein weiteres Prerelease [43] einer neuen Grafiktreiber-Version veröffentlicht, das unter anderem Unterstützung für einige Desktop- und Mobile-Grafikchips der 400er- und 500er-Serie bringt; zudem beseitigt es einen Fehler, der den X-Server auf 32-Bit-Systemen nach 49,7 Tagen zum Absturz brachte.
- Bereits kurz nach dem letzten regulären Kernel-Log [44] hat AMD die Version 11.3 seiner als Catalyst oder Fglrx bekannten proprietären Grafiktreiber zum Download [45] bereit gestellt. Sie bringt als "early look" klassifizierten Unterstützung für OpenSuse 11.4. Laut den Release Notes [46] erfordert diese Treiberversion nun mindestens X.org 6.9; die vermutlich nicht aktualisierte Webseite nennt noch X.org 6.7 als Mindestvoraussetzung. Mit den X-Servern der 1.10er-Reihe arbeitet der Treiber nicht zusammen; das soll Berichten [47] zufolge erst die im Mai erwartete Version beherrschen.
Kernel-Umland ("Plumbing layer"), Userland-Treiber, Entwicklertools, ...
- Die Entwickler des Gphoto-Projekts [48] haben die Version 2.4.11 [49] der Bibliothek libgphoto2 freigegeben, auf die viele Programme beim Auslesen von Digitalkameradaten zurückgreifen. Sie enthält eine Reihe kleinerer Verbesserungen für Kameras und PTP-Geräte verschiedener Hersteller; in der Liste der vom PTP-Treiber neu unterstützten Kameras finden sich unter anderem die Nikon Modelle D3s, D3100 und D7000, die Canon EOS 60D sowie die Canon Powershot-Modelle SD1300 IS, SX210 IS und SX130 IS.
- Rob Landley hat kürzlich die Verfügbarkeit von Textfassungen [50] vieler Vorträge bekannt gegeben [51], die im letzten Jahr im Juli auf dem Ottawa Linux Symposium (OLS) 2010 [52] gehalten wurden. Unter ihnen finden sich zahlreiche Vorträge aus dem Kernel-Umfeld, die trotz der ungewöhnlich späten Freigabe der Proceedings noch für so manchen interessant sein dürften – etwa "Looking Inside Memory: Tooling for tracing memory reference patterns [53]", "CPU bandwidth control for CFS [54]" sowie "Developing Out-of-Tree Drivers alongside In-Kernel Drivers [55]" von Intel-Entwickler Jesse Brandenburg.
- Junio C Hamano hat Git 1.7.4.3 [56] freigegeben.
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
Copyright © 2011 Heise Medien