FreeBSD Development Report għall-ewwel kwart tal-2020

ippubblikat rapport dwar l-iżvilupp tal-proġett FreeBSD minn Jannar sa Marzu 2020. Fost il-bidliet nistgħu ninnotaw:

  • Kwistjonijiet ġenerali u sistemiċi
    • Neħħa s-sett tal-kompilatur GCC mis-siġra tas-sors FreeBSD-CURRENT, kif ukoll l-utilitajiet gperf, gcov u gtc (devicetree compiler) mhux użati. Il-pjattaformi kollha li ma jappoġġjawx Clang ġew mibdula għall-użu ta 'għodod tal-bini esterni installati mill-portijiet. Is-sistema bażi bagħtet rilaxx antikwat tal-GCC 4.2.1, u l-integrazzjoni ta 'verżjonijiet aktar ġodda ma kinitx possibbli minħabba t-tranżizzjoni ta' 4.2.2 għal-liċenzja GPLv3, li tqieset mhux xierqa għall-komponenti bażi FreeBSD. Ir-rilaxxi attwali tal-GCC, inkluż GCC 9, xorta jistgħu jiġu installati minn pakketti u portijiet.
    • L-infrastruttura tal-emulazzjoni tal-ambjent Linux (Linuxulator) żiedet appoġġ għas-sejħa tas-sistema sendfile, il-mod TCP_CORK (meħtieġa għal nginx), u l-bandiera MAP_32BIT (issolvi l-problema bit-tnedija ta 'pakketti ma' Mono minn Ubuntu Bionic). Problemi bir-riżoluzzjoni tad-DNS meta tuża glibc aktar ġodda minn 2.30 (per eżempju minn CentOS 8) ġew solvuti.
      L-infrastruttura ta’ integrazzjoni kontinwa tipprovdi l-abbiltà li tmexxi impjiegi LTP (Linux Testing Project) li jmexxu Linuxulator biex jittestjaw it-titjib li sar fil-kodiċi biex jappoġġja Linux. Madwar 400 test ifallu u jeħtieġu l-iffissar (xi żbalji huma kkawżati minn pożittivi foloz, xi wħud jeħtieġu soluzzjonijiet trivjali, iżda hemm oħrajn li jeħtieġu li jżidu appoġġ għal sejħiet ta 'sistema ġodda biex jiffissaw). Sar xogħol biex jitnaddaf il-kodiċi Linuxulator u jiġi ssimplifikat id-debugging. Irqajja b'appoġġ għal attributi estiżi u s-sejħa tas-sistema fexecve ġew ippreparati, iżda għadhom mhux riveduti.

    • Il-laqgħat tal-grupp ta 'ħidma maħluq biex iwettqu l-migrazzjoni tal-kodiċijiet tas-sors mis-sistema ċentralizzata ta' kontroll tas-sors Subversion għas-sistema deċentralizzata Git ikomplu. Rapport bi proposti għall-migrazzjoni jinsab fil-proċess tat-tħejjija.
    • В rtld (runtime linker) mod ta 'eżekuzzjoni diretta mtejba ("/libexec/ld-elf.so.1 {mogħdija} {argumenti}").
    • Il-proġett għall-ittestjar fuzzing tal-qalba FreeBSD bl-użu tas-sistema syzkaller qed ikompli jiżviluppa. Matul il-perjodu ta' rappurtar, ġew eliminati problemi fil-munzell tan-netwerk u l-kodiċi għax-xogħol mat-tabelli tad-deskritturi tal-fajls identifikati bl-użu ta' syzkaller. Wara d-dijanjosi tal-iżball, ġew miżjuda bidliet fil-munzell SCTP biex jagħmlu d-debugging aktar faċli. Ġew miżjuda regoli mas-sett ta' stress2 biex jiġu identifikati rigressjonijiet possibbli. Appoġġ miżjud għall-ittestjar fuzz ta 'sejħiet ta' sistema ġodda, inklużi sejħiet ta 'copy_file_range(), __realpathat() u subsystem Capsicum. Ikompli x-xogħol biex ikopri s-saff tal-emulazzjoni tal-Linux bl-ittestjar tal-fuzz. Analiznajna u eliminajna l-iżbalji nnutati fl-aħħar rapporti ta’ Coverity Scan.
    • Is-sistema ta 'integrazzjoni kontinwa nbidlet biex tesegwixxi t-testijiet kollha tal-fergħa tar-ras bl-użu biss ta' clang/lld. Meta tittestja RISC-V, il-formazzjoni ta 'immaġni tad-diska kompluta hija żgurata għat-twettiq ta' testijiet fil-QEMU bl-użu ta 'OpenSBI. Żiedu kompiti ġodda għall-ittestjar ta' immaġini u magni virtwali powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Għaddej xogħol biex il-Kyua test suite tiġi trasferita mill-portijiet (devel/kyua) għas-sistema bażi biex issolvi problemi (pakketti huma installati bil-mod ħafna) li jinqalgħu meta tuża Kyua fuq arkitetturi ġodda, li l-iżvilupp tagħhom jitwettaq bl-użu ta’ emulatur jew FPGA. L-integrazzjoni fis-sistema bażi tissimplifika b'mod sinifikanti l-ittestjar tal-pjattaformi inkorporati u l-interface ma' sistemi ta' integrazzjoni kontinwa.
    • Tnieda proġett biex jottimizza l-prestazzjoni tas-sewwieq tal-pont tan-netwerk jekk_pont, li juża mutex wieħed biex jissakkar dejta interna, li ma tippermettix li tinkiseb il-prestazzjoni mixtieqa fuq sistemi b'numru kbir ta 'ambjenti ta' ħabs jew magni virtwali magħquda f'netwerk wieħed. F'dan l-istadju, ġew miżjuda testijiet mal-kodiċi biex jipprevjenu rigressjonijiet milli jseħħu waqt il-modernizzazzjoni tax-xogħol b'serraturi. Qed tiġi kkunsidrata l-possibbiltà li tuża ConcurrencyKit biex jiġu parallelizzati l-handlers tat-trasferiment tad-dejta (bridge_input(), bridge_output(), bridge_forward(), ...).
    • Żiedet sejħa ġdida tas-sistema sigfastblock biex tippermetti ħajta li tispeċifika blokk ta 'memorja għal handler veloċi tas-sinjali biex itejjeb il-prestazzjoni ta' handlers ta 'eċċezzjonijiet.
    • Il-qalba żżid l-appoġġ għall-istruzzjonijiet atomiċi LSE (Large System Extension) appoġġjati minn sistemi ARMv8.1. Dawn l-istruzzjonijiet huma meħtieġa biex itejbu l-prestazzjoni meta taħdem fuq bordijiet Cavium ThunderX2 u AWS Graviton 2. Il-bidliet miżjuda jiskopru appoġġ LSE u jippermettu dinamikament l-implimentazzjoni atomika bbażata fuqhom. Waqt l-ittestjar, l-użu ta 'LSE għamilha possibbli li jitnaqqas il-ħin tal-proċessur imqatta' meta jingħaqad il-qalba bi 15%.
    • Twettqet ottimizzazzjoni tal-prestazzjoni u l-funzjonalità tal-għodda ġiet estiża għal fajls eżekutibbli fil-format ELF.
      Miżjud appoġġ għall-caching tal-informazzjoni tad-debugging DWARF, solvuti problemi fl-utilitajiet elfcopy/objcopy, miżjud ipproċessar DW_AT_ranges,
      readelf jimplimenta l-abbiltà li jiddekodifika l-bnadar PROTMAX_DISABLE, STKGAP_DISABLE u WXNEEDED, kif ukoll Xen u GNU Build-ID.

  • sigurtà
    • Biex tittejjeb il-prestazzjoni ta 'FreeBSD f'ambjenti sħaba Azure, għaddejja ħidma biex jiġi pprovdut appoġġ għall-mekkaniżmu HyperV Socket, li jippermetti l-użu ta' interface ta 'socket għall-interazzjoni bejn is-sistema mistieden u l-ambjent ospitanti mingħajr ma jitwaqqaf netwerk.
    • Għaddej ħidma biex tipprovdi bini ripetut ta' FreeBSD, li jagħmilha possibbli li jiġi żgurat li l-fajls eżekutibbli tal-komponenti tas-sistema jiġu kkompilati eżattament mill-kodiċijiet tas-sors iddikjarati u ma jkunx fihom bidliet estranji.
    • L-abbiltà li tikkontrolla l-inklużjoni ta 'mekkaniżmi ta' protezzjoni addizzjonali (ASLR, PROT_MAX, stack gap, mapping W + X) fil-livell ta 'proċessi individwali ġiet miżjuda mal-utilità elfctl
  • Sistemi ta' ħażna u fajls
    • Għaddej ħidma biex tiġi implimentata l-abbiltà li NFS jopera fuq kanal ta’ komunikazzjoni kriptat ibbażat fuq TLS 1.3, minflok ma juża Kerberos (sec=krb5p mode), li huwa limitat għall-encrypting ta’ messaġġi RPC biss u huwa implimentat biss fis-softwer. L-implimentazzjoni l-ġdida tuża l-munzell TLS ipprovdut mill-qalba biex tippermetti l-aċċelerazzjoni tal-ħardwer. Il-kodiċi NFS fuq TLS huwa kważi lest għall-ittestjar, iżda xorta jeħtieġ xogħol biex isostni ċertifikati tal-klijenti ffirmati u jadatta l-munzell TLS tal-kernel biex jibgħat data NFS (l-irqajja għar-riċeviment huma diġà lesti).
  • Appoġġ tal-ħardwer
    • Għaddej ħidma biex jiżdied l-appoġġ għal CPU Hygon Ċiniż x86 ibbażat fuq teknoloġiji AMD;
    • Bħala parti minn CheriBSD, furketta ta' FreeBSD għall-arkitettura tal-proċessur tar-riċerka CHERI (Istruzzjonijiet RISC Imtejba tal-Hardware tal-Kapaċità), ikompli jiġi implimentat appoġġ għall-proċessur ARM Morello, li se jappoġġja s-sistema ta 'kontroll tal-aċċess għall-memorja CHERI ibbażata fuq il-mudell tas-sigurtà tal-proġett Capsicum. Morello chip qed jippjanaw rilaxx fl-2021. Ix-xogħol bħalissa huwa ffukat fuq iż-żieda ta 'appoġġ għall-pjattaforma Arm Neoverse N1 li tmexxi Morello. Ġie ppreżentat port inizjali ta' CheriBSD għall-arkitettura RISC-V. L-iżvilupp ta' CheriBSD ikompli għall-prototip ta' referenza CHERI ibbażat fuq l-arkitettura MIPS64.
    • Il-porting ta 'FreeBSD ikompli għas-SoC NXP LS64A 1046-bit ibbażat fuq il-proċessur ARMv8 Cortex-A72 b'magna ta' aċċelerazzjoni tal-ipproċessar tal-pakketti tan-netwerk integrata, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 u USB 3.0. Bħalissa, is-sewwieqa QorIQ u LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI qed jitħejjew għat-trasferiment għall-kompożizzjoni prinċipali FreeBSD.
    • Is-sewwieq ena ġie aġġornat għall-verżjoni 2.1.1 b'appoġġ għat-tieni ġenerazzjoni ta' adapters tan-netwerk ENAv2 (Elastic Network Adapter) użati fl-infrastruttura Elastic Compute Cloud (EC2) biex torganizza l-komunikazzjoni bejn in-nodi EC2 b'veloċitajiet sa 25 Gb/ s. Qed jitħejja aġġornament għall-ENA 2.2.0.
    • It-titjib fil-port FreeBSD għall-pjattaforma powerpc64 ikompli. L-enfasi hija fuq il-provvista ta 'prestazzjoni ta' kwalità fuq sistemi bi proċessuri IBM POWER8 u POWER9. Matul il-perjodu ta' rappurtar, FreeBSD-CURRENT ġie trasferit biex juża l-kompilatur LLVM/Clang 10.0 u lld linker minflok GCC. B'mod awtomatiku, is-sistemi powerpc64 jużaw l-ELFv2 ABI u l-appoġġ għall-ELFv1 ABI twaqqaf. FreeBSD-STABLE għad għandu gcc 4.2.1. Ġew solvuti problemi bis-sewwieqa virtio, aacraid u ixl. Fuq is-sistemi powerpc64 huwa possibbli li titħaddem QEMU mingħajr appoġġ għall-Paġni Enormi.
    • Ikompli l-ħidma biex jiġi implimentat appoġġ għall-arkitettura RISC-V. Fil-forma attwali tiegħu, FreeBSD diġà boots b'suċċess fuq il-bord SiFive Hifive Unleashed, li għalih is-sewwieqa ġew ippreparati
      UART, SPI u PRCI, jappoġġja l-firmware OpenSBI u SBI 0.2. Matul il-perjodu ta' rappurtar, ix-xogħol kien iffukat fuq il-migrazzjoni minn GCC għal clang u lld.

  • Applikazzjonijiet u sistema tal-port
    • Il-ġbir tal-portijiet FreeBSD qabeż il-limitu ta '39 elf port, in-numru ta' PRs mhux magħluqa jaqbeż bi ftit 2400, li minnhom 640 PRs għadhom ma ġewx magħżula. Matul il-perjodu ta' rappurtar, saru 8146 tibdil minn 173 żviluppatur. Erba' parteċipanti ġodda rċevew id-drittijiet tal-kommittenti (Loïc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Miżjud USES=bandiera qca u mneħħija USES=bandiera zope (minħabba inkompatibilità ma Python 3). Għaddej xogħol biex jitneħħa Python 2.7 mis-siġra tal-portijiet - il-portijiet kollha bbażati fuq Python 2 għandhom jiġu trasferiti għal Python 3 jew se jitneħħew. Il-maniġer tal-pakketti pkg ġie aġġornat biex jirrilaxxa 1.13.2.
    • Komponenti aġġornati tal-munzell tal-grafika u portijiet relatati max-xorg.
      Is-server X.org ġie aġġornat għall-verżjoni 1.20.8 (preċedentement mibgħuta fuq il-fergħa 1.18), li ppermetta lil FreeBSD biex default juża l-backend udev/evdev għall-immaniġġjar tal-apparati tal-input. Il-pakkett Mesa inbidel biex juża l-estensjoni DRI3 minflok DRI2 b'mod awtomatiku. Għaddej xogħol biex jinżammu s-sewwieqa tal-grafika, il-munzell tat-tagħmir tad-dħul, u l-komponenti drm-kmod (port li jippermetti t-tħaddim tal-moduli amdgpu, i915 u radeon DRM, bl-użu tal-qafas linuxkpi għall-kompatibilità mal-Maniġer ta' Rendiment Dirett tal-kernel Linux) aġġornat.

    • Id-desktop tal-KDE Plasma, KDE Frameworks, KDE Applications u Qt jinżammu aġġornati u aġġornati għall-aħħar ħarġiet. Applikazzjoni ġdida kstars (star atlas) ġiet miżjuda mal-portijiet.
    • Sar ħidma biex jiġu eliminati bidliet rigressivi fil-maniġer tat-twieqi xfwm4 li dehru wara l-aġġornament ta' Xfce għall-verżjoni 4.14 (pereżempju, artifacts dehru meta jżejnu t-twieqi).
    • Il-port tal-Inbid ġie aġġornat biex joħroġ Wine 5.0 (preċedentement kien offrut 4.0.3).
    • Ibda bil-verżjoni 1.14, il-kompilatur tal-lingwa Go żied appoġġ uffiċjali għall-arkitettura ARM64 għal FreeBSD 12.0.
    • OpenSSH fuq is-sistema bażi ġie aġġornat biex jirrilaxxa 7.9p1.
    • Il-librerija sysctlmibinfo2 ġiet implimentata u mqiegħda fil-portijiet (devel/libsysctlmibinfo2), li tipprovdi API għall-aċċess tas-sysctl MIB u tittraduċi l-ismijiet sysctl f'identifikaturi tal-oġġetti (OIDs).
    • Ġie ġġenerat aġġornament tad-distribuzzjoni NomadBSD 1.3.1, li hija edizzjoni ta 'FreeBSD adattata għall-użu bħala desktop portabbli bootable minn USB drive. L-ambjent grafiku huwa bbażat fuq maniġer tat-twieqi Openbox. Użat għall-immuntar drives DSBMD (l-immuntar CD9660, FAT, HFS+, NTFS, Ext2/3/4 huwa appoġġjat), biex jiġi kkonfigurat netwerk mingħajr fili - wifimgr, u biex tikkontrolla l-volum - DSBMixer.
    • Beda xogħol dwar il-kitba ta' dokumentazzjoni sħiħa għall-maniġer tal-ambjent tal-ħabs pot. Pot 0.11.0 qed jitħejja għar-rilaxx, li se jinkludi għodod għall-ġestjoni tal-munzell tan-netwerk.

Sors: opennet.ru

Żid kumment