NetBSD 9.0 үйлдлийн системийн хувилбар

Боломжтой үйлдлийн системийн томоохон хувилбар NetBSD 9.0, шинэ боломжуудын дараагийн хэсэг хэрэгжиж байна. Ачаалах зориулалттай бэлтгэсэн 470 MB хэмжээтэй суулгацын зураг. NetBSD 9.0 хувилбар нь албан ёсны хувилбараар гарсан 57 системийн архитектур болон 15 өөр CPU гэр бүл.

Тус тусад нь NetBSD-ийн хөгжлийн стратегийн цөмийг бүрдүүлдэг үндсэндээ дэмжигддэг 8 порт байдаг: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 болон xen. Альфа, hppa, m49, m68010k, sh68, sparc, vax зэрэг CPU-тэй холбоотой 3 портыг хоёрдугаар ангилалд ангилдаг. дэмжигдсэн хэвээр байгаа боловч ач холбогдлоо алдсан эсвэл тэдний хөгжлийг сонирхож буй хангалттай тооны хөгжүүлэгчид байхгүй байна. Гурав дахь ангилалд нэг порт (acorn26) багтсан бөгөөд хэрэв тэдгээрийг хөгжүүлэх сонирхолтой сонирхогч байхгүй бол устгах боломжтой ажиллахгүй портуудыг агуулдаг.

