значителен релиз на операционната система , в който е реализирана нова партида от възможности. За изтегляне инсталационни образи с размер 470 Мб. Релизът на 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 като гостуваща ОС. Добавена е поддръжка за устройството 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
