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ë theksohet:

  • Çështje tĂ« pĂ«rgjithshme dhe sistemore
    • Nga druri i teksteve burimore FreeBSD-CURRENT Ă«shtĂ« hequr pack-i i kompilerĂ«ve GCC, si dhe utilitetet e papĂ«rdorura 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Ă« instaluar nga portet. NĂ« sistemin bazĂ« Ă«shtĂ« dorĂ«zuar njĂ« version i vjetĂ«r i 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 se nuk Ă«shtĂ« e pranueshme pĂ«r komponentĂ«t bazĂ« tĂ« FreeBSD. Versionet aktuale tĂ« GCC, duke pĂ«rfshirĂ« GCC 9, si mĂ« parĂ«, mund tĂ« instalohen nga pakot dhe portet.
    • NĂ« infrastrukturĂ«n e emulimit tĂ« ambientit Linux (Linuxulator) Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r thirrjen sistemore sendfile, modalitetin TCP_CORK (i nevojshĂ«m pĂ«r nginx), flamurin MAP_32BIT (çmon problemimin e nisjes sĂ« paketave me Mono nga Ubuntu Bionic). JanĂ« zgjidhur problemet me zgjidhjen e DNS kur pĂ«rdoret glibc mbi 2.30 (p.sh. nga CentOS 8).
      NĂ« infrastrukturĂ«n e integrimit tĂ« vazhdueshĂ«m Ă«shtĂ« siguruar ekzekutimi i detyrave pĂ«r tĂ« drejtuar LTP (Projekti i Testimit tĂ« Linux) nĂ«n menaxhimin e Linuxulator pĂ«r testimin e pĂ«rmirĂ«simeve qĂ« po bĂ«hen nĂ« kod pĂ«r mbĂ«shtetje tĂ« Linux. Rreth 400 teste pĂ«rfundojnĂ« me gabim dhe kĂ«rkojnĂ« korrigjim (disa gabime shkaktohen nga aktivizime tĂ« gabuara, disa kĂ«rkojnĂ« korrigjime triviale, por ka edhe ato qĂ« pĂ«r zgjidhjen e tyre duhet tĂ« shtohet mbĂ«shtetje pĂ«r thirrje tĂ« reja sistemore). ËshtĂ« punuar nĂ« pastrimin e kodit tĂ« Linuxulator dhe nĂ« thjeshtimin e depurimit. JanĂ« pĂ«rgatitur, por ende nuk janĂ« rishikuar, patch-e me mbĂ«shtetje pĂ«r atribute tĂ« zgjeruara dhe thirrjen sistemore fexecve.
    • Vazhdon takimet e grupit tĂ« punĂ«s, i krijuar pĂ«r tĂ« kryer migrimin e teksteve burimore nga sistemi i centralizuar i menaxhimit tĂ« teksteve Subversion nĂ« njĂ« sistem tĂ« decentralizuar Git. Raporti me propozimet pĂ«r migrim Ă«shtĂ« nĂ« proces pĂ«rgatitjeje.
    • NĂ« rtld (linkuesi nĂ« runtime) Ă«shtĂ« pĂ«rmirĂ«suar modaliteti i ekzekutimit direkt ("/libexec/ld-elf.so.1 {rruga} {argumentet}").
    • Projekti pĂ«r testimin e fuzzing-ut tĂ« bĂ«rthamĂ«s FreeBSD vazhdon tĂ« zhvillohet duke pĂ«rdorur sistemin syzkaller. GjatĂ« periudhĂ«s sĂ« raportit janĂ« zgjidhur problemet nĂ« grilĂ«n rrjet dhe kodin pĂ«r punĂ«n me tabelat e descriptorĂ«ve tĂ« skedarĂ«ve, identifikuar me ndihmĂ«n e syzkaller. Pas diagnostikimit tĂ« gabimeve nĂ« grilĂ«n SCTP janĂ« shtuar ndryshime qĂ« thjeshtojnĂ« depurimin. NĂ« grupin stress2 janĂ« shtuar rregulla pĂ«r tĂ« zbuluar regresione tĂ« mundshme. ËshtĂ« shtuar mbĂ«shtetje pĂ«r testimin e fuzzing-ut tĂ« thirrjeve tĂ« reja sistemore, duke pĂ«rfshirĂ« copy_file_range(), __realpathat() dhe thirrjet e nĂ«n-sistemit Capsicum. Vazhdon puna pĂ«r tĂ« mbuluar fuzzing-un e shtresĂ«s sĂ« emulimit tĂ« Linux. JanĂ« bĂ«rĂ« shqyrtime dhe janĂ« zgjidhur gabimet e raportuara nĂ« raportet e reja tĂ« Coverity Scan.
    • Sistemi i integrimit tĂ« vazhdueshĂ«m ka kaluar nĂ« ekzekutimin e tĂ« gjitha testeve tĂ« degĂ«s kryesore 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Ă« ekzekutuar testet nĂ« QEMU me pĂ«rdorimin e OpenSBI. JanĂ« shtuar detyra tĂ« reja pĂ«r testimin e imazheve dhe makinave virtuale powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • ËshtĂ« duke u punuar pĂ«r transferimin e setit tĂ« testeve Kyua nga portet (devel/kyua) nĂ« sistemin bazĂ« pĂ«r tĂ« zgjidhur problemet (paketat instalohen shumĂ« ngadalĂ«) qĂ« shfaqen gjatĂ« pĂ«rdorimit tĂ« Kyua nĂ« arkitekturĂ« tĂ« reja, pĂ«r zhvillimin e tĂ« cilave po punohet me emulues ose FPGA. Integrimi nĂ« sistemin bazĂ« do tĂ« thjeshtĂ«sojĂ« ndjeshĂ«m testimin e platformave tĂ« integruara dhe lidhjen me sistemet e integrimit tĂ« vazhdueshĂ«m.
    • Ka nisur njĂ« projekt pĂ«r optimizimin e performancĂ«s sĂ« driverit tĂ« urave rrjetĂ«sore. 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 tĂ« ostrĂ«ve jail ose makinave virtuale tĂ« bashkuara nĂ« njĂ« rrjet. NĂ« kĂ«tĂ« fazĂ« janĂ« shtuar teste nĂ« kod pĂ«r tĂ« parandaluar lindjen e regresioneve gjatĂ« modernizimit tĂ« funksionimit me bllokime. Po shqyrtohet mundĂ«sia e pĂ«rdorimit tĂ« ConcurrencyKit pĂ«r tĂ« paralelizuar trajtuesit e transfertĂ«s sĂ« tĂ« dhĂ«nave (bridge_input(), bridge_output(), bridge_forward(), ...).
    • ËshtĂ« shtuar njĂ« thirrje e re sistemore sigfastblock, e cila lejon njĂ« fije tĂ« pĂ«rcaktojĂ« njĂ« bllok memorie pĂ«r trajtues mĂ« tĂ« shpejtĂ« tĂ« sinjaleve pĂ«r tĂ« rritur performancĂ«n e trajtuesve tĂ« pĂ«rjashtimeve.
    • NĂ« bĂ«rthamĂ« Ă«shtĂ« shtetur mbĂ«shtetje pĂ«r instruksionet atomike LSE (Large System Extension), tĂ« mbĂ«shtetur nga sistemet ARMv8.1. KĂ«to instruksione janĂ« tĂ« nevojshme pĂ«r tĂ« rritur performancĂ«n gjatĂ« punĂ«s nĂ« bordet Cavium ThunderX2 dhe AWS Graviton 2. Ndryshimet e shtuara pĂ«rkufizojnĂ« disponueshmĂ«rinĂ« e mbĂ«shtetjes LSE dhe aktivizojnĂ« dinamikisht implementimin e atomic mbi bazĂ«n e tyre. GjatĂ« testimit, pĂ«rdorimi i LSE ka lejuar njĂ« reduktim prej 15% tĂ« kohĂ«s sĂ« pĂ«rdorimit tĂ« procesorit gjatĂ« ndĂ«rtimit tĂ« bĂ«rthamĂ«s.
    • ËshtĂ« realizuar optimizimi i performancĂ«s dhe Ă«shtĂ« zgjeruar funksionaliteti i mjeteve pĂ«r skedarĂ«t ekzekutivĂ« nĂ« formatin ELF.
      ËshtĂ« shtuar mbĂ«shtetje pĂ«r ruajtjen e informacionit pĂ«r optimizimin DWARF, janĂ« zgjidhur problemet nĂ« utilitatet elfcopy/objcopy, Ă«shtĂ« shtuar trajtimi i DW_AT_ranges,
      në readelf është implementuar mundësia e dekodimit të flamujve 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, Ă«shtĂ« duke u punuar pĂ«r sigurimin e mbĂ«shtetjes pĂ«r mekanizmin Hyper-V Socket, i cili lejon pĂ«rdorimin e ndĂ«rfaqes sĂ« soketeve pĂ«r komunikimin e sistemit mysafir me mjedisin host pa konfiguruar rrjetin.
    • Po punohet puna pĂ«r sigurimin e ndĂ«rtimeve tĂ« pĂ«rsĂ«ritshme FreeBSD, duke iu mundĂ«suar qĂ« tĂ« sigurohet se skedarĂ«t ekzekutues tĂ« komponentĂ«ve tĂ« sistemit janĂ« ndĂ«rtuar pikĂ«risht nga tekstet burimore tĂ« deklaruara dhe nuk pĂ«rmbajnĂ« ndryshime tĂ« rastit.
    • NĂ« utilitarin elfctl Ă«shtĂ« shtuar mundĂ«sia pĂ«r tĂ« menaxhuar aktivizimin e mekanizmave tĂ« shtesĂ«s sĂ« mbrojtjes (ASLR, PROT_MAX, hapĂ«sira e stack, hartimi W+X) nĂ« nivelin e proceseve individuale.
  • Sistem storage dhe sisteme skedarĂ«sh
    • Po punohet pĂ«r realizimin e mundĂ«sisĂ« sĂ« funksionimit NFS mbi njĂ« kanal komunikimi tĂ« enkriptuar nĂ« bazĂ« tĂ« TLS 1.3, nĂ« vend tĂ« pĂ«rdorimit tĂ« Kerberos (modi sec=krb5p), i cili kufizohet vetĂ«m nĂ« enkriptimin e mesazheve RPC dhe implementohet vetĂ«m softuerikisht. Realizimi i ri pĂ«rdor stack-un TLS tĂ« ofruar nga bĂ«rthama, qĂ« lejon pĂ«rdorimin e mjeteve tĂ« pĂ«rshpejtimit harduerik. Kodi NFS mbi TLS Ă«shtĂ« gati pothuajse pĂ«r testim, por ende kĂ«rkon punĂ« pĂ«r tĂ« mbĂ«shtetur certifikatat e nĂ«nshkruara tĂ« klientĂ«ve dhe pĂ«r tĂ« pĂ«rshtatur stack-un TLS tĂ« bĂ«rthamĂ«s pĂ«r dĂ«rgimin e tĂ« dhĂ«nave NFS (patch-t pĂ«r pranim tashmĂ« janĂ« gati).
  • MbĂ«shtetje pĂ«r pajisjet
    • Po punohet pĂ«r shtimin e mbĂ«shtetjes pĂ«r procesorĂ«t x86 kinezĂ« Hygon mbi baza teknologjike AMD.
    • NĂ« kuadĂ«r tĂ« CheriBSD, njĂ« degĂ« e FreeBSD pĂ«r arkitekturĂ«n kĂ«rkimore tĂ« procesorĂ«ve. CHERI (Instruksionet e RISC tĂ« Krijuara nga Kapaciteti), vazhdon realizimi i mbĂ«shtetjes pĂ«r procesorin ARM Morello, i cili do tĂ« mbĂ«shtesĂ« sistemin e menaxhimit tĂ« aksesit nĂ« memorie CHERI, i bazuar nĂ« modelin mbrojtĂ«s tĂ« projektit Capsicum. Çipi Morello plan to pritet tĂ« lĂ«shohet nĂ« vitin 2021. Aktualisht puna Ă«shtĂ« e fokusuar nĂ« shtimin e mbĂ«shtetjes pĂ«r platformĂ«n Arm Neoverse N1, nĂ« themel tĂ« Morello. ËshtĂ« paraqitur portimi fillestar CheriBSD pĂ«r arkitekturĂ«n RISC-V. Vazhdon zhvillimi i CheriBSD pĂ«r prototipin referencĂ« CHERI mbi bazĂ«n e arkitekturĂ«s MIPS64.
    • Vazhdon portimi i FreeBSD pĂ«r SoC NXP LS1046A 64-bit mbi bazĂ«n e procesorit ARMv8 Cortex-A72 me motor tĂ« integruar pĂ«r pĂ«rshpejtimin e pĂ«rpunimit tĂ« paketave tĂ« rrjetit, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 dhe USB 3.0. Aktualisht pĂ«r kalimin nĂ« strukturĂ«n kryesore tĂ« FreeBSD janĂ« duke u pĂ«rgatitur driverat pĂ«r QorIQ dhe LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI.
    • Derisa nĂ« versionin 2.1.1 Ă«shtĂ« azhurnuar driver-i ena me mbĂ«shtetje pĂ«r gjeneratĂ«n e dytĂ« tĂ« adaptatorĂ«ve rrjetĂ« ENAv2 (Elastic Network Adapter), tĂ« pĂ«rdorur nĂ« infrastrukturĂ«n Elastic Compute Cloud (EC2) pĂ«r organizimin e komunikimit midis nyjave EC2 nĂ« shpejtĂ«si deri nĂ« 25 Gb/s. Po pĂ«rgatitet azhurnimi nĂ« ENA 2.2.0.
    • VazhdojnĂ« pĂ«rmirĂ«simet e portit FreeBSD pĂ«r platformĂ«n powerpc64. VĂ«mendja kryesore Ă«shtĂ« dhĂ«nĂ« sigurisĂ« sĂ« performancĂ«s sĂ« lartĂ« nĂ« sistemet me procesorĂ« IBM POWER8 dhe POWER9. GjatĂ« periudhĂ«s raportuese Ă«shtĂ« realizuar kalimi i FreeBSD-CURRENT nĂ« pĂ«rdorimin e kompilatorit LLVM/Clang 10.0 dhe linker-it lld nĂ« vend tĂ« GCC. Nga ana tjetĂ«r, pĂ«r sistemet powerpc64 Ă«shtĂ« aktivizuar ELFV2 ABI, ndĂ«rsa mbĂ«shtetja pĂ«r ELFv1 ABI Ă«shtĂ« ndĂ«rprerĂ«. NĂ« FreeBSD-STABLE ende vazhdon tĂ« ndodhet gcc 4.2.1. JanĂ« zgjidhur probleme me driverat virtio, aacraid dhe ixl. NĂ« sistemet powerpc64 Ă«shtĂ« mundĂ«suar nisja e QEMU pa mbĂ«shtetje pĂ«r Huge Pages.
    • Puna vazhdon pĂ«r tĂ« realizuar mbĂ«shtetje pĂ«r arkitekturĂ«n RISC-V. NĂ« formĂ«n aktuale, FreeBSD tashmĂ« ngarkohet me sukses nĂ« bordin SiFive Hifive Unleashed, pĂ«r tĂ« cilin janĂ« pĂ«rgatitur drejtoritĂ«.
      UART, SPI dhe PRCI, mbështesin programimin OpenSBI dhe SBI 0.2. Gjatë periudhës raportuese, puna u përqendrua në migrimin nga GCC në clang dhe lld.
  • Aplikacionet dhe sistemi i porteve
    • Koleksioni i porteve tĂ« FreeBSD kaloi 39,000 porte, numri i PR-ve tĂ« hapura Ă«shtĂ« pak mbi 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) morĂ«n tĂ« drejtat e komitimit. U shtua flamuri USES=qca dhe u hoq flamuri 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 varura nga Python 2 duhet tĂ« portohen nĂ« Python 3 ose do tĂ« hiqen. Menaxheri i paketave pkg u azhurnua nĂ« versionin 1.13.2.
    • PjesĂ«t e stakut grafik dhe portet e lidhura me xorg janĂ« azhurnuar.
      Serveri X.org është azhurnuar në versionin 1.20.8 (më parë ishte versioni 1.18), që lejon kalimin e FreeBSD në përdorimin e backend-it udev/evdev për përpunimin e pajisjeve të input-it. Paketa Mesa është kalur në përdorim të zgjerimit DRI3 në vend të DRI2. Po punohet për mbajtjen në përputhje të drejtuesve grafikë, stack të pajisjeve të input-it dhe komponenteve drm-kmod (porti që siguron funksionimin e moduleve DRM si amdgpu, i915 dhe radeon, duke përdorur arkitekturën linuxkpi për përputhshmërinë me Managerin e Renderimit të Drejtë të kernel-it Linux).
    • Desktop-i KDE Plasma, KDE Frameworks, KDE Applications dhe Qt janĂ« mbajtur nĂ« gjendje tĂ« pĂ«rditĂ«suar dhe janĂ« azhurnuar nĂ« versionet mĂ« tĂ« fundit. NĂ« porte Ă«shtĂ« shtuar njĂ« aplikacion i ri kstars (atlas yjesh).
    • ËshtĂ« punuar pĂ«r tĂ« eliminuar ndryshimet regresive nĂ« menaxherin e dritareve xfwm4, qĂ« u shfaqĂ«n pas azhurnimit tĂ« Xfce nĂ« versionin 4.14 (p.sh., u shfaqĂ«n artefakte gjatĂ« dekorimit tĂ« dritareve).
    • Porti me Wine Ă«shtĂ« azhurnuar nĂ« versionin Wine 5.0 (mĂ« parĂ« ishte versioni 4.0.3).
    • QĂ« nga versioni 1.14, kompajleri i gjuhĂ«s Go ka shtuar mbĂ«shtetje zyrtare pĂ«r arkitekturĂ«n ARM64 pĂ«r FreeBSD 12.0.
    • OpenSSH nĂ« sistemin bazĂ« Ă«shtĂ« azhurnuar nĂ« versionin 7.9p1.
    • ËshtĂ« realizuar dhe vendosur nĂ« porte (devel/libsysctlmibinfo2) biblioteka sysctlmibinfo2, qĂ« ofron njĂ« API pĂ«r aksesin nĂ« sysctl MIB dhe bĂ«n pĂ«rkthimin e emrave sysctl nĂ« identifikatorĂ«t e objekteve (OID).
    • PĂ«rditĂ«simi i distribucionit Ă«shtĂ« formuar NomadBSD 1.3.1, qĂ« pĂ«rfaqĂ«son njĂ« edicion tĂ« FreeBSD, i adaptuar pĂ«r pĂ«rdorim si njĂ« desktop portativ, i ngarkuar nga njĂ« USB. Mjedisi grafik bazohet nĂ« menaxherin e dritareve Openbox. PĂ«r montimin e disqeve pĂ«rdoret DSBMD (pĂ«rfshihet mbĂ«shtetje pĂ«r montimin e CD9660, FAT, HFS+, NTFS, Ext2/3/4), pĂ«r konfigurimin e rrjeteve wireless – wifimgr, ndĂ«rsa pĂ«r menaxhimin e volumit – DSBMixer.
    • Ka filluar punĂ« pĂ«r ndihmĂ«n nĂ« hartimin e dokumentacionit tĂ« plotĂ« pĂ«r menaxherin e mjediseve jail. pot. Po pĂ«rgatitet pĂ«r lĂ«shim pot 0.11.0, nĂ« tĂ« cilin do tĂ« jenĂ« nĂ« dispozicion mjetet pĂ«r menaxhimin e stack-ut tĂ« rrjetit.

Burimi: opennet.ru

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