Hlavní navigace

NetBSD 9.0 má novou virtualizaci, lepší ZFS a umí více desek s ARM

 Autor: Jared McNeill
NetBSD 9.0 tentokrát přináší opravdu zajímavé novinky. Vylepšení není jen na bázi bezpečnosti, ale přibyla nová virtualizace, 64bitová vydání pro ARM a konečně produkčně nasaditelný souborový systém ZFS.
Petr Topiarz 3. 3. 2020
Doba čtení: 5 minut

Sdílet

Vylepšený instalátor a rychlejší server

Když chcete operační systém používat, musíte ho napřed nainstalovat. Instalátor NetBSD měl velké dluhy, ale nyní je do velké míry splatil. Vypadá sice stále jako programy z roku 1985, ale umí už to podstatné.

V sekci utilites přibyly nástroje na vytváření oddílů a formátování disků nad 2 TB, což se dříve muselo dělat ručně. Nyní se NetBSD konečně umí pěkně nainstalovat na oddíl EFI disku třeba 10 TB velkého. Kromě toho nyní umí pomocí utils konfigurovat a nastavit RAID, což také dříve bylo nutno před samotnou instalací dělat ručně.

Možná si řeknete, že toto už přece Linux umí věky, ale díky tomu, že NetBSD používají často velmi pokročilí uživatelé, kteří si instalují systémy pomocí skriptů anebo si různá nastavení hodně vylaďují, byla práce na takovémto vylepšení instalátoru považována za částečně zbytečnou.

Linux má KVM, NetBSD má HAXM a NVMM

Před třemi lety se vývojář Kamil Rytarzowski rozhodl, že nebude používat na desktopu jiný systém, než NetBSD. Zjistil, že většina věcí docela funguje, ale chybí virtualizace v userspace. Tedy nechybí, protože emulátor Qemu v NetBSD funguje dobře a také už dlouho, ale je bez akcelerace nepoužitelný pro běžný provoz virtuálů.

Portování VirtualBoxu neproběhlo dobře, kqemu už dávno skončilo a Xen, jakožto virtualizace typu 1 z mnoha důvodů nevyhovovala pro běžný uživatelský prostor. Hledal tedy virtualizaci, který by odpovídala linuxovému KVM nebo VirtualBoxu.

Nakonec se rozhodl pro portování virtualizace HAXM, což je vlastně hodně podobný koncept jako KVM. HAXM používá Qemu jako platformu, kterou urychluje. Rychlost HAXM se odhaduje mezi 80–90 % rychlosti KVM. To už je přijatelné.

HAXM má nějaká ta omezení, například běží pouze na procesorech firmy Intel s podporou virtualizace VTx a EPT (ano už se dle posledních zpráv pracuje na verzi pro AMD). HAXM se objevil již v 8. vydání NetBSD, ale téměř se o něm neví, protože ho NetBSD nevypíchl ve vydání ani na svém webu.

Nicméně funguje stabilně pro virtualizaci systémů jako Linux, NetBSD, FreeBSD a Windows. Ostatní systémy (macOS, OpenBSD a další) hlásí ještě sem tam nějaké chyby. Asi stojí za to také dodat, že HAXM je multiplatformní virtualizátor a běží i na Linuxu a ve Windows.

Pokud někoho HAXM zaujal, doporučuji slajdy ze zajímavé přednášky.

O nějaký ten rok později začali s konceptem NVMM pracovat jiní vývojáři v NetBSD. NVMM se podobá konceptu KVM nebo HAXM, ale původně byl napsán zase jen pro procesory AMD. Autoři NVMM ale rychle pochopili, že Intel je důležitý a v současné verzi už fungují oba procesory.

NVMM je mladší a méně dotažený než HAXM, ale na jeho vývoji se usilovně pracuje. Dá se předpokládat, že NVMM bude nyní vlajkovým virtualizátorem pro NetBSD, protože na něm pracuje více „domácích“ vývojářů a ti ho často zmiňují na blogu i v oficiálních poznámkách k vydání. V současné době je schopen virtualizovat NetBSD, FreeBSD, OpenBSD, Windows a Linux. Téměř vše o NVMM je k vidění na webu projektu.

Konečně použitelné ZFS

ZFS je v NetBSD už delší dobu, dostalo se tam během Google Summer of Code tuším v roce 2015. Mělo ovšem do produkčního stavu daleko. Vývoj se dal do pohybu znovu asi před rokem, kdy se během léta dostalo do kernelu velké množství nových commitů a na podzim už jsem ho testoval ve vývojové verzi kernelu, kdy vše fungovalo naprosto bez problému. NetBSD používá ZFS ve verzi 5 a zpool je ve verzi 28.

