anderhalf jaar na de laatste update is de release van het besturingssysteem NetBSD 10 gepubliceerd. Er zijn installatie-beeldbestanden van 630 MB beschikbaar, geschikt voor 57 systeemarchitecturen en 16 verschillende CPU-families. De nieuwe tak bevat een aantal aanzienlijke verbeteringen, zoals ondersteuning voor toegangslijsten in het FFS-bestandssysteem, aanzienlijke prestatieoptimalisatie, schijfversleuteling met behulp van het Adiantum-algoritme en de implementatie van een kerndriver voor de VPN WireGuard.
Het project ondersteunt 8 primaire poorten die de kern vormen van de ontwikkelingstrategie van NetBSD: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 en xen, evenals 49 secundaire poorten, gerelateerd aan CPU's zoals alpha, hppa, m68010, m68k, sh3, sparc en vax. Secundaire poorten worden nog steeds ondersteund, maar zijn al verouderd of hebben niet voldoende ontwikkelaars die geĆÆnteresseerd zijn in hun ontwikkeling. ĆĆ©n poort (acorn26) valt in de derde categorie van niet-functionele poorten, die mogelijk worden verwijderd als er geen geĆÆnteresseerde ontwikkelaars te vinden zijn.
Belangrijke verbeteringen in NetBSD 10:
- In het FFS-bestandssysteem is ondersteuning voor toegangslijsten (POSIX.1e ACL) toegevoegd, geĆÆmplementeerd via uitgebreide bestandsattributen en overgenomen uit FreeBSD. Voor het gebruik van ACL's is een nieuw type bestandssysteem FFSv2ea toegevoegd (niet standaard ingeschakeld), waaraan bestaande bestandssystemen kunnen worden overgezet met behulp van de tool fsck_ffs.
- Een netwerkinterface wg is toegevoegd, met implementatie VPN, compatibel met WireGuard.
- Prestatieoptimalisatie is doorgevoerd. De efficiƫntie van de bestandslocatiecache in de kernel is verhoogd. De prestaties van de taakplanner zijn verbeterd, die is aangepast voor gebruik op big.LITTLE Arm-systemen, die snelle en langzame CPU-kernen combineren. De prestaties van de systeemoproepen select en poll zijn verbeterd. De prestaties van het tmpfs-bestandssysteem zijn verhoogd. Het opstartproces is versneld. Optimalisaties zijn toegevoegd die specifiek zijn voor de architecturen x86 en AArch64. De doorvoersnelheid van in- en uitvoer en netwerkwijzigingen is verhoogd op AArch64-systemen.
- Optimalisaties zijn doorgevoerd in het virtuele geheugensysteem: er is een snellere radix tree-algoritme geïmplementeerd voor het zoeken naar geheugenpagina's, de snelheid van het volgen van schone en vuile geheugenpagina's is verhoogd, fsync is aanzienlijk versneld voor grote bestanden, de werking met locks is verbeterd en de efficiëntie van parallelle uitvoering van bewerkingen is verhoogd.
- Ondersteuning voor schijfversleuteling met het Adiantum-algoritme is toegevoegd, wat hoge efficiƫntie mogelijk maakt op systemen zonder hardwareversnelling voor AES-versleuteling. De cgdconfig-tool biedt nu ondersteuning voor gedeelde sleutels die kunnen worden gebruikt voor de versleuteling van meerdere opslagmedia. Het standaard wachtwoord-hash algoritme is gewijzigd in Argon2id. Automatische versleuteling van swap-partities is ingeschakeld (vm.swap_encrypt=1). Ondersteuning voor hardwaremechanismen voor versleuteling versnelling, geleverd door x86- en Arm-processors, zoals instructies voor het versnellen van AES en ChaCha, is toegevoegd. De door de kernel geleverde software-implementatie van AES biedt nu constante uitvoertijd voor alle architecturen.
- Ondersteuning voor beveiligingsgerelateerde extensies, aangeboden in Armv8-A-processors, is toegevoegd: PAN (Privileged Access Never), PA (Pointer Authentication), BTI (Branch Target Identification).
- Voor het identificeren van beveiligingsproblemen in de kernel worden de Kernel Concurrency Sanitizer en Kernel Memory Sanitizer ingezet.
- In de netwerkstack is RFC 7048 geĆÆmplementeerd, wat de werking van het IPv6 Neighbor Discovery-mechanisme verbetert en het onafhankelijk maakt van adressen.
- Een nieuwe netwerkinterface lagg is toegevoegd voor het aggregateren van netwerken en het waarborgen van redundantie (lagg vervangt de agr-interface).
- De vether-driver met implementatie van virtuele Ethernet-interfaces is toegevoegd, die kan worden gebruikt in netwerkbridges en ter vervanging van tap-interfaces.
- In de ipsec-implementatie is de sysctl net.key.allow_different_idtype toegevoegd voor verbeterde compatibiliteit met andere VPN's.
- De ondersteuning voor het UDF-formaat (Universal Disk Format, bestandssysteem voor optische schijven) is verbeterd, waardoor het nu op foutniveau compatibel is met de implementatie uit Windows 10. De newfs_udf-tool biedt nu de mogelijkheid om in het UDF 2.50-formaat te formatteren met een aparte sectie voor metadata. Een fsck_udf-tool voor het controleren en herstellen van defecte UDF-bestandssystemen is toegevoegd.
- De fstat-tool biedt nu ondersteuning voor ZFS.
- De ondersteuning van het FUSE-mechanisme (Filesystem in Userspace) is uitgebreid, met volledige ondersteuning voor de API-varianten van FUSE in de drivers van refuse, gebruikt in FUSE-versies van 1.1 tot 3.10.
- In de implementatie van software-RAID is ondersteuning toegevoegd voor configuraties met gewisselde bytevolgorde (swapped-endian). De tool raidctl heeft een optie '-t' gekregen voor het controleren van de juistheid van configuratiebestanden.
- Een nieuwe tool blkdiscard is toegevoegd voor handmatige uitvoering van TRIM-operaties op schijven om ongebruikte blokken te rapporteren.
- In de tool scan_ffs is de mogelijkheid toegevoegd om huidige statistieken weer te geven bij ontvangst van het SIGINFO-signaal (Ctrl+T).
- Nieuwe programma's zijn opgenomen:
- aiomixer ā geluidsmixer
- realpath ā geeft het absolute pad naar een bestand op basis van het relatieve pad weer.
- tradcpp ā macroprocessor in K&R C-stijl.
- ioctlprint ā toont de waarden van ioctl.
- testpat ā geeft een testtabel weer voor het beoordelen van de kleurnauwkeurigheid van het scherm.
- warp ā een klassieke game van BSD-systemen.
- Rasterlettertypen Spleen zijn opgenomen in de ctwm-samenstelling, geleverd onder de BSD-licentie en beschikbaar voor zowel resoluties met lage als hoge pixeldichtheid. Ook zijn de consolelettertypen Terminus opgenomen.
- In de Linux-compatibiliteitslaag (compat_linux) is ondersteuning toegevoegd voor de mechanisms eventfd, timerfd, POSIX-timers, preadv en pwritev.
- De ondersteuning voor virtualisatie is verbeterd. Xen PVH-ondersteuning is toegevoegd, waardoor het gebruik van Xen PV-drivers in gastsystemen op basis van HVM mogelijk is. De implementatie van para-gevirtualiseerde netwerkinterfaces is verbeterd. In host-kernels (Dom0) voor Xen is ondersteuning voor multiprocessorsystemen ingeschakeld. In Xen-kernels is het mogelijk om modules te gebruiken die gemeenschappelijk zijn met de standaardkernel. Netwerk- (xennet) en opslag- (xbd) apparaten zijn aangepast voor multiprocessorsystemen (verkregen MPSAFE-status). De ondersteuning voor de HyperV-hypervisor is aanzienlijk verbeterd en de mogelijkheden van de nvmm-hypervisor (NetBSD Virtual Machine Monitor) zijn uitgebreid. De mogelijkheid voor slaapstand bij uitvoering is toegevoegd. virtuele machines in nvmm.
- De VirtIO-drivers zijn verbeterd, met implementatie van de VirtIO 1.0-specificatie. Een driver vio9p is toegevoegd voor het mounten van VirtIO 9P FS in gastsystemen, geƫxporteerd door de hostomgeving. Een driver viocon is toegevoegd voor de virtuele seriƫle poort.
- Systeemaanroepen eventfd en timerfd zijn geĆÆmplementeerd, compatibel met Linux en gebruikt in compat_linux. De systeemaanroep fexecve is toegevoegd voor het uitvoeren van een bestand via een bestandsdescriptor.
- Verouderde componenten zijn verwijderd, zoals de ondersteuning voor HIPPI-, FDDI- en TokenRing-technologieƫn. De drivers nsmb en mount_smbfs voor SMBFS zijn uit de kernel verwijderd (ondersteunen geen nieuwe versies van het SMB-protocol). De ondersteuning voor IPv6 Router Advertisements is vanuit de kernel naar de gebruikersruimte verplaatst. De bibliotheken libXTrap, libXevie en libglut zijn verwijderd, evenals de drivers voor veel verouderde apparaten.
- De hardwareondersteuning is aanzienlijk uitgebreid. Ondersteuning voor de mogelijkheden van nieuwe Intel- en AMD-processoren is verzekerd. Ondersteuning is toegevoegd voor nieuwe ARM-platforms (Raspberry Pi 4, Orange Pi 5, Lichee Pi Zero, ODROID-N2+, M1 Mac Mini, HummingBoard Pulse, UDOO Neo Full, PINE64 Quartz64, Asus Tinker, enz.). De ondersteuning voor de MIPS-architectuur is uitgebreid.
- Er zijn 17 nieuwe apparaataanstuurdrivers toegevoegd, waaronder drivers voor Wacom-tablets, Realtek 8125 2.5 Gigabit Ethernet, Motorcomm YT8511C / YT8511H Gigabit Ethernet, Intel Ethernet 700, Broadcom GENETv5 Ethernet, Intel QuickAssist crypto-accelerators en Intel XMM7360 LTE-modems.
- De grafische drivers voor Intel-, NVIDIA- en AMD-GPU's zijn geüpdatet voor x86-systemen. Het DRM/KMS-subsysteem is gesynchroniseerd met de Linux-kernel 5.6.
- De versies van de externe componenten zijn bijgewerkt, waaronder de windowmanager 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.
Bron: opennet.ru
