une mise à jour significative du système d'exploitation , qui introduit une nouvelle série de fonctionnalités. Pour le téléchargement des images d'installation de 470 Mo. La version NetBSD 9.0 est officiellement disponible en éditions pour et 15 familles de CPU.
Huit ports principaux sont spécifiquement mis en avant, faisant partie du cœur de la stratégie de développement de NetBSD : amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 et xen. 49 ports, liés à des CPU comme alpha, hppa, m68010, m68k, sh3, sparc et vax, sont classés dans la deuxième catégorie, c'est-à-dire qu'ils sont encore soutenus, mais ont déjà perdu leur pertinence ou ne disposent pas d'un nombre suffisant de développeurs intéressés par leur développement. Un port (acorn26) est placé dans la troisième catégorie, qui contient des ports non fonctionnels et susceptibles d'être supprimés s'il n'y a pas d'enthousiastes intéressés à les développer.
Améliorations clés NetBSD 9.0 :
- Un nouvel hyperviseur , prenant en charge les mécanismes matériels de virtualisation SVM pour les CPU AMD et VMX pour les CPU Intel. Une particularité de NVMM est que, au niveau du noyau, seul l'ensemble minimal d'bindings autour des mécanismes matériels de virtualisation est exécuté, alors que tout le code d'émulation du matériel est déplacé hors du noyau vers l'espace utilisateur. Un ensemble d'outils a été préparé pour la gestion des machines virtuelles basé sur la bibliothèque libnvmm, ainsi que le package qemu-nvmm pour exécuter des systèmes invités en utilisant NVMM. L'API libnvmm couvre des fonctions telles que la création et le lancement d'une machine virtuelle, l'allocation de mémoire à la machine invitée, et la distribution de VCPU. Cependant, libnvmm ne contient pas de fonction d'émulateur, mais offre simplement une API permettant d'intégrer le soutien de NVMM dans des émulateurs existants comme QEMU ;
- Le support de l'architecture 64 bits AArch64 (ARMv8-A) a été assuré, y compris pour les systèmes serveurs conformes aux exigences ARM (SBBR+SBSA), et les systèmes big.LITTLE (une combinaison sur une puce de cœurs puissants mais énergivores et de cœurs moins performants mais plus écoénergétiques). L'exécution d'applications 32 bits dans un environnement 64 bits est prise en charge via l'utilisation de COMPAT_NETBSD32. Il est possible d'utiliser jusqu'à 256 CPU. Le démarrage est pris en charge dans l'émulateur QEMU et sur SoC :
- Allwinner A64, H5, H6
- Amlogic S905, S805X, S905D, S905W, S905X
- Broadcom BCM2837
- NVIDIA Tegra X1 (T210)
- Rockchip RK3328, RK3399
- Des cartes serveurs SBSA/SBBR, telles que Amazon Graviton, Graviton2, AMD Opteron A1100, Ampere eMAG 8180, Cavium ThunderX, Marvell ARMADA 8040.
- Support for devices based on the ARMv7-A architecture has been expanded. Support for big.LITTLE systems and booting through UEFI has been added. Up to 8 CPUs can be used. SoC support has been added:
- Allwinner A10, A13, A20, A31, A80, A83T, GR8, H3, R8
- Amlogic S805
- Arm Versatile Express V2P-CA15
- Broadcom BCM2836, BCM2837
- Intel Cyclone V SoC FPGA
- NVIDIA Tegra K1 (T124)
- Samsung Exynos 5422
- TI AM335x, OMAP3
- Xilinx Zynq 7000
- Graphics drivers for Intel GPUs have been updated (support for Intel Kabylake has been added), NVIDIA and AMD for x86 systems. The DRM/KMS subsystem is synchronized with the Linux kernel 4.4. New drivers for GPUs used in ARM systems have been added, including DRM/KMS drivers for Allwinner DE2, Rockchip VOP, and TI AM335x LCDC, framebuffer driver for ARM PrimeCell PL111, and TI OMAP3 DSS;
- Support for NetBSD as a guest OS has been improved. Support for fw_cfg device (QEMU Firmware Configuration), Virtio MMIO, and PCI for ARM has been added. HyperV support for x86 has been ensured;
- Counters for performance monitoring have been implemented, allowing for real-time analysis of kernel and user application performance. Management is done via the tprof command. Support for Armv7, Armv8, and x86 (AMD and Intel) platforms is provided;
- For the x86_64 architecture the mechanism of Kernel Address Space Layout Randomization (KASLR) has been implemented, which enhances resistance to certain types of attacks exploiting vulnerabilities in the kernel by forming a random layout of kernel code in memory upon each boot;
- Support for x86_64 architecture has been added , a technique for detecting kernel memory leaks, which allowed for the identification and correction of more than 25 errors in the kernel;
- A debugging mechanism KASan (Kernel Address Sanitizer) has been implemented for x86_64 and Aarch64 architectures, which detects memory operation errors such as accesses to already freed memory blocks and buffer overflows;
- The KUBSAN (Kernel Undefined Behavior Sanitizer) mechanism for detecting instances of undefined behavior in the kernel has been added
- The KCOV (Kernel Coverage) driver for analyzing kernel code coverage has been implemented for the x86_64 architecture;
- Userland Sanitizer has been added to detect errors and anomalies during the execution of applications in user space;
- The KHH (Kernel Heap Hardening) mechanism has been added to protect the heap from certain types of memory operation errors;
- security audit of the network stack has been conducted;
- The ptrace debugging tool has been improved;
- Le noyau a été nettoyé des anciens sous-systèmes abandonnés, tels que NETISDN (drivers daic, iavc, ifpci, ifritz, iwic, isic), NETNATM, NDIS, SVR3, SVR4, n8, vm86 et ipkdb ;
- Les capacités ont été étendues et l'optimisation des performances du filtre de paquets a été réalisée. , qui est désormais activé par défaut ;
- L'implémentation du système de fichiers ZFS a été mise à jour, la rendant apte à une utilisation quotidienne. Le démarrage à partir de ZFS et l'utilisation de ZFS sur la partition racine ne sont pas encore pris en charge ;
- De nouveaux pilotes ont été ajoutés, y compris bwfm pour les appareils sans fil Broadcom (Full-MAC), ena pour l'Adaptateur de Réseau Élastique Amazon et mcx pour les adaptateurs Ethernet Mellanox ConnectX-4 Lx EN, ConnectX-4 EN, ConnectX-5 EN, ConnectX-6 EN ;
- Le sous-système SATA a été remanié, ajoutant le support NCQ et améliorant la gestion des erreurs émises par le disque ;
- un nouveau framework usbnet pour la création de pilotes pour les adaptateurs Ethernet avec interface USB ;
- Les versions des composants tiers ont été mises à jour, y compris GCC 7.4, GDB 8.3, LLVM 7.0.0, OpenSSL 1.1.1d, OpenSSH 8.0 et SQLite 3.26.0.
Source : opennet.ru
