raporti mbi zhvillimin e projektit FreeBSD nga prilli deri në qershor 2019. Ndër ndryshimet e veçanta mund të përmenden:
- ĂĂ«shtje tĂ« pĂ«rgjithshme dhe sistemore
- Ekipa kryesore mori vendim për të krijuar një grup pune për të studiuar mundësinë e transferimit të teksteve burimore nga sistemin qendror të menaxhimit të të dhënave Subversion në një sistem të decentralizuar Git.
- U krye testimi fuzzing i bërthamës FreeBSD duke përdorur sistemin dhe u rregulluan një sëmundje e zbuluar gjatë këtij procesi. U shtua një ndërfaqe për testimin fuzzing të bibliotekave për përputhshmëri me ambientin 32-bit në sisteme me bërthamë 64-bit. U realizua mundësia e përdorimit të syzkaller në makina virtuale të bazuara në bhyve. Në fazën e ardhshme planifikohet të zgjerohet mbulimi i testimit të thirrjeve sistemore, të përdorim LLVM sanitizer për kontrollin e bërthamës, të përdorim netdump për ruajtjen e dump-eve të bërthamës gjatë dështimeve gjatë testimit fuzzing, dhe të tjera.
- Ka filluar puna pĂ«r pĂ«rditĂ«simin e implementimit tĂ« zlib nĂ« nivelin e bĂ«rthamĂ«s. PĂ«r qasje tĂ« bĂ«rthamĂ«s nĂ« kodin zlib, katalogu contrib/zlib Ă«shtĂ« riemĂ«ruar nĂ« sys/contrib/zlib, gjithashtu Ă«shtĂ« riemĂ«ruar skedari i titullit crc.h pĂ«r tĂ« shmangur konfliktin me zlib/crc.h. ĂshtĂ« bĂ«rĂ« pastrimi i kodit tĂ« vjetruar, i varur nga zlib dhe inflate. MĂ« tej, planifikohet tĂ« mundĂ«sohet ndĂ«rtimi i bĂ«rthamĂ«s nĂ« tĂ« njĂ«jtĂ«n kohĂ« me zlib tĂ« vjetĂ«r dhe tĂ« ri pĂ«r kalimin gradual nĂ« versionin e ri tĂ« funksioneve qĂ« pĂ«rdorin kompresim;
- Infrastruktura e emulimit tĂ« mjedisit Linux (Linuxulator) Ă«shtĂ« pĂ«rditĂ«suar. ĂshtĂ« zgjeruar mbĂ«shtetje pĂ«r mjetet debug tĂ« Linux, siç Ă«shtĂ« utilitarja strace. NĂ« porte Ă«shtĂ« shtuar paketa linux-c7-strace, e cila mund tĂ« pĂ«rdoret pĂ«r gjurmimin e skedarĂ«ve ekzekutues tĂ« Linux pĂ«rveç mjeteve standarde truss dhe ktrace, tĂ« cilat akoma nuk mund tĂ« dekodojnĂ« disa flamuj dhe struktura specifike pĂ«r Linux. PĂ«r mĂ« tepĂ«r, Ă«shtĂ« shtuar paketa linux-ltp me skedarĂ« ekzekutues tĂ« Linux Test Project dhe janĂ« zgjidhur problemet me pĂ«rputhshmĂ«rinĂ« me skedarĂ«t ekzekutues, tĂ« kompaktuar me versionet e reja tĂ« glibc;
- Implementimi i operacioneve të pastrimit të vonuar të lidhjeve me faqet fizike të memories (delayed invalidation) në mekanizmin pmap është përkthyer për të përdorur një algoritëm të përpunimit të radhës pa bllokime, që ka lejuar zgjidhjen e problemeve të shkallëzueshmërisë gjatë ekzekutimit të një numri të madh operacioneve unmap paralel;
- Mekanizmi i bllokimit të vnode është modifikuar gjatë ekzekutimit të thirrjeve sistemike të familjes execve(), që ka sjellë përmirësime në efikasitetin e punës gjatë ekzekutimit njëkohësisht të execve() për të njëjtin skedar (për shembull, gjatë operacioneve të ndërtimit me paralelizimin e nisjes së kompilatorit);
- Siguria
- Në hipervizorin bhyve është vazhduar përmirësimi i mbështetjes për Live-migrimin e mjediseve të mysafirëve nga një host në tjetër dhe funksionalitetit Save/Restore, që lejon ngrirjen e sistemit mysafir me ruajtjen e gjendjes në një skedar dhe më pas rifillimin e ekzekutimit.
- Përmes përdorimit të bibliotekës libvdsk, në bhyve është shtuar mbështetje për imazhet e diskut në formatin QCOW2. Për funksionimin e saj kërkohet instalimi
versioni bhyve, e cila është transformuar për të përdorur menaxhues të operacioneve të skedarëve të bazuar në libvdsk. Gjatë periudhës së raportimit, janë kryer gjithashtu punë në libvdsk për të thjeshtuar integrimin e mbështetjes për formate të reja, për të përmirësuar performancën e leximit dhe të shkruarit, dhe për të shtuar mbështetje për Copy-On-Write. Nga detyrat e mbetura, u theksua integrimi i libvdsk në përbërjen kryesore të bhyve; - Në porta është shtuar një sistem mbledhjeje informacioni për trafikun.
, i cili lejon krijimin e kurthesh për kërkesat e dëmshme në rrjet (kontrollohen IP-të dhe domene nga lista e zezë) dhe dërgon informacionin për aktivitetin e identifikuar në një server të centralizuar për bllokim ose analizë të përpjekjeve të sulmeve; - Në porta është shtuar një platformë për identifikimin e sulmeve, analizimin e logëve dhe monitorimin e integritetit të skedarëve. (fork i Ossec me mbështetje për integrimin me );
- Sistemi i rrjetit
- Drejtuesi ena është përmirësuar me mbështetje për adaptatorë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 lidhjeve midis nyjeve EC2 me shpejtësi deri në 25 Gb/s. Në drejtuesin ena është shtuar mbështetje për NETMAP.
- Në FreeBSD HEAD është përfshirë një grackë e re MMC/SD, e bazuar në kornizën CAM, e cila lejon lidhjen e pajisjeve me ndërfaqe SDIO (Secure Digital I/O). Për shembull, SDIO përdoret në modulat WiFi dhe Bluetooth për shumë bord, si Raspberry Pi 3. Gracka e re gjithashtu lejon përdorimin e ndërfaqes CAM për të dërguar komanda SD nga aplikacionet në hapësirën e përdoruesit, duke mundësuar krijimin e pajisjeve që funksionojnë në nivelin e përdoruesit. Ka filluar puna për krijimin e drejtpërdrejtuesve për çipat e palosshëm Broadcom, që funksionojnë në modin FullMAC (në anën e çipit ekzekutohet një sistem operativ i ngjashëm me implementimin e grackës wireless 802.11);
- Po punohet për implementimin e NFSv4.2 (RFC-7862) për FreeBSD. Në versionin e ri NFS është shtuar mbështetje për funksionet posix_fadvise, posix_fallocate, modalitetet SEEKHOLE/SEEKDATA në lseek, operacionin e kopjimit lokal të pjesëve të skedarit në server (pa e transferuar te klienti).
Aktualisht, për FreeBSD është implementuar mbështetje bazike për operacionet LayoutError, IOAdvise, Allocate dhe Copy. Duhet të implementohet operacioni Seek, i nevojshëm për përdorimin e lseek(SEEKHOLE/SEEKDATA) me NFS. Mbështetje për NFSv4.2 planifikohet të përfshihet në FreeBSD 13;
- Sistem storage dhe sisteme skedarësh
- Projekti për ripërtëritjen e drejtuesit të nën-sistemit FUSE (File system in USErspace) po përfundon, i cili mundëson krijimin e implementimeve të sistemeve të skedarëve në hapësirën e përdoruesit. Drejtuesi fillestar ishte i tejkaluar dhe kishte shumë defekte. Në kuadër të projektit për modernizimin e drejtuesit, është implementuar mbështetje për protokollin FUSE 7.23 (më parë është mbështetur versione 7.8, e 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ë shtetur mbështetje për kanalet e paemëruara dhe unix-sockets në fusefs, është krijuar mundësia e përdorimit të kqueue për \/dev\/fuse, është lejuar përditësimi i parametrave të montimit përmes "mount -u", është shtuar mbështetje për eksportimin 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-ut;
- Në kodin e shtypjes së faqeve të memories në skedarin swap është shtuar mbështetje për operacionin BIO_DELETE, i cili lejon përdorimin e urdhrit TRIM gjatë fshirjes së blloqeve nga SSD për të zgjatur jetën e tyre.
- Mbështetje për pajisjet
- Ka vazhduar puna për realizimin e mbështetjes për ARM64 SoC Broadcom BCM5871X me procesorët ARMv8 Cortex-A57, të destinuar për përdorim në routera, porta dhe ruajtje në rrjet. Gjatë periudhës raportuese, është përmirësuar mbështetja për autobuzat 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ë kriptografisë së integruar për përshpejtimin e IPsec. Integrimi i kodit në degën HEAD pritet në gjysmën e dytë të vitit.
- Ka filluar puna pĂ«r mbĂ«shtetje tĂ« SoC NXP LS1046A 64-bit, i bazuar nĂ« procesorin ARMv8 Cortex-A72 me motor tĂ« integruar pĂ«r pĂ«rshpejtimin e pĂ«rpunimit tĂ« paketave rrjet, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 dhe USB 3.0. ĂshtĂ« realizuar mbĂ«shtetje pĂ«r platformĂ«n bazĂ« (multi-user SMP) dhe SATA 3.0. NĂ« zhvillim Ă«shtĂ« mbĂ«shtetje pĂ«r USB 3.0, SD/MMC dhe I2C. NĂ« planet Ă«shtĂ« mbĂ«shtetje pĂ«r Ethernet, GPIO dhe QSPI. Pritet pĂ«rfundimi i punĂ«s dhe pĂ«rfshirja nĂ« degĂ«n HEAD nĂ« tremujorin e katĂ«rt tĂ« vitit 2019.
- Drejtuesit mlx5en dhe mlx5ib pĂ«r kartelat Ethernet dhe InfiniBand tĂ« Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex] dhe ConnectX-6 [Dx] janĂ« azhurnuar. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r kartelat Mellanox Socket Direct (ConnectX-6), qĂ« mundĂ«sojnĂ« njĂ« latencĂ« deri nĂ« 200Gb/s nĂ« PCIe Gen 3.0. PĂ«r çipat shumĂ«-nĂ«nshtesĂ« "BlueField", Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r drejtuesin RShim. NĂ« porte Ă«shtĂ« shtuar paketa mstflint me njĂ« grup veglesh diagnostikuese pĂ«r kartelat Mellanox;
- Aplikacionet dhe sistemi i porteve
- Komponentët e grafikës janë azhurnuar. Drejtuesi drm.ko (Menaxheri i Renderimit të Drejtë) është portuar nga bërthama Linux 5.0. Ky drejtues konsiderohet eksperimental dhe është shtuar në pemën e porteve si graphics/drm-devel-kmod. Duke qenë se drejtuesi përdor kornizën e përmirësuar të Linux KPI për pajtueshmëri me API-në DRM të bërthamës Linux, kërkohet FreeBSD CURRENT për funksionimin. Gjithashtu është portuar drejtuesi drm vboxvideo.ko për GPU-në virtuale VirtualBox. Paketa Mesa është azhurnuar në versionin 18.3.2 dhe është kaluar në përdorimin e LLVM nga porta devel/llvm80 në vend të devel/llvm60.
- Pema e porteve FreeBSD ka kaluar kufirin prej 37000 porte, numri i PR-ve që nuk janë mbyllur është 2146. Gjatë raportit, janë bërë 7837 ndryshime nga 172 zhvillues. Të tre anëtarët e rinj morën të drejtat e komitimit. Ndër azhurnimet e rëndësishme të Versioneve në porte, shënohen: 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ë të konvertuara për të përdorur flamurin "USES=go". Flamuri "USES=cabal" është shtuar për menaxherin e paketave Cabal, i cili përdoret për kodin në Haskell. Mënyra e rreptë e mbrojtjes së grumbullit është aktivizuar. Në parazgjedhje, versioni Python 3.6 propozoni në vend të 2.7.
- ĂshtĂ« pĂ«rgatitur lĂ«shimi i utility-t , qĂ« ofron njĂ« zĂ«vendĂ«sim /sbin/sysctl, duke pĂ«rdorur pĂ«r daljen dhe duke ofruar njĂ« set tĂ« zgjeruar mundĂ«sish. Nsysctl mund tĂ« pĂ«rdoret pĂ«r tĂ« monitoruar vizualisht gjendjen e vlerave sysctl dhe pĂ«r tĂ« paraqitur informacionin mbi objektet nĂ« njĂ« format tĂ« strukturuar. Ka mundĂ«si pĂ«r dalje nĂ« formatet XML, JSON dhe HTML;
Burimi: opennet.ru
