Wydanie systemu operacyjnego NetBSD 9.0

Do dyspozycji główna wersja systemu operacyjnego NetBSD 9.0, w którym zaimplementowano kolejną porcję nowości. Do załadunku przygotowany obrazy instalacyjne o rozmiarze 470 MB. Wydanie NetBSD 9.0 jest oficjalnie dostępne w kompilacjach dla 57 architektur systemów i 15 różnych rodzin procesorów.

Niezależnie, istnieje 8 głównie obsługiwanych portów, które stanowią rdzeń strategii rozwoju NetBSD: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 i xen. 49 portów związanych z procesorami takimi jak alpha, hppa, m68010, m68k, sh3, sparc i vax zalicza się do drugiej kategorii, tj. są nadal wspierane, ale straciły na znaczeniu lub nie mają wystarczającej liczby programistów zainteresowanych ich rozwojem. Jeden port (acorn26) zalicza się do trzeciej kategorii, w której znajdują się porty niedziałające, które kwalifikują się do usunięcia, jeśli nie będzie chętnych do ich rozwoju.

Klucz ulepszenia NetBSD 9.0:

  • Dodano nowy hypervisor NVMM, który obsługuje mechanizmy wirtualizacji sprzętu SVM dla procesorów AMD i VMX dla procesorów Intel. Specjalną cechą NVMM jest to, że na poziomie jądra wykonywany jest tylko minimalny wymagany zestaw powiązań wokół mechanizmów wirtualizacji sprzętu, a cały kod emulacji sprzętu jest przenoszony z jądra do przestrzeni użytkownika. Do zarządzania maszynami wirtualnymi przygotowano narzędzia oparte o bibliotekę libnvmm, a także pakiet qemu-nvmm do uruchamiania systemów gościnnych przy użyciu NVMM. Interfejs API libnvmm obejmuje funkcje takie jak tworzenie i uruchamianie maszyny wirtualnej, przydzielanie pamięci systemowi gościa i przydzielanie jednostek VCPU. Jednak libnvmm nie zawiera funkcji emulatora, a jedynie zapewnia API, które pozwala zintegrować obsługę NVMM z istniejącymi emulatorami, takimi jak QEMU;
  • Zapewnia obsługę 64-bitowej architektury AArch64 (ARMv8-A), w tym systemów serwerowych zgodnych z ARM Serwer gotowy (SBBR+SBSA), oraz systemy big.LITTLE (połączenie mocnych, ale energochłonnych rdzeni i mniej produktywnych, ale bardziej energooszczędnych rdzeni w jednym chipie). Obsługuje uruchamianie aplikacji 32-bitowych w środowisku 64-bitowym dzięki zastosowaniu COMPAT_NETBSD32. Można zastosować do 256 procesorów. Obsługiwane jest działanie w emulatorze QEMU i SoC:
    • Allwinner A64, H5, H6
    • Amlogic S905, S805X, S905D, S905W, S905X
    • Broadcom BCM2837
    • NVIDIA Tegra X1 (T210)
    • Rockchip RK3328, RK3399
    • Płyty serwerowe SBSA/SBBR, takie jak Amazon Graviton, Graviton2, AMD Opteron A1100, Ampere eMAG 8180, Cavium ThunderX, Marvell ARMADA 8040.
  • Rozszerzono obsługę urządzeń opartych na architekturze ARMv7-A. Dodano obsługę systemów big.LITTLE i rozruchu przez UEFI. Można zastosować maksymalnie 8 procesorów. Dodano obsługę SoC:
    • Allwinner A10, A13, A20, A31, A80, A83T, GR8, H3, R8
    • Amlogic S805
    • Ramię uniwersalne Express V2P-CA15
    • Broadcom BCM2836, BCM2837
    • Intel Cyclone V SoC FPGA
    • NVIDIA Tegra K1 (T124)
    • Samsung Exynos 5422
    • TI AM335x, OMAP3
    • Xilinx Zynq 7000
  • Zaktualizowane sterowniki graficzne dla procesorów graficznych Intel (dodano obsługę Intel Kabylake), NVIDIA i AMD dla systemów x86. Podsystem DRM/KMS jest zsynchronizowany z jądrem Linux 4.4. Dodano nowe sterowniki GPU używane w systemach ARM, w tym sterowniki DRM/KMS dla Allwinner DE2, Rockchip VOP i TI AM335x LCDC, sterownik bufora ramki dla ARM PrimeCell PL111 i TI OMAP3 DSS;
  • Ulepszona obsługa uruchamiania NetBSD jako systemu gościa. Dodano obsługę urządzenia fw_cfg (konfiguracja oprogramowania sprzętowego QEMU), Virtio MMIO i PCI dla ARM. Zapewniona obsługa HyperV dla x86;
  • Do monitorowania wydajności zaimplementowano liczniki, pozwalające na bieżąco analizować wydajność jądra i aplikacji użytkownika. Sterowanie odbywa się za pomocą polecenia tprof. Obsługiwane są platformy Armv7, Armv8 i x86 (AMD i Intel);
  • Dla architektury x86_64 dodany mechanizm randomizacji przestrzeni adresowej jądra (KASLR, Kernel Address Space Layout Randomization), który pozwala zwiększyć odporność na niektóre typy ataków wykorzystujących luki w jądrze poprzez generowanie losowego układu kodu jądra w pamięci przy każdym uruchomieniu;
  • Dodano obsługę architektury x86_64 KLEK, technika wykrywania wycieków pamięci jądra, która pozwoliła nam znaleźć i naprawić ponad 25 błędów w jądrze;
  • Dla architektur x86_64 i Aarch64 zaimplementowano mechanizm debugowania KASan (Kernel Address Sanizer), który pozwala zidentyfikować błędy pamięci, takie jak dostęp do już zwolnionych bloków pamięci i przepełnienia bufora;
  • Dodano mechanizm KUBSAN (Kernel Unknown Behaviour Sanitizer) do wykrywania przypadków niezdefiniowanego zachowania w jądrze
  • Dla architektury x86_64 zaimplementowano sterownik KCOV (Kernel Coverage) umożliwiający analizę pokrycia kodu jądra;
  • Dodano narzędzie Userland Sanitizer do wykrywania błędów i anomalii podczas uruchamiania aplikacji w przestrzeni użytkownika;
  • Dodano mechanizm KHH (Hardening Kernel Heap) w celu ochrony sterty przed niektórymi typami błędów pamięci;
  • Prowadzone audyt bezpieczeństwa stosu sieciowego;
  • Ulepszone narzędzia do debugowania ptrace;
  • Jądro zostało oczyszczone ze starych i nieobsługiwanych podsystemów, takich jak NETISDN (sterowniki daic, iavc, ifpci, ifritz, iwic, isic), NETNATM, NDIS, SVR3, SVR4, n8, vm86 i ipkdb;
  • Możliwości filtra pakietów zostały rozszerzone i zoptymalizowane pod kątem wydajności NPF, który jest teraz domyślnie włączony;
  • Implementacja systemu plików ZFS została zaktualizowana, aby była odpowiednia do codziennego użytku. Możliwość uruchamiania z ZFS i używania ZFS na partycji root nie jest jeszcze obsługiwana;
  • Dodano nowe sterowniki, w tym bwfm dla urządzeń bezprzewodowych Broadcom (Full-MAC), ena dla Amazon Elastic Network Adapter i mcx dla adapterów Ethernet Mellanox ConnectX-4 Lx EN, ConnectX-4 EN, ConnectX-5 EN, ConnectX-6 EN ;
  • Podsystem SATA został przeprojektowany, dodając obsługę NCQ i poprawiając obsługę błędów generowanych przez dysk;
  • Zaproponowano nowy framework usbnet do tworzenia sterowników dla adapterów Ethernet z interfejsem USB;
  • Zaktualizowane wersje komponentów innych firm, w tym GCC 7.4, GDB 8.3, LLVM 7.0.0, OpenSSL 1.1.1d, OpenSSH 8.0 i SQLite 3.26.0.

    Źródło: opennet.ru

Dodaj komentarz