importante lanzamiento del sistema operativo , que incluye una nueva serie de características. Para descargar imágenes de instalación de 470 MB. El lanzamiento de NetBSD 9.0 está oficialmente disponible en compilaciones para y 15 diferentes familias de CPU.
Se destacan 8 puertos soportados inicialmente, que constituyen el núcleo de la estrategia de desarrollo de NetBSD: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 y xen. 49 puertos, relacionados con CPU como alpha, hppa, m68010, m68k, sh3, sparc y vax, se han clasificado en una segunda categoría, es decir, aún se mantienen, pero han perdido su relevancia o no cuentan con suficientes desarrolladores interesados en su desarrollo. Un puerto (acorn26) se incluye en una tercera categoría, que alberga puertos no funcionales que están en riesgo de eliminación si no se encuentran entusiastas interesados en su desarrollo.
Mejoras clave NetBSD 9.0:
- Se añade un nuevo hipervisor , que admite mecanismos de virtualización de hardware SVM para CPUs AMD y VMX para CPUs Intel. La característica del NVMM es que en el nivel del núcleo se ejecuta solo el conjunto mínimo de envolturas alrededor de los mecanismos de virtualización de hardware, mientras que todo el código de emulación de hardware se ha trasladado del núcleo al espacio del usuario. Se ha preparado un conjunto de herramientas para gestionar máquinas virtuales basado en la biblioteca libnvmm, así como el paquete qemu-nvmm para ejecutar sistemas invitados utilizando NVMM. La API de libnvmm abarca funciones como la creación y ejecución de una máquina virtual, asignación de memoria al sistema invitado y distribución de VCPU. Sin embargo, libnvmm no contiene funciones de emulador, sino que solo proporciona una API que permite integrar el soporte de NVMM en emuladores existentes como QEMU;
- Se ha asegurado el soporte para la arquitectura de 64 bits AArch64 (ARMv8-A), incluidos sistemas de servidores que cumplen con los requisitos ARM (SBBR+SBSA), y sistemas big.LITTLE (una combinación en un solo chip de núcleos poderosos pero de alto consumo energético y núcleos menos potentes pero más eficientes energéticamente). Se admite la ejecución de aplicaciones de 32 bits en un entorno de 64 bits mediante el uso de COMPAT_NETBSD32. Es posible utilizar hasta 256 CPU. Se admite la ejecución en el emulador QEMU y SoC:
- Allwinner A64, H5, H6
- Amlogic S905, S805X, S905D, S905W, S905X
- Broadcom BCM2837
- NVIDIA Tegra X1 (T210)
- Rockchip RK3328, RK3399
- Placas de servidor SBSA/SBBR, como Amazon Graviton, Graviton2, AMD Opteron A1100, Ampere eMAG 8180, Cavium ThunderX, Marvell ARMADA 8040.
- Se amplió el soporte para dispositivos basados en la arquitectura ARMv7-A. Se añadió soporte para sistemas big.LITTLE y arranque a través de UEFI. Se pueden utilizar hasta 8 CPU. Se agregó soporte para SoC:
- 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
- Se actualizaron los controladores gráficos para GPU Intel (se añadió soporte para Intel Kabylake), NVIDIA y AMD para sistemas x86. El subsistema DRM/KMS se sincronizó con el núcleo de Linux 4.4. Se añadieron nuevos controladores para GPU, utilizados en sistemas ARM, incluyendo controladores DRM/KMS para Allwinner DE2, Rockchip VOP y TI AM335x LCDC, controlador framebuffer para ARM PrimeCell PL111 y TI OMAP3 DSS;
- Se mejoró el soporte para el funcionamiento de NetBSD como sistema operativo invitado. Se añadió soporte para el dispositivo fw_cfg (QEMU Firmware Configuration), Virtio MMIO y PCI para ARM. Se garantiza el soporte para HyperV en x86;
- Se implementaron contadores para monitorear el rendimiento, permitiendo analizar en tiempo real el rendimiento del núcleo y de aplicaciones de usuario. La gestión se realiza a través del comando tprof. Se soportan plataformas Armv7, Armv8 y x86 (AMD e Intel);
- Para la arquitectura x86_64 mecanismo de aleatorización del espacio de direcciones del núcleo (KASLR, Kernel Address Space Layout Randomization), que permite aumentar la resistencia a ciertos tipos de ataques que explotan vulnerabilidades en el núcleo, mediante la creación de una distribución aleatoria del código del núcleo en la memoria en cada arranque;
- Para la arquitectura x86_64 se añadió soporte , una técnica para detectar fugas de memoria del núcleo, que permitió encontrar y corregir más de 25 errores en el núcleo;
- Para las arquitecturas x86_64 y Aarch64, se implementó un mecanismo de depuración KASan (Kernel address sanitizer), que permite detectar errores en el manejo de memoria, como accesos a bloques de memoria ya liberados y desbordamientos de búfer;
- Se añadió el mecanismo KUBSAN (Kernel Undefined Behavior Sanitizer) para detectar casos de comportamiento indefinido en el núcleo
- Para la arquitectura x86_64 se implementó un controlador KCOV (Kernel Coverage) para analizar la cobertura del código del núcleo;
- Se añadió Userland Sanitizer para detectar errores y anomalías en la ejecución de aplicaciones en el espacio de usuario;
- Se añadió el mecanismo KHH (Kernel Heap Hardening) para proteger el montón de ciertos tipos de errores de manejo de memoria;
- una auditoría de seguridad del stack de red;
- Se mejoró la herramienta de depuración ptrace;
- Se llevó a cabo la limpieza del núcleo de subsistemas antiguos y huérfanos, como NETISDN (controladores daic, iavc, ifpci, ifritz, iwic, isic), NETNATM, NDIS, SVR3, SVR4, n8, vm86 e ipkdb;
- Se han ampliado las capacidades y se ha optimizado el rendimiento del filtro de paquetes , que ahora está activado por defecto;
- Se actualizó la implementación del sistema de archivos ZFS, llevándola a un estado adecuado para el uso diario. Las capacidades de arranque desde ZFS y el uso de ZFS en la partición raíz aún no son compatibles;
- Se añadieron nuevos controladores, incluyendo bwfm para dispositivos inalámbricos Broadcom (Full-MAC), ena para Amazon Elastic Network Adapter y mcx para adaptadores Ethernet Mellanox ConnectX-4 Lx EN, ConnectX-4 EN, ConnectX-5 EN, ConnectX-6 EN;
- Se rediseñó el subsistema SATA, que ahora admite NCQ y mejora el manejo de errores reportados por el disco;
- un nuevo marco usbnet para crear controladores para adaptadores Ethernet con interfaz USB;
- Se actualizaron las versiones de componentes de terceros, incluyendo GCC 7.4, GDB 8.3, LLVM 7.0.0, OpenSSL 1.1.1d, OpenSSH 8.0 y SQLite 3.26.0.
Fuente: opennet.ru
