FreeBSD arengu aruande teine kvartal 2019

Avaldatud FreeBSD projekti aruanne aprillist juunini 2019. Muudatused, mida tasub mainida:

  • Üldised ja süsteemiküsimused
    • Kernmeeskond otsustas luua töörühma, et uurida võimalust tõlkida allikaid keskserverist Subversion hajusa süsteemi Git.
    • FreeBSD tuuma fuzzing-testimine on läbi viidud süsteemi abil syzkaller ja selle käigus on parandatud rida tuvastatud vigu. Lisatud on fuzzing-testimise kiht teekidele, et tagada ühilduvus 32-bitise keskkonnaga 64-bitise tuumal. Rakendatud on syzkaller'i käivitamise võimalus bhyve-põhistes virtuaalmasinates. Järgmises etapis on plaanis laiendada testimist süsteemikõnede katmiseks, kasutada LLVM sanitizerit tuuma kontrollimiseks, kasutada netdump'i tuuma dumpide salvestamiseks kriitiliste tõrgete ajal fuzzing-testeerimise käigus jne.
    • Hakkasid uue zlib teostuse värskendusega südamikus tööle. Südamiku juurdepääsuks zlib koodile on kataloog contrib/zlib ümber nimetatud sys/contrib/zlib, samuti on pealkirjatühi crc.h ümber nimetatud конфликти vältimiseks zlib/crc.h-iga. Tehtud on vananenud koodi puhastus, mis sõltus zlib-st ja inflate'st. Edasi kavatsetakse tagada võimalus koguda südamikku samaaegselt vana ja uue zlib-iga, et jõuda sujuvalt üle uue versiooni funktsioonidele, mis kasutavad tihendamist;
    • Linuxi keskkonna emulatsioonistruktuur (Linuxulator) on ajakohastatud. Linuxi silumisriistade, nagu strace utiliidi, tugi on suurenenud. Portidesse on lisatud pakett linux-c7-strace, mida saab kasutada Linuxi täitmisfailide jälgimiseks alternatiivina praegustele utiliitidele truss ja ktrace, mis ei suuda senimaani dekodeerida mõningaid Linuxile spetsiifilisi lippu ja struktuure. Lisaks on lisatud linux-ltp pakett Linux Test Project täitmisfailidega ning lahendatud probleemid uute glibc versioonidega kompileeritud täitmisfailide ühilduvuses;
    • Paremine füüsilise mälu lehtede seostamise viivitavate puhastusoperatsioonide (delayed invalidation) rakendamine pmap mehhanismis on viidud üle lukustusteta järjekorra töötlemise algoritmi kasutamisele, mis on lahendanud ulatuslikkuse probleemid, kui teostatakse palju paralleelseid unmap operatsioone;
    • Vnode'i lukustusmehhanismi on muudetud execve() süsteemikutsungite täitmise käigus, mis on võimaldanud suurendada efektiivsust, kui sama faili execve() täidetakse samaaegselt (näiteks koostamisoperatsioonide paralleliseerimise puhul);
  • Turvalisus
    • Hüperviisoris bhyve jätkub Live-migreerimise toe täiustamine virtuaalsete keskkondade ülemiseks ühelt hostilt teisele ja Save/Restore funktsionaalsuse arendamine, mis võimaldab külmutada külalissüsteemi oleku failina, et seejärel jätkata täitmist.
    • Bhyve's on libvdsk raamatukogu abil lisatud QCOW2 formaadis kettapiltide tugi. Toimimiseks on vajalik
      spetsiaalselt modifitseeritud bhyve versioon, mis on muudetud libvdsk-põhiste failihaldureid kasutavaks. Aruandeperioodil tehtud libvdsk-s ka tööd uute formaatide toe integreerimise lihtsustamiseks, lugemise ja kirjutamise jõudluse parandamiseks ning Copy-On-Write toe lisamiseks. Jäänud ülesannetest toome esile libvdsk integreerimise bhyve peamisse koostisse.
    • Pordidesse on lisatud teabe kogumise süsteem liikluse kohta
      Maltrail, mis võimaldab luua lõkse kahjulikele võrgu päringutele (kontrollitakse mustadesse nimekirjadesse kuuluvaid IP aadresse ja domeene) ja saata teavet tuvastatud tegevuse kohta tsentraliseeritud serverisse edasise blokeerimise või rünnakute analüüsi jaoks;
    • Pordidesse on lisatud platvorm rünnakute tuvastamiseks, logide analüüsimiseks ja failide terviklikkuse jälgimiseks Wazuh (Ossec forki tugi integreerimisega ELK-Stack);
  • Võrgu alamsüsteem
    • Uuendatud ena draiver teise põlvkonna ENAv2 (Elastic Network Adapter) võrgukaartide toega, mida kasutatakse Elastic Compute Cloud (EC2) infrastruktuuris EC2 sõlmede vahelise ühenduse korraldamiseks kiirusel kuni 25 Gb/s. Ena draiverisse on lisatud NETMAP tugi.
    • FreeBSD HEAD on vastu uus MMC/SD kiht, mis põhineb CAM raamistikul ja võimaldab ühendada SDIO (Secure Digital I/O) liidesega seadmeid. Näiteks kasutatakse SDIO tehnikat WiFi ja Bluetooth moodulites paljudes plaatides, sealhulgas Raspberry Pi 3-s. Uus kiht võimaldab samuti CAM liidese kasutamist SD käskude edastamiseks kasutaja ruumis olevatest rakendustest, mis võimaldab luua seadme draivereid, mis töötavad kasutaja tasemel. On alustatud tööd Broadcomi juhtmete draiverite väljatöötamiseks, mis töötavad FullMAC režiimis (kiibi pooles jookseb sarnane oma opsüsteem, koos oma traadita 802.11 protsessi rakendustega);
    • Tööd käivad NFSv4.2 (RFC-7862) rakendamise kallal FreeBSD-s. Uues NFS versioonis on lisatud tugi funktsioonidele posix_fadvise, posix_fallocate, SEEKHOLE/SEEKDATA režiimidele lseek-is ning kohaliku faili osade kopeerimise funktsioon serveris (ilma andmete kliendile edasiviimiseta).

      FreeBSD-s on hetkel juba rakendatud põhitoetust operatsioonidele LayoutError, IOAdvise, Allocate ja Copy. Jäänud on rakendada operatsioon Seek, mis on vajalik lseek(SEEKHOLE/SEEKDATA) kasutamiseks NFS-iga. NFSv4.2 toetus plaanitakse kaasata FreeBSD 13-sse;

  • Salvestussüsteemid ja failisüsteemid
    • FUSE (File system in USErspace) alajaama draiveri redigeerimise projekt on peaaegu lõpetatud, võimaldades luua failisüsteemide teostusi kasutaja ruumis. Algse tarnitud draiveri versioon on aegunud ja sisaldab palju vigu. Draiveri moderniseerimise projekti raames on ellu viidud toe toomine protokollile FUSE 7.23 (varasemalt toetatud versioon 7.8, mis ilmus 11 aastat tagasi), lisatud kood juurdepääsuõiguste kontrollimiseks tuumapoolel („-o default_permissions“), lisatud VOP_MKNOD, VOP_BMAP ja VOP_ADVLOCK kutsed, tagatud FUSE operatsioonide katkestamise võimalus, lisatud toe toomine nimetamatutele kanalitele ja unix-soketidele fusefs-is, võimaldatud kqueue kasutamine /dev/fuse jaoks, lubatud mälestuse parameetrite värskendamine „mount -u“ kaudu, lisatud toe toomine fusefs-i eksportimiseks NFS kaudu, ellu viidud RLIMIT_FSIZE arvestust, lisatud lipud FOPEN_KEEP_CACHE ja FUSE_ASYNC_READ, tehtud märkimisväärseid jõudluse optimeerimisi ja täiustatud vahemälu korraldust;
    • Mälu lehe vahetamise koodis on lisatud toetust BIO_DELETE operatsioonile, mis võimaldab kasutada TRIM käsku SSD-de plokkide kustutamise protsessis, et pikendada nende eluiga.
  • Seadmese toetamine
    • Tööd ARM64 SoC Broadcom BCM5871X, ARMv8 Cortex-A57 protsessoritega, mis on suunatud kasutamiseks ruutereis, väravates ja võrguhoidlates, on jätkunud. Areportimisperioodil on paranenud iProc PCIe sisemiste ja välimiste busside tugi, lisatud on BNXT Etherneti tugi, ning töötatakse välja sisseehitatud krüpteerimismootori kaasamist IPsec-i kiirendamiseks. Koodi integreerimist HEAD harusse oodatakse teisel poolaastal;
    • Alustatud on 64-bitise SoC NXP LS1046A toe arendamine, mis põhineb ARMv8 Cortex-A72 protsessoril ja sisaldab sisseehitatud võrgu pakettide töötlemise kiirendimootorit, 10 Gb Etherneti, PCIe 3.0, SATA 3.0 ja USB 3.0. Põhiplatvorm (multi-user SMP) ja SATA 3.0 tugi on juba rakendatud. USB 3.0, SD/MMC ja I2C toe arendus on käimas. Plaanis on Ethernet, GPIO ja QSPI toimetamine. Töö lõpetamist ja integreerimist HEAD harusse oodatakse 2019. aasta 4. kvartalis.
    • Uuendatud juhtmed mlx5en ja mlx5ib Ethernet- ja InfiniBand-adapteritele Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex] ja ConnectX-6 [Dx]. Lisatud tugi Mellanox Socket Direct (ConnectX-6) adapteritele, mis võimaldavad saavutada andmeedastuskiirus kuni 200Gb/s PCIe Gen 3.0 bussil. Multikeermega „BlueField“ kiipide jaoks on lisatud RShim draiveri tugi. Portides on lisatud mstflint paket, mis sisaldab diagnostikaprogramme Mellanox adapteritele;
  • Rakendused ja portsüsteem
    • Uuendatud graafikapino komponente. Suurendatud drm.ko (Direct Rendering Manager) draiveri porteerimist Linuxi tuumast 5.0. Antud draiverit peetakse katsetamiseks ja see on lisatud portide puusse kui graphics/drm-devel-kmod. Kuna draiver kasutab Linux KPI uuendatud raamistikku DRM API tuumaga ühilduvuses, on vajalik FreeBSD CURRENT. Linuxist on samuti porteeritud drm-draiver vboxvideo.ko virtuaalsete GPU-de jaoks VirtualBoxis. Mesa pakett on uuendatud versioonile 18.3.2 ja muudetud kasutama LLVM-i läbi devel/llvm80 porti, mitte devel/llvm60.
    • FreeBSD sadade puu on ületanud 37000 sadama piiri, avatud PR-de arv püsib 2146 juures. Aruandeperioodil tehti 7837 muudatust 172 arendajalt. Kolm uut osalejat said committer'i õigused. Oluline versioonide värskendus sadamates hõlmab: MySQL 5.7, Python 3.6, Ruby 2.5, Samba 4.8, Julia 1.0, Firefox 68.0, Chromium 75.0.3770.100. Kõik Go keeles kirjutatud sadamad on üle viidud lipu „USES=go” kasutamisele. Lisatud lipp „USES=cabal” Haskell koodile mõeldud pakihalduri Cabal jaoks. Nüüd on lubatud range stack protection režiim. Vaikimisi pakutakse Python 3.6 versiooni, mitte 2.7.
    • Kasutatav utiliit on valmistatud nsysctl 1.0, mis pakub sarnast /sbin/sysctl, kasutades libxo -tulemusena ja pakkudes laiemat valikute kogumit. Nsysctl saab kasutada sysctl väärtuste jälgimiseks ja teabe struktureeritud esitlemiseks. Väljund on võimalik vormingutes XML, JSON ja HTML;

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster