2019ko FreeBSD QXNUMX XNUMX Aurrerapen Txostena

argitaratua FreeBSD proiektuaren garapenari buruzko txostena 2019ko apiriletik ekainera. Aldaketen artean honako hauek nabarmendu ditzakegu:

  • Gai orokorrak eta sistemikoak
    • Core taldeak lan-talde bat sortzea erabaki zuen Subversion iturburu-kontrol sistema zentralizatutik Git sistema deszentralizatura eramateko aukera aztertzeko.
    • FreeBSD nukleoaren probak egin ditu sistema erabiliz syzkaller eta identifikatutako akats batzuk zuzendu ziren. Liburutegien geruza bat gehitu da 32 biteko nukleoa duten sistemetan 64 biteko ingurunearekin bateragarritasuna lortzeko. bhyve-n oinarritutako makina birtualetan syzkaller exekutatzeko gaitasuna ezarri da. Hurrengo fasean, sistema-deien proben estaldura zabaltzea aurreikusten da, LLVM sanitizer erabiltzea nukleoa egiaztatzeko, netdump erabiltzea nukleoaren zabortegiak gordetzeko hutsegiteetan probak egiten direnean, etab.
    • Nukleo mailan zlib inplementazioa eguneratzeko lanak hasi dira. Nukleoa zlib kodeara sartzeko, contrib/zlib direktorioa sys/contrib/zlib izena jarri zitzaion, eta crc.h goiburuko fitxategiari ere izena aldatu zitzaion zlib/crc.h-rekin gatazkak saihesteko. Garbitu zlib-en eta inflate-ren mende zegoen ondare-kodea. Ondoren, nukleoa zlib zahar eta berriarekin batera eraikitzeko gaitasuna ematea aurreikusten da, konpresioa erabiltzen duten funtzioen bertsio berrira pixkanaka transferitzeko;
    • Linux ingurunearen emulazio azpiegitura (Linuxulator) eguneratu da. Linux arazketa tresnetarako laguntza handitu da, hala nola, strace utilitatea. Portuetara linux-c7-strace paketea gehitu da, Linux fitxategi exekutagarriak trazatzeko erabil daitekeen truss eta ktrace utilitate estandarren ordez, oraindik Linux-eko bandera eta egitura zehatz batzuk deskodetu ezin dituztenak. Horrez gain, Linux Test Project exekutagarriekin linux-ltp paketea gehitu da eta glibc-en bertsio berriekin lotutako exekutagarriekin bateragarritasun arazoak konpondu dira;
    • pmap mekanismoan atzeratutako baliogabetze-eragiketak ezartzea blokeorik gabe funtzionatzen duen ilarak prozesatzeko algoritmo baten erabilerara pasatu da, eta horri esker, eskalagarritasun-arazoak konpontzea posible izan da paraleloan desmapatze-eragiketa ugari egitean;
    • Execve() familiako sistema-deien exekuzioan vnode blokeatzeko mekanismoa aldatu egin da, eta horri esker, eraginkortasun handiagoa lortu ahal izan da fitxategi bererako execve() aldi berean exekutatzen denean (adibidez, paralelizazioarekin muntaketa-eragiketak egitean. konpilatzailearen abiaraztearena);
  • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
    • Bhyve hypervisor-ek ostalari batetik bestera gonbidatutako inguruneen zuzeneko migraziorako laguntza hobetzen jarraitzen du eta Gorde/Berreskuratu funtzionalitateak, sistema gonbidatua izoztu, egoera fitxategi batean gordetzeko eta, ondoren, exekuzioa berriro hasteko aukera ematen baitu.
    • libvdsk liburutegiaren bitartez, bhyve-k QCOW2 formatuan disko-irudien euskarria gehitu du. Lan egiteko instalazioa behar da
      bereziki aldatua bhyve-ren bertsioa, libvdsk-en oinarritutako fitxategi-eragiketen kudeatzaileak erabiltzeko bihurtu dena. Txostenaren aldian, libvdsk-ek formatu berrietarako euskarriaren integrazioa errazteko, irakurtzeko eta idazteko errendimendua hobetu eta Copy-On-Writerako laguntza gehitu zuen. Gainerako zereginetatik, libvdsk bhyve-ren egitura nagusian integratzea nabarmentzen da;

    • Portuetan trafikoaren informazioa biltzeko sistema bat gehitu da
      Maltrail, sare maltzurren eskaeretarako tranpak sortzeko (zerrenda beltzen IPak eta domeinuak egiaztatzen dira) eta detektatutako jarduerari buruzko informazioa zerbitzari zentralizatu batera bidaltzeko, ondoren blokeatzeko edo eraso saiakerak aztertzeko;

    • Erasoak detektatzeko, erregistroak aztertzeko eta fitxategien osotasuna kontrolatzeko plataformak gehitu dira portuetara Wazuh (Ossec-en sardexka batera integratzeko laguntzarekin ELK-Pila);
  • Sarearen azpisistema
    • Ena kontrolatzailea Elastic Compute Cloud (EC2) azpiegituran erabiltzen diren ENAv2 (Elastic Network Adapter) sare-egokitzaileen bigarren belaunaldia onartzeko eguneratu da EC2 nodoen arteko komunikazioa 25 Gb/s-ko abiaduran antolatzeko. NETMAP laguntza gehitu zaio ena kontrolatzaileari.
    • FreeBSD HEAD-ek MMC/SD pila berri bat hartzen du, CAM esparruan oinarrituta eta SDIO (Secure Digital I/O) interfazea duten gailuak konektatzeko aukera ematen duena. Adibidez, SDIO WiFi eta Bluetooth moduluetan erabiltzen da plaka askotan, Raspberry Pi 3 adibidez. Pila berriak CAM interfazea erabiltzailearen espazioko aplikazioetatik SD komandoak bidaltzeko aukera ematen du, eta horrek gailua sortzea ahalbidetzen du. erabiltzaile mailan jarduten duten gidariak. FullMAC moduan funtzionatzen duten Broadcom haririk gabeko txipentzako kontrolatzaileak sortzeko lanak hasi dira (txiparen aldetik bere sistema eragilearen itxura du 802.11 haririk gabeko pilaren inplementazioekin);
    • FreeBSDrako NFSv4.2 (RFC-7862) ezartzeko lanak egiten ari dira. NFS-ren bertsio berriak posix_fadvise, posix_fallocate funtzioetarako, SEEKHOLE/SEEKDATA moduetarako lseek-en eta fitxategi baten zatiak tokiko kopiatzeko funtzionamendua gehitzen du zerbitzarian (bezeroari transferitu gabe).

      FreeBSD-k gaur egun oinarrizko laguntza eskaintzen du LayoutError, IOAdvise, Allocate eta Copy eragiketetarako. Lseek(SEEKHOLE/SEEKDATA) NFSrekin erabiltzeko beharrezkoa den Seek eragiketa ezartzea besterik ez da geratzen. NFSv4.2 laguntza FreeBSD 13rako aurreikusita dago;

  • Biltegiratze- eta fitxategi-sistemak
    • Erabiltzaileen espazioan fitxategi-sistemen inplementazioak sortzea ahalbidetzen duen FUSE (Fitxategi-sistema in USErspace) azpisistemaren kontrolatzailea birlantzeko proiektua amaitzen ari da. Hasieran emandako kontrolatzailea zaharkituta dago eta akats asko ditu. Gidariaren modernizazio proiektuaren baitan, FUSE 7.23 protokoloaren euskarria ezarri zen (aurretik 7.8 bertsioa, duela 11 urte kaleratua onartzen zen), kodea gehitu zen nukleoaren aldean sarbide-eskubideak egiaztatzeko ("-o default_permissions"), deiak egiteko. VOP_MKNOD, VOP_BMAP eta VOP_ADVLOCK gehitu ziren, FUSE eragiketak eteteko gaitasuna, izenik gabeko hodietarako eta unix-entxufeetarako euskarria gehitu zen fusefetan, /dev/fuse-rako kqueue erabiltzeko aukera, "mount -u" bidez muntatzeko parametroak eguneratzeko aukera, laguntza gehitu zen. fusefs NFS bidez esportatzeko, RLIMIT_FSIZE kontabilitatea inplementatu, FOPEN_KEEP_CACHE banderak eta FUSE_ASYNC_READ gehitu, errendimendu-optimizazio garrantzitsuak egin dira eta cachearen antolaketa hobetu da;
    • BIO_DELETE eragiketari euskarria gehitu zaio swap pager kodeari, eta horrek TRIM komandoa erabiltzeko aukera ematen dizu SSD unitateetatik blokeak kentzean, haien bizitza handitzeko.
  • Hardware laguntza
    • Lanean jarraitzen du ARM64 SoC Broadcom BCM5871X-rako euskarria ezartzen ARMv8 Cortex-A57 prozesadoreekin, bideratzaileetan, atebideetan eta sareko biltegiratzeetan erabiltzeko. Txostenaren aldian, barneko eta kanpoko iProc PCIe busetarako euskarria hobetu zen, BNXT Etherneterako euskarria gehitu zen eta lan egiten ari da kripto-motor integratua IPsec bizkortzeko. Kodea HEAD adarrean sartzea espero da urteko bigarren seihilekoan;
    • Lanak hasi dira ARMv64 Cortex-A1046 prozesadorean oinarritutako 8 biteko SoC NXP LS72A laguntzarekin, sare-paketeen prozesatzeko azelerazio-motor integratua, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 eta USB 3.0. Oinarrizko plataformarako (erabiltzaile anitzeko SMP) eta SATA 3.0rako euskarria ezarri da dagoeneko. USB 3.0, SD/MMC eta I2C euskarria garatzen ari da. Planek Ethernet, GPIO eta QSPIrako laguntza barne hartzen dute. 4ko 2019. hiruhilekoan lanak amaitzea eta HEAD adarrean sartzea aurreikusten da.
    • Mellanox ConnectX-5 [Lx], ConnectX-5 [Ex] eta ConnectX-4 [Dx] Ethernet eta InfiniBand egokigailuetarako mlx5en eta mlx6ib kontrolatzaileak eguneratuak. Mellanox Socket Direct (ConnectX-6) egokitzaileentzako euskarria gehitu da, PCIe Gen 200 autobusean 3.0 Gb/s-ko abiadura ahalbidetuz. Nukleo anitzeko BlueField txipetarako, RShim kontrolatzailearen laguntza gehitu da. Mellanox egokitzaileentzako diagnostiko-utilitate multzo bat duen mstflint paketea gehitu da portuetara;
  • Aplikazioak eta portu-sistema
    • Pila grafikoaren osagaiak eguneratu dira. drm.ko (Direct Rendering Manager) kontrolatzailea Linux 5.0 kerneletik eraman da. Gidari hau esperimentaltzat hartzen da eta portuen zuhaitzean graphics/drm-devel-kmod gisa gehitu da. Gidariak Linux KPI esparru eguneratua erabiltzen duenez Linux kernel DRM APIarekin bateragarria izateko, FreeBSD CURRENT behar da exekutatzeko. VirtualBox GPU birtualerako vboxvideo.ko drm kontrolatzailea Linuxetik ere eraman da. Mesa paketea 18.3.2 askatzeko eguneratu da eta devel/llvm80-ren ordez LLVM erabiltzeko aldatu da devel/llvm60 atakatik.
    • FreeBSD portuen zuhaitzak 37000 ataka gainditu ditu, itxi gabeko PR kopurua 2146an jarraitzen du. Txostenaren aldian, 7837 aldaketa egin ziren 172 garatzaileetatik. Hiru parte hartzaile berriek konpromisatzeko eskubideak jaso zituzten. Portuetako bertsioen eguneratze esanguratsuen artean hauek daude: MySQL 5.7, Python 3.6, Ruby 2.5, Samba 4.8, Julia 1.0, Firefox 68.0, Chromium 75.0.3770.100. Go ataka guztiak "USES=go" bandera erabiltzeko bihurtu dira. "USES=cabal" bandera gehitu da Haskell kodean erabilitako Cabal pakete kudeatzaileari. Pila babesteko modu zorrotza gaituta dago. Python-en bertsio lehenetsia 3.6 da 2.7 beharrean.
    • Erabilgarritasun-oharra prestatu da nsysctl 1.0, erabiltzen duen /sbin/sysctl-ren analogo bat eskaintzen duena libxo irteerarako eta aukera sorta zabala eskaintzeko. Nsysctl sysctl balioen egoera bisualki kontrolatzeko eta objektuei buruzko informazioa forma egituratu batean aurkezteko erabil daiteke. XML, JSON eta HTML formatuetan irtetea posible da;

Iturria: opennet.ru

Gehitu iruzkin berria