Raporti i Progresit i FreeBSD T2019 XNUMX

botuar raport mbi zhvillimin e projektit FreeBSD nga prilli deri në qershor 2019. Ndër ndryshimet mund të vërejmë:

  • Pyetje të përgjithshme dhe të sistemit
    • Ekipi Core vendosi të krijojë një grup pune për të eksploruar mundësinë e zhvendosjes së kodit burim nga sistemi i centralizuar i kontrollit të burimit Subversion në sistemin e decentralizuar Git.
    • U krye testimi fuzz i kernelit FreeBSD duke përdorur sistemin syzkaller dhe një numër gabimesh të identifikuara u korrigjuan. U shtua një shtresë për testimin fuzzing të bibliotekave për pajtueshmërinë me një mjedis 32-bit në sistemet me një kernel 64-bit. Zbatoi aftësinë për të ekzekutuar syzkaller në makinat virtuale të bazuara në bhyve. Në fazën tjetër, është planifikuar të zgjerohet mbulimi i testimit të thirrjeve të sistemit, përdorimi i dezinfektuesit LLVM për të kontrolluar kernelin, përdorimi i netdump për të ruajtur deponitë e kernelit gjatë përplasjeve gjatë testimit të fuzzimit, etj.
    • Ka filluar puna për përditësimin e zbatimit zlib në nivel kernel. Për aksesin e kernelit në kodin zlib, direktoria contrib/zlib u riemërua në sys/contrib/zlib dhe skedari i kokës crc.h u riemërua gjithashtu për të shmangur konfliktin me zlib/crc.h. U pastrua kodi i vjetër që varej nga zlib dhe fryrja. Më pas, është planifikuar të sigurohet aftësia për të ndërtuar kernelin njëkohësisht me zlibin e vjetër dhe të ri për transferimin gradual në versionin e ri të funksioneve që përdorin kompresim;
    • Infrastruktura e emulimit të mjedisit Linux (Linuxulator) është përditësuar. Mbështetja e shtuar për mjetet e korrigjimit të Linux, siç është programi strace. Paketa linux-c7-strace është shtuar në portet, të cilat mund të përdoren për të gjurmuar skedarët e ekzekutueshëm të Linux në vend të shërbimeve standarde të truss dhe ktrace, të cilat ende nuk mund të deshifrojnë disa flamuj dhe struktura specifike për Linux. Përveç kësaj, paketa linux-ltp me ekzekutues të Projektit Test Linux është shtuar dhe çështjet e përputhshmërisë me ekzekutuesit e lidhur me versionet e reja të glibc janë zgjidhur;
    • Zbatimi i operacioneve të anulimit të vonuar në mekanizmin pmap është transferuar në përdorimin e një algoritmi të përpunimit të radhës që funksionon pa bravë, gjë që ka bërë të mundur zgjidhjen e problemeve të shkallëzueshmërisë gjatë kryerjes së një numri të madh operacionesh paralele të unmap;
    • Mekanizmi për bllokimin e vnode gjatë ekzekutimit të thirrjeve të sistemit të familjes execve() është ndryshuar, gjë që ka bërë të mundur arritjen e efikasitetit të rritur kur ekzekutoni njëkohësisht execve() për të njëjtin skedar (për shembull, kur kryeni operacione montimi me paralelizim e nisjes së përpiluesit);
  • siguri
    • Hipervizori bhyve vazhdon të përmirësojë mbështetjen për migrimin e drejtpërdrejtë të mjediseve të mysafirëve nga një host në tjetrin dhe funksionalitetin Save/Restore, i cili ju lejon të ngrini sistemin e mysafirëve, duke ruajtur gjendjen në një skedar dhe më pas të rifilloni ekzekutimin.
    • Nëpërmjet përdorimit të bibliotekës libvdsk, bhyve ka shtuar mbështetje për imazhet e diskut në formatin QCOW2. Kërkon instalim për të punuar
      modifikuar posaçërisht versioni i bhyve, i cili është konvertuar për të përdorur mbajtës të funksionimit të skedarëve bazuar në libvdsk. Gjatë periudhës së raportimit, libvdsk gjithashtu kreu punë për të thjeshtuar integrimin e mbështetjes për formatet e reja, përmirësimin e performancës së leximit dhe shkrimit dhe shtoi mbështetjen për Copy-On-Write. Nga detyrat e mbetura, vihet re integrimi i libvdsk në strukturën kryesore të bhyve;

    • Një sistem për mbledhjen e informacionit të trafikut është shtuar në porte
      Maltrail, i cili ju lejon të krijoni kurthe për kërkesat e rrjetit me qëllim të keq (IP-të dhe domenet nga listat e zeza janë të kontrolluara) dhe të dërgoni informacion në lidhje me aktivitetin e zbuluar në një server të centralizuar për bllokimin ose analizën e mëvonshme të përpjekjeve për sulm;

    • Platformat janë shtuar në portet për zbulimin e sulmeve, analizimin e regjistrave dhe monitorimin e integritetit të skedarëve Wazuh (fork i Ossec me mbështetje për integrimin me ELK-Stack);
  • Nënsistemi i rrjetit
    • Drejtuesi ena është përditësuar për të mbështetur gjeneratën e dytë të përshtatësve të rrjetit ENAv2 (Elastic Network Adapter) të përdorur në infrastrukturën Elastic Compute Cloud (EC2) për të organizuar komunikimin midis nyjeve EC2 me shpejtësi deri në 25 Gb/s. Mbështetja NETMAP i është shtuar drejtuesit ena.
    • FreeBSD HEAD miraton një pirg të ri MMC/SD, bazuar në kornizën CAM dhe ju lejon të lidhni pajisjet me një ndërfaqe SDIO (Secure Digital I/O). Për shembull, SDIO përdoret në modulet WiFi dhe Bluetooth për shumë tabela, të tilla si Raspberry Pi 3. Stacki i ri gjithashtu lejon që ndërfaqja CAM të përdoret për të dërguar komanda SD nga aplikacionet në hapësirën e përdoruesit, gjë që bën të mundur krijimin e pajisjes drejtuesit që funksionojnë në nivelin e përdoruesit. Puna ka filluar në krijimin e drejtuesve për çipat me valë Broadcom që funksionojnë në modalitetin FullMAC (në anën e çipit ai ekzekuton një pamje të sistemit të vet operativ me implementimet e stivës së tij wireless 802.11);
    • Po punohet për zbatimin e NFSv4.2 (RFC-7862) për FreeBSD. Versioni i ri i NFS shton mbështetje për funksionet posix_fadvise, posix_fallocate, mënyrat SEEKHOLE/SEEKDATA në lseek dhe funksionimin e kopjimit lokal të pjesëve të një skedari në server (pa transferim te klienti).

      FreeBSD aktualisht ofron mbështetje bazë për operacionet LayoutError, IOAdvise, Allocate dhe Copy. Gjithçka që mbetet është të zbatohet operacioni Seek i kërkuar për të përdorur lseek(SEEKHOLE/SEEKDATA) me NFS. Mbështetja NFSv4.2 është planifikuar për FreeBSD 13;

  • Magazinimi dhe sistemet e skedarëve
    • Projekti për të ripunuar drejtuesin për nënsistemin FUSE (File system in USERspace), i cili lejon krijimin e implementimeve të skedarëve në hapësirën e përdoruesit, është drejt përfundimit. Drejtuesi i dhënë fillimisht është i vjetëruar dhe përmban shumë defekte. Si pjesë e projektit të modernizimit të drejtuesve, u zbatua mbështetja për protokollin FUSE 7.23 (më parë u mbështet versioni 7.8, i lëshuar 11 vjet më parë), u shtua kodi për të kontrolluar të drejtat e aksesit në anën e kernelit ("-o default_permissions"), thirrjet për U shtuan VOP_MKNOD, VOP_BMAP dhe VOP_ADVLOCK, aftësia për të ndërprerë operacionet FUSE, mbështetje e shtuar për tubat pa emër dhe priza unix në siguresa, aftësia për të përdorur kqueue për /dev/fuse, lejimi i përditësimit të parametrave të montimit përmes "mount -u", shtoi mbështetje për eksportimin e siguresave nëpërmjet NFS, implementimi i kontabilitetit RLIMIT_FSIZE, shtimi i flamujve FOPEN_KEEP_CACHE dhe FUSE_ASYNC_READ, janë bërë optimizime të rëndësishme të performancës dhe është përmirësuar memoria e memories;
    • Mbështetja për operacionin BIO_DELETE është shtuar në kodin e ndërrimit të pager-it, i cili ju lejon të përdorni komandën TRIM kur hiqni blloqet nga disqet SSD për të rritur jetën e tyre të shërbimit.
  • Mbështetja e harduerit
    • Puna vazhdon për zbatimin e mbështetjes për ARM64 SoC Broadcom BCM5871X me procesorë ARMv8 Cortex-A57, që synojnë përdorimin në ruterë, porta dhe ruajtjen e rrjetit. Gjatë periudhës së raportimit, u përmirësua mbështetja për autobusët e brendshëm dhe të jashtëm iProc PCIe, u shtua mbështetja për BNXT Ethernet dhe po punohet për të përdorur motorin e integruar të kriptove për të përshpejtuar IPsec. Integrimi i kodit në degën HEAD pritet në gjysmën e dytë të vitit;
    • Ka filluar puna për mbështetjen për SoC 64-bit NXP LS1046A bazuar në procesorin ARMv8 Cortex-A72 me një motor të integruar të përshpejtimit të përpunimit të paketave në rrjet, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 dhe USB 3.0. Mbështetja për platformën bazë (SMP me shumë përdorues) dhe SATA 3.0 tashmë është zbatuar. Mbështetja për USB 3.0, SD/MMC dhe I2C është në zhvillim e sipër. Planet përfshijnë mbështetje për Ethernet, GPIO dhe QSPI. Përfundimi i punës dhe përfshirja në degën HEAD pritet në tremujorin e 4-t 2019.
    • Drejtuesit e përditësuar mlx5en dhe mlx5ib për përshtatësit Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex] dhe ConnectX-6 [Dx] Ethernet dhe InfiniBand. Mbështetje e shtuar për përshtatësit Mellanox Socket Direct (ConnectX-6), duke lejuar xhiro deri në 200 Gb/s në autobusin PCIe Gen 3.0. Për çipat BlueField me shumë bërthama, është shtuar mbështetja për drejtuesin RShim. Paketa mstflint me një sërë mjetesh diagnostikuese për përshtatësit Mellanox është shtuar në porte;
  • Aplikacionet dhe sistemi i porteve
    • Komponentët e pirgut grafikë janë përditësuar. Drejtuesi i drm.ko (Menaxheri i paraqitjes së drejtpërdrejtë) është transferuar nga kerneli Linux 5.0. Ky drejtues konsiderohet eksperimental dhe është shtuar në pemën e porteve si grafikë/drm-devel-kmod. Meqenëse drejtuesi përdor kornizën e përditësuar të KPI të Linux për të qenë në përputhje me API-në DRM të kernelit Linux, kërkohet që të ekzekutohet FreeBSD CURRENT. Shoferi vboxvideo.ko drm për GPU-në virtuale VirtualBox është transferuar gjithashtu nga Linux. Paketa Mesa është përditësuar për të lëshuar 18.3.2 dhe është zhvendosur për të përdorur LLVM nga porti devel/llvm80 në vend të devel/llvm60.
    • Pema e porteve FreeBSD ka tejkaluar 37000 porte, numri i PR-ve të pambyllura mbetet në 2146. Gjatë periudhës së raportimit, janë bërë 7837 ndryshime nga 172 zhvillues. Tre pjesëmarrës të rinj morën të drejtat e komitetit. Ndër përditësimet e rëndësishme të versioneve në porte janë: MySQL 5.7, Python 3.6, Ruby 2.5, Samba 4.8, Julia 1.0, Firefox 68.0, Chromium 75.0.3770.100. Të gjitha portat Go janë konvertuar për të përdorur flamurin "USES=go". U shtua flamuri "USES=cabal" te menaxheri i paketave Cabal i përdorur për kodin Haskell. Modaliteti i rreptë i mbrojtjes së pirgut është aktivizuar. Versioni i parazgjedhur i Python është 3.6 në vend të 2.7.
    • Publikimi i shërbimeve është përgatitur nsysctl 1.0, i cili ofron një analog të /sbin/sysctl që përdor libxo për daljen dhe sigurimin e një grupi të zgjeruar opsionesh. Nsysctl mund të përdoret për të monitoruar vizualisht gjendjen e vlerave sysctl dhe për të paraqitur informacionin mbi objektet në një formë të strukturuar. Prodhimi në formatet XML, JSON dhe HTML është i mundur;

Burimi: opennet.ru

Shto një koment