FreeBSD Q2019 XNUMX Rapportu di Prugressu

publicatu rapportu nantu à u sviluppu di u prughjettu FreeBSD da aprile à ghjugnu 2019. Trà i cambiamenti pudemu nutà:

  • Problemi generali è sistemichi
    • A squadra Core hà decisu di stabilisce un gruppu di travagliu per scopre a pussibilità di trasfurmà u codice fonte da u sistema di cuntrollu di fonti Subversion centralizatu à u sistema Git descentralizatu.
    • Cunducendu fuzz testing di u kernel FreeBSD utilizendu u sistema syzkaller è una quantità di errori identificati sò stati curretti. Aggiuntu un stratu per a prova fuzzing di biblioteche per a cumpatibilità cù un ambiente 32-bit in sistemi cù un kernel 64-bit. A capacità di eseguisce syzkaller in macchine virtuali basate in bhyve hè stata implementata. In u prossimu stadiu, hè previstu di espansione a copertura di a prova di chjama di u sistema, aduprà LLVM sanitizer per verificà u kernel, utilizate netdump per salvà i dumps di kernel durante i crashes durante a prova di fuzzing, etc.
    • U travagliu hà cuminciatu à aghjurnà l'implementazione zlib à u livellu di u kernel. Per l'accessu di u kernel à u codice zlib, u repertoriu contrib/zlib hè statu rinominatu à sys/contrib/zlib, è u schedariu di l'intestazione crc.h hè statu rinominatu ancu per evità cunflittu cù zlib/crc.h. U codice legatu pulito chì dipendeva da zlib è inflate. In seguitu, hè previstu di furnisce l'abilità di custruisce u kernel simultaneamente cù u vechju è novu zlib per u trasferimentu graduali à a nova versione di funzioni chì utilizanu compressione;
    • L'infrastruttura di emulazione di l'ambiente Linux (Linuxulator) hè stata aghjurnata. Supportu aumentatu per i strumenti di debugging Linux cum'è l'utilità strace. U pacchettu linux-c7-strace hè statu aghjuntu à i porti, chì ponu esse aduprati per tracciare i fugliali eseguibili Linux invece di l'utilità standard truss è ktrace, chì ùn ponu ancu decodificà alcune bandiere è strutture specifiche di Linux. Inoltre, u pacchettu linux-ltp cù eseguibili di Prughjettu di Prughjettu Linux hè statu aghjuntu è i prublemi di cumpatibilità cù eseguibili ligati cù e versioni novi di glibc sò stati risolti;
    • L'implementazione di l'operazioni di invalidazione ritardata in u mecanismu pmap hè stata trasferita à l'usu di un algoritmu di processazione di fila chì travaglia senza chjusi, chì hà permessu di risolve i prublemi di scalabilità quandu eseguisce un gran numaru di operazioni unmap parallele;
    • U mecanismu per bluccà vnode durante l'esekzione di e chjama di u sistema di a famiglia execve () hè statu cambiatu, chì hà permessu di ottene una efficienza aumentata quandu eseguisce simultaneamente execve () per u stessu schedariu (per esempiu, quandu si esegue operazioni di assemblea cù parallelizazione). di u lanciamentu di u compilatore);
  • Seguretat
    • L'hypervisor bhyve cuntinueghja à migliurà u supportu per a migrazione Live di l'ambienti d'ospiti da un òspite à l'altru è a funziunalità Salvà / Risturà, chì vi permette di freeze u sistema d'ospiti, salvendu u statu in un schedariu, è poi ripiglià l'esekzione.
    • Per mezu di l'usu di a libreria libvdsk, bhyve hà aghjustatu supportu per l'imaghjini di discu in u formatu QCOW2. Esige installazione per travaglià
      mudificatu apposta versione di bhyve, chì hè stata cunvertita per utilizà i gestori di l'operazione di fugliale basati in libvdsk. Duranti u periodu di rapportu, libvdsk hà ancu realizatu u travagliu per simplificà l'integrazione di supportu per novi formati, migliurà a prestazione di lettura è scrittura, è aghjunghjenu supportu per Copy-On-Write. Di i travaglii restanti, l'integrazione di libvdsk in a struttura principale di bhyve hè nutata;

    • Un sistema per cullà l'infurmazioni di u trafficu hè statu aghjuntu à i porti
      Maltrail, chì permette di creà trappule per e dumande di rete maliziusi (IP è duminii da listi neri sò verificati) è mandà infurmazione nantu à l'attività dettata à un servitore centralizatu per u bluccatu sussegwente o l'analisi di i tentativi d'attaccu;

    • E piattaforme sò state aghjunte à i porti per a deteczione di attacchi, l'analisi di logs è u monitoraghju di l'integrità di i schedari Wazuh (furchetta di Ossec cù supportu per l'integrazione cù ELK-Stack);
  • Sottusistema di rete
    • U driver ena hè statu aghjurnatu per sustene a seconda generazione di adattatori di rete ENAv2 (Elastic Network Adapter) utilizati in l'infrastruttura Elastic Compute Cloud (EC2) per urganizà a cumunicazione trà i nodi EC2 à velocità di finu à 25 Gb/s. U supportu NETMAP hè statu aghjuntu à u driver ena.
    • FreeBSD HEAD adopta una nova pila MMC/SD, basatu annantu à u framework CAM è chì vi permette di cunnette i dispositi cù una interfaccia SDIO (Secure Digital I/O). Per esempiu, SDIO hè utilizatu in i moduli WiFi è Bluetooth per parechje schede, cum'è u Raspberry Pi 3. A nova pila permette ancu l'interfaccia CAM per esse usata per mandà cumandamenti SD da l'applicazioni in u spaziu di l'utilizatori, chì permette di creà un dispositivu. drivers chì operanu à u livellu di l'utilizatori. U travagliu hà cuminciatu à creà drivers per i chips wireless Broadcom chì operanu in u modu FullMAC (in u latu di u chip corre una semblanza di u so propiu sistema operatore cù implementazioni di a so pila wireless 802.11);
    • U travagliu hè in corso per implementà NFSv4.2 (RFC-7862) per FreeBSD. A nova versione di NFS aghjunghjenu supportu per e funzioni posix_fadvise, posix_fallocate, modi SEEKHOLE / SEEKDATA in lseek, è l'operazione di copia locale di parti di un schedariu nantu à u servitore (senza trasferimentu à u cliente).

      FreeBSD attualmente furnisce un supportu di basa per l'operazioni LayoutError, IOAdvise, Allocate è Copy. Tuttu ciò chì resta hè di implementà l'operazione Seek necessaria per aduprà lseek (SEEKHOLE/SEEKDATA) cù NFS. U supportu NFSv4.2 hè pianificatu per FreeBSD 13;

  • Sistemi di archiviazione è file
    • U prughjettu di ritruvà u cunduttore per u subsistema FUSE (File system in USErspace), chì permette di creà implementazioni di sistemi di schedari in u spaziu di l'utilizatori, hè vicinu à a fine. U driver furnitu inizialmente hè obsoletu è cuntene assai bug. Cum'è parte di u prughjettu di mudernizazione di u driver, u supportu per u protocolu FUSE 7.23 hè statu implementatu (precedentemente a versione 7.8, liberata 11 anni fà era supportata), u codice hè statu aghjuntu per verificà i diritti d'accessu à u latu di u kernel ("-o default_permissions"), chjama à VOP_MKNOD, VOP_BMAP è VOP_ADVLOCK sò stati aghjunti, a capacità di interrompe l'operazioni FUSE, aghjustatu supportu per tubi senza nome è sockets Unix in fusefs, a capacità di utilizà kqueue per /dev/fuse, hà permessu l'aghjurnamentu di i paràmetri di muntagna via "mount -u", supportu aghjuntu. per l'esportazione di fusefs via NFS, implementatu a contabilità RLIMIT_FSIZE, aghjunghjenu bandieri FOPEN_KEEP_CACHE è FUSE_ASYNC_READ, ottimisazioni di rendiment significativu sò stati fatti è l'urganizazione di caching hè stata migliurata;
    • U supportu per l'operazione BIO_DELETE hè stata aghjunta à u codice di scambià pager, chì vi permette di utilizà u cumandamentu TRIM quandu sguassate blocchi da unità SSD per aumentà a so vita di serviziu.
  • Supportu hardware
    • U travagliu cuntinueghja à implementà u supportu per ARM64 SoC Broadcom BCM5871X cù processori ARMv8 Cortex-A57, destinatu à l'usu in routers, gateways è almacenamiento di rete. Duranti u periodu di rapportu, u supportu per l'autobus iProc PCIe internu è esternu hè statu migliuratu, u supportu per BNXT Ethernet hè statu aghjuntu, è u travagliu hè in corso per utilizà u mutore di criptu integratu per accelerà IPsec. L'integrazione di u codice in a filiera HEAD hè prevista in a seconda mità di l'annu;
    • U travagliu hà cuminciatu à supportà u 64-bit SoC NXP LS1046A basatu annantu à u processore ARMv8 Cortex-A72 cù un mutore di accelerazione di processazione di pacchetti di rete integrata, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 è USB 3.0. U supportu per a piattaforma di basa (SMP multi-user) è SATA 3.0 hè digià implementatu. U supportu per USB 3.0, SD / MMC è I2C hè in sviluppu. I piani includenu supportu per Ethernet, GPIO è QSPI. A fine di u travagliu è l'inclusione in a filiera HEAD hè prevista in u quartu trimestre di u 4.
    • Driver mlx5en è mlx5ib aghjurnati per Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex], è ConnectX-6 [Dx] Ethernet è adattatori InfiniBand. Aghjunghje supportu per l'adattatori Mellanox Socket Direct (ConnectX-6), chì permettenu un throughput di finu à 200 Gb/s in u bus PCIe Gen 3.0. Per i chip BlueField multi-core, u supportu per u driver RShim hè statu aghjuntu. U pacchettu mstflint cù un settore di utilità di diagnostichi per l'adattatori Mellanox hè statu aghjuntu à i porti;
  • Applicazioni è sistema portu
    • I cumpunenti di a pila gràfica sò stati aghjurnati. U driver drm.ko (Direct Rendering Manager) hè statu purtatu da u kernel Linux 5.0. Stu driver hè cunsideratu sperimentale è hè statu aghjuntu à l'arburu di porti cum'è graphics/drm-devel-kmod. Siccomu u cunduttore utilizza u framework Linux KPI aghjurnatu per esse cumpatibile cù l'API DRM di u kernel Linux, FreeBSD CURRENT hè necessariu per eseguisce. U driver drm vboxvideo.ko per a GPU virtuale VirtualBox hè statu ancu purtatu da Linux. U pacchettu Mesa hè statu aghjurnatu per liberà 18.3.2 è cambiatu per utilizà LLVM da u portu devel/llvm80 invece di devel/llvm60.
    • L'arbulu di i porti FreeBSD hà superatu i porti 37000 2146, u numaru di PR unclosed resta in 7837. Duranti u periodu di rapportu, i cambiamenti 172 sò stati fatti da sviluppatori 5.7. Trè novi participanti anu ricivutu i diritti di committer. Trà l'aghjurnamenti di versione significativa in i porti sò: MySQL 3.6, Python 2.5, Ruby 4.8, Samba 1.0, Julia 68.0, Firefox 75.0.3770.100, Chromium 3.6. Tutti i porti Go sò stati cunvertiti per utilizà a bandiera "USES=go". Aggiuntu "USES=cabal" bandiera à u gestore di pacchetti Cabal utilizatu per u codice Haskell. U modu strettu di prutezzione di stack hè attivatu. A versione predeterminata di Python hè 2.7 invece di XNUMX.
    • A liberazione di l'utilità hè stata preparata nsysctl 1.0, chì offre un analogu à /sbin/sysctl chì usa libxo per l'output è furnisce un set ampliatu di opzioni. Nsysctl pò esse usatu per monitorizà visualmente u statu di i valori sysctl è prisentanu infurmazioni nantu à l'uggetti in una forma strutturata. L'output in furmati XML, JSON è HTML hè pussibule;

Source: opennet.ru

Add a comment