Түлхүүр сайжруулалт NetBSD 9.0:

  • Шинэ гипервизор нэмэгдсэн NVMM, энэ нь AMD CPU-д зориулсан SVM, Intel CPU-д зориулсан VMX-ийн техник хангамжийн виртуалчлалын механизмыг дэмждэг. NVMM-ийн онцлог шинж чанар нь цөмийн түвшинд зөвхөн техник хангамжийн виртуалчлалын механизмын эргэн тойронд шаардлагатай хамгийн бага багц холболтыг гүйцэтгэдэг бөгөөд бүх техник хангамжийн эмуляцын кодыг цөмөөс хэрэглэгчийн орон зайд шилжүүлдэг. Виртуал машинуудыг удирдахын тулд libnvmm номын санд суурилсан хэрэгслүүд, мөн NVMM ашиглан зочин системийг ажиллуулах qemu-nvmm багцыг бэлтгэсэн. libnvmm API нь виртуал машин үүсгэх, ажиллуулах, зочны системд санах ой хуваарилах, VCPU хуваарилах зэрэг функцуудыг хамардаг. Гэсэн хэдий ч, libnvmm нь эмуляторын функцүүдийг агуулдаггүй, гэхдээ зөвхөн NVMM дэмжлэгийг QEMU зэрэг одоо байгаа эмуляторуудад нэгтгэх боломжийг олгодог API;
  • 64 битийн AArch64 архитектурыг (ARMv8-A), ARM-д нийцсэн серверийн системийг дэмждэг. Сервер бэлэн (SBBR+SBSA), болон big.LITTLE системүүд (нэг чип дэх хүчирхэг, гэхдээ эрчим хүч зарцуулдаг цөм, бүтээмж багатай, гэхдээ илүү эрчим хүчний хэмнэлттэй цөмүүдийн хослол). Энэ нь COMPAT_NETBSD32 ашиглан 64 битийн орчинд 32 битийн програмуудыг ажиллуулахыг дэмждэг. 256 хүртэлх CPU ашиглах боломжтой. QEMU эмулятор болон SoC дээр ажиллахыг дэмждэг:
    • Allwinner A64, H5, H6
    • Amlogic S905, S805X, S905D, S905W, S905X
    • Broadcom BCM2837
    • NVIDIA Tegra X1 (T210)
    • Rockchip RK3328, RK3399
    • Amazon Graviton, Graviton2, AMD Opteron A1100, Ampere eMAG 8180, Cavium ThunderX, Marvell ARMADA 8040 зэрэг SBSA/SBBR серверийн хавтангууд.
  • 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
  • Intel GPU-д зориулсан график драйверуудыг шинэчилсэн (Intel Kabylake-ийн дэмжлэг нэмэгдсэн), x86 системд зориулсан NVIDIA болон AMD. DRM/KMS дэд систем нь Linux 4.4 цөмтэй синхрончлогдсон. Allwinner DE2, Rockchip VOP болон TI AM335x LCDC-д зориулсан DRM/KMS драйверууд, ARM PrimeCell PL111 болон TI OMAP3 DSS-д зориулсан фреймбуфер драйвер зэрэг ARM системд ашиглагддаг GPU шинэ драйверуудыг нэмсэн;
  • NetBSD-г зочин үйлдлийн системээр ажиллуулахад зориулсан сайжруулсан дэмжлэг. fw_cfg төхөөрөмж (QEMU програм хангамжийн тохиргоо), Virtio MMIO болон ARM-д зориулсан PCI-ийн дэмжлэгийг нэмсэн. X86-д зориулсан HyperV-д дэмжлэг үзүүлсэн;
  • Гүйцэтгэлийг хянах тоолуурыг хэрэгжүүлсэн бөгөөд энэ нь цөм болон хэрэглэгчийн програмын гүйцэтгэлд шууд дүн шинжилгээ хийх боломжийг танд олгоно. Хяналтыг tprof командаар гүйцэтгэдэг. Armv7, Armv8 болон x86 (AMD болон Intel) платформуудыг дэмждэг;
  • x86_64 архитектурын хувьд нэмсэн цөмийн хаягийн орон зайг санамсаргүй болгох механизм (KASLR, Kernel Address Space Layout Randomization) нь ачаалах бүрт санах ойд цөмийн кодын санамсаргүй зохион байгуулалтыг бий болгосноор цөм дэх эмзэг байдлыг ашигладаг тодорхой төрлийн халдлагын эсэргүүцлийг нэмэгдүүлэх боломжийг олгодог;
  • x86_64 архитектурын дэмжлэгийг нэмсэн КЛЕАК, цөмийн санах ойн алдагдлыг илрүүлэх арга техник нь цөм дэх 25 гаруй алдааг олж засварлах боломжийг бидэнд олгосон;
  • X86_64 болон Aarch64 архитектурын хувьд KASan (Цөмийн хаяг ариутгагч) дибаг хийх механизм хэрэгжсэн бөгөөд энэ нь аль хэдийн суллагдсан санах ойн блокуудад хандах, буферийн халилт зэрэг санах ойн алдааг тодорхойлох боломжийг олгодог;
  • Цөм дэх тодорхойгүй зан үйлийн тохиолдлыг илрүүлэх KUBSAN (Цөмийн тодорхойгүй зан үйлийг ариутгагч) механизмыг нэмсэн.
  • X86_64 архитектурын хувьд цөмийн кодын хамрах хүрээг шинжлэхийн тулд KCOV (Цөмийн хамрах хүрээ) драйверийг хэрэгжүүлсэн;
  • Хэрэглэгчийн орон зайд програм ажиллуулах үед алдаа, гажигийг илрүүлэхийн тулд Userland Sanitizer нэмсэн;
  • Зарим төрлийн санах ойн алдаанаас овоо хамгаалах KHH (Kernel Heap Hardening) механизм нэмэгдсэн;
  • явуулсан сүлжээний стекийн аюулгүй байдлын аудит;
  • Сайжруулсан ptrace дибаг хийх хэрэгсэл;
  • Цөмийг NETISDN (драйверууд daic, iavc, ifpci, ifritz, iwic, isic), NETNATM, NDIS, SVR3, SVR4, n8, vm86 болон ipkdb зэрэг хуучин болон засварлагдаагүй дэд системүүдээс цэвэрлэсэн;
  • Пакет шүүлтүүрийн чадавхийг өргөжүүлж, гүйцэтгэлийг оновчтой болгосон NPF, энэ нь одоо анхдагчаар идэвхжсэн;
  • ZFS файлын системийн хэрэгжилт нь өдөр тутмын хэрэглээнд тохиромжтой байхаар шинэчлэгдсэн. ZFS-ээс ачаалах, үндсэн хуваалт дээр ZFS ашиглах боломж хараахан дэмжигдээгүй байна;
  • Broadcom утасгүй төхөөрөмжүүдэд зориулсан bwfm (Full-MAC), Amazon Elastic Network Adapter-д зориулсан ena, Mellanox ConnectX-4 Lx EN, ConnectX-4 EN, ConnectX-5 EN, ConnectX-6 EN Ethernet адаптеруудад зориулсан mcx зэрэг шинэ драйверууд нэмэгдсэн. ;
  • SATA дэд системийг дахин боловсруулж, NCQ-д дэмжлэг үзүүлж, хөтчөөс үүссэн алдааны зохицуулалтыг сайжруулсан;
  • Санал болгосон USB интерфэйс бүхий Ethernet адаптеруудын драйверуудыг бий болгох шинэ usbnet хүрээ;
  • GCC 7.4, GDB 8.3, LLVM 7.0.0, OpenSSL 1.1.1d, OpenSSH 8.0 болон SQLite 3.26.0 зэрэг гуравдагч талын бүрэлдэхүүн хэсгүүдийн шинэчилсэн хувилбарууд.

    Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх