Nová virtualizace KVM
Nedlouho po vypuštění poslední verze 2.6.19 jádra Linusem 4. prosince minulého roku rozhodl (spolu)správce řady 2.6 Andrew Morton o zařazení nové (prezentované v říjnu) virtualizační technologie KVM a Linus ji hned od verze 2.6.20-rc1 začal postupně zařazovat. KVM je dostupná jako záplata již pro jádra 2.6.16 a novější, nyní bude v jádře standardně obsažena od nadcházející verze 2.6.20.
KVM (Kernel-based Virtual Machine) je plně virtualizační řešení pro Linux na architektuře x86, které sestává z malého modulu kvm, po jehož nahrání se jádro chová jako hypervizor a z upravené verze emulátoru QEMU (fabrice.bellard.free.fr/qemu) pro provoz hostovaných systémů. Hostovaný OS, který není potřeba pro virtualizovaný běh nijak upravovat, běží v hostujícím Linuxu jako obyčejný proces, u kterého je využit i nový mód vykonávání guest mode (kromě user a kernel mode), který KVM přidává. Hardware pro hostované OS je privátní hardware emulovaný QEMU. Ve stručnosti, KVM proměňuje emulátor QEMU v rychlý virtualizační nástroj podobný externímu hypervizoru Xen (který usiluje o začlenění do jádra již téměř dva roky).
Absence binárních modulů a v podstatě žádná konfigurace hypervizoru (pouze QEMU) je obrovskou výhodou KVM, nevýhodou je potřeba podpory virtualizace procesorem pomocí rozšíření instrukční sady Intel-VT (Vanderpool) nebo AMD-V (Pacifica/Presidio, SVM). Podporu lze jednoduše zjistit příkazem egrep '^flags.*(vmx|svm)' /proc/cpuinfo (od jádra 2.6.16), v podstatě ji obsahují téměř všechny procesory Intel a AMD ne starší jednoho roku. Tato nevýhoda, která je zřejmě zatím pro většinu uživatelů zásadní, se ale časem s rostoucím rozšířením podporujících procesorů vytratí. Kód KVM je vcelku stabilní, ale jelikož je poměrně nový, stále má některé nedostatky, jako např. problémy s emulací I/O zařízení nebo ACPI v hostovaném OS a chybějící podporu migrace na jiný hardware, které by ale vzhledem k popularitě plynoucí z uživatelské jednoduchosti mohly být brzo odstraněny. Pro slibný vývoj hovoří i záplata Ingo Molnara přidávající zrychlující prvek paravirtualizace Linuxu.
Domovská stránka KVM je na kvm.sourceforge.net, kde lze kromě statutu, downloadu (pro upravené QEMU již existují distribuční balíčky), návodu aj. nalézt i popis fungování (KVM whitepaper). Vedle jednoduchého vysvětlení, praktický test a srovnání rychlosti v článku na linux.inet.hr/finally-user-friendly-virtualization-for-linux.html ukazují, že běh OS pod KVM je téměř stejně rychlý (přes 80 %) jako nativně na původním hardwaru. Na www-128.ibm.com/developerworks/linux/library/l-linuxvirt/ lze nalézt dobrý přehledový článek na téma virtualizace obecně (historie, typy a dostupná řešení). Závěrem nezbývá než konstatovat, že s KVM se stává virtualizace na Linuxu jednoduchou, rychlou a uživatelsky přívětivou.
Jen GPL moduly?!
Mezi jadernými vývojáři se v polovině prosince v LKML rozhořela diskuze na téma znemožnění nahrávání binárních (obecně proprietárních, ne-GPL) jaderných modulů. Podle některých (Andrew Morton, Greg Kroah-Hartman aj.) by měly být od roku 2008 místo dosavadního trpění a odsuzování jednoduše zakázány, z důvodů ochrany práv daných licencí GNU GPL, pod kterou je jádro vydáváno, a zabránění dalším sporům mezi vývojáři a distributory ovladačů dodávaných touto formou. Sporům řešícím porušování licence GNU GPL distribucí ne-GPL ovladačů využívajících GPL kód jádra (vzpomínáte na Xgl live CD projektu Kororaa z poloviny minulého roku?). Pro uživatele by to ale znamenalo znemožnění použití uzavřených ovladačů pro (vlastnosti) hardwaru, ke kterému neexistuje svobodný ovladač. Jedná se zejména (ale nejen) o grafické karty firem ATI a NVIDIA a využití akcelerované grafiky. To by jistě neprospělo většímu rozšíření Linuxu.
Hlavní vývojář jádra Linus Torvalds se ale od začátku staví jednoznačně proti takovému kroku. Podle něj by se tímto naopak omezila svoboda používání jádra podobně jako RIAA a MPAA omezují přehrávání hudebních nebo filmových děl pomocí šifrování (zákaz přirovnává k DRM na kód jádra). Rozhodnutí, zda tolerovat, nebo zakázat, ale není vůbec jednoduché, problém legality modulů je velice složitý z mnoha hledisek. Např. licenci GNU GPL si lze vykládat protichůdnými způsoby (kombinace ne-GPL díla odvozeného od GPL díla versus svoboda zacházení s GPL dílem), nebo otázka, zda jsou tyto moduly vůbec odvozeným dílem apod. Neméně zneklidňující mohou být i důsledky jak tolerování, tak zakázání proprietárních modulů (brzdění vývoje svobodných open-source ovladačů versus odliv uživatelů).
Z těchto a dalších důvodů (lwn.net/Articles/215075/) zákaz uvalen nebude (Linus by jej do jádra nezařadil) a vypadá to, že binární moduly bude možné i nadále do jádra nahrávat. Veškeré dosavadní problémy, kvůli kterým celá diskuze vznikla, tím ale zůstávají také. V budoucnu tak nelze vyloučit další podobné a jiné kroky ohledně ochrany práv a svobody Linuxu.