Adroddiad Datblygu FreeBSD Ch2019 XNUMX

Cyhoeddwyd adroddiad ar ddatblygiad y prosiect FreeBSD o fis Gorffennaf i fis Medi 2019. Ymhlith y newidiadau gallwn nodi:

  • Materion cyffredinol a systemig
    • Yn gyffredinol, mae'r tîm Craidd wedi cymeradwyo'r posibilrwydd o gynnwys cod yn y system sy'n cael ei ddosbarthu o dan y drwydded BSD gyda chytundeb patent ychwanegol (BSD+Patent), ond rhaid cymeradwyo’r penderfyniad i gynnwys pob cydran yn y system o dan y drwydded hon ar wahân;
    • Cynhaliwyd cyfarfod cyntaf y gweithgor a grëwyd i symud codau ffynhonnell o'r system rheoli ffynhonnell ganolog Tanseilio i'r system ddatganoledig Git. Mae’r drafodaeth ar ddichonoldeb mudo yn dal i fynd rhagddi ac nid yw penderfyniadau ar lawer o faterion wedi’u datblygu eto (er enghraifft, beth i’w wneud â’r cyfraniad/, a oes angen adfywio hashes yn y gadwrfa git bresennol, a’r ffordd orau o weithredu profion o ymrwymiadau);
    • O NetBSD porthedig Pecyn cymorth KCSAN (Kernel Concurrency Sanitizer), sy'n eich galluogi i ganfod amodau hil rhwng edafedd cnewyllyn sy'n rhedeg ar wahanol CPUs;
    • Mae gwaith ar y gweill i ddefnyddio cydosodwr adeiledig Clang (IAS) yn lle'r cyfosodwr binutils GNU;
    • Mae seilwaith efelychu amgylchedd Linux (Linuxulator) wedi'i addasu i weithio ar bensaernïaeth ARM64. Wedi gweithredu'r alwad system “renameat2”. Mae'r cyfleustodau strace wedi'i wella i wneud diagnosis o broblemau mewn gweithredyddion Linux sy'n cael eu rhedeg yn y Linuxulator. Mae'r broblem gyda damweiniau wrth gysylltu ffeiliau gweithredadwy gyda glibc ffres wedi'i datrys. Mae porthladdoedd gyda chydrannau Linux ar gyfer Linuxulator wedi'u diweddaru i CentOS 7.7;
    • Fel rhan o raglen Google Summer of Code, cwblhaodd myfyrwyr chwe phrosiect yn llwyddiannus: paratowyd gweithrediad cyfleustodau ping unedig (IPv4/IPv6), datblygwyd offer ar gyfer profi waliau tân ac adnabod gwallau yn y cnewyllyn (glanweithydd cnewyllyn), y mac_ipacl cynigiwyd modiwl, ysgrifennwyd cod ar gyfer cywasgu cof rhithwir ac mae gwaith wedi'i wneud i wahanu'r broses adeiladu porthladdoedd o'r gosodiad lleol;
    • Mae'r prosiect ar gyfer profion niwlog ar y cnewyllyn FreeBSD gan ddefnyddio'r system yn parhau i ddatblygu syzcaller. Yn ystod y cyfnod adrodd, nodwyd mwy na deg gwall a'u dileu gan ddefnyddio syzkaller. I redeg syzkaller mewn peiriannau rhithwir yn seiliedig ar bhyve, mae gweinydd ar wahân wedi'i neilltuo, ac yn defnyddio
      Mae syzbot wedi sefydlu profion ar amrywiol is-systemau FreeBSD yn seilwaith Google. Trefnu trosglwyddo gwybodaeth am bob damwain i'r gwasanaeth backtrace.io i symleiddio eu grwpio a dadansoddi;

    • Mae gwaith yn mynd rhagddo i ddiweddaru gweithrediad zlib ar lefel y cnewyllyn.
      Mae cod sy'n gysylltiedig â chywasgu wedi'i fudo o zlib 1.0.4, a ryddhawyd dros 20 mlynedd yn ôl, i'r sylfaen cod zlib 1.2.11 cyfredol. Er mwyn uno mynediad i zlib, mae'r swyddogaethau cywasgu, cywasgu2 a dad-gywasgu wedi'u hychwanegu at y cnewyllyn. Mae'r cod sy'n sicrhau gweithrediad y protocol PPP o'r is-system netgraph wedi'i drosglwyddo i ddefnyddio gweithrediad system zlib, yn lle ei argraffiad ei hun o'r llyfrgell hon. Mae'r kern_ctf.c, opencryptodeflate, geom_uzip, subr_compressor, is-systemau hefyd wedi'u trosglwyddo i'r zlib newydd.
      if_mxge, bxe diweddaru a ng_deflate;

    • Mae rhyngwyneb cnewyllyn newydd yn cael ei ddatblygu sysctlinfo, sy'n eich galluogi i ddod o hyd i elfennau yn y gronfa ddata paramedr sysctl, wedi'u prosesu ar ffurf MIB (Sylfaen Gwybodaeth Reoli), a throsglwyddo gwybodaeth am wrthrychau i ofod defnyddwyr.
  • diogelwch
    • Modiwl cnewyllyn wedi'i ddatblygu mac_ipacl, yn seiliedig ar Fframwaith MAC TrustedBSD a gweithredu system rheoli mynediad ar gyfer gosodiadau pentwr rhwydwaith ar gyfer amgylcheddau carchar. Er enghraifft, gan ddefnyddio mac_ipacl, gall gweinyddwr system letyol atal y defnyddiwr gwraidd mewn amgylchedd carchar rhag newid neu osod cyfeiriadau IP neu osodiadau is-rwydwaith ar gyfer rhai rhyngwynebau rhwydwaith. System rheoli mynediad gorfodol arfaethedig yn caniatáu gosod rhestrau o gyfeiriadau IP ac is-rwydweithiau a ganiateir ar gyfer y carchar, gwahardd gosod rhai IPs ac is-rwydweithiau yn y carchar, neu gyfyngu ar newid paramedrau yn unig ar gyfer rhai rhyngwynebau rhwydwaith;
    • Rhoddodd Intel borth pentwr meddalwedd i'r prosiect TPM 2.0 (Modiwl Platfform Ymddiriedol) i ryngwynebu â'r sglodyn cyfrifiadura diogel, a ddefnyddir fel arfer ar gyfer llwytho cadarnwedd a llwythwr cychwyn OS wedi'i ddilysu. Cyflwynir cydrannau'r pentwr ar ffurf diogelwch porthladdoedd/tpm2-tss, security/tpm2-tools a security/tpm2-abrmd. Mae'r porthladd tpm2-tss yn cynnwys llyfrgelloedd ar gyfer defnyddio'r API TPM2, mae tpm2-tools yn darparu cyfleustodau llinell orchymyn ar gyfer cyflawni gweithrediadau TPM, ac mae tpm2-abrmd yn cynnwys gweithrediad proses gefndir o gydrannau Brocer Mynediad a Rheolwr Adnoddau TPM sy'n amlblecsu ceisiadau gan wahanol ddefnyddwyr TPM i ddyfais sengl. Yn ogystal â bwtio wedi'i ddilysu ar FreeBSD, gellir defnyddio TPM i wella diogelwch Strongswan IPsec, SSH a TLS trwy berfformio gweithrediadau cryptograffig ar sglodyn ar wahân;
    • Mae'r cnewyllyn ar gyfer pensaernïaeth amd64 wedi'i addasu i gychwyn gan ddefnyddio'r dechneg amddiffyn W^X (ysgrifennu XOR execute), sy'n golygu na ellir cyrchu tudalennau cof ar yr un pryd ar gyfer ysgrifennu a gweithredu (gellir llwytho'r cnewyllyn nawr gan ddefnyddio tudalennau cof gweithredadwy ar gyfer ysgrifennu yn cael ei wahardd). Mae'r dull amddiffyn cnewyllyn newydd wedi'i gynnwys yn y gangen HEAD a bydd yn cael ei gynnwys yn y datganiadau FreeBSD 13.0 a 12.2;
    • Ar gyfer galwadau system mmap a mprotect gweithredu macro PROT_MAX(), sy'n eich galluogi i bennu'r set o fflagiau cyfyngu mynediad a ganiateir ar gyfer newidiadau pellach (PROT_READ, PROT_WRITE, PROT_EXEC). Gan ddefnyddio PROT_MAX(), gall datblygwr wahardd trosglwyddo rhanbarth cof i'r categori gweithredadwy neu ofyn am gof nad yw'n caniatáu gweithredu, ond y gellir ei drawsnewid yn weithredadwy yn ddiweddarach. Er enghraifft, gall rhan o gof fod yn agored i'w ysgrifennu dim ond am gyfnod cysylltu deinamig neu gynhyrchu cod JIT, ond unwaith y bydd yr ysgrifennu wedi'i gwblhau, caiff ei gyfyngu i ddarllen a gweithredu yn unig, ac yn y dyfodol, os caiff ei beryglu, yr ymosodwr ni fydd yn gallu galluogi ysgrifennu ar gyfer y bloc cof hwnnw. Yn ogystal â PROT_MAX(), gweithredir sysctl vm.imply_prot_max hefyd, sydd, o'i actifadu, yn pennu'r set o fflagiau dilys yn seiliedig ar baramedrau cychwynnol yr alwad gyntaf i mmap;
    • Er mwyn gwella amddiffyniad rhag camfanteisio ar wendidau, yn ogystal â'r dechneg haposod gofod cyfeiriad (ASLR), mecanwaith ar gyfer haposod gwrthbwyso awgrymiadau sy'n mynd i'r afael â ffrâm y pentwr cychwynnol a'r strwythurau a osodir ar y pentwr gyda gwybodaeth am yr amgylchedd, paramedrau lansio'r rhaglen a data ar gyfer delweddau gweithredadwy ar ffurf ELF yn cael ei gynnig;
    • Mae gwaith wedi'i wneud i gael gwared ar y swyddogaeth cael anniogel o libc (gan ddechrau o safon C11, mae'r swyddogaeth hon wedi'i heithrio o'r fanyleb) ac i gywiro'r porthladdoedd sy'n dal i ddefnyddio'r swyddogaeth hon. Bwriedir cynnig y newid yn FreeBSD 13.0;
    • Mae prosiect arbrofol wedi'i lansio i greu offer ar gyfer trefnu amgylcheddau carchar yn seiliedig ar y fframwaith pot ar gyfer creu ac allforio delweddau, wedi'u gweithredu'n debyg i Docker, a gyrrwr NOMAD, sy'n darparu rhyngwyneb ar gyfer lansio ceisiadau yn ddeinamig mewn amgylchedd carchar. Mae'r model arfaethedig yn caniatáu i ni wahanu'r prosesau o greu amgylcheddau carchar a defnyddio ceisiadau ynddynt. Un o nodau'r prosiect yw darparu modd i drin carchardai fel cynwysyddion tebyg i Docker;
  • Systemau storio a ffeiliau
    • O NetBSD i'r cyfleustodau "makefs". symud Cefnogaeth system ffeiliau FAT (msdosfs). Mae'r newidiadau parod yn eich galluogi i greu delweddau FS gyda FAT heb ddefnyddio'r gyrrwr md a heb awdurdod gwraidd;
    • Mae ailweithio gyrrwr is-system FUSE (System Ffeil yn USErspace) wedi'i gwblhau, gan ganiatáu creu gweithrediadau system ffeiliau yng ngofod y defnyddiwr. Roedd y gyrrwr a gludwyd yn wreiddiol yn cynnwys llawer o fygiau ac roedd yn seiliedig ar FUSE 7.8, a ryddhawyd 11 mlynedd yn ôl. Fel rhan o'r prosiect moderneiddio gyrwyr, mae cefnogaeth i brotocol FUSE 7.23 wedi'i weithredu, mae cod ar gyfer gwirio hawliau mynediad ar ochr y cnewyllyn (“-o default_permissions”) wedi'i ychwanegu, mae galwadau i VOP_MKNOD, VOP_BMAP a VOP_ADVLOCK wedi'u hychwanegu, y mae'r gallu i dorri ar draws gweithrediadau FUSE wedi'i ddarparu, mae cefnogaeth ar gyfer pibellau dienw a socedi unix wedi'i ychwanegu mewn ffiwsiau, daeth yn bosibl defnyddio kqueue ar gyfer /dev/ffiws, roedd yn bosibl diweddaru paramedrau mowntio trwy "mount -u", cefnogaeth ychwanegol ar gyfer allforio fusefs trwy NFS, gweithredu cyfrifo RLIMIT_FSIZE, ychwanegu'r fflagiau FOPEN_KEEP_CACHE a FUSE_ASYNC_READ, gwneud optimeiddiadau perfformiad sylweddol a threfniadaeth caching well. Mae'r gyrrwr newydd wedi'i gynnwys yn y pen a'r stabl/12 cangen (wedi'i gynnwys yn FreeBSD 12.1);
    • Mae gweithrediad NFSv4.2 (RFC-7862) ar gyfer FreeBSD bron wedi'i gwblhau. Roedd y prif ffocws yn ystod y cyfnod adrodd ar brofi. Mae profion wedi'u cwblhau i wirio cydnawsedd â gweithrediad Linux, ond mae profi'r gweinydd pNFS gyda NFSv4.2 yn dal i fynd rhagddo. Yn gyffredinol, ystyrir bod y cod eisoes yn barod i'w integreiddio i ganghennau pen/presennol FreeBSD. Mae'r fersiwn newydd o NFS yn ychwanegu cefnogaeth ar gyfer y swyddogaethau posix_fadvise, posix_fallocate, moddau SEEKHOLE / SEEKDATA yn lseek, gweithrediad copïo lleol o rannau o ffeil ar y gweinydd (heb drosglwyddo i'r cleient);
  • Cefnogaeth caledwedd
    • Mae prosiect wedi'i lansio i wella perfformiad FreeBSD ar liniaduron. Y ddyfais gyntaf i gael ei harchwilio ar gyfer cymorth caledwedd yn FreeBSD oedd gliniadur Lenovo X1 Carbon seithfed genhedlaeth;
    • CheriBSD, fforch o FreeBSD ar gyfer pensaernïaeth prosesydd ymchwil CHERI (Cyfarwyddiadau RISC Gwell Caledwedd Gallu), wedi'u diweddaru i gefnogi'r prosesydd ARM Morello sydd ar ddod, a fydd yn cefnogi system rheoli mynediad cof CHERI yn seiliedig ar fodel diogelwch dyluniad Capsicum. Sglodyn Morello yn cynllunio rhyddhau yn 2021. Mae datblygwyr CheriBSD hefyd yn parhau i fonitro datblygiad prototeip cyfeirio CHERI yn seiliedig ar bensaernïaeth MIPS;
    • Cefnogaeth estynedig i sglodion RockChip RK3399 a ddefnyddir mewn byrddau RockPro64 a NanoPC-T4. Y gwelliant mwyaf arwyddocaol oedd cefnogaeth i eMMC a datblygu gyrrwr newydd ar gyfer y rheolydd eMMC a ddefnyddir ar y bwrdd;
    • Mae gwaith yn parhau i weithredu cefnogaeth ar gyfer ARM64 SoC Broadcom BCM5871X gyda phroseswyr ARMv8 Cortex-A57, gyda'r nod o'u defnyddio mewn llwybryddion, pyrth a storio rhwydwaith. Yn ystod y cyfnod adrodd
      Mae cefnogaeth iProc PCIe wedi'i ehangu ac mae'r gallu i ddefnyddio gweithrediadau cryptograffig caledwedd i gyflymu IPsec wedi'i ychwanegu.
      Disgwylir integreiddio cod i gangen HEAD yn y pedwerydd chwarter;

    • Bu datblygiadau sylweddol yn natblygiad porthladd FreeBSD ar gyfer y platfform powerpc64. Mae'r ffocws ar ddarparu perfformiad o ansawdd ar systemau gyda phroseswyr IBM POWER8 a POWER9, ond yn ddewisol yn cefnogi gweithrediad ar Apple Power Macs hŷn, x500 ac Amiga A1222. Mae cangen powerpc */12 yn parhau i anfon gyda gcc 4.2.1, a bydd y gangen powerpc */13 yn cael ei symud i llvm90 yn fuan. Allan o 33306 o borthladdoedd, mae 30514 wedi'u cydosod yn llwyddiannus;
    • 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. Yn ystod y cyfnod adrodd, gweithredwyd cefnogaeth ar gyfer rhyngwyneb rhwydwaith USB 3.0, SD / MMC, I2C, DPAA a GPIO. Mae cynlluniau i gefnogi QSPI a gwneud y gorau o berfformiad y rhyngwyneb rhwydwaith. Disgwylir i'r gwaith gael ei gwblhau a'i gynnwys yng nghangen HEAD yn y 4ydd chwarter 2019;
    • Mae'r gyrrwr ena wedi'i ddiweddaru i gefnogi'r 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 cefnogaeth NETMAP wedi'i ychwanegu a'i brofi i'r gyrrwr ena, ac mae'r gosodiad cof wedi'i addasu i alluogi modd LLQ mewn amgylcheddau Amazon EC2 A1;
  • Cymwysiadau a system porthladd
    • Cydrannau stacio graffeg wedi'u diweddaru a phorthladdoedd cysylltiedig â xorg. Mae porthladdoedd sy'n defnyddio USE_XORG a XORG_CAT wedi'u symud i'r fframwaith USES yn lle ffonio bsd.xorg.mk trwy bsd.port.mk. Mae porthladdoedd o'r fath bellach yn cynnwys y faner "USES=xorg" yn eu ffeiliau gwneud. Mae swyddogaeth XORG_CAT wedi'i gwahanu oddi wrth bsd.xorg.mk ac mae bellach wedi'i alluogi gan y faner "USES=xorg-cat". Offer ychwanegol ar gyfer cynhyrchu porthladdoedd xorg yn uniongyrchol o ystorfa git
      freedesktop.org, sydd, er enghraifft, yn caniatáu ichi greu porthladdoedd ar gyfer fersiynau sydd heb eu rhyddhau eto. Yn y dyfodol, rydym yn bwriadu paratoi offer ar gyfer defnyddio'r system cydosod meson yn lle autotools i adeiladu porthladdoedd xorg.

      Mae gwaith wedi'i wneud i lanhau hen borthladdoedd xorg sy'n gysylltiedig â chydrannau nad ydyn nhw'n cael eu cynnal bellach, er enghraifft, mae'r porthladd x11/libXp wedi'i ddileu, ac mae'r porthladdoedd x11/Xxf86misc, x11-fonts/libXfontcache a graffeg/libGLw wedi'u anghymeradwyo ;

    • Mae gwaith wedi'i wneud i wella cefnogaeth ar gyfer Java 11 a datganiadau mwy newydd yn FreeBSD, yn ogystal â phorthladd rhai newidiadau i gangen Java 8. Ar ôl cefnogaeth ar gyfer nodweddion Java 11 newydd fel Java Flight Recorder, HotSpot Serviceability Asiant, gweithredwyd HotSpot Debugger ar gyfer FreeBSD, DTrace, Javac Server, Java Sound a SCTP, symudodd gwaith i sicrhau bod pob prawf cydnawsedd wedi pasio. Mae nifer y methiannau wrth basio profion wedi'i leihau o 50 i 2;
    • Mae bwrdd gwaith Plasma KDE, Fframweithiau KDE, Cymwysiadau KDE a Qt yn cael eu diweddaru a'u diweddaru i'r datganiadau diweddaraf;
    • Porthladdoedd gyda bwrdd gwaith Xfce wedi'u diweddaru i'w rhyddhau 4.14;
    • Mae coeden porthladdoedd FreeBSD wedi rhagori ar 38000 o borthladdoedd, mae nifer y cysylltiadau cyhoeddus heb eu cau ychydig dros 2000, ac nid yw 400 o gysylltiadau cyhoeddus wedi'u datrys eto. Yn ystod y cyfnod adrodd, gwnaed 7340 o newidiadau gan 169 o ddatblygwyr. Derbyniodd dau gyfranogwr newydd (Santhosh Raju a Dmitri Goutnik) hawliau traddodi. Mae datganiad newydd o'r rheolwr pecyn pkg 1.12 wedi'i gyhoeddi, gyda chefnogaeth ar gyfer troshaenau yn y goeden porthladdoedd a glanhau bsd.sites.mk. Ymhlith y diweddariadau fersiwn sylweddol yn y porthladdoedd mae: Lazarus 2.0.4, LLVM 9.0, Perl5.30, PostgreSQL 11, Ruby 2.6, Firefox 69.0.1, Firefox-esr 68.1.0, Chromium 76.0;
    • Mae datblygiad y prosiect yn parhau ClonOS, datblygu dosbarthiad arbenigol ar gyfer defnyddio seilwaith gweinydd rhithwir. O ran y tasgau y mae'n eu datrys, mae ClonOS yn debyg i systemau fel Proxmox, Triton (Joyent), OpenStack, OpenNebula ac Amazon AWS, a'r prif wahaniaeth yw defnyddio FreeBSD a'r gallu i reoli, defnyddio a rheoli cynwysyddion Jail FreeBSD a amgylcheddau rhithwir yn seiliedig ar orweledyddion Bhyve a Xen. Mae newidiadau diweddar yn cynnwys cefnogaeth
      cwmwl-init ar gyfer Linux/BSD VM a cloudbase-init ar gyfer Windows VM, gan ddechrau'r newid i ddefnyddio delweddau brodorol, defnyddio Jenkins CI ar gyfer profi adeiladau a storfa pkg newydd i'w gosod
      ClonOS o becynnau.

Ffynhonnell: opennet.ru

Ychwanegu sylw