Po jeden a půl roce od vydání předchozí aktualizace byl zveřejněn release operačního systému NetBSD 10. K dispozici jsou instalační obrazy o velikosti 630 MB, připravené pro 57 systémových architektur a 16 různých rodin CPU. Nová verze zahrnuje řadu zásadních vylepšení, jako je podpora seznamů řízení přístupu v souborovém systému FFS, výrazná optimalizace výkonu, šifrování disku pomocí algoritmu Adiantum a implementace ovladače pro VPN WireGuard přímo v jádře.
Projekt podporuje 8 primárních portů, které tvoří jádro strategie rozvoje NetBSD: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 a xen, a také 49 sekundárních portů spojených s CPU jako alpha, hppa, m68010, m68k, sh3, sparc a vax. Sekundární porty jsou stále podporovány, ale už ztratily relevanci nebo nemají dostatečný počet vývojářů, kteří by se o jejich rozvoj zajímali. Jeden port (acorn26) byl zařazen do třetí kategorie, kde jsou umístěny nefunkční porty, které mohou být odstraněny, pokud se nenajdou nadšenci, kteří by se o jejich vývoj zajímali.
Hlavní vylepšení v NetBSD 10:
- Do souborového systému FFS byla přidána podpora seznamů řízení přístupu (POSIX.1e ACL), implementovaná pomocí rozšířených atributů souborů a přenesená z FreeBSD. Pro použití ACL byl navržen nový typ FS FFSv2ea (není používán ve výchozím nastavení), na který lze převést stávající FS pomocí nástroje fsck_ffs.
- Byl přidán síťový rozhraní wg s implementací VPN, kompatibilního s WireGuard.
- Byla provedena optimalizace výkonu. Zvýšena efektivita práce cache souborových cest v jádře. Zlepšena výkonnost plánovače úloh, který byl přizpůsoben pro systémy big.LITTLE Arm, kombinující rychlá a pomalá CPU jádra. Zlepšena výkonnost systémových volání select a poll. Zrychlen proces zavádění. Byly přidány optimalizace specifické pro architektury x86 a AArch64. Zvýšena propustnost vstupů/výstupů a síťových operací na systémech AArch64.
- Byly provedeny optimalizace v systému virtuální paměti: pro vyhledávání paměťových stránek byl použit rychlejší algoritmus radix tree, byla zvýšena rychlost sledování čistých a špinavých paměťových stránek, výrazně zrychlena činnost fsync pro velké soubory, zlepšena práce s zámky a zvýšena účinnost paralelního provádění operací.
- Byla přidána podpora šifrování disků pomocí algoritmu Adiantum, který umožňuje dosáhnout vysoké efektivity na systémech bez hardwarového urychlení šifrování AES. Do utilitiy cgdconfig byla přidána podpora sdílených klíčů, které lze použít pro šifrování více úložných zařízení. Algoritmus hashování hesel byl ve výchozím nastavení změněn na Argon2id. Bylo zahrnuto automatické šifrování swapových oddílů (vm.swap_encrypt=1). Byla přidána podpora hardwarových mechanismů urychlení šifrování, které poskytují procesory x86 a Arm, například instrukcí pro urychlení AES a ChaCha. V dodávané softwarové implementaci AES jádrem je zajištěna konstantní doba provádění operací pro všechny architektury.
- Byla přidána podpora souvisejících bezpečnostních rozšíření poskytovaných procesory Armv8-A: PAN (Privileged Access Never), PA (Pointer Authentication), BTI (Branch Target Identification).
- Pro odhalování bezpečnostních problémů v jádře byly zapojeny mechanismy Kernel Concurrency Sanitizer a Kernel Memory Sanitizer.
- V síťovém stacku byla implementována podpora RFC 7048, která zlepšuje funkčnost mechanismu IPv6 Neighbor Discovery a činí ho nezávislým na adresách.
- Byl přidán nový síťový interface lagg pro agregaci síťových odkazů a zajištění dostupnosti (lagg nahradil interface agr).
- Byl přidán ovladač vether s implementací virtuálních Ethernetových rozhraní, která lze použít v síťových mostech a místo rozhraní tap.
- Do implementace ipsec byl přidán sysctl net.key.allow_different_idtype pro zlepšení kompatibility s jinými VPN.
- Byla vylepšena podpora formátu UDF (Universal Disk Format, FS pro optické disky), který je nyní kompatibilní na úrovni chyb s implementací z Windows 10. V utilitě newfs_udf se objevila možnost formování ve formátu UDF 2.50 s odděleným oddílem pro metadata. Byla přidána utilita fsck_udf pro kontrolu a obnovení selhaných FS ve formátu UDF.
- Do utilitiy fstat byla přidána podpora ZFS.
- Byla rozšířena podpora mechanismu FUSE (Filesystem in Userspace), ovladač refuse nyní nabízí plnou podporu variant API FUSE, používaných ve verzích FUSE od 1.1 do 3.10.
- Do implementace softwarového RAID byla přidána podpora konfiguračních variant se zaměněným pořadím bytů (swapped-endian). Do nástroje raidctl byla přidána volba „-t“ pro ověřování správnosti konfiguračních souborů.
- Byl přidán nový nástroj blkdiscard pro ruční provádění operací TRIM na discích za účelem informování o nevyužitých blocích.
- Do nástroje scan_ffs byla přidána možnost zobrazení aktuální statistiky při přijetí signálu SIGINFO (Ctrl+T).
- Byly zahrnuty nové programy:
- aiomixer — mixér zvuku
- realpath — zobrazení absolutní cesty k souboru na základě relativní cesty.
- tradcpp — makropořadač ve stylu K&R C.
- ioctlprint — zobrazení hodnot ioctl.
- testpat — zobrazení testovací tabulky pro hodnocení barevného přenosu obrazovky.
- warp — klasická hra BSD systémů.
- Byly zahrnuty a aktivovány v ctwm rastrové písma Spleen, dodávané pod licencí BSD a dostupné jak pro obrazovky s nízkým rozlišením, tak pro obrazovky s vysokou hustotou pixelů. Dále byly zahrnuty konzolové písma Terminus.
- Do vrstvové kompatibility s Linuxem (compat_linux) byla přidána podpora mechanismů eventfd, timerfd, POSIX časovačů, preadv a pwritev.
- Byla vylepšena podpora virtualizace. Přidána podpora Xen PVH, umožňení používání ovladačů Xen PV v hostujících systémech na bázi HVM, zlepšena implementace paravirtualizovaných síťových rozhraní. Ve hostitelských jádrech (Dom0) pro Xen byla zahrnuta podpora vícejádrových systémů. V jádrech pro Xen byla umožněna možnost využití modulů sdílených s běžným jádrem. Síťová (xennet) a bloková (xbd) zařízení byla přizpůsobena pro vícejádrové systémy (získaly status MPSAFE). Výrazně byla vylepšena podpora hypervisoru HyperV a rozšířeny možnosti hypervisoru nvmm (NetBSD Virtual Machine Monitor). Byla přidána možnost přechodu do spánkového režimu při provádění v nvmm. virtuálních strojů v nvmm.
- Byly vylepšeny ovladače VirtIO, které nyní implementují podporu specifikace VirtIO 1.0. Byl přidán ovladač vio9p pro montáž v hostujících systémech FS VirtIO 9P, exportovaných hostitelským prostředím. Byl přidán ovladač viocon pro virtuální sériový port.
- Byly implementovány systémové volání eventfd a timerfd, kompatibilní s Linuxem a využívané v compat_linux. Přidáno systémové volání fexecve pro vykonání souboru podle souborového popisovače.
- Byly odstraněny zastaralé komponenty, například byla ukončena podpora technologií HIPPI, FDDI a TokenRing, z jádra byly odstraněny ovladače nsmb a mount_smbfs pro SMBFS (které nepodporují nové verze protokolu SMB), podpora IPv6 Router Advertisement byla přenesena z jádra do uživatelského prostoru, byly odstraněny knihovny libXTrap, libXevie a libglut, a byly odstraněny ovladače pro mnoho zastaralých zařízení.
- Byla významně rozšířena podpora hardwaru. Zajištěna podpora nových procesorů Intel a AMD. Přidána podpora nových ARM platforem (Raspberry Pi 4, Orange Pi 5, Lichee Pi Zero, ODROID-N2+, M1 Mac Mini, HummingBoard Pulse, UDOO Neo Full, PINE64 Quartz64, Asus Tinker atd.). Rozšířena podpora architektury MIPS.
- Přidáno 17 nových ovladačů zařízení, například ovladače pro tablety Wacom, Realtek 8125 2.5 Gigabit Ethernet, Motorcomm YT8511C / YT8511H Gigabit Ethernet, Intel Ethernet 700, Broadcom GENETv5 Ethernet, kryptoprocesory Intel QuickAssist a LTE modemy Intel XMM7360.
- Byly aktualizovány grafické ovladače pro GPU Intel, NVIDIA a AMD pro systémy x86. Podsystem DRM/KMS byl synchronizován s jádrem Linux 5.6.
- Byly aktualizovány verze třetích komponent, včetně správce oken ctwm 4.0.3, gcc 10.5, lua 5.4.6, OpenSSL 3.0.12, postfix 3.8.4, tmux 3.2a, OpenSSH 9.6, X.org Server 21.1.7, BIND 9.18.24, Heimdal kerberos 7.8.0, unbound 1.19.1, wpa_supplicant 2.9, OpenLDAP 2.5.6, binutils 2.34, libfido2 1.13.0, pam-u2f 1.2.0, zlib 1.2.13.
Zdroj: opennet.ru
