glavno izdanje operativnog sustava , u kojem je implementiran sljedeći dio novih značajki. Za utovar instalacijske slike veličine 470 MB. Izdanje NetBSD 9.0 službeno je dostupno u verzijama za i 15 različitih CPU obitelji.
Zasebno, postoji 8 primarno podržanih portova koji čine jezgru razvojne strategije NetBSD-a: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 i xen. 49 portova povezanih s CPU-ima kao što su alpha, hppa, m68010, m68k, sh3, sparc i vax klasificirani su u drugu kategoriju, tj. još uvijek su podržani, ali su izgubili na važnosti ili nemaju dovoljan broj programera zainteresiranih za njihov razvoj. Jedan port (acorn26) uključen je u treću kategoriju, koja sadrži neoperativne portove koji su podobni za uklanjanje ako nema entuzijasta zainteresiranih za njihov razvoj.
Ključ NetBSD 9.0:
- Dodan novi hipervizor , koji podržava mehanizme hardverske virtualizacije SVM za AMD CPU i VMX za Intel CPU. Posebna značajka NVMM-a je da se na razini jezgre izvodi samo minimalni potrebni skup povezivanja oko hardverskih virtualizacijskih mehanizama, a sav hardverski emulacijski kod premješta se iz jezgre u korisnički prostor. Za upravljanje virtualnim strojevima pripremljeni su alati temeljeni na biblioteci libnvmm, kao i paket qemu-nvmm za pokretanje gostujućih sustava pomoću NVMM-a. API libnvmm pokriva funkcije poput stvaranja i pokretanja virtualnog stroja, dodjele memorije sustavu za goste i dodjele VCPU-a. Međutim, libnvmm ne sadrži funkcije emulatora, već samo pruža API koji vam omogućuje integraciju NVMM podrške u postojeće emulatore kao što je QEMU;
- Pruža podršku za 64-bitnu AArch64 arhitekturu (ARMv8-A), uključujući poslužiteljske sustave usklađene s ARM-om (SBBR+SBSA), i big.LITTLE sustavi (kombinacija snažnih, ali energetski trošnih jezgri, i manje produktivnih, ali energetski učinkovitijih jezgri u jednom čipu). Podržava pokretanje 32-bitnih aplikacija u 64-bitnom okruženju korištenjem COMPAT_NETBSD32. Može se koristiti do 256 CPU-a. Podržava se rad u QEMU emulatoru i SoC-u:
- Allwinner A64, H5, H6
- Amlogic S905, S805X, S905D, S905W, S905X
- Broadcom BCM2837
- NVIDIA Tegra X1 (T210)
- Rockchip RK3328, RK3399
- SBSA/SBBR ploče poslužitelja kao što su Amazon Graviton, Graviton2, AMD Opteron A1100, Ampere eMAG 8180, Cavium ThunderX, Marvell ARMADA 8040.
- Proširena je podrška za uređaje temeljene na ARMv7-A arhitekturi. Dodana podrška za big.LITTLE sustave i dizanje putem UEFI-ja. Može se koristiti do 8 CPU-a. Dodana podrška za 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;
- Poboljšana podrška za pokretanje NetBSD-a kao gostujućeg OS-a. Dodana podrška za fw_cfg uređaj (QEMU konfiguracija firmvera), Virtio MMIO i PCI za ARM. Omogućena podrška za HyperV za x86;
- Brojači su implementirani za praćenje performansi, što vam omogućuje analizu performansi kernela i korisničkih aplikacija u hodu. Kontrola se vrši preko naredbe tprof. Podržane su Armv7, Armv8 i x86 (AMD i Intel) platforme;
- Za x86_64 arhitekturu mehanizam za nasumično raspoređivanje adresnog prostora jezgre (KASLR, Kernel Address Space Layout Randomization), koji vam omogućuje povećanje otpornosti na određene vrste napada koji iskorištavaju ranjivosti u jezgri generiranjem nasumičnog rasporeda koda jezgre u memoriji pri svakom pokretanju;
- Dodana podrška za x86_64 arhitekturu , tehnika za otkrivanje curenja memorije kernela, koja nam je omogućila da pronađemo i popravimo više od 25 grešaka u kernelu;
- Za arhitekture x86_64 i Aarch64 implementiran je mehanizam za otklanjanje pogrešaka KASan (Kernel address sanitizer), koji vam omogućuje prepoznavanje grešaka u memoriji, kao što je pristup već oslobođenim blokovima memorije i preljev međuspremnika;
- Dodan mehanizam KUBSAN (Kernel Undefined Behavior Sanitizer) za otkrivanje slučajeva nedefiniranog ponašanja u kernelu
- Za x86_64 arhitekturu, upravljački program KCOV (Kernel Coverage) implementiran je za analizu pokrivenosti kernel koda;
- Dodan Userland Sanitizer za otkrivanje pogrešaka i anomalija pri pokretanju aplikacija u korisničkom prostoru;
- Dodan mehanizam KHH (Kernel Heap Hardening) za zaštitu hrpe od određenih vrsta memorijskih pogrešaka;
- revizija sigurnosti mrežnog stoga;
- Poboljšani ptrace alati za otklanjanje pogrešaka;
- Kernel je očišćen od starih i neodržavanih podsustava, kao što su NETISDN (drivers daic, iavc, ifpci, ifritz, iwic, isic), NETNATM, NDIS, SVR3, SVR4, n8, vm86 i ipkdb;
- Mogućnosti filtera paketa su proširene, a performanse optimizirane , koji je sada omogućen prema zadanim postavkama;
- Implementacija ZFS datotečnog sustava je ažurirana kako bi bila prikladna za svakodnevnu upotrebu. Mogućnost podizanja sustava iz ZFS-a i korištenja ZFS-a na korijenskoj particiji još nije podržana;
- Dodani su novi upravljački programi, uključujući bwfm za bežične uređaje Broadcom (Full-MAC), ena za Amazon Elastic Network Adapter i mcx za Mellanox ConnectX-4 Lx EN, ConnectX-4 EN, ConnectX-5 EN, ConnectX-6 EN Ethernet adaptere ;
- SATA podsustav je redizajniran, dodajući podršku za NCQ i poboljšavajući rukovanje pogreškama koje generira pogon;
- novi usbnet framework za kreiranje upravljačkih programa za Ethernet adaptere s USB sučeljem;
- Ažurirane verzije komponenti trećih strana, uključujući GCC 7.4, GDB 8.3, LLVM 7.0.0, OpenSSL 1.1.1d, OpenSSH 8.0 i SQLite 3.26.0.
Izvor: opennet.ru