Když začnete pracovat se ZFS v NetBSD 9.0, vyskočí na vás hláška, že se jedná o neprodukční prostředí, nicméně podle poznámek k vydání jej vývojáři považují za produkční. Co tedy funguje? Funguje vytváření a odstraňování ZFS poolů, ZFS file systémů, fungují snapshoty, dedup, funguje komprese, zkrátka veškerá běžná funkcionalita pro práci s daty. Co zatím nefunguje, je bootování ze ZFS a použití v roli kořenového svazku.

ARMv8 v 64bitové verzi, vylepšení ARMv7

Také zde tentokrát proběhl velký posun oproti starší verzi. Pokud vás oslovují různé experimentální nebo utilitární armové desky, NetBSD vám vychází vstříc. Už dříve byla dobrá podpora Raspberry Pi, ale nyní se výrazně zlepšila podpora hardware v Banana Pi a deskách Allwinner.

Pochopitelně ke zlepšení došlo i u Raspberry, ačkoli Raspberry Pi 4 ještě oficiálně podporu nemá. Konkrétně jde o to, že nyní už funguje škálování frekvence procesoru, ukazuje to správný počet jader a všechny síťové karty a grafická zařízení fungují.

Zapnutá je i podpora bootování z UEFI. Osobně jsem to zkoušel u čtyř zařízení (RPi2, RPi3, Allwinner Pine 64 a Pine 64+), všude vše nádherně šlape. Na blogu vývojáře Jareda McNeilla je fotka, jak NetBSD běží na PineBooku.

Jádro a bezpečnost

Toto vydání implementuje v jádře hromadu zajímavých vlastností, jsou to především:

  • KASLR – kernel ASLR na x86 64-bit, je to technologie, která, zjednodušeně řečeno, rozmístí kernel do paměti nepředvídatelným způsobem, takže případný útočník nemá tak jednoduchou práci s útoky na paměť apod. Jedná se o podobný, ale ne stejný mechanismus, jakým je KARL používaný v sesterském OpenBSD.
  • KLEAK – zabezpečuje ochranu před případnými přetečeními, nebo chybami paměti. Opět pro 64bitový Intel a AMD.
  • KASAN – sanitizer jádra pro Intel/AMD/ARM 64bit. Vyhledává nelegální přístupy do paměti a opravuje 25 známých chyb jádra.
  • Kernel heap hardening – chrání kernel proti několika druhům exploitů.
  • Vyčištění – z jádra byly vyňaty komponenty, které nebyly udržované, nebo ztratily opodstatnění – zkrátka jarní úklid.
  • NPF – v jádře je zapnut ve výchozím stavu nový firewall, který byl testován ve vydáních 8.0 a 8.1 a nyní údajně funguje již velmi stabilně, není zcela nepodobný PF z dílny OpenBSD.

Další zajímavé ovladače

Uživatel ocení přidání ovladačů na guest-bázi pro virtualizační enginy na bázi Qemu/Virtio – to znamená, že vám pojede lépe NetBSD v KVM nebo VirtualBoxu.

Příjemné je vylepšení GPU ovladačů v kernelu. Pro architekturu x86/64 to odpovídá ovladačům linuxového kernelu verze 4.4. Sympatické je i vylepšené GPU pro armové stroje.

NetBSD je zase na koni

Toto vydání NetBSD je rozhodně přelomové, přináší ZFS, ohromnou podporu armovým zařízením, novou virtualizaci a bezpečný kernel.

Dá se říci, že v raných verzích NetBSD doslova táhlo vývoj unix/like systémů (např. implementace Xenu ve verzi 3 byla revoluční), ale později ve verzi 5 a 6 začalo ztrácet dech (neumělo USB3, neumělo velké disky, GPT) a zdálo se dokonce, že vyhyne na úbytě. Ve verzi 7 se začalo stavět zpátky na nohy, verzí 8 NetBSD získalo stabilitu a verzí 9 dohnalo mainstream.

MIF obecny

Mimochodem, jestli máte rádi BSD systémy a chcete pomoci rozvoji tohoto extrémně multiplatformního OS, můžete se zapojit drobným přispěním do fundraisingové kampaně, která nyní běží na stránkách NetBSD.

Cílem je udělat z NetBSD 10 vydání snů: „best release ever“. Vývojáři se snaží vybrat 50 000 dolarů, sbírka právě začala. V době, kdy tyhle řádky píšu, je vybráno zhruba 2 500 dolarů. Na webu NetBSD.org můžete přihodit, nebo se alespoň podívat, jak si projekt stojí.