FreeBSD Evolua Raporto por la unua trimonato de 2020

eldonita raporto pri la disvolviĝo de la projekto FreeBSD de januaro ĝis marto 2020. Inter la ŝanĝoj ni povas noti:

  • Ĝeneralaj kaj ĉieaj aferoj
    • Forigis la GCC-kompililon el la fontarbo FreeBSD-CURRENT, same kiel la neuzatajn gperf, gcov kaj gtc (devicetree-kompililo). Ĉiuj platformoj, kiuj ne subtenas Clang, estis ŝanĝitaj al uzado de eksteraj konstruaj iloj instalitaj de havenoj. La bazsistemo sendis malmodernan eldonon de GCC 4.2.1, kaj integriĝo de pli novaj versioj ne estis ebla pro la transiro de 4.2.2 al la GPLv3-licenco, kiu estis konsiderita malkonvena por la FreeBSD-bazkomponentoj. Nunaj eldonoj de GCC, inkluzive de GCC 9, ankoraŭ povas esti instalitaj de pakaĵoj kaj havenoj.
    • La Linukso-media emula infrastrukturo (Linuxulator) aldonis subtenon por la sendfile-sistemvoko, TCP_CORK-reĝimo (bezonata por nginx), kaj la MAP_32BIT-flago (solvas la problemon kun lanĉado de pakaĵoj kun Mono de Ubuntu Bionic). Problemoj kun DNS-rezolucio dum uzado de glibc pli nova ol 2.30 (ekzemple de CentOS 8) estis solvitaj.
      La kontinua integriga infrastrukturo disponigas la kapablon ruli LTP (Linux Testing Project) laborpostenojn kurantajn Linuxulator por testi plibonigojn faritajn al la kodo por subteni Linukson. Ĉirkaŭ 400 testoj malsukcesas kaj postulas korektadon (kelkaj eraroj estas kaŭzitaj de falsaj pozitivoj, kelkaj postulas bagatelaj korektoj, sed ekzistas aliaj kiuj postulas aldoni subtenon por novaj sistemvokoj por ripari). Oni faris laboron por purigi la kodon de Linuxulator kaj simpligi sencimigon. Flikaĵoj kun subteno por plilongigitaj atributoj kaj la sistemvoko fexecve estis preparitaj, sed ankoraŭ ne reviziitaj.

    • Renkontiĝoj de la laborgrupo kreita por efektivigi la migradon de fontkodoj de la centralizita fontkontrola sistemo Subversion al la malcentralizita sistemo Git daŭras. Raporto kun proponoj por migrado estas en procezo de preparado.
    • В rtld (rultempa ligilo) plibonigita rekta ekzekutreĝimo ("/libexec/ld-elf.so.1 {pado} {argumentoj}").
    • La projekto por fuziga testado de la FreeBSD-kerno uzante la syzkaller-sistemon daŭre disvolviĝas. Dum la raporta periodo, problemoj en la retstako kaj kodo por labori kun dosierpriskribilaj tabeloj identigitaj per syzkaller estis eliminitaj. Post la erara diagnozo, ŝanĝoj estis aldonitaj al la SCTP-stako por faciligi sencimigon. Reguloj estis aldonitaj al la streĉo2-aro por identigi eblajn regresojn. Aldonita subteno por fuzz-testado de novaj sistemvokoj, inkluzive de copy_file_range(), __realpathat() kaj Capsicum-subsistemvokoj. Laboro daŭre kovras la Linuksan emuladtavolon per fuzz-testado. Ni analizis kaj forigis erarojn notitajn en la plej novaj raportoj pri Coverity Scan.
    • La kontinua integriga sistemo ŝanĝis al ekzekuto de ĉiuj kapbranĉaj testoj nur uzante clang/lld. Dum testado por RISC-V, la formado de kompleta diskbildo estas certigita por ruli testojn en QEMU uzante OpenSBI. Aldonitaj novaj taskoj por testi bildojn kaj virtualajn maŝinojn powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Oni laboras por translokigi la Kyua-testaron de la havenoj (devel/kyua) al la baza sistemo por solvi problemojn (pakaĵoj estas instalitaj tre malrapide) kiuj ŝprucas kiam oni uzas Kyua sur novaj arkitekturoj, por kiuj disvolviĝo estas efektivigita per emulilo aŭ. FPGA. Integriĝo en la baza sistemo signife simpligos testadon de enigitaj platformoj kaj interfacon kun kontinuaj integrigaj sistemoj.
    • Projekto estis lanĉita por optimumigi la agadon de la retponta ŝoforo se_ponto, kiu uzas ununuran mutekson por ŝlosi internajn datumojn, kio ne ebligas atingi la deziratan agadon en sistemoj kun granda nombro da prizonmedioj aŭ virtualaj maŝinoj kunigitaj en unu reto. En ĉi tiu etapo, testoj estis aldonitaj al la kodo por malhelpi regresojn okazi dum la modernigo de laborado kun seruroj. La ebleco uzi ConcurrencyKit por paraleligi datumtranslokilojn (bridge_input(), bridge_output(), bridge_forward(), ...) estas pripensita.
    • Aldonita nova sigfastblock sistema voko por permesi fadenon specifi blokon de memoro por rapida signalo pritraktilo por plibonigi la agadon de esceptotraktiloj.
    • La kerno aldonas subtenon por atomaj instrukcioj de LSE (Large System Extension) subtenataj de ARMv8.1-sistemoj. Ĉi tiuj instrukcioj estas postulataj por plibonigi rendimenton kiam funkcias sur tabuloj Cavium ThunderX2 kaj AWS Graviton 2. La aldonitaj ŝanĝoj detektas LSE-subtenon kaj dinamike ebligas la atoman efektivigon bazitan sur ili. Dum testado, la uzo de LSE ebligis redukti la procesoran tempon pasigitan dum kunigado de la kerno je 15%.
    • Efikecoptimumigo estis efektivigita kaj la funkcieco de la ilaro estis vastigita por ruleblaj dosieroj en la ELF-formato.
      Aldonita subteno por konservado de DWARF-sencimigaj informoj, solvitaj problemoj en la elfcopy/objcopy iloj, aldonita DW_AT_ranges prilaborado,
      readelf efektivigas la kapablon malkodi la flagojn PROTMAX_DISABLE, STKGAP_DISABLE kaj WXNEEDED, same kiel Xen kaj GNU Build-ID.

  • Sekureco
    • Por plibonigi la agadon de FreeBSD en Azure-nubaj medioj, oni laboras por provizi subtenon por la mekanismo HyperV Socket, kiu permesas la uzon de socket-interfaco por interago inter la gastsistemo kaj la gastiga medio sen starigi reton.
    • Laboras por provizi ripeteblajn konstruojn de FreeBSD, ebligante certigi, ke la ruleblaj dosieroj de la sistemkomponentoj estas kompilitaj ĝuste el la deklaritaj fontkodoj kaj ne enhavas eksterajn ŝanĝojn.
    • La kapablo kontroli la inkludon de kromaj protektaj mekanismoj (ASLR, PROT_MAX, stakinterspaco, W+X-mapado) je la nivelo de individuaj procezoj estis aldonita al la elfctl-servaĵo.
  • Stokado kaj dosiersistemoj
    • Laboro okazas por efektivigi la kapablon por NFS funkcii per ĉifrita komunika kanalo bazita sur TLS 1.3, anstataŭ uzi Kerberos (sec=krb5p-reĝimo), kiu estas limigita al ĉifrado de nur RPC-mesaĝoj kaj estas efektivigita nur en programaro. La nova efektivigo uzas la kern-provizitan TLS-stakon por ebligi hardvarakcelon. La NFS super TLS-kodo estas preskaŭ preta por testado, sed ankoraŭ postulas laboron por subteni subskribitajn klientajn atestilojn kaj adapti la kernan TLS-stakon por sendi NFS-datumojn (fakiloj por ricevi jam estas pretaj).
  • Aparataro subteno
    • Laboras por aldoni subtenon por ĉina x86 CPU Hygon bazita sur AMD-teknologioj;
    • Kiel parto de CheriBSD, forko de FreeBSD por esplorprocesarkitekturo CHERI (Capability Hardware Enhanced RISC Instructions), subteno por la ARM Morello-procesoro daŭre estas efektivigita, kiu subtenos la CHERI-memoran alirkontrolsistemon bazitan sur la Capsicum-projekta sekurecmodelo. Morello blato planas liberigo en 2021. Laboro nuntempe koncentriĝas pri aldono de subteno por la Arm Neoverse N1-platformo, kiu funkciigas Morello. Komenca haveno de CheriBSD por la RISC-V-arkitekturo estis prezentita. CheriBSD-evoluo daŭras por la CHERI referencprototipo bazita sur la MIPS64-arkitekturo.
    • FreeBSD-portado daŭras por la 64-bita SoC NXP LS1046A bazita sur la ARMv8 Cortex-A72-procesoro kun integra retpaka procesa akcelmotoro, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 kaj USB 3.0. Nuntempe, ŝoforoj QorIQ kaj LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI estas pretaj por translokigo al la ĉefa FreeBSD-kunmetaĵo.
    • La ena ŝoforo estis ĝisdatigita al versio 2.1.1 kun subteno por la dua generacio de retadaptiloj ENAv2 (Elastic Network Adapter) uzataj en la infrastrukturo Elastic Compute Cloud (EC2) por organizi komunikadon inter EC2-nodoj je rapidoj de ĝis 25 Gb/ s. Ĝisdatigo al ENA 2.2.0 estas preparita.
    • Pliboniĝoj al la FreeBSD-haveno por la platformo powerpc64 daŭras. La fokuso estas provizi kvalitan rendimenton en sistemoj kun IBM POWER8 kaj POWER9-procesoroj. Dum la raporta periodo, FreeBSD-CURRENT estis transdonita por uzi la LLVM/Clang 10.0-kompililon kaj lld-ligilon anstataŭe de GCC. La defaŭlta por powerpc64-sistemoj estas la ELFv2 ABI kaj subteno por la ELFv1 ABI estis nuligita. FreeBSD-STABLE ankoraŭ havas gcc 4.2.1. Problemoj kun virtio, aacraid kaj ixl-ŝoforoj estis solvitaj. Sur powerpc64-sistemoj eblas ruli QEMU sen subteno de Huge Pages.
    • Laboro daŭre efektivigas subtenon por la RISC-V-arkitekturo. En ĝia nuna formo, FreeBSD jam startas sukcese sur la SiFive Hifive Unleashed-tabulo, por kiu ŝoforoj estis preparitaj.
      UART, SPI kaj PRCI, subtenas OpenSBI kaj SBI 0.2-firmware. Dum la raporta periodo, laboro koncentriĝis pri migrado de GCC al clang kaj lld.

  • Aplikoj kaj havena sistemo
    • La kolekto de havenoj FreeBSD transiris la sojlon de 39 mil havenoj, la nombro da nefermitaj PR-oj iomete superas 2400, el kiuj 640 PR-oj ankoraŭ ne estis ordigitaj. Dum la raporta periodo, 8146 ŝanĝoj estis faritaj de 173 programistoj. Kvar novaj partoprenantoj ricevis kommit-rajtojn (Loïc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Aldonita USES=qca flago kaj forigita USES=zope flago (pro nekongruo kun Python 3). Laboras por forigi Python 2.7 de la arbo de havenoj - ĉiuj pordoj bazitaj en Python 2 devas esti portitaj al Python 3 aŭ estos forigitaj. La pakaĵadministrilo pkg estis ĝisdatigita por liberigi 1.13.2.
    • Ĝisdatigitaj grafikaj stakkomponentoj kaj xorg rilataj havenoj.
      La X.org-servilo estis ĝisdatigita al versio 1.20.8 (antaŭe sendita sur la branĉo 1.18), kio permesis al FreeBSD defaŭlti uzi la udev/evdev backend por pritrakti enigajn aparatojn. La Mesa pakaĵo estis ŝanĝita por uzi la etendon DRI3 anstataŭ DRI2 defaŭlte. Laboras por konservi la grafikajn ŝoforojn, enig-aparatan stakon kaj drm-kmod-komponentojn (haveno kiu ebligas la funkciadon de amdgpu, i915 kaj radeon-DRM-moduloj, uzante la kadron linuxkpi por kongruo kun la Rekta Rendering Manager de la Linukso-kerno) ĝisdatigita.

    • La KDE Plasma labortablo, KDE Frameworks, KDE-Aplikoj kaj Qt estas ĝisdatigitaj kaj ĝisdatigitaj al la plej novaj eldonoj. Nova aplikaĵo kstars (stelatlaso) estis aldonita al la havenoj.
    • Oni laboris por forigi regresajn ŝanĝojn en la fenestromanaĝero xfwm4, kiuj aperis post ĝisdatigo de Xfce al versio 4.14 (ekzemple, artefaktoj aperis dum ornamado de fenestroj).
    • La Wine-haveno estis ĝisdatigita por liberigi Wine 5.0 (antaŭe 4.0.3 estis ofertita).
    • Komencante kun versio 1.14, la Go-lingva kompililo aldonis oficialan subtenon por la ARM64-arkitekturo por FreeBSD 12.0.
    • OpenSSH sur la baza sistemo estis ĝisdatigita por liberigi 7.9p1.
    • La sysctlmibinfo2-biblioteko estis efektivigita kaj metita en havenojn (devel/libsysctlmibinfo2), disponigante API por aliri la sysctl MIB kaj traduki sysctl-nomojn en objektoidentigilojn (OIDoj).
    • Distribua ĝisdatigo estis kreita NomadBSD 1.3.1, kiu estas eldono de FreeBSD adaptita por uzo kiel portebla labortablo startebla de USB-disko. La grafika medio baziĝas sur fenestra administranto Openbox. Uzita por muntado de diskoj DSBMD (muntado de CD9660, FAT, HFS+, NTFS, Ext2/3/4 estas subtenata), por agordi sendratan reton - wifimgr, kaj kontroli la volumon - DSBMixer.
    • Komencita laboro pri verkado de kompleta dokumentaro por la prizona medio-administranto poto. Poto 0.11.0 estas preta por liberigo, kiu inkluzivos ilojn por administri la retan stakon.

fonto: opennet.ru

Aldoni komenton