FreeBSD Q2019 XNUMX pažangos ataskaita

paskelbta ataskaita apie FreeBSD projekto vystymąsi nuo 2019 m. balandžio iki birželio mėn. Tarp pakeitimų galime pastebėti:

  • Bendrieji ir sisteminiai klausimai
    • Pagrindinė komanda nusprendė sudaryti darbo grupę, kuri ištirtų galimybę perkelti šaltinio kodą iš centralizuotos Subversion šaltinio valdymo sistemos į decentralizuotą Git sistemą.
    • Atliktas FreeBSD branduolio fuzz testavimas naudojant sistemą syzkaller ir buvo ištaisyta nemažai nustatytų klaidų. Pridėtas sluoksnis, skirtas neaiškiam bibliotekų suderinamumui su 32 bitų aplinka tikrinti sistemose su 64 bitų branduoliu. Įdiegta galimybė paleisti „syzkaller“ „bhyve“ pagrįstose virtualiose mašinose. Kitame etape planuojama išplėsti sistemos iškvietimo testavimo aprėptį, naudoti LLVM sanitizer branduoliui patikrinti, naudoti netdump branduolio išmetimams išsaugoti gedimų metu per miglotą testavimą ir kt.
    • Pradėtas zlib diegimo atnaujinimas branduolio lygiu. Norint pasiekti branduolio prieigą prie zlib kodo, katalogas contrib/zlib buvo pervadintas į sys/contrib/zlib, o crc.h antraštės failas taip pat buvo pervardytas, kad būtų išvengta konflikto su zlib/crc.h. Išvalytas senas kodas, priklausantis nuo zlib ir padidintas. Toliau planuojama suteikti galimybę kurti branduolį vienu metu su senu ir nauju zlib, kad būtų galima palaipsniui perkelti į naują funkcijų, naudojančių glaudinimą, versiją;
    • Atnaujinta Linux aplinkos emuliacijos infrastruktūra (Linuxulator). Padidintas „Linux“ derinimo įrankių, tokių kaip „strace“ įrankis, palaikymas. Prie prievadų buvo pridėtas paketas „linux-c7-strace“, kurį galima naudoti „Linux“ vykdomiesiems failams sekti vietoj standartinių „truss“ ir „ktrace“ paslaugų, kurios dar negali iššifruoti kai kurių „Linux“ specifinių vėliavėlių ir struktūrų. Be to, buvo pridėtas paketas linux-ltp su Linux Test Project vykdomaisiais failais ir išspręstos suderinamumo problemos su vykdomosiomis programomis, susietomis su naujomis glibc versijomis;
    • Uždelsto negaliojimo operacijų įgyvendinimas pmap mechanizme perkeltas į eilių apdorojimo algoritmo, veikiančio be užraktų, naudojimą, kuris leido išspręsti mastelio problemas, atliekant daugybę lygiagrečių unmap operacijų;
    • Buvo pakeistas vnode blokavimo mechanizmas vykdant execve() šeimos sistemos iškvietimus, o tai leido pasiekti didesnį efektyvumą tuo pačiu metu vykdant execve() tam pačiam failui (pavyzdžiui, atliekant surinkimo operacijas su lygiagrečiavimu apie kompiliatoriaus paleidimą);
  • saugumas
    • „bhyve hypervisor“ ir toliau tobulina svečių aplinkos tiesioginio perkėlimo iš vieno pagrindinio kompiuterio į kitą palaikymą ir išsaugojimo / atkūrimo funkciją, leidžiančią užšaldyti svečių sistemą, išsaugant būseną faile ir tada atnaujinti vykdymą.
    • Naudodama libvdsk biblioteką, bhyve pridėjo disko vaizdų palaikymą QCOW2 formatu. Darbui reikalingas montavimas
      specialiai modifikuotas bhyve versija, kuri buvo konvertuota naudoti failų operacijų tvarkykles, pagrįstas libvdsk. Per ataskaitinį laikotarpį „libvdsk“ taip pat atliko darbą, siekdama supaprastinti naujų formatų palaikymo integravimą, pagerino skaitymo ir rašymo našumą bei pridėjo „Copy-On-Write“ palaikymą. Iš likusių užduočių pažymima libvdsk integracija į pagrindinę bhyve struktūrą;

    • Prie uostų buvo pridėta eismo informacijos rinkimo sistema
      Maltrail, kuri leidžia sukurti spąstus kenkėjiškoms tinklo užklausoms (tikrinami IP ir domenai iš juodųjų sąrašų) ir siųsti informaciją apie aptiktą veiklą į centralizuotą serverį, kad vėliau būtų galima blokuoti ar analizuoti atakos bandymus;

    • Prie prievadų pridėtos platformos, skirtos aptikti atakas, analizuoti žurnalus ir stebėti failų vientisumą Wazuh (Ossec šakutė su palaikymu integracijai su ELK-Stack);
  • Tinklo posistemis
    • ena tvarkyklė buvo atnaujinta, kad palaikytų antrosios kartos ENAv2 (Elastic Network Adapter) tinklo adapterius, naudojamus Elastic Compute Cloud (EC2) infrastruktūroje, siekiant organizuoti ryšį tarp EC2 mazgų iki 25 Gb/s greičiu. NETMAP palaikymas buvo pridėtas prie ena tvarkyklės.
    • „FreeBSD HEAD“ naudoja naują MMC/SD krūvą, pagrįstą CAM sistema ir leidžiančią prijungti įrenginius su SDIO (Secure Digital I/O) sąsaja. Pavyzdžiui, SDIO naudojamas WiFi ir Bluetooth moduliuose daugeliui plokščių, tokių kaip Raspberry Pi 3. Naujasis kaminas taip pat leidžia naudoti CAM sąsają siųsti SD komandas iš vartotojų erdvėje esančių programų, todėl galima sukurti įrenginį. tvarkyklės, veikiančios vartotojo lygiu. Pradėtas darbas kuriant „Broadcom“ belaidžių lustų, veikiančių FullMAC režimu, tvarkykles (lusto pusėje ji veikia panaši į savo operacinę sistemą su savo 802.11 belaidžiu stekeliu);
    • Šiuo metu vyksta NFSv4.2 (RFC-7862) diegimas, skirtas FreeBSD. Naujoji NFS versija prideda palaikymą posix_fadvise, posix_fallocate funkcijoms, SEEKHOLE/SEEKDATA režimams lseek ir failo dalių vietiniam kopijavimui serveryje (neperkeliant klientui).

      Šiuo metu FreeBSD teikia pagrindinį palaikymą LayoutError, IOAdvise, Allocate ir Copy operacijoms. Belieka įdiegti „Seek“ operaciją, reikalingą norint naudoti „lseek“ (SEEKHOLE/SEEKDATA) su NFS. NFSv4.2 palaikymas planuojamas FreeBSD 13;

  • Saugojimo ir failų sistemos
    • Baigiamas rengti FUSE (File system in USERspace) posistemio tvarkyklės, leidžiančios kurti failų sistemų diegimus vartotojo erdvėje, perdarymo projektas. Iš pradžių pateikta tvarkyklė yra pasenusi ir joje yra daug klaidų. Vykdant tvarkyklės modernizavimo projektą buvo įdiegtas FUSE 7.23 protokolo palaikymas (buvo palaikoma 7.8 versija, išleista prieš 11 metų), pridėtas kodas prieigos teisėms patikrinti branduolio pusėje („-o default_permissions“), skambučiai į Pridėta VOP_MKNOD, VOP_BMAP ir VOP_ADVLOCK, galimybė nutraukti FUSE operacijas, papildomas bevardžių vamzdžių ir unix lizdų palaikymas saugikliuose, galimybė naudoti kqueue /dev/fuse, leido atnaujinti montavimo parametrus per „mount -u“, papildomas palaikymas. eksportuojant saugiklius per NFS, įdiegta RLIMIT_FSIZE apskaita, pridėtos FOPEN_KEEP_CACHE vėliavėlės ir FUSE_ASYNC_READ, atliktas reikšmingas našumo optimizavimas ir patobulintas talpyklos organizavimas;
    • BIO_DELETE operacijos palaikymas buvo pridėtas prie apsikeitimo gaviklio kodo, kuris leidžia naudoti komandą TRIM, kai pašalinate blokus iš SSD diskų, kad padidintumėte jų tarnavimo laiką.
  • Techninės įrangos palaikymas
    • Tęsiamas ARM64 SoC Broadcom BCM5871X palaikymas su ARMv8 Cortex-A57 procesoriais, skirtas naudoti maršrutizatoriuose, šliuzuose ir tinklo saugykloje. Per ataskaitinį laikotarpį buvo patobulintas vidinių ir išorinių iProc PCIe magistralių palaikymas, pridėtas BNXT Ethernet palaikymas, vyksta darbas naudojant integruotą kriptovaliutų variklį IPsec spartinimui. Kodo integravimas į HEAD šaką numatomas antrąjį pusmetį;
    • Pradėtas 64 bitų SoC NXP LS1046A palaikymas, pagrįstas ARMv8 Cortex-A72 procesoriumi su integruotu tinklo paketų apdorojimo spartinimo varikliu, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 ir USB 3.0. Bazinės platformos (kelių vartotojų SMP) ir SATA 3.0 palaikymas jau įdiegtas. Kuriamas USB 3.0, SD/MMC ir I2C palaikymas. Į planus įtrauktas Ethernet, GPIO ir QSPI palaikymas. Darbų pabaiga ir įtraukimas į HEAD filialą numatomas 4 metų IV ketvirtį.
    • Atnaujintos mlx5en ir mlx5ib tvarkyklės, skirtos Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex] ir ConnectX-6 [Dx] Ethernet ir InfiniBand adapteriams. Pridėtas Mellanox Socket Direct (ConnectX-6) adapterių palaikymas, leidžiantis iki 200 Gb/s pralaidumą naudojant PCIe Gen 3.0 magistralę. Kelių branduolių BlueField lustams buvo pridėtas RShim tvarkyklės palaikymas. Prie prievadų buvo pridėtas paketas mstflint su Mellanox adapterių diagnostikos paslaugų rinkiniu;
  • Programos ir prievadų sistema
    • Grafikos kamino komponentai buvo atnaujinti. Drm.ko (tiesioginio atvaizdavimo tvarkyklės) tvarkyklė buvo perkelta iš Linux 5.0 branduolio. Ši tvarkyklė laikoma eksperimentine ir buvo įtraukta į prievadų medį kaip graphics/drm-devel-kmod. Kadangi tvarkyklė naudoja atnaujintą Linux KPI sistemą, kad būtų suderinama su Linux branduolio DRM API, norint paleisti „FreeBSD CURRENT“ reikia. VirtualBox virtualiojo GPU vboxvideo.ko drm tvarkyklė taip pat buvo perkelta iš Linux. Mesa paketas buvo atnaujintas iki 18.3.2 ir perjungtas naudoti LLVM iš devel/llvm80 prievado, o ne devel/llvm60.
    • FreeBSD prievadų medis viršijo 37000 2146 prievadų, neuždarytų PR skaičius išlieka 7837. Per ataskaitinį laikotarpį buvo atlikti 172 pakeitimai iš 5.7 kūrėjų. Trys nauji dalyviai gavo įsipareigojimo teises. Tarp svarbių versijų atnaujinimų prievaduose yra: MySQL 3.6, Python 2.5, Ruby 4.8, Samba 1.0, Julia 68.0, Firefox 75.0.3770.100, Chromium 3.6. Visi „Go“ prievadai buvo konvertuoti į „USES=go“ vėliavėlę. Prie „Haskell“ kodui naudojamo „Cabal“ paketo tvarkyklės pridėta vėliavėlė „USES=cabal“. Įjungtas griežtos krūvos apsaugos režimas. Numatytoji Python versija yra 2.7, o ne XNUMX.
    • Komunalinių paslaugų leidimas buvo parengtas nsysctl 1.0, kuris siūlo analogą /sbin/sysctl, kuris naudoja libxo išvesties ir išplėsto parinkčių rinkinio suteikimui. Nsysctl gali būti naudojamas vizualiai stebėti sysctl reikšmių būseną ir pateikti informaciją apie objektus struktūrizuota forma. Galima išvestis XML, JSON ir HTML formatais;

Šaltinis: opennet.ru

Добавить комментарий