Raporti mbi zhvillimin e FreeBSD për tremujorin e parë të vitit 2020

Publikuar raporti mbi zhvillimin e projektit FreeBSD nga janari deri në mars 2020. Ndër ndryshimet mund të veçohet:

  • Çështje tĂ« pĂ«rgjithshme dhe sistemore
    • Nga kodi burimor FreeBSD-CURRENT Ă«shtĂ« marrĂ« jashtĂ« grupi i kompilerĂ«ve GCC, si dhe utilitetet e panevojshme gperf, gcov dhe gtc (kompileri devicetree). TĂ« gjitha platformat qĂ« nuk mbĂ«shtesin Clang, janĂ« kaluar nĂ« pĂ«rdorimin e mjeteve tĂ« jashtme tĂ« ndĂ«rtimit, tĂ« instaluara nga porto. NĂ« sistemin bazĂ« Ă«shtĂ« ofruar njĂ« version i vjetĂ«ruar GCC 4.2.1, dhe integrimi i versioneve mĂ« tĂ« reja ka qenĂ« i pamundur pĂ«r shkak tĂ« kalimit tĂ« 4.2.2 nĂ« licencĂ«n GPLv3, e cila Ă«shtĂ« pranuar si e papranueshme pĂ«r komponentĂ«t bazĂ« tĂ« FreeBSD. Versionet aktuale tĂ« GCC, pĂ«rfshirĂ« GCC 9, mund tĂ« instalohen si mĂ« parĂ« nga paketat dhe portet.
    • NĂ« infrastrukturĂ«n e emulimit tĂ« ambientit Linux (Linuxulator) Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r thirrjen e sistemit sendfile, modalitetin TCP_CORK (kĂ«rkohet pĂ«r nginx), flamurin MAP_32BIT (zgjidh problemin me ekzekutimin e pakove me Mono nga Ubuntu Bionic). JanĂ« zgjidhur problemet me zgjidhjen e DNS-sĂ« duke pĂ«rdorur glibc mĂ« tĂ« re se 2.30 (pĂ«r shembull nga CentOS 8).
      NĂ« infrastrukturĂ«n e integrimit tĂ« vazhdueshĂ«m Ă«shtĂ« siguruar ekzekutimi i detyrave pĂ«r tĂ« ekzekutuar LTP (Projekti i Testimit tĂ« Linux) nĂ«n menaxhimin e Linuxulator pĂ«r tĂ« testuar pĂ«rmirĂ«simet qĂ« bĂ«hen nĂ« kod pĂ«r mbĂ«shtetje tĂ« Linux. Rreth 400 teste pĂ«rfundojnĂ« me gabime dhe kĂ«rkojnĂ« korrigjim (disa gabime shkaktohen nga njoftime tĂ« rreme, disa kĂ«rkojnĂ« korrigjime triviale, por ka edhe disa pĂ«r tĂ« cilat duhet tĂ« shtohet mbĂ«shtetje pĂ«r thirrje tĂ« reja tĂ« sistemit). ËshtĂ« punuar pĂ«r pastrimin e kodit tĂ« Linuxulator dhe thjeshtimin e debugimit. JanĂ« pĂ«rgatitur, por ende nuk janĂ« rishikuar, patch-e me mbĂ«shtetje pĂ«r atributet e zgjeruara dhe thirrjen e sistemit fexecve.
    • Vazhdon puna e grupit tĂ« punĂ«s, i krijuar pĂ«r tĂ« realizuar migrimin e kodit burimor nga sistemi i centralizuar i menaxhimit tĂ« kodit Subversion nĂ« sistemin e decentralizuar Git. Raporti me propozime pĂ«r migrimin Ă«shtĂ« nĂ« proces pĂ«rgatitjeje.
    • NĂ« rtld (linkuesi nĂ« ekzekutim) Ă«shtĂ« pĂ«rmirĂ«suar modaliteti i ekzekutimit tĂ« drejtpĂ«rdrejtĂ« ("/libexec/ld-elf.so.1 {rruga} {argumentet}").
    • Projektin e fuzzing-testimit tĂ« kernelit FreeBSD po zhvillohet duke pĂ«rdorur sistemin syzkaller. GjatĂ« periudhĂ«s raportuese, janĂ« eliminuar problemet nĂ« stakun rrjetĂ« dhe nĂ« kodin pĂ«r punĂ«n me tabelat e descriptorĂ«ve tĂ« skedarĂ«ve, tĂ« identifikuara me ndihmĂ«n e syzkaller. Pas diagnostikimit tĂ« gabimeve nĂ« stakun SCTP janĂ« shtuar ndryshime qĂ« e thjeshtojnĂ« depurimin. Rregulla janĂ« shtuar nĂ« grupin stress2 pĂ«r tĂ« identifikuar regresionet e mundshme. ËshtĂ« shtuar mbĂ«shtetje pĂ«r fuzzing-testimin e thirrjeve tĂ« reja sistemore, duke pĂ«rfshirĂ« copy_file_range(), __realpathat() dhe thirrjet e nĂ«n-sistemit Capsicum. Puna pĂ«r tĂ« pĂ«rfshirĂ« fuzzing-testimin e shtresĂ«s sĂ« emulimit Linux vazhdon. ËshtĂ« bĂ«rĂ« analiza dhe eliminimi i gabimeve tĂ« raportuara nĂ« raportet e fundit tĂ« Coverity Scan.
    • NĂ« sistemin e integrimit tĂ« vazhdueshĂ«m Ă«shtĂ« bĂ«rĂ« kalimi nĂ« ekzekutimin e tĂ« gjitha testeve tĂ« degĂ«s head vetĂ«m me pĂ«rdorimin e clang/lld. GjatĂ« testimit pĂ«r RISC-V, Ă«shtĂ« siguruar formimi i njĂ« imazhi tĂ« plotĂ« tĂ« diskut pĂ«r tĂ« nisur testet nĂ« QEMU duke pĂ«rdorur OpenSBI. JanĂ« shtuar detyra tĂ« reja pĂ«r tĂ« testuar imazhet dhe makinat virtuale powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Puna pĂ«r transferimin e grupit tĂ« testimit Kyua nga portet (devel/kyua) nĂ« sistemin bazĂ« po vazhdon pĂ«r tĂ« zgjidhur problemet (paketat instalohen shumĂ« ngadalĂ«) qĂ« dalin nga pĂ«rdorimi i Kyua nĂ« arkitektura tĂ« reja, pĂ«r zhvillimin e tĂ« cilave po punohet duke pĂ«rdorur emulatorin ose FPGA. Integrimi nĂ« sistemin bazĂ« do tĂ« thjeshtojĂ« ndjeshĂ«m testimin e platformave tĂ« integruara dhe lidhjen me sistemet e integrimit tĂ« vazhdueshĂ«m.
    • Ka filluar projekti pĂ«r optimizimin e performancĂ«s sĂ« drejtorit tĂ« urave rrjetĂ«. if_bridge, i cili pĂ«rdor njĂ« mutex pĂ«r tĂ« bllokuar tĂ« dhĂ«nat e brendshme, qĂ« nuk lejon arritjen e performancĂ«s sĂ« dĂ«shiruar nĂ« sistemet me njĂ« numĂ«r tĂ« madh jail-Ă«sh ose makinash virtuale, tĂ« cilat janĂ« tĂ« gjitha nĂ« njĂ« rrjet. NĂ« kĂ«tĂ« fazĂ«, janĂ« shtuar teste nĂ« kod pĂ«r tĂ« parandaluar shfaqjen e regresioneve gjatĂ« modernizimit tĂ« punĂ«s me bllokimet. Po shqyrtohet mundĂ«sia e pĂ«rdorimit tĂ« ConcurrencyKit pĂ«r tĂ« paralelizuar manipuluesit e transferimit tĂ« tĂ« dhĂ«nave (bridge_input(), bridge_output(), bridge_forward(), 
).
    • ËshtĂ« shtuar njĂ« thirrje e re sistemore sigfastblock, qĂ« lejon njĂ« rrjedhĂ« tĂ« pĂ«rcaktojĂ« njĂ« bllok tĂ« kujtesĂ«s pĂ«r njĂ« menaxher tĂ« shpejtĂ« sinjalesh me qĂ«llim pĂ«rmirĂ«simin e performancĂ«s sĂ« menaxherĂ«ve tĂ« pĂ«rjashtimeve.
    • NĂ« bĂ«rthamĂ« Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r instrukcionet atomike LSE (Large System Extension), tĂ« mbĂ«shtetura nga sistemet ARMv8.1. KĂ«to instrukcione janĂ« tĂ« nevojshme pĂ«r tĂ« rritur performancĂ«n kur punoni nĂ« plakat Cavium ThunderX2 dhe AWS Graviton 2. Ndryshimet e shtuar pĂ«rcaktojnĂ« praninĂ« e mbĂ«shtetjes LSE dhe pĂ«rfshijnĂ« dinamikisht zbatimin e atomike mbi bazĂ«n e tyre. GjatĂ« testimit, pĂ«rdorimi i LSE ka lejuar njĂ« ulje prej 15% tĂ« kohĂ«s sĂ« procesorit tĂ« shpenzuar gjatĂ« ndĂ«rtimit tĂ« bĂ«rthamĂ«s.
    • ËshtĂ« optimizuar performanca dhe Ă«shtĂ« zgjeruar funksionaliteti i veglave pĂ«r skedarĂ«t ekzekutivĂ« nĂ« formatin ELF.
      ËshtĂ« shtuar mbĂ«shtetje pĂ«r caching tĂ« informacionit pĂ«r debug DWARF, janĂ« zgjidhur problemet nĂ« utilitat elfcopy/objcopy, Ă«shtĂ« shtuar pĂ«rpunimi DW_AT_ranges,
      në readelf është realizuar mundësia e dekodimit të flagjeve PROTMAX_DISABLE, STKGAP_DISABLE dhe WXNEEDED, si dhe Xen dhe GNU Build-ID.
  • Siguria
    • PĂ«r tĂ« pĂ«rmirĂ«suar funksionimin e FreeBSD nĂ« mjediset cloud Azure, po punojmĂ« pĂ«r tĂ« siguruar mbĂ«shtetje pĂ«r mekanizmin HyperV Socket, i cili lejon pĂ«rdorimin e ndĂ«rfaqeve tĂ« soketĂ«ve pĂ«r bashkĂ«punim midis sistemit mik dhe mjedisit mik nĂ« mungesĂ« tĂ« konfigurimit tĂ« rrjetit.
    • Po punohet pĂ«r sigurimin e ndĂ«rtimeve tĂ« ripĂ«rsĂ«ritshme tĂ« FreeBSD, tĂ« cilat lejojnĂ« tĂ« konfirmohet qĂ« skedarĂ«t ekzekutivĂ« tĂ« komponenteve tĂ« sistemit janĂ« ndĂ«rtuar saktĂ«sisht nga kodet burimore tĂ« deklaruara dhe nuk pĂ«rmbajnĂ« ndryshime tĂ« jashtme.
    • NĂ« utilitarin elfctl Ă«shtĂ« shtuar mundĂ«sia e menaxhimit tĂ« aktivizimit tĂ« mekanizmave tĂ« tjera tĂ« mbrojtjes (ASLR, PROT_MAX, stack gap, W+X mapping) nĂ« nivelin e proceseve tĂ« veçanta
  • Sistemet e ruajtjes dhe skedarĂ«t e sistemeve
    • Po punohet pĂ«r realizimin e mundĂ«sisĂ« sĂ« funksionimit tĂ« NFS mbi njĂ« kanalin e enkriptuar tĂ« komunikimit mbi bazĂ«n e TLS 1.3, nĂ« vend tĂ« pĂ«rdorimit tĂ« Kerberos (modi sec=krb5p), i cili kufizohet nĂ« enkriptimin e vetĂ«m RPC-mesazheve dhe realizohet vetĂ«m nĂ« mĂ«nyrĂ« programore. Implementimi i ri pĂ«rdor stakun TLS tĂ« ofruar nga bĂ«rthama, duke lejuar pĂ«rdorimin e mjeteve tĂ« pĂ«rshpejtimit tĂ« harduerit. Kodi NFS mbi TLS Ă«shtĂ« gati pothuajse pĂ«r testim, por kĂ«rkon ende punĂ« pĂ«r tĂ« mbĂ«shtetur certifikatat e klientĂ«ve tĂ« nĂ«nshkruara dhe pĂ«r adaptimin e TLS-stakut tĂ« bĂ«rthamĂ«s pĂ«r dĂ«rgimin e tĂ« dhĂ«nave NFS (patch-e pĂ«r marrjen janĂ« gati).
  • MbĂ«shtetje pĂ«r pajisjet
    • Po punohet pĂ«r shtimin e mbĂ«shtetjes pĂ«r procesorĂ«t x86 Hygon tĂ« KinĂ«s bazuar nĂ« teknologjitĂ« AMD;
    • NĂ« kuadĂ«r tĂ« CheriBSD, njĂ« dege nga FreeBSD pĂ«r arkitekturĂ«n kĂ«rkimore tĂ« procesorĂ«ve CHERI (Kapaciteti Hardware Enhanced RISC Instructions), vazhdon zbatimi i mbĂ«shtetjes pĂ«r procesorin ARM Morello, i cili do tĂ« mbĂ«shtesĂ« sistemin e menaxhimit tĂ« hyrjes nĂ« kujtesĂ« CHERI, i bazuar nĂ« modelin e mbrojtjes sĂ« projektit Capsicum. Çipi Morello planifikon pritet tĂ« lĂ«shohet nĂ« vitin 2021. Aktualisht, puna pĂ«rqendrohet nĂ« shtimin e mbĂ«shtetjes pĂ«r platformĂ«n Arm Neoverse N1, qĂ« Ă«shtĂ« themeli i Morello. ËshtĂ« prezantuar njĂ« port fillestar i CheriBSD pĂ«r arkitekturĂ«n RISC-V. Vazhdon zhvillimi i CheriBSD pĂ«r prototipin referencĂ« CHERI mbi arkitekturĂ«n MIPS64.
    • Vazhdon portimi i FreeBSD pĂ«r SoC 64-bit NXP LS1046A mbi procesorin ARMv8 Cortex-A72 me njĂ« motor tĂ« integruar pĂ«r pĂ«rshpejtimin e pĂ«rpunimit tĂ« pacoveve tĂ« rrjetit, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 dhe USB 3.0. Aktualisht, po pĂ«rgatiten drejtuesit pĂ«r QorIQ dhe LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI pĂ«r transmetim nĂ« versionin kryesor tĂ« FreeBSD.
    • Derisa versioni 2.1.1 Ă«shtĂ« pĂ«rditĂ«suar drejtuesi ena me mbĂ«shtetje pĂ«r gjeneratĂ«n e dytĂ« tĂ« adaptatorĂ«ve tĂ« rrjetit ENAv2 (Elastic Network Adapter), tĂ« pĂ«rdorur nĂ« infrastrukturĂ«n Elastic Compute Cloud (EC2) pĂ«r tĂ« organizuar komunikimin midis nyjave EC2 me shpejtĂ«si deri nĂ« 25 Gb/s. PĂ«rgatitet njĂ« pĂ«rditĂ«sim nĂ« ENA 2.2.0.
    • Vazhdon pĂ«rmirĂ«simi i portit FreeBSD pĂ«r platformĂ«n powerpc64. VĂ«mendja kryesore Ă«shtĂ« pĂ«r tĂ« siguruar funksionim tĂ« mirĂ« nĂ« sistemet me procesorĂ« IBM POWER8 dhe POWER9. GjatĂ« periudhĂ«s raportuese, Ă«shtĂ« realizuar kalimi i FreeBSD-CURRENT pĂ«r tĂ« pĂ«rdorur kompiluesin LLVM/Clang 10.0 dhe lidhĂ«sin lld nĂ« vend tĂ« GCC. PĂ«r sistemet powerpc64, ABI-ja ELFv2 Ă«shtĂ« aktivizuar si e paracaktuar, dhe mbĂ«shtetje pĂ«r ELFv1 ABI Ă«shtĂ« ndĂ«rprerĂ«. NĂ« FreeBSD-STABLE, ende mbetet gcc 4.2.1. JanĂ« zgjidhur problemet me drejtuesit virtio, aacraid dhe ixl. NĂ« sistemet powerpc64 Ă«shtĂ« mundĂ«suar ekzekutimi i QEMU pa mbĂ«shtetje pĂ«r Huge Pages.
    • Vazhdon puna pĂ«r zbatimin e mbĂ«shtetjes pĂ«r arkitekturĂ«n RISC-V. NĂ« formĂ«n aktuale, FreeBSD tashmĂ« ngarkohet me sukses nĂ« pllakĂ«n SiFive Hifive Unleashed, pĂ«r tĂ« cilĂ«n janĂ« pĂ«rgatitur drejtuesit
      UART, SPI dhe PRCI, mbështet firmuerin OpenSBI dhe SBI 0.2. Gjatë periudhës raportuese, puna ishte përqendruar në migrimin nga GCC në clang dhe lld.
  • Aplikacione dhe sistemi i porteve
    • Koleksioni i porteve FreeBSD ka kaluar mbi 39 mijĂ« porte, numri i PR-ve tĂ« hapura tejkalon paksa 2400, nga tĂ« cilat 640 PR ende nuk janĂ« shqyrtuar. GjatĂ« periudhĂ«s raportuese janĂ« bĂ«rĂ« 8146 ndryshime nga 173 zhvillues. KatĂ«r pjesĂ«marrĂ«s tĂ« rinj (LoĂŻc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore) kanĂ« marrĂ« tĂ« drejtat e komituesit. ËshtĂ« shtuar flagu USES=qca dhe Ă«shtĂ« hequr flagu USES=zope (pĂ«r shkak tĂ« moskompatibilitetit me Python 3). Po punohet pĂ«r heqjen e Python 2.7 nga struktura e porteve — tĂ« gjitha portet e lidhura me Python 2 duhet tĂ« portohen nĂ« Python 3 ose do tĂ« hiqen. Menaxheri i paketave pkg Ă«shtĂ« pĂ«rditĂ«suar nĂ« versionin 1.13.2.
    • JanĂ« pĂ«rditĂ«suar komponentĂ«t e grumbullit grafik dhe portet qĂ« lidhen me xorg.
      serveri X.org është përditësuar në versionin 1.20.8 (më parë ishte versioni 1.18), çka e lejon FreeBSD të kalojë si standard në përdorimin e backend-it udev/evdev për përpunimin e pajisjeve të hyrjes. Paketa Mesa është kaluar si standard në përdorimin e shtrirjes DRI3 në vend të DRI2. Po punohet për të mbajtur të azhurnuara drejtoritë e grafikëve, grumbullin e pajisjeve të hyrjes dhe komponentët drm-kmod (port që siguron funksionimin e moduleve DRM amdgpu, i915 dhe radeon, duke përdorur kornizën linuxkpi për kompatibilitet me Menaxherin e Renderimit Direct të bërthamës Linux).
    • Desktopi KDE Plasma, KDE Frameworks, KDE Applications dhe Qt janĂ« mbajtur tĂ« azhurnuara dhe pĂ«rditĂ«suar nĂ« versionet e fundit. NjĂ« aplikacion i ri kstars (atlas yjesh) Ă«shtĂ« shtuar nĂ« porte.
    • JanĂ« bĂ«rĂ« punĂ« pĂ«r tĂ« eliminuar ndryshimet regresive nĂ« menaxherin e dritareve xfwm4, tĂ« cilat u shfaqĂ«n pas pĂ«rditĂ«simit tĂ« Xfce nĂ« versionin 4.14 (p.sh., u shfaqĂ«n artefakte gjatĂ« dekorimit tĂ« dritareve).
    • Porti me Wine Ă«shtĂ« pĂ«rditĂ«suar nĂ« versionin Wine 5.0 (mĂ« parĂ« ishte versioni 4.0.3).
    • Prej versionit 1.14, kompilatori i gjuhĂ«s Go ka shtuar mbĂ«shtetje zyrtare pĂ«r arkitekturĂ«n ARM64 pĂ«r FreeBSD 12.0.
    • OpenSSH nĂ« sistemin bazĂ« Ă«shtĂ« pĂ«rditĂ«suar nĂ« versionin 7.9p1.
    • ËshtĂ« realizuar dhe pĂ«rfshirĂ« nĂ« porte (devel/libsysctlmibinfo2) biblioteka sysctlmibinfo2, e cila ofron API pĂ«r qasje nĂ« sysctl MIB dhe kryen transkriptimin e emrave tĂ« sysctl nĂ« identifikuesit e objekteve (OID).
    • ËshtĂ« formuar njĂ« pĂ«rditĂ«sim i distribucionit NomadBSD 1.3.1, qĂ« pĂ«rbĂ«n njĂ« redaktim tĂ« FreeBSD, i pĂ«rshtatur pĂ«r t'u pĂ«rdorur si njĂ« desktop i lĂ«vizshĂ«m, duke u ngarkuar nga njĂ« disku USB. Mjedisi grafik bazohet nĂ« menaxherin e dritareve Openbox. PĂ«r montimin e disqeve pĂ«rdoret DSBMD (mbĂ«shtet montimin CD9660, FAT, HFS+, NTFS, Ext2/3/4), pĂ«r konfigurimin e rrjetit pa tel — wifimgr, dhe pĂ«r menaxhimin e volumit — DSBMixer.
    • Ka filluar puna nĂ« shkruan e dokumentacionit tĂ« plotĂ« pĂ«r menaxherin e mjediseve jail pot. Po pĂ«rgatitet pĂ«r lĂ«shimin e pot 0.11.0, nĂ« tĂ« cilin do tĂ« ketĂ« mjete pĂ«r menaxhimin e stekĂ«s rrjet.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster