NetBSD 9.0 operating system release

Available major operating system release NetBSD 9.0, which implements another batch of new features. For loading prepared by 470 MB installation images. The NetBSD 9.0 release is officially available in builds for 57 system architectures and 15 different CPU families.

Separately, there are 8 primary supported ports that form the core of the NetBSD development strategy: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64, and xen. 49 ports associated with CPUs such as alpha, hppa, m68010, m68k, sh3, sparc, and vax are assigned to the second category, i.e. are still supported, but have already lost their relevance or do not have a sufficient number of developers interested in their development. One port (acorn26) is included in the third category, which contains non-working ports that claim to be removed if there are no enthusiasts interested in their development.

Key improvements NetBSD 9.0:

  • Added new hypervisor NVMM, which supports hardware mechanisms for providing SVM virtualization for AMD CPUs and VMX for Intel CPUs. A feature of NVMM is that only the minimum necessary set of bindings around hardware virtualization mechanisms is performed at the kernel level, and all hardware emulation code is moved from the kernel to user space. To manage virtual machines, a toolkit based on the libnvmm library has been prepared, as well as the qemu-nvmm package for starting guest systems using NVMM. The libnvmm API covers such functions as creating and starting a virtual machine, allocating memory to a guest system, allocating a VCPU. At the same time, libnvmm does not contain emulator functions, but only provides an API that allows you to integrate NVMM support into existing emulators, such as QEMU;
  • 64-bit AArch64 (ARMv8-A) supported, including ARM compliant server systems ServerReady (SBBR+SBSA), and big.LITTLE systems (combination in one chip of powerful, but power-consuming cores, and less productive, but more energy-efficient cores). It is supported to run 32-bit applications in a 64-bit environment through the use of COMPAT_NETBSD32. Up to 256 CPUs can be used. Supported running in QEMU emulator and SoC:
    • Allwinner A64, H5, H6
    • Amlogic S905, S805X, S905D, S905W, S905X
    • Broadcom BCM2837
    • NVIDIA Tegra X1 (T210)
    • Rockchip RK3328, RK3399
    • SBSA/SBBR server boards such as 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. Added support for big.LITTLE systems and UEFI boot. Up to 8 CPUs can be used. SoC support 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
  • Updated graphics drivers for Intel GPUs (added support for Intel Kabylake), NVIDIA and AMD for x86 systems. The DRM/KMS subsystem is synchronized with the Linux 4.4 kernel. Added new GPU drivers for use on ARM systems, including DRM/KMS drivers for Allwinner DE2, Rockchip VOP and TI AM335x LCDC, framebuffer driver for ARM PrimeCell PL111 and TI OMAP3 DSS;
  • Improved support for running NetBSD as a guest OS. Added support for fw_cfg device (QEMU Firmware Configuration), Virtio MMIO and PCI for ARM. Provided support for HyperV for x86;
  • Implemented counters for performance monitoring, allowing you to analyze the performance of the kernel and user applications on the fly. Management is done through the tprof command. Supported platforms are Armv7, Armv8, and x86 (AMD and Intel);
  • For x86_64 architecture added kernel address space layout randomization mechanism (KASLR, Kernel Address Space Layout Randomization), which allows increasing resistance to certain types of attacks that exploit vulnerabilities in the kernel, due to the formation of a random layout of the kernel code in memory at each boot;
  • Added support for x86_64 architecture KLEAK, a technique for detecting kernel memory leaks that found and fixed more than 25 bugs in the kernel;
  • For the x86_64 and Aarch64 architectures, the KASan (Kernel address sanitizer) debugging mechanism is implemented, which allows you to detect memory errors, such as accessing already freed memory blocks and buffer overflows;
  • Added KUBSAN (Kernel Undefined Behavior Sanitizer) mechanism to detect cases of undefined behavior in the kernel
  • For the x86_64 architecture, the KCOV (Kernel Coverage) driver has been implemented to analyze kernel code coverage;
  • Added Userland Sanitizer to detect errors and anomalies when running applications in user space;
  • Added KHH (Kernel Heap Hardening) mechanism to protect the heap from certain types of memory errors;
  • Completed network stack security audit;
  • Improved ptrace debug toolkit;
  • Cleaned up the kernel from old and unmaintained subsystems such as NETISDN (drivers daic, iavc, ifpci, ifritz, iwic, isic), NETNATM, NDIS, SVR3, SVR4, n8, vm86 and ipkdb;
  • Enhanced capabilities and performance optimization of the packet filter NPF, which is now enabled by default;
  • Updated the implementation of the ZFS file system, which is brought to a state suitable for everyday use. The ability to boot from ZFS and use ZFS on the root partition is not yet supported;
  • Added new drivers including bwfm for Broadcom Wireless (Full-MAC), ena for Amazon Elastic Network Adapter and mcx for Mellanox ConnectX-4 Lx EN, ConnectX-4 EN, ConnectX-5 EN, ConnectX-6 EN Ethernet adapters;
  • The SATA subsystem has been redesigned, in which NCQ support has appeared and the handling of errors generated by the drive has been improved;
  • Suggested a new usbnet framework for creating drivers for USB Ethernet adapters;
  • Updated versions of third party components including GCC 7.4, GDB 8.3, LLVM 7.0.0, OpenSSL 1.1.1d, OpenSSH 8.0 and SQLite 3.26.0.

    Source: opennet.ru

Add a comment