Adroddiad Datblygu FreeBSD ar gyfer chwarter cyntaf 2020

Cyhoeddwyd adroddiad ar ddatblygiad y prosiect FreeBSD rhwng Ionawr a Mawrth 2020. Ymhlith y newidiadau gallwn nodi:

  • Materion cyffredinol a systemig
    • Wedi tynnu set casglwr GCC o'r goeden ffynhonnell FreeBSD-PRESENNOL, yn ogystal â'r cyfleustodau gperf, gcov a gtc (devicetree compiler) nas defnyddiwyd. Mae pob platfform nad yw'n cefnogi Clang wedi'i newid i ddefnyddio offer adeiladu allanol sydd wedi'u gosod o borthladdoedd. Anfonodd y system sylfaen ryddhad hen ffasiwn o GCC 4.2.1, ac nid oedd integreiddio fersiynau mwy newydd yn bosibl oherwydd trosglwyddo 4.2.2 i drwydded GPLv3, a ystyriwyd yn amhriodol ar gyfer cydrannau sylfaen FreeBSD. Gellir dal i osod datganiadau cyfredol GCC, gan gynnwys GCC 9, o becynnau a phorthladdoedd.
    • Mae seilwaith efelychu amgylchedd Linux (Linuxulator) wedi ychwanegu cefnogaeth ar gyfer yr alwad system sendfile, modd TCP_CORK (sy'n ofynnol ar gyfer nginx), a baner MAP_32BIT (yn datrys y broblem gyda lansio pecynnau gyda Mono o Ubuntu Bionic). Mae problemau gyda datrysiad DNS wrth ddefnyddio glibc sy'n fwy newydd na 2.30 (er enghraifft o CentOS 8) wedi'u datrys.
      Mae'r seilwaith integreiddio parhaus yn darparu'r gallu i redeg swyddi LTP (Linux Testing Project) yn rhedeg Linuxulator i brofi gwelliannau a wnaed i'r cod i gefnogi Linux. Mae tua 400 o brofion yn methu ac mae angen eu trwsio (mae rhai gwallau'n cael eu hachosi gan bethau positif ffug, mae angen atebion dibwys ar rai, ond mae yna rai eraill sydd angen cefnogaeth ychwanegol i alwadau system newydd eu trwsio). Mae gwaith wedi'i wneud i lanhau'r cod Linuxulator a symleiddio dadfygio. Mae clytiau gyda chefnogaeth ar gyfer priodoleddau estynedig a'r alwad system fexecve wedi'u paratoi, ond heb eu hadolygu eto.

    • Mae cyfarfodydd y gweithgor a grëwyd i gyflawni'r broses o symud codau ffynhonnell o'r system rheoli ffynhonnell ganolog Tanseilio i'r system ddatganoledig Git yn parhau. Mae adroddiad gyda chynigion ar gyfer mudo yn y broses o gael ei baratoi.
    • В rtld (cyswllt amser rhedeg) gwell modd gweithredu uniongyrchol (“/libexec/ld-elf.so.1 {path} {arguments}”).
    • Mae'r prosiect ar gyfer profi cnewyllyn FreeBSD gan ddefnyddio'r system syzkaller yn parhau i ddatblygu. Yn ystod y cyfnod adrodd, dilëwyd problemau yn y pentwr rhwydwaith a'r cod ar gyfer gweithio gyda thablau disgrifydd ffeiliau a nodwyd gan ddefnyddio syzkaller. Yn dilyn diagnosis gwall, mae newidiadau wedi'u hychwanegu at y stac SCTP i'w gwneud yn haws dadfygio. Mae rheolau wedi'u hychwanegu at y set straen2 i nodi atchweliadau posibl. Ychwanegwyd cefnogaeth ar gyfer profi galwadau system newydd fuzz, gan gynnwys copy_file_range(), __realpathat() a galwadau is-system Capsicum. Mae gwaith yn parhau i gwmpasu haen efelychu Linux gyda phrofion fuzz. Fe wnaethom ddadansoddi a dileu gwallau a nodwyd yn yr adroddiadau Sganio Coverity diweddaraf.
    • Mae'r system integreiddio barhaus wedi newid i gynnal pob prawf cangen pen dim ond gan ddefnyddio clang/lld. Wrth brofi am RISC-V, sicrheir ffurfio delwedd ddisg gyflawn ar gyfer rhedeg profion yn QEMU gan ddefnyddio OpenSBI. Ychwanegwyd tasgau newydd ar gyfer profi delweddau a pheiriannau rhithwir powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Mae gwaith ar y gweill i drosglwyddo cyfres brawf Kyua o'r porthladdoedd (datblygu / kyua) i'r system sylfaen i ddatrys problemau (mae pecynnau'n cael eu gosod yn araf iawn) sy'n codi wrth ddefnyddio Kyua ar bensaernïaeth newydd, y mae datblygiad ar ei gyfer yn cael ei wneud gan ddefnyddio efelychydd neu FPGA. Bydd integreiddio i'r system sylfaen yn symleiddio'n sylweddol y broses o brofi llwyfannau wedi'u mewnosod a rhyngwynebu â systemau integreiddio parhaus.
    • Mae prosiect wedi'i lansio i wneud y gorau o berfformiad gyrrwr y bont rhwydwaith os_pont, sy'n defnyddio mutex sengl i gloi data mewnol, nad yw'n caniatáu cyflawni'r perfformiad dymunol ar systemau gyda nifer fawr o amgylcheddau carchar neu beiriannau rhithwir wedi'u huno mewn un rhwydwaith. Ar y cam hwn, mae profion wedi'u hychwanegu at y cod i atal atchweliadau rhag digwydd yn ystod moderneiddio gweithio gyda chloeon. Mae'r posibilrwydd o ddefnyddio ConcurrencyKit i gyfochrog â thrinwyr trosglwyddo data (bridge_input(), bridge_output(), bridge_forward(), ...) yn cael ei ystyried.
    • Ychwanegwyd galwad system sigfastblock newydd i ganiatáu i edefyn nodi bloc cof ar gyfer triniwr signal cyflym i wella perfformiad trinwyr eithriadau.
    • Mae'r cnewyllyn yn ychwanegu cefnogaeth ar gyfer cyfarwyddiadau atomig LSE (Estyniad System Fawr) a gefnogir gan systemau ARMv8.1. Mae angen y cyfarwyddiadau hyn i wella perfformiad wrth redeg ar fyrddau Cavium ThunderX2 ac AWS Graviton 2. Mae'r newidiadau ychwanegol yn canfod cefnogaeth LSE ac yn galluogi'r gweithrediad atomig yn seiliedig arnynt yn ddeinamig. Yn ystod y profion, roedd y defnydd o LSE yn ei gwneud hi'n bosibl lleihau'r amser prosesydd a dreulir wrth gydosod y cnewyllyn 15%.
    • Mae optimeiddio perfformiad wedi'i wneud ac mae ymarferoldeb y pecyn cymorth wedi'i ehangu ar gyfer ffeiliau gweithredadwy yn fformat ELF.
      Ychwanegwyd cefnogaeth ar gyfer storio gwybodaeth dadfygio DWARF, datrys problemau yn y cyfleustodau elfcopi / objcopy, ychwanegwyd prosesu DW_AT_ranges,
      Mae readelf yn gweithredu'r gallu i ddadgodio'r baneri PROTMAX_DISABLE, STKGAP_DISABLE a WXNEEDED, yn ogystal â Xen a GNU Build-ID.

  • diogelwch
    • Er mwyn gwella perfformiad FreeBSD mewn amgylcheddau cwmwl Azure, mae gwaith ar y gweill i ddarparu cefnogaeth i'r mecanwaith HyperV Socket, sy'n caniatáu defnyddio rhyngwyneb soced ar gyfer rhyngweithio rhwng y system westeion a'r amgylchedd gwesteiwr heb sefydlu rhwydwaith.
    • Mae gwaith ar y gweill i ddarparu adeiladau amlroddadwy o FreeBSD, gan ei gwneud hi'n bosibl sicrhau bod ffeiliau gweithredadwy cydrannau'r system yn cael eu casglu'n union o'r codau ffynhonnell datganedig ac nad ydynt yn cynnwys newidiadau allanol.
    • Mae'r gallu i reoli cynnwys mecanweithiau amddiffyn ychwanegol (ASLR, PROT_MAX, bwlch stac, mapio W + X) ar lefel prosesau unigol wedi'i ychwanegu at y cyfleustodau elfctl
  • Systemau storio a ffeiliau
    • Mae gwaith ar y gweill i weithredu'r gallu i NFS weithredu dros sianel gyfathrebu wedi'i hamgryptio yn seiliedig ar TLS 1.3, yn lle defnyddio Kerberos (modd sec = krb5p), sy'n gyfyngedig i amgryptio negeseuon RPC yn unig ac a weithredir mewn meddalwedd yn unig. Mae'r gweithrediad newydd yn defnyddio'r pentwr TLS a ddarperir gan gnewyllyn i alluogi cyflymiad caledwedd. Mae'r cod NFS dros TLS bron yn barod i'w brofi, ond mae'n dal i fod angen gwaith i gefnogi tystysgrifau cleient wedi'u llofnodi ac addasu'r stack TLS cnewyllyn i anfon data NFS (mae clytiau i'w derbyn eisoes yn barod).
  • Cefnogaeth caledwedd
    • Mae gwaith ar y gweill i ychwanegu cefnogaeth ar gyfer Hygon CPU x86 Tsieineaidd yn seiliedig ar dechnolegau AMD;
    • Fel rhan o CheriBSD, fforc o FreeBSD ar gyfer pensaernïaeth prosesydd ymchwil CHERI (Cyfarwyddiadau RISC Gwell Caledwedd Gallu), mae cymorth ar gyfer prosesydd ARM Morello yn parhau i gael ei weithredu, a fydd yn cefnogi system rheoli mynediad cof CHERI yn seiliedig ar fodel diogelwch prosiect Capsicum. Sglodyn Morello yn cynllunio rhyddhau yn 2021. Ar hyn o bryd mae'r gwaith yn canolbwyntio ar ychwanegu cefnogaeth ar gyfer platfform Arm Neoverse N1 sy'n pweru Morello. Mae porthladd cychwynnol o CheriBSD ar gyfer pensaernïaeth RISC-V wedi'i gyflwyno. Mae datblygiad CheriBSD yn parhau ar gyfer prototeip cyfeirio CHERI yn seiliedig ar bensaernïaeth MIPS64.
    • Mae porthio FreeBSD yn parhau ar gyfer y SoC 64-bit NXP LS1046A yn seiliedig ar y prosesydd ARMv8 Cortex-A72 gydag injan cyflymu prosesu pecynnau rhwydwaith integredig, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 a USB 3.0. Ar hyn o bryd, mae gyrwyr QorIQ a LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI yn cael eu paratoi i'w trosglwyddo i'r prif gyfansoddiad FreeBSD.
    • Mae'r gyrrwr ena wedi'i ddiweddaru i fersiwn 2.1.1 gyda chefnogaeth ar gyfer yr ail genhedlaeth o addaswyr rhwydwaith ENAv2 (Addaswr Rhwydwaith Elastig) a ddefnyddir yn y seilwaith Cwmwl Elastig Compute (EC2) i drefnu cyfathrebu rhwng nodau EC2 ar gyflymder hyd at 25 Gb / s. Mae diweddariad i ENA 2.2.0 yn cael ei baratoi.
    • Mae gwelliannau i borthladd FreeBSD ar gyfer y platfform powerpc64 yn parhau. Mae'r ffocws ar ddarparu perfformiad o ansawdd ar systemau gyda phroseswyr IBM POWER8 a POWER9. Yn ystod y cyfnod adrodd, trosglwyddwyd FreeBSD-PRESENNOL i ddefnyddio casglwr LLVM/Clang 10.0 a chysylltydd lld yn lle GCC. Yn ddiofyn, mae systemau powerpc64 yn defnyddio'r ELFv2 ABI ac mae cefnogaeth i'r ELFv1 ABI wedi dod i ben. Mae gan FreeBSD-STABLE gcc 4.2.1 o hyd. Mae problemau gyda gyrwyr virtio, aacraid ac ixl wedi'u datrys. Ar systemau powerpc64 mae'n bosibl rhedeg QEMU heb gefnogaeth Huge Pages.
    • Mae gwaith yn parhau i weithredu cymorth ar gyfer pensaernïaeth RISC-V. Yn ei ffurf bresennol, mae FreeBSD eisoes yn cychwyn yn llwyddiannus ar fwrdd SiFive Hifive Unleashed, y mae gyrwyr wedi'u paratoi ar eu cyfer
      Mae UART, SPI a PRCI, yn cefnogi firmware OpenSBI a SBI 0.2. Yn ystod y cyfnod adrodd, roedd y gwaith yn canolbwyntio ar fudo o GCC i glonc ac lld.

  • Cymwysiadau a system porthladd
    • Mae casgliad porthladdoedd FreeBSD wedi croesi'r trothwy o 39 mil o borthladdoedd, mae nifer y cysylltiadau cyhoeddus heb eu cau ychydig yn fwy na 2400, ac nid yw 640 o gysylltiadau cyhoeddus wedi'u didoli eto. Yn ystod y cyfnod adrodd, gwnaed 8146 o newidiadau gan 173 o ddatblygwyr. Derbyniodd pedwar cyfranogwr newydd hawliau traddodi (Loïc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Ychwanegwyd baner USES=qca a thynnu baner USES=zope (oherwydd anghydnawsedd â Python 3). Mae gwaith ar y gweill i dynnu Python 2.7 o'r goeden borthladdoedd - rhaid i bob porthladd sy'n seiliedig ar Python 2 gael ei gludo i Python 3 neu caiff ei dynnu. Mae'r rheolwr pecyn pkg wedi'i ddiweddaru i ryddhau 1.13.2.
    • Cydrannau stacio graffeg wedi'u diweddaru a phorthladdoedd cysylltiedig â xorg.
      Mae'r gweinydd X.org wedi'i ddiweddaru i fersiwn 1.20.8 (a gludwyd yn flaenorol ar y gangen 1.18), a oedd yn caniatáu i FreeBSD ddefnyddio'r backend udev/evdev i drin dyfeisiau mewnbwn rhagosodedig. Mae'r pecyn Mesa wedi'i newid i ddefnyddio'r estyniad DRI3 yn lle DRI2 yn ddiofyn. Mae gwaith ar y gweill i gadw'r gyrwyr graffeg, pentwr dyfeisiau mewnbwn, a chydrannau drm-kmod (porthladd sy'n galluogi gweithredu modiwlau DRM amdgpu, i915 a radeon, gan ddefnyddio'r fframwaith linuxkpi ar gyfer cydnawsedd â Rheolwr Rendro Uniongyrchol y cnewyllyn Linux) yn gyfoes.

    • Mae bwrdd gwaith Plasma KDE, Fframweithiau KDE, Cymwysiadau KDE a Qt yn cael eu diweddaru a'u diweddaru i'r datganiadau diweddaraf. Mae cais newydd kstars (star atlas) wedi'i ychwanegu at y porthladdoedd.
    • Mae gwaith wedi'i wneud i ddileu newidiadau atchweliadol yn y rheolwr ffenestri xfwm4 a ymddangosodd ar ôl diweddaru Xfce i fersiwn 4.14 (er enghraifft, ymddangosodd arteffactau wrth addurno ffenestri).
    • Mae'r porthladd Gwin wedi'i ddiweddaru i ryddhau Wine 5.0 (cynigiwyd 4.0.3 yn flaenorol).
    • Gan ddechrau gyda fersiwn 1.14, ychwanegodd y casglwr iaith Go gefnogaeth swyddogol i bensaernïaeth ARM64 ar gyfer FreeBSD 12.0.
    • Mae OpenSSH ar y system sylfaenol wedi'i ddiweddaru i ryddhau 7.9p1.
    • Mae'r llyfrgell sysctlmibinfo2 wedi'i gweithredu a'i gosod mewn porthladdoedd (datblygu/libsysctlmibinfo2), gan ddarparu API ar gyfer cyrchu'r sysctl MIB a chyfieithu enwau sysctl yn ddynodwyr gwrthrych (OIDs).
    • Mae diweddariad dosbarthu wedi'i gynhyrchu NomadBSD 1.3.1, sy'n argraffiad o FreeBSD wedi'i addasu i'w ddefnyddio fel bwrdd gwaith cludadwy y gellir ei gychwyn o yriant USB. Mae'r amgylchedd graffigol yn seiliedig ar reolwr ffenestri Openbox. Defnyddir ar gyfer gosod gyriannau DSBMD (cefnogir mowntio CD9660, FAT, HFS +, NTFS, Ext2/3/4), i ffurfweddu rhwydwaith diwifr - wifimgr, ac i reoli'r cyfaint - DSBMixer.
    • Dechreuwyd gwaith ar ysgrifennu dogfennaeth gyflawn ar gyfer rheolwr amgylchedd y carchar pot. Mae Pot 0.11.0 yn cael ei baratoi i'w ryddhau, a fydd yn cynnwys offer ar gyfer rheoli'r pentwr rhwydwaith.

Ffynhonnell: opennet.ru

Ychwanegu sylw