După un an și jumătate de la formarea ultimei actualizări, a fost publicat release-ul sistemului de operare NetBSD 10. Au fost pregătite imagini de instalare de 630 MB, disponibile în construcții pentru 57 de arhitecturi de sistem și 16 familii diferite de CPU. Noua ramură include o serie de îmbunătățiri semnificative, precum suportul pentru listele de control al accesului în sistemul de fișiere FFS, optimizarea semnificativă a performanței, criptarea discului folosind algoritmul Adiantum și implementarea în nucleu a driverului pentru VPN WireGuard.
Proiectul susține 8 porturi primare, care constituie nucleul strategiei de dezvoltare NetBSD: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 și xen, precum și 49 de porturi secundare, legate de CPU-uri precum alpha, hppa, m68010, m68k, sh3, sparc și vax. Porturile secundare sunt încă susținute, dar au devenit deja depășite sau nu au un număr suficient de dezvoltatori interesați de dezvoltarea acestora. Un port (acorn26) este inclus în a treia categorie, care grupează porturi nefuncționale, ce intenționează să fie eliminate, dacă nu se găsesc entuziaști interesați de dezvoltarea lor.
Îmbunătățirile principale în NetBSD 10:
- Suportul pentru listele de control al accesului (POSIX.1e ACL) a fost adăugat în sistemul de fișiere FFS, realizat prin utilizarea atributelor extinse ale fișierelor și transferat din FreeBSD. Pentru utilizarea ACL-urilor, a fost propus un nou tip de FS FFSv2ea (care nu este utilizat în mod implicit), pe care se pot transfera sistemele de fișiere existente prin intermediul utilitarului fsck_ffs.
- A fost adăugat interfața de rețea wg cu implementarea VPN, compatibilă cu WireGuard.
- A fost efectuată o optimizare a performanței. Eficiența funcționării cache-ului de căi ale fișierelor în nucleu a fost crescută. Performanța planificatorului de sarcini a fost îmbunătățită, acesta fiind adaptat pentru sistemele big.LITTLE Arm, care combină nuclee CPU rapide și lente. Performanța apelurilor de sistem select și poll a fost îmbunătățită. Performanța sistemului de fișiere tmpfs a fost crescută. Procesul de inițializare a fost accelerat. Au fost adăugate optimizări specifice arhitecturilor x86 și AArch64. Lățimea de bandă a operațiunilor de intrare-ieșire și a celor de rețea pe sistemele AArch64 a fost îmbunătățită.
- Optimizările au fost implementate în sistemul de memorie virtuală: un algoritm radix tree mai rapid este utilizat pentru căutarea paginilor de memorie, viteza de urmărire a paginilor de memorie curate și murdare a fost îmbunătățită, viteza de execuție a fsync pentru fișiere mari a fost semnificativ accelerată, iar eficiența execuției paralele a operațiunilor a fost îmbunătățită.
- A fost adăugată suportul pentru criptarea discurilor folosind algoritmul Adiantum, care permite obținerea unei eficiențe ridicate pe sistemele fără accelerare hardware pentru criptarea AES. Utilitarul cgdconfig a fost actualizat cu suport pentru chei partajate, care pot fi utilizate pentru criptarea mai multor unități de stocare. Algoritmul de hash pentru parole a fost schimbat implicit în Argon2id. A fost activată criptarea automată a partițiilor de swap (vm.swap_encrypt=1). Suport pentru mecanisme hardware de accelerare a criptării furnizate de procesoarele x86 și Arm a fost adăugat, de exemplu, instrucțiuni pentru accelerarea AES și ChaCha. Oferită de kernel, implementarea software a AES asigură un timp constant de execuție pentru toate arhitecturile.
- Suportul pentru extensiile de securitate furnizate în procesoarele Armv8-A a fost adăugat: PAN (Privileged Access Never), PA (Pointer Authentication), BTI (Branch Target Identification).
- Pentru identificarea problemelor de securitate în kernel, au fost implicate mecanismele Kernel Concurrency Sanitizer și Kernel Memory Sanitizer.
- În stiva de rețea a fost implementat suportul pentru RFC 7048, îmbunătățind funcționalitatea mecanismului IPv6 Neighbor Discovery și făcându-l independent de adrese.
- Un nou interfață de rețea lagg a fost adăugată pentru agregarea link-urilor de rețea și asigurarea redundanței (lagg a înlocuit interfața agr).
- A fost adăugat driverul vether cu implementarea interfețelor virtuale Ethernet, care pot fi utilizate în poduri de rețea și în locul interfețelor tap.
- În implementarea ipsec a fost adăugat sysctl net.key.allow_different_idtype pentru a îmbunătăți compatibilitatea cu alte VPN-uri.
- A fost îmbunătățit suportul pentru formatul UDF (Universal Disk Format, sistem de fișiere pentru discuri optice), care este acum compatibil la nivel de erori cu implementarea din Windows 10. Utilitarul newfs_udf a primit capacitatea de a genera în format UDF 2.50 cu o partiție separată pentru metadate. A fost adăugat utilitarul fsck_udf pentru verificarea și recuperarea sistemelor de fișiere UDF în caz de eroare.
- Utilitarul fstat a fost actualizat cu suport pentru ZFS.
- A fost extinsă suportul pentru mecanismul FUSE (Filesystem in Userspace); în driverul refuse a fost asigurată suportul complet pentru variantele API FUSE, utilizate în versiunile FUSE de la 1.1 la 3.10.
- În realizarea RAID-urilor software a fost adăugat suportul pentru configurații cu un ordin de bytes inversat (swapped-endian). În utilitarul raidctl a fost adăugată opțiunea „-t” pentru verificarea corectitudinii fișierelor de configurație.
- A fost adăugată o nouă utilitar blkdiscard pentru a efectua manual operațiuni TRIM pe discuri pentru a informa despre blocurile neutilizate.
- În utilitarul scan_ffs a fost adăugată opțiunea de a afișa statistica curentă la recepția semnalului SIGINFO (Ctrl+T).
- Au fost incluse noi programe:
- aiomixer — mixer de sunet
- realpath — afișează calea absolută a unui fișier pe baza unei căi relative.
- tradcpp — preprocesor în stilul K&R C.
- ioctlprint — afișarea valorilor ioctl.
- testpat — afișează un tabel de test pentru evaluarea redării culorii pe ecran.
- warp — un joc clasic de sisteme BSD.
- Au fost incluse și utilizate în ctwm fonturile raster Spleen, distribuite sub licența BSD și disponibile atât pentru ecrane cu rezoluție scăzută, cât și pentru ecrane cu densitate mare de pixeli. De asemenea, au fost incluse fonturi console Terminus.
- În stratul de compatibilitate cu Linux (compat_linux) a fost adăugat suportul pentru mecanismele eventfd, timerfd, cronometrele POSIX, preadv și pwritev.
- A fost îmbunătățit suportul pentru virtualizare. A fost adăugat suportul pentru Xen PVH, oferind posibilitatea utilizării driverelor Xen PV în sistemele-gazdă bazate pe HVM, îmbunătățită implementarea interfețelor de rețea paravirtualizate. În kernelurile gazdelor (Dom0) pentru Xen a fost inclus suportul pentru sisteme multiprocesor. În kernelurile pentru Xen a fost oferită posibilitatea utilizării modulelor comune cu kernelul normal. Dispozitivele de rețea (xennet) și bloc (xbd) au fost adaptate pentru sisteme multiprocesor (au obținut statutul MPSAFE). Suportul pentru hypervizorul HyperV a fost semnificativ îmbunătățit și capacitățile hypervizorului nvmm (NetBSD Virtual Machine Monitor) au fost extinse. A fost adăugată posibilitatea de a intra în modul de repaus. mașini virtuale în nvmm.
- Au fost îmbunătățite driverele VirtIO, care acum implementează suportul pentru specificația VirtIO 1.0. A fost adăugat un driver vio9p pentru montarea în sistemele-gazdă a FS VirtIO 9P, exportate de mediul gazdă. A fost adăugat un driver viocon pentru portul serial virtual.
- Au fost implementate apelurile de sistem eventfd și timerfd, compatibile cu Linux și utilizate în compat_linux. A fost adăugat apelul de sistem fexecve pentru executarea unui fișier prin descriptorul de fișier.
- Au fost eliminate componentele învechite, de exemplu, suportul pentru tehnologiile HIPPI, FDDI și TokenRing a fost suspendat, driverele nsmb și mount_smbfs pentru SMBFS au fost eliminate din kernel (deoarece nu suportă noile versiuni ale protocolului SMB), suportul pentru IPv6 Router Advertisement a fost mutat din kernel în spațiul utilizatorului, bibliotecile libXTrap, libXevie și libglut au fost eliminate, iar driverele pentru multe dispozitive vechi au fost eliminate.
- Suportul pentru echipamente a fost extins semnificativ. A fost asigurat suportul pentru funcționalitățile noilor procesoare Intel și AMD. A fost adăugat suportul pentru noile plăci ARM (Raspberry Pi 4, Orange Pi 5, Lichee Pi Zero, ODROID-N2+, M1 Mac Mini, HummingBoard Pulse, UDOO Neo Full, PINE64 Quartz64, Asus Tinker etc.). Suportul pentru arhitectura MIPS a fost extins.
- Au fost adăugate 17 drivere noi pentru dispozitive, de exemplu, drivere pentru tabletele Wacom, Realtek 8125 2.5 Gigabit Ethernet, Motorcomm YT8511C / YT8511H Gigabit Ethernet, Intel Ethernet 700, Broadcom GENETv5 Ethernet, acceleratoare de criptare Intel QuickAssist și modemuri LTE Intel XMM7360.
- Driverele grafice pentru GPU Intel, NVIDIA și AMD pentru sistemele x86 au fost actualizate. Subsistemul DRM/KMS a fost sincronizat cu kernelul Linux 5.6.
- Versiunile componentelor terțe au fost actualizate, inclusiv managerul de feronerie 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.
Sursa: opennet.ro
