Izvješće o napretku FreeBSD Q2019 XNUMX

Objavljeno izvješće o razvoju FreeBSD projekta od travnja do lipnja 2019. Među promjenama možemo primijetiti:

  • Opća i sustavna pitanja
    • Glavni tim odlučio je uspostaviti radnu skupinu koja će istražiti mogućnost premještanja izvornog koda iz centraliziranog Subversion sustava za kontrolu izvora u decentralizirani Git sustav.
    • Provedeno fuzz testiranje jezgre FreeBSD pomoću sustava syzkaller te je ispravljen niz uočenih grešaka. Dodan je sloj za fuzzing testiranje biblioteka za kompatibilnost s 32-bitnim okruženjem na sustavima sa 64-bitnim kernelom. Implementirana je mogućnost pokretanja syzkallera u virtualnim strojevima koji se temelje na bhyveu. U sljedećoj fazi planira se proširiti pokrivenost testiranja sistemskih poziva, koristiti LLVM sanitizer za provjeru kernela, koristiti netdump za spremanje dumpova kernela tijekom rušenja tijekom fuzzing testiranja, itd.
    • Započet je rad na ažuriranju zlib implementacije na razini kernela. Za pristup kernela zlib kodu, direktorij contrib/zlib preimenovan je u sys/contrib/zlib, a datoteka zaglavlja crc.h također je preimenovana kako bi se izbjegao sukob sa zlib/crc.h. Očišćen je naslijeđeni kod koji je ovisio o zlib-u i inflate-u. Dalje, planira se omogućiti mogućnost izgradnje kernela istovremeno sa starim i novim zlibom za postupni prijenos na novu verziju funkcija koje koriste kompresiju;
    • Infrastruktura emulacije okruženja Linux (Linuxulator) je ažurirana. Povećana podrška za Linux alate za otklanjanje pogrešaka kao što je uslužni program strace. Priključcima je dodan paket linux-c7-strace, koji se može koristiti za praćenje izvršnih datoteka Linuxa umjesto standardnih uslužnih programa truss i ktrace, koji još ne mogu dekodirati neke zastavice i strukture specifične za Linux. Osim toga, dodan je paket linux-ltp s izvršnim datotekama Linux Test Projecta i riješeni su problemi s kompatibilnošću s izvršnim datotekama povezanim s novim verzijama glibc-a;
    • Implementacija odgođenih operacija poništavanja u pmap mehanizmu prebačena je na korištenje algoritma za obradu čekanja koji radi bez zaključavanja, što je omogućilo rješavanje problema skalabilnosti prilikom izvođenja velikog broja paralelnih operacija poništavanja mape;
    • Mehanizam za blokiranje vnode tijekom izvođenja sistemskih poziva obitelji execve() je promijenjen, što je omogućilo postizanje povećane učinkovitosti pri istovremenom izvršavanju execve() za istu datoteku (na primjer, pri izvođenju operacija asemblera s paralelizacijom pokretanja prevoditelja);
  • sigurnosti
    • Hipervizor bhyve nastavlja poboljšavati podršku za Live migraciju gostujućih okruženja s jednog glavnog računala na drugo i funkciju Spremi/Vrati, koja vam omogućuje da zamrznete gostujući sustav, spremite stanje u datoteku i zatim nastavite s izvođenjem.
    • Korištenjem knjižnice libvdsk, bhyve je dodao podršku za slike diskova u QCOW2 formatu. Za rad je potrebna instalacija
      posebno modificiran verzija bhyvea, koja je pretvorena za korištenje rukovatelja operacijama datoteka temeljenih na libvdsku. Tijekom izvještajnog razdoblja, libvdsk je također radio na pojednostavljenju integracije podrške za nove formate, poboljšao performanse čitanja i pisanja i dodao podršku za Copy-On-Write. Od preostalih zadataka, primjećuje se integracija libvdsk-a u glavnu strukturu bhyve-a;

    • U lukama je dodan sustav za prikupljanje prometnih informacija
      Maltrail, koji vam omogućuje stvaranje zamki za zlonamjerne mrežne zahtjeve (provjeravaju se IP adrese i domene s crnih lista) i šalje informacije o otkrivenoj aktivnosti centraliziranom poslužitelju za naknadno blokiranje ili analizu pokušaja napada;

    • Priključcima su dodane platforme za otkrivanje napada, analizu zapisa i praćenje integriteta datoteke Wazuh (fork Ossec s podrškom za integraciju s ELK-Stog);
  • Mrežni podsustav
    • Upravljački program ena je ažuriran kako bi podržao drugu generaciju mrežnih adaptera ENAv2 (Elastic Network Adapter) koji se koriste u infrastrukturi Elastic Compute Cloud (EC2) za organiziranje komunikacije između EC2 čvorova brzinama do 25 Gb/s. Podrška za NETMAP dodana je u pokretački program ena.
    • FreeBSD HEAD usvaja novi MMC/SD stack, temeljen na CAM okviru i koji vam omogućuje povezivanje uređaja sa SDIO (Secure Digital I/O) sučeljem. Na primjer, SDIO se koristi u WiFi i Bluetooth modulima za mnoge ploče, kao što je Raspberry Pi 3. Novi skup također omogućuje korištenje CAM sučelja za slanje SD naredbi iz aplikacija u korisničkom prostoru, što omogućuje stvaranje uređaja pokretači koji rade na korisničkoj razini. Počeo je rad na stvaranju upravljačkih programa za Broadcom bežične čipove koji rade u FullMAC modu (na strani čipa pokreće privid vlastitog operativnog sustava s implementacijama svog 802.11 bežičnog skupa);
    • U tijeku je rad na implementaciji NFSv4.2 (RFC-7862) za FreeBSD. Nova verzija NFS-a dodaje podršku za funkcije posix_fadvise, posix_fallocate, režime SEEKHOLE/SEEKDATA u lseek-u i rad lokalnog kopiranja dijelova datoteke na poslužitelju (bez prijenosa na klijenta).

      FreeBSD trenutno pruža osnovnu podršku za operacije LayoutError, IOAdvise, Allocate i Copy. Sve što preostaje je implementirati operaciju traženja potrebnu za korištenje lseek(SEEKHOLE/SEEKDATA) s NFS-om. Podrška za NFSv4.2 planirana je za FreeBSD 13;

  • Pohranjivanje i datotečni sustavi
    • Projekt prerade upravljačkog programa za podsustav FUSE (File system in USErspace) koji omogućuje kreiranje implementacija datotečnih sustava u korisničkom prostoru je pri kraju. Izvorno isporučeni upravljački program je zastario i sadrži mnogo grešaka. U sklopu projekta modernizacije drajvera implementirana je podrška za protokol FUSE 7.23 (prethodna verzija 7.8, izdana prije 11 godina bila je podržana), dodan kod za provjeru prava pristupa na strani kernela (“-o default_permissions”), pozivi na Dodani su VOP_MKNOD, VOP_BMAP i VOP_ADVLOCK, mogućnost prekidanja FUSE operacija, dodana podrška za neimenovane cijevi i unix utičnice u osiguračima, mogućnost korištenja kqueue za /dev/fuse, omogućeno ažuriranje parametara montiranja putem "mount -u", dodana podrška za izvoz osigurača putem NFS-a, implementirano RLIMIT_FSIZE računovodstvo, dodane oznake FOPEN_KEEP_CACHE i FUSE_ASYNC_READ, napravljene su značajne optimizacije performansi i poboljšana je organizacija keširanja;
    • Podrška za operaciju BIO_DELETE dodana je kodu swap pagera, što vam omogućuje korištenje naredbe TRIM prilikom uklanjanja blokova sa SSD diskova kako biste produžili njihov vijek trajanja.
  • Hardverska podrška
    • Nastavlja se rad na implementaciji podrške za ARM64 SoC Broadcom BCM5871X s ARMv8 Cortex-A57 procesorima, s ciljem korištenja u usmjerivačima, pristupnicima i mrežnoj pohrani. Tijekom izvještajnog razdoblja poboljšana je podrška za unutarnje i vanjske iProc PCIe sabirnice, dodana je podrška za BNXT Ethernet, a u tijeku je rad na korištenju ugrađenog kripto motora za ubrzanje IPsec-a. Integracija koda u HEAD granu očekuje se u drugoj polovici godine;
    • Započeo je rad na podršci za 64-bitni SoC NXP LS1046A temeljen na ARMv8 Cortex-A72 procesoru s integriranim motorom za ubrzanje obrade mrežnih paketa, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 i USB 3.0. Podrška za osnovnu platformu (višekorisnički SMP) i SATA 3.0 već je implementirana. Podrška za USB 3.0, SD/MMC i I2C je u razvoju. Planovi uključuju podršku za Ethernet, GPIO i QSPI. Završetak radova i uključenje u HEAD podružnicu očekuje se u 4. kvartalu 2019. godine.
    • Ažurirani upravljački programi mlx5en i mlx5ib za Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex] i ConnectX-6 [Dx] Ethernet i InfiniBand adaptere. Dodana je podrška za adaptere Mellanox Socket Direct (ConnectX-6), što omogućuje protok do 200 Gb/s na sabirnici PCIe Gen 3.0. Za višejezgrene BlueField čipove, dodana je podrška za RShim driver. Priključcima je dodan paket mstflint sa skupom dijagnostičkih uslužnih programa za Mellanox adaptere;
  • Aplikacije i port sustav
    • Komponente grafičkog skupa su ažurirane. Upravljački program drm.ko (Direct Rendering Manager) prenesen je iz jezgre Linuxa 5.0. Ovaj se upravljački program smatra eksperimentalnim i dodan je stablu portova kao graphics/drm-devel-kmod. Budući da upravljački program koristi ažurirani Linux KPI okvir kako bi bio kompatibilan s DRM API-jem jezgre Linuxa, za pokretanje je potreban FreeBSD CURRENT. Vboxvideo.ko drm drajver za VirtualBox virtualni GPU također je prenesen iz Linuxa. Paket Mesa je ažuriran na izdanje 18.3.2 i prebačen je na korištenje LLVM-a s porta devel/llvm80 umjesto devel/llvm60.
    • Stablo portova FreeBSD-a premašilo je 37000 2146 portova, broj nezatvorenih PR-ova ostaje na 7837. Tijekom izvještajnog razdoblja napravljeno je 172 promjena od 5.7 programera. Tri nova sudionika dobila su komiterska prava. Među značajnim ažuriranjima verzija u portovima su: MySQL 3.6, Python 2.5, Ruby 4.8, Samba 1.0, Julia 68.0, Firefox 75.0.3770.100, Chromium 3.6. Svi Go priključci su pretvoreni da koriste oznaku "USES=go". Dodana je zastavica "USES=cabal" Cabal upravitelju paketa koji se koristi za Haskell kod. Omogućen je strogi način zaštite snopa. Zadana verzija Pythona je 2.7 umjesto XNUMX.
    • Izdanje pomoćnog programa je pripremljeno nsysctl 1.0, koji nudi analogiju /sbin/sysctl koja koristi libxo za izlaz i pružanje proširenog skupa opcija. Nsysctl se može koristiti za vizualno praćenje stanja sysctl vrijednosti i prezentiranje informacija o objektima u strukturiranom obliku. Moguć je ispis u XML, JSON i HTML formatima;

Izvor: opennet.ru

Dodajte komentar