Raporti për zhvillimin e projektit FreeBSD nga prilli në qershor 2019. Ndër ndryshimet mund të theksohet:
- ĂĂ«shtje tĂ« pĂ«rgjithshme dhe sistemore
- Ekipi kryesor mori vendimin për krijimin e një grupi të punës për të studiuar mundësitë e transferimit të teksteve burimore nga sistemi i centralizuar i menaxhimit të teksteve Subversion në sistemin e decentralizuar Git.
- U krye testimi fuzzing i bĂ«rthamĂ«s FreeBSD duke pĂ«rdorur sistemin dhe u korrigjua njĂ« numĂ«r gabimesh qĂ« u zbuluan gjatĂ« kĂ«saj kohe. U shtua njĂ« shtresĂ« pĂ«r testimin fuzzing tĂ« bibliotekave pĂ«r tĂ« siguruar pĂ«rputhshmĂ«ri me mjedisin 32-bit nĂ« sistemet me bĂ«rthamĂ« 64-bit. Realizohet mundĂ«sia e запŃŃĐșŃ syzkaller nĂ« makina virtuale nĂ« bazĂ« tĂ« bhyve. NĂ« fazĂ«n e ardhshme, planifikohet zgjerimi i mbulimit tĂ« thirrjeve tĂ« sistemit pĂ«rmes testimit, angazhimi i LLVM sanitizer pĂ«r verifikimin e bĂ«rthamĂ«s, pĂ«rdorimi i netdump pĂ«r ruajtjen e dheut tĂ« bĂ«rthamĂ«s gjatĂ« dĂ«shtimeve gjatĂ« testimit fuzzing, etj.
- Ka filluar puna për azhurnimin e implementimit të zlib në nivelin e bërthamës. Për të lejuar bërthamën të aksesojë kodin e zlib, katalogu contrib/zlib është ribërë në sys/contrib/zlib, gjithashtu është ribërë file-i header crc.h për të shmangur konfliktin me zlib/crc.h. U pastrua kodi i vjetër, i varur nga zlib dhe inflate. Më pas, planifikohet të sigurohet mundësia e ndërtimit të bërthamës njëkohësisht me zlib e vjetër dhe të re për transferimin gradual në versionin e ri të funksioneve që përdorin kompresimin;
- Infrastruktura e simulimit të mjedisit Linux (Linuxulator) është përmirësuar. Ndyshimi i mbështetjes për mjetet e dbg Linux, siç është utilitarja strace, është zgjeruar. Në porte është shtuar paketa linux-c7-strace, e cila mund të përdoret për të gjurmuar skedarët ekzekutivë të Linuxit, në vend të mjeteve standarde truss dhe ktrace, të cilat ende nuk mund të dekodojnë disa flaga dhe struktura specifike për Linux. Për më tepër, është shtuar paketa linux-ltp me skedarët ekzekutivë të Projektit të Testit të Linuxit dhe janë zgjidhur problemet me përputhshmërinë me skedarët ekzekutivë të kompozuar me versionet e reja të glibc;
- Implementimi i operacioneve të pastrimit të vonuar të lidhjeve me faqe fizike të memories (delayed invalidation) në mekanizmin pmap është kaluar në përdorimin e algoritmit të përpunimit të radhës, i cili punon pa bllokime, duke zgjidhur kështu problemet me shkallëzimin gjatë kryerjes së një numri të madh operacionesh paralel unmap.
- Mekanizmi i bllokimit të vnode është ndryshuar gjatë ekzekutimit të thirrjeve sistemike të familjes execve(), çka ka lejuar përmirësimin e efikasitetit të funksionimit kur ekzekutohen execve për të njëjtin skedar (për shembull, gjatë operacioneve të ndërtimit me paralelizimin e nisjes së kompilerit);
- Siguria
- Në hiperkrizorin bhyve vazhdohet përmirësimi i mbështetjes për Migrimin Live të mjediseve të mikpritura nga një host në tjetrin dhe funksionalitetit Save/Restore, i cili lejon ngrirjen e sistemit të mikpritës me ruajtjen e gjendjes në një skedar, dhe më pas rinisjen e ekzekutimit.
- Përmes përdorimit të bibliotekës libvdsk, në bhyve është shtuar mbështetje për imazhet e disqeve në formatin QCOW2. Për funksionimin e saj kërkohet instalimi
të bhyve, i cili është transferuar në përdorimin e trajtuesve të operacioneve me skedarë bazuar në libvdsk. Gjatë periudhës raportuese, në libvdsk është punuar gjithashtu për thjeshtimin e integrimit të mbështetjes për formate të reja, është përmirësuar performanca e leximit dhe të shkruarit, është shtuar mbështetje për Copy-On-Write. Nga detyrat e mbetura, shënohet integrimi i libvdsk në përbërjen kryesore të bhyve; - Në porte është shtuar një sistem për grumbullimin e informacionit mbi trafikun
, i cili lejon krijimin e kurtheve për kërkesat e dëmshme të rrjetit (kontrollohen IP dhe domainet nga listat e zeza) dhe dërgimin e informacionit mbi aktivitetin e identifikuar në një server të centralizuar për bllokimin e mëtejshëm ose analizimin e përpjekjeve për sulme; - Në porte është shtuar një platformë për identifikimin e sulmeve, analizën e logeve dhe ndjekjen e integritetit të skedarëve (fork i Ossec me mbështetje për integrimin me );
- Sistemi rrjetor
- Drejtori ena është përmirësuar me mbështetje për adapterët e rrjetit të gjeneratës së dytë ENAv2 (Elastic Network Adapter), të përdorur në infrastrukturën Elastic Compute Cloud (EC2) për organizimin e komunikimit midis nyjeve EC2 me shpejtësi deri në 25 Gb/s. Në drejtori ena është shtuar mbështetje për NETMAP.
- Në FreeBSD HEAD u miratua një grumbull i ri MMC/SD, i bazuar në framerin CAM, që lejon lidhjen e pajisjeve me ndërfaqen SDIO (Secure Digital I/O). Për shembull, SDIO përdoret në modulet WiFi dhe Bluetooth për shumë panele, si Raspberry Pi 3. Grumbulli i ri gjithashtu lejon përdorimin e ndërfaqes CAM për të dërguar komandat SD nga aplikacionet në hapësirën e përdoruesit, që ofron mundësinë për të krijuar drejtues pajisjesh që funksionojnë në nivele përdoruesi. Puna ka filluar për krijimin e drejtuesve për çipat e pajisjeve wireless Broadcom, që punojnë në modalitetin FullMAC (në anën e çipit ekzekutohet një sistem operativ i ngjashëm me zbatimin e grumbullit të tij të wireless 802.11);
- Po punohet për implementimin e NFSv4.2 (RFC-7862) për FreeBSD. Në versionin e ri të NFS është shtuar mbështetje për funksionet posix_fadvise, posix_fallocate, modet SEEKHOLE/SEEKDATA në lseek, operacionin e kopjimit lokal të pjesëve të skedarit në server (pa e dërguar tek klienti).
Aktualisht, për FreeBSD është implementuar mbështetje bazë për operacionet LayoutError, IOAdvise, Allocate dhe Copy. Mbete të realizohet operacioni Seek, i nevojshëm për përdorimin e lseek(SEEKHOLE/SEEKDATA) me NFS. Mbështetje për NFSv4.2 pritet të përfshihet në FreeBSD 13;
- Sistemet e ruajtjes dhe skedarët e sistemeve
- Projekti pĂ«r ripĂ«rtritjen e drejtuesit tĂ« nĂ«n sistemit FUSE (File system in USErspace) Ă«shtĂ« afĂ«r pĂ«rfundimit, duke lejuar krijimin e implementimeve tĂ« sistemeve tĂ« skedarĂ«ve nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit. Drejtuesi fillestar ishte i ndarĂ« dhe pĂ«rmbante shumĂ« probleme. NĂ« kuadĂ«r tĂ« projektit tĂ« modernizimit tĂ« drejtuesit Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r protokollin FUSE 7.23 (mĂ« parĂ« ishte mbĂ«shtetur versioni 7.8, i lĂ«shuar 11 vjet mĂ« parĂ«), Ă«shtĂ« shtuar kodi pĂ«r verifikimin e tĂ« drejtave tĂ« qasjes nĂ« anĂ«n e bĂ«rthamĂ«s (â-o default_permissionsâ), janĂ« shtuar thirrjet VOP_MKNOD, VOP_BMAP dhe VOP_ADVLOCK, Ă«shtĂ« siguruar mundĂ«sia e ndĂ«rprerjes sĂ« operacioneve FUSE, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r kanalet e paemĂ«rtuara dhe soketĂ«t unix nĂ« fusefs, Ă«shtĂ« mundĂ«suar pĂ«rdorimi i kqueue pĂ«r /dev/fuse, Ă«shtĂ« lejuar pĂ«rditĂ«simi i parametrave tĂ« montimit pĂ«rmes âmount -uâ, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r eksportin e fusefs pĂ«rmes NFS, Ă«shtĂ« realizuar llogaritja e RLIMIT_FSIZE, janĂ« shtuar flamujt FOPEN_KEEP_CACHE dhe FUSE_ASYNC_READ, janĂ« bĂ«rĂ« optimizime tĂ« rĂ«ndĂ«sishme tĂ« performancĂ«s dhe Ă«shtĂ« pĂ«rmirĂ«suar organizimi i caching;
- Në kodin e ndërrimit të faqeve të memories në seksionin e ndihmës (swap pager) është shtuar mbështetje për operacionin BIO_DELETE, i cili lejon përdorimin e komandës TRIM gjatë heqjes së blloqeve nga diskët SSD për të zgjeruar jetësinë e tyre.
- Mbështetje për pajisjet
- ĂshtĂ« vazhduar puna pĂ«r implementimin e mbĂ«shtetjes pĂ«r ARM64 SoC Broadcom BCM5871X me procesorĂ«t ARMv8 Cortex-A57, tĂ« dedikuar pĂ«r pĂ«rdorim nĂ« routera, gateway dhe ruajtje nĂ« rrjet. GjatĂ« periudhĂ«s raportuese Ă«shtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r autobusĂ«t e brendshĂ«m dhe tĂ« jashtĂ«m iProc PCIe, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r BNXT Ethernet, dhe po punohet pĂ«r aktivizimin e motorit tĂ« integruar tĂ« kriptimit pĂ«r pĂ«rshpejtimin e IPsec. Pritet qĂ« integrimi i kodit nĂ« degĂ«n HEAD tĂ« ndodhĂ« nĂ« gjysmĂ«n e dytĂ« tĂ« vitit;
- Ka filluar puna për mbështetje të 64-bit SoC NXP LS1046A me procesorin ARMv8 Cortex-A72 me motor të integruar për përshpejtimin e trajtimit të paketave rrjet, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 dhe USB 3.0. Të gjitha mbështetjet për platformën bazë (multi-user SMP) dhe SATA 3.0 janë realizuar. Aktualisht është në zhvillim mbështetja për USB 3.0, SD/MMC dhe I2C. Në plan është mbështetja për Ethernet, GPIO dhe QSPI. Pritet përfundimi dhe përfshirja në degën HEAD në tremujorin e katërt të vitit 2019.
- Drejtuesit mlx5en dhe mlx5ib pĂ«r adapterĂ«t Ethernet dhe InfiniBand Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex] dhe ConnectX-6 [Dx] janĂ« pĂ«rmirĂ«suar. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r adapterĂ«t Mellanox Socket Direct (ConnectX-6), duke lejuar arritjen e kapacitetit deri nĂ« 200Gb/s nĂ« autobusin PCIe Gen 3.0. PĂ«r çipet shumĂ«kernelen 'BlueField' Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r drejtuesin RShim. NĂ« porte Ă«shtĂ« shtuar paketi mstflint me njĂ« grup mjetesh diagnostike pĂ«r adapterĂ«t Mellanox;
- Aplikacione dhe sistemi i porteve
- KomponentĂ«t e shtratit grafik janĂ« pĂ«rmirĂ«suar. ĂshtĂ« realizuar portimi i drejtuesit drm.ko (Direct Rendering Manager) nga bĂ«rthama Linux 5.0. Ky drejtues konsiderohet eksperimental dhe Ă«shtĂ« shtuar nĂ« degĂ«n e porteve si graphics/drm-devel-kmod. Duke qenĂ« se drejtuesi pĂ«rdor kuadrin e pĂ«rmirĂ«suar Linux KPI pĂ«r pajtueshmĂ«ri me API DRM tĂ« bĂ«rthamĂ«s Linux, kĂ«rkohet FreeBSD CURRENT pĂ«r funksionimin. Po ashtu Ă«shtĂ« portuar drejtuesi drm vboxvideo.ko pĂ«r GPU virtuale VirtualBox nga Linux. Paketa Mesa Ă«shtĂ« pĂ«rmirĂ«suar deri nĂ« lĂ«shimin 18.3.2 dhe Ă«shtĂ« transferuar nĂ« pĂ«rdorimin e LLVM nga porta devel/llvm80 nĂ« vend tĂ« devel/llvm60.
- Dega e porteve FreeBSD ka kaluar pragun prej 37000 porte, numri i PR-ve tĂ« hapura qĂ«ndron nĂ« 2146. GjatĂ« periudhĂ«s raportuese janĂ« bĂ«rĂ« 7837 ndryshime nga 172 zhvillues. TĂ« tre pjesĂ«marrĂ«sit e rinj kanĂ« fituar tĂ« drejtat e angazhimit. NdĂ«r pĂ«rmirĂ«simet e rĂ«ndĂ«sishme tĂ« versioneve nĂ« porte pĂ«rmenden: 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 portet nĂ« gjuhĂ«n Go janĂ« transferuar pĂ«r tĂ« pĂ«rdorur flag-un âUSES=goâ. ĂshtĂ« shtuar flag-u âUSES=cabalâ pĂ«r menaxherin e paketave Cabal, i pĂ«rdorur pĂ«r kodin nĂ« Haskell. ĂshtĂ« pĂ«rfshirĂ« njĂ« mod i rreptĂ« pĂ«r mbrojtjen e stek-ut. Versioni Python 3.6 Ă«shtĂ« ofruar si versioni parazgjedhĂ«s nĂ« vend tĂ« 2.7.
- Lëshimi i utilitarit është përgatitur , duke ofruar një alternativë të "/sbin/sysctl", që përdor për të shfaqur dhe ofron një grup të zgjeruar opsionesh. Nsysctl mund të përdoret për monitorimin vizual të gjendjes së vlerave sysctl dhe përpara informacionin në lidhje me objektet në një format të strukturuar. Ka mundësi për formatet XML, JSON dhe HTML;
Burimi: opennet.ru
