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ë (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Ă«. , 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 (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 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 , 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 . PĂ«r montimin e disqeve pĂ«rdoret (mbĂ«shtet montimin CD9660, FAT, HFS+, NTFS, Ext2/3/4), pĂ«r konfigurimin e rrjetit pa tel â , dhe pĂ«r menaxhimin e volumit â .
- Ka filluar në shkruan e dokumentacionit të plotë për menaxherin e mjediseve jail . 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
