Реліз операційної системи NetBSD 9.0

доступний значний реліз операційної системи NetBSD 9.0, в якому реалізовано чергову порцію нових можливостей. Для завантаження підготовлено настановні образи розміром 470 Мб. Реліз NetBSD 9.0 офіційно доступний у збірках для 57 системних архітектур та 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:

  • Доданий новий гіпервізор NVMM, що підтримує апаратні механізми забезпечення SVM віртуалізації для CPU AMD і VMX для CPU Intel. Особливістю NVMM є те, що на рівні ядра виконується лише мінімально необхідний набір обв'язок навколо апаратних механізмів віртуалізації, а весь код емуляції обладнання винесено з ядра в простір користувача. Для керування віртуальними машинами підготовлено інструментарій на базі бібліотеки libnvmm, а також пакет qemu-nvmm для запуску гостьових систем із використанням NVMM. API libnvmm охоплює такі функції як створення та запуск віртуальної машини, виділення пам'яті гостьовій системі, розподіл VCPU. При цьому libnvmm не містить функції емулятора, лише надає API, що дозволяє інтегрувати підтримку NVMM в існуючі емулятори, такі як QEMU;
  • Забезпечено підтримку 64-розрядної архітектури AArch64 (ARMv8-A), включаючи серверні системи, що відповідають вимогам ARM ServerReady (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 додано підтримку KLEAK, техніки для виявлення витоків пам'яті ядра, яка дозволила знайти та виправити більше 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

Додати коментар або відгук