значителен релиз на операционната система , в който е реализирана поредната група нови възможности. За изтегляне инсталационни образи с размер 470 MB. Релизът NetBSD 9.0 е официално достъпен в сборки за и 15 различни семейства CPU.
Отделно са изведени 8 основно поддържани порта, които формират ядрото на стратегията за развитие на NetBSD: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 и xen. 49 порта, свързани с CPU като alpha, hppa, m68010, m68k, sh3, sparc и vax, са отнесени към втората категория, т.е. все още се поддържат, но вече са загубили актуалност или нямат достатъчно заинтересовани разработчици за тяхното развитие. Един порт (acorn26) е включен в третата категория, в която са поместени нефункционални портове, които претендират за премахване, ако не се намерят заинтересовани ентусиасти за тяхната разработка.
Ключови NetBSD 9.0:
- Добавен е нов хипервизор , който поддържа хардуерни механизми за осигуряване на виртуализация SVM за CPU AMD и VMX за CPU Intel. Характерна особеност на NVMM е, че на ядрото се изпълнява само минимално необходимия набор от обвивки около хардуерните механизми за виртуализация, а целият код за емулация на хардуера е преместен от ядрото в пространството на потребителя. За управление на виртуалните машини е подготвен инструментариум на базата на библиотеката libnvmm, както и пакет qemu-nvmm за стартиране на гостови системи, използващи NVMM. API libnvmm обхваща функции като създаване и стартиране на виртуална машина, разпределение на памет за гостовата система, разпределение на VCPU. Въпреки това, libnvmm не съдържа функции за емулация, а само предоставя API, позволяващо интегриране на поддръжка на NVMM в съществуващи емулации, като QEMU;
- Обезпечена е поддръжка на 64-битова архитектура AArch64 (ARMv8-A), включително сървърни системи, съответстващи на изискванията на ARM (SBBR+SBSA), и системи big.LITTLE (комбинация в един чип на мощни, но с висока консумация на енергия ядра и по-малко производителни, но по-ефективни ядра). Поддържа изпълнение на 32-битови приложения в 64-битова среда чрез използване на COMPAT_NETBSD32. Възможно е използването на до 256 CPU. Поддържа стартиране в емулация QEMU и SoC:
- Allwinner A64, H5, H6
- Amlogic S905, S805X, S905D, S905W, S905X
- Broadcom BCM2837
- NVIDIA Tegra X1 (T210)
- Rockchip RK3328, RK3399
- Сървърни платки SBSA/SBBR, като Amazon Graviton, Graviton2, AMD Opteron A1100, Ampere eMAG 8180, Cavium ThunderX, Marvell ARMADA 8040.
- Разширена поддръжка на устройства, базирани на архитектура ARMv7-A. Добавена поддръжка на системи big.LITTLE и зареждане чрез UEFI. Възможен е използването на до 8 CPU. Добавена поддръжка за 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
- Обновени графични драйвери за GPU Intel (добавена поддръжка за Intel Kabylake), NVIDIA и AMD за системи x86. Подсистемата DRM/KMS е синхронизирана с ядрото на Linux 4.4. Добавени са нови драйвери за GPU, използвани на системи ARM, включително DRM/KMS-драйвери за Allwinner DE2, Rockchip VOP и TI AM335x LCDC, драйвер framebuffer за ARM PrimeCell PL111 и TI OMAP3 DSS;
- Подобрена поддръжка на NetBSD като гостуваща OS. Добавена е поддръжка на устройството fw_cfg (QEMU Firmware Configuration), Virtio MMIO и PCI за ARM. Осигурена поддръжка за HyperV за x86;
- Реализирани са броячи за мониторинг на производителността, позволяващи на летящо анализиране на производителността на ядрото и потребителските приложения. Управлението се извършва чрез команда tprof. Поддържат се платформи Armv7, Armv8 и x86 (AMD и Intel);
- За архитектура x86_64 механизъм за рандомизация на адресното пространство на ядрото (KASLR, Kernel Address Space Layout Randomization), който увеличава устойчивостта на някои видове атаки, използващи уязвимости в ядрото, чрез създаване на случайна подредба на кода на ядрото в паметта при всяко зареждане;
- За архитектура x86_64 е добавена поддръжка , техника за откриване на течове на паметта в ядрото, която е позволила откритие и коригиране на над 25 грешки в ядрото;
- За архитектури x86_64 и Aarch64 е реализиран отладъчен механизъм KASan (Kernel address sanitizer), който позволява откриване на грешки в работата с паметта, като достъп до вече освободени блокове памет и преливания на буфери;
- Добавен е механизъм KUBSAN (Kernel Undefined Behavior Sanitizer) за откриване на случаи на неопределено поведение в ядрото
- За архитектура x86_64 е реализиран драйвер KCOV (Kernel Coverage) за анализ на покритие на кода на ядрото;
- Добавен е Userland Sanitizer за откриване на грешки и аномалии при изпълнение на приложения в потребителското пространство;
- Добавен е механизъм KHH (Kernel Heap Hardening) за защита на купчината от някои видове грешки в работата с паметта;
- одит на безопасността на мрежовия стек;
- Подобрен е отладъчният инструментариум ptrace;
- Извършено е почистване на ядрото от стари и ненужни подсистеми, като NETISDN (драйвери daic, iavc, ifpci, ifritz, iwic, isic), NETNATM, NDIS, SVR3, SVR4, n8, vm86 и ipkdb;
- Разширени са възможностите и е проведена оптимизация на производителността на пакетния филтър , който сега е активиран по подразбиране;
- Актуализирана е реализацията на файловата система ZFS, която е доведена до състояние, подходящо за ежедневно използване. Възможностите за стартиране от ZFS и използване на ZFS на главния дял все още не се поддържат;
- Добавени са нови драйвери, включително bwfm за безжични устройства Broadcom (Full-MAC), ena за Amazon Elastic Network Adapter и mcx за Ethernet адаптери Mellanox ConnectX-4 Lx EN, ConnectX-4 EN, ConnectX-5 EN, ConnectX-6 EN;
- Преработена е подсистемата SATA, в която се е появила поддръжка на NCQ и е подобрена обработката на грешки, издавани от диска;
- нов фреймворк usbnet за създаване на драйвери за Ethernet адаптери с USB интерфейс;
- Актуализирани са версиите на външните компоненти, включително GCC 7.4, GDB 8.3, LLVM 7.0.0, OpenSSL 1.1.1d, OpenSSH 8.0 и SQLite 3.26.0.
Източник: opennet.ru
