Ulat sa Pag-unlad ng FreeBSD Q2019 XNUMX

Nai-publish ulat sa pagbuo ng proyekto ng FreeBSD mula Abril hanggang Hunyo 2019. Kabilang sa mga pagbabagong mapapansin natin:

  • Pangkalahatan at mga tanong sa sistema
    • Nagpasya ang Core team na magtatag ng working group para tuklasin ang posibilidad ng paglipat ng source code mula sa sentralisadong Subversion source control system patungo sa desentralisadong Git system.
    • Nagsagawa ng fuzz testing ng FreeBSD kernel gamit ang system syzkaller at ilang natukoy na mga pagkakamali ang naitama. Nagdagdag ng layer para sa fuzzing testing ng mga library para sa compatibility sa isang 32-bit na environment sa mga system na may 64-bit kernel. Naipatupad na ang kakayahang magpatakbo ng syzkaller sa mga virtual machine na nakabatay sa bhyve. Sa susunod na yugto, pinlano na palawakin ang saklaw ng pagsubok sa tawag sa system, gumamit ng LLVM sanitizer para suriin ang kernel, gumamit ng netdump upang i-save ang mga kernel dump sa panahon ng mga pag-crash sa panahon ng fuzzing testing, atbp.
    • Nagsimula na ang trabaho sa pag-update ng pagpapatupad ng zlib sa antas ng kernel. Para sa kernel access sa zlib code, ang contrib/zlib directory ay pinalitan ng pangalan sa sys/contrib/zlib, at ang crc.h header file ay pinalitan din ng pangalan upang maiwasan ang conflict sa zlib/crc.h. Nilinis ang legacy code na nakadepende sa zlib at inflate. Susunod, pinlano na magbigay ng kakayahang bumuo ng kernel nang sabay-sabay sa luma at bagong zlib para sa unti-unting paglipat sa bagong bersyon ng mga function na gumagamit ng compression;
    • Ang Linux environment emulation infrastructure (Linuxulator) ay na-update. Tumaas na suporta para sa mga tool sa pag-debug ng Linux tulad ng strace utility. Ang linux-c7-strace package ay idinagdag sa mga port, na maaaring magamit upang i-trace ang Linux executable file sa halip na ang standard truss at ktrace utilities, na hindi pa nakakapag-decode ng ilang mga flag at istrukturang partikular sa Linux. Bilang karagdagan, ang linux-ltp package na may Linux Test Project executable ay naidagdag at ang mga isyu sa compatibility sa mga executable na naka-link sa mga bagong bersyon ng glibc ay nalutas na;
    • Ang pagpapatupad ng mga naantalang pagpapatakbo ng invalidation sa mekanismo ng pmap ay inilipat sa paggamit ng isang algorithm sa pagproseso ng queue na gumagana nang walang mga kandado, na naging posible upang malutas ang mga problema sa scalability kapag nagsasagawa ng isang malaking bilang ng mga parallel na operasyon ng unmap;
    • Ang mekanismo para sa pagharang sa vnode sa panahon ng pagpapatupad ng mga system call ng execve() na pamilya ay nabago, na naging posible upang makamit ang mas mataas na kahusayan kapag sabay-sabay na nagpapatupad ng execve() para sa parehong file (halimbawa, kapag nagsasagawa ng mga operasyon ng pagpupulong na may parallelization ng paglulunsad ng compiler);
  • katiwasayan
    • Patuloy na pinapahusay ng bhyve hypervisor ang suporta para sa Live na paglipat ng mga kapaligiran ng bisita mula sa isang host patungo sa isa pa at ang pag-andar na I-save/Ibalik, na nagbibigay-daan sa iyong i-freeze ang guest system, i-save ang estado sa isang file, at pagkatapos ay ipagpatuloy ang pagpapatupad.
    • Sa pamamagitan ng paggamit ng library ng libvdsk, nagdagdag si bhyve ng suporta para sa mga imahe ng disk sa format na QCOW2. Nangangailangan ng pag-install upang gumana
      espesyal na binago bersyon ng bhyve, na na-convert upang gumamit ng mga handler ng pagpapatakbo ng file batay sa libvdsk. Sa panahon ng pag-uulat, nagsagawa rin ang libvdsk ng trabaho upang pasimplehin ang pagsasama ng suporta para sa mga bagong format, pinahusay na pagganap sa pagbasa at pagsulat, at nagdagdag ng suporta para sa Copy-On-Write. Sa natitirang mga gawain, ang pagsasama ng libvdsk sa pangunahing istraktura ng bhyve ay nabanggit;

    • Ang isang sistema para sa pagkolekta ng impormasyon sa trapiko ay idinagdag sa mga port
      Maltrail, na nagbibigay-daan sa iyong lumikha ng mga bitag para sa mga nakakahamak na kahilingan sa network (ang mga IP at domain mula sa mga blacklist ay nasuri) at magpadala ng impormasyon tungkol sa nakitang aktibidad sa isang sentralisadong server para sa kasunod na pagharang o pagsusuri ng mga pagtatangka sa pag-atake;

    • Ang mga platform ay idinagdag sa mga port para sa pag-detect ng mga pag-atake, pagsusuri ng mga log at pagsubaybay sa integridad ng file Wazuh (tinidor ng Ossec na may suporta para sa pagsasama sa ELK-Stack);
  • Subsystem ng network
    • Na-update ang driver ng ena para suportahan ang pangalawang henerasyon ng mga adapter ng network ng ENAv2 (Elastic Network Adapter) na ginagamit sa imprastraktura ng Elastic Compute Cloud (EC2) upang ayusin ang komunikasyon sa pagitan ng mga EC2 node sa bilis na hanggang 25 Gb/s. Ang suporta sa NETMAP ay naidagdag sa ena driver.
    • Ang FreeBSD HEAD ay gumagamit ng bagong MMC/SD stack, batay sa CAM framework at nagbibigay-daan sa iyong ikonekta ang mga device gamit ang SDIO (Secure Digital I/O) interface. Halimbawa, ang SDIO ay ginagamit sa WiFi at Bluetooth module para sa maraming board, gaya ng Raspberry Pi 3. Ang bagong stack ay nagpapahintulot din sa CAM interface na magamit upang magpadala ng mga SD command mula sa mga application sa user space, na ginagawang posible na lumikha ng device mga driver na gumagana sa antas ng user. Nagsimula na ang trabaho sa paglikha ng mga driver para sa Broadcom wireless chips na tumatakbo sa FullMAC mode (sa chip side ito ay nagpapatakbo ng isang pagkakahawig ng sarili nitong operating system na may mga pagpapatupad ng 802.11 wireless stack nito);
    • Ang trabaho ay isinasagawa upang ipatupad ang NFSv4.2 (RFC-7862) para sa FreeBSD. Ang bagong bersyon ng NFS ay nagdaragdag ng suporta para sa posix_fadvise, posix_fallocate function, SEEKHOLE/SEEKDATA mode sa lseek, at ang pagpapatakbo ng lokal na pagkopya ng mga bahagi ng isang file sa server (nang walang paglilipat sa client).

      Kasalukuyang nagbibigay ang FreeBSD ng pangunahing suporta para sa mga operasyon ng LayoutError, IOAdvise, Allocate, at Copy. Ang natitira na lang ay ipatupad ang Seek operation na kinakailangan para magamit ang lseek(SEEKHOLE/SEEKDATA) sa NFS. Ang suporta sa NFSv4.2 ay binalak para sa FreeBSD 13;

  • Storage at mga file system
    • Malapit nang makumpleto ang proyektong muling gawin ang driver para sa FUSE (File system sa USErspace), na nagpapahintulot sa paglikha ng mga pagpapatupad ng mga file system sa espasyo ng gumagamit. Ang orihinal na ibinigay na driver ay luma na at naglalaman ng maraming mga bug. Bilang bahagi ng proyekto ng modernisasyon ng driver, ipinatupad ang suporta para sa FUSE 7.23 protocol (dating bersyon 7.8, inilabas 11 taon na ang nakakaraan ay suportado), idinagdag ang code upang suriin ang mga karapatan sa pag-access sa gilid ng kernel (β€œ-o default_permissions”), mga tawag sa Ang VOP_MKNOD, VOP_BMAP at VOP_ADVLOCK ay idinagdag, ang kakayahang makagambala sa mga operasyon ng FUSE, nagdagdag ng suporta para sa mga hindi pinangalanang pipe at unix socket sa fusef, ang kakayahang gumamit ng kqueue para sa /dev/fuse, pinapayagan ang pag-update ng mga parameter ng mount sa pamamagitan ng "mount -u", nagdagdag ng suporta para sa pag-export ng mga fusef sa pamamagitan ng NFS, ipinatupad ang RLIMIT_FSIZE accounting, idinagdag ang FOPEN_KEEP_CACHE na mga flag at FUSE_ASYNC_READ, ang mga makabuluhang pag-optimize ng pagganap ay ginawa at ang caching na organisasyon ay napabuti;
    • Ang suporta para sa operasyon ng BIO_DELETE ay idinagdag sa swap pager code, na nagbibigay-daan sa iyong gamitin ang TRIM command kapag nag-aalis ng mga bloke mula sa SSD drive upang mapataas ang kanilang buhay ng serbisyo.
  • Suporta sa Hardware
    • Ang trabaho ay patuloy na nagpapatupad ng suporta para sa ARM64 SoC Broadcom BCM5871X na may mga ARMv8 Cortex-A57 processor, na naglalayong gamitin sa mga router, gateway at network storage. Sa panahon ng pag-uulat, pinahusay ang suporta para sa panloob at panlabas na mga bus ng iProc PCIe, idinagdag ang suporta para sa BNXT Ethernet, at isinasagawa ang trabaho upang gamitin ang built-in na crypto engine upang mapabilis ang IPsec. Ang pagsasama ng code sa HEAD branch ay inaasahan sa ikalawang kalahati ng taon;
    • Nagsimula na ang trabaho sa suporta para sa 64-bit SoC NXP LS1046A batay sa ARMv8 Cortex-A72 processor na may pinagsamang network packet processing acceleration engine, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 at USB 3.0. Naipatupad na ang suporta para sa base platform (multi-user SMP) at SATA 3.0. Ang suporta para sa USB 3.0, SD/MMC at I2C ay nasa pagbuo. Kasama sa mga plano ang suporta para sa Ethernet, GPIO at QSPI. Ang pagkumpleto ng trabaho at pagsasama sa HEAD branch ay inaasahan sa ika-4 na quarter ng 2019.
    • Na-update na mlx5en at mlx5ib driver para sa Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex], at ConnectX-6 [Dx] Ethernet at InfiniBand adapters. Nagdagdag ng suporta para sa mga adapter ng Mellanox Socket Direct (ConnectX-6), na nagbibigay-daan para sa throughput na hanggang 200Gb/s sa PCIe Gen 3.0 bus. Para sa mga multi-core na BlueField chip, idinagdag ang suporta para sa driver ng RShim. Ang mstflint package na may set ng diagnostic utility para sa Mellanox adapters ay naidagdag na sa mga port;
  • Mga application at port system
    • Ang mga bahagi ng graphics stack ay na-update. Ang driver ng drm.ko (Direct Rendering Manager) ay na-port mula sa Linux 5.0 kernel. Ang driver na ito ay itinuturing na pang-eksperimento at naidagdag sa puno ng port bilang graphics/drm-devel-kmod. Dahil ang driver ay gumagamit ng na-update na Linux KPI framework upang maging tugma sa Linux kernel DRM API, FreeBSD CURRENT ay kinakailangan upang tumakbo. Ang vboxvideo.ko drm driver para sa VirtualBox virtual GPU ay nai-port din mula sa Linux. Ang pakete ng Mesa ay na-update upang ilabas ang 18.3.2 at inilipat upang gamitin ang LLVM mula sa devel/llvm80 port sa halip na sa devel/llvm60.
    • Ang FreeBSD ports tree ay lumampas sa 37000 port, ang bilang ng mga hindi nakasarang PR ay nananatili sa 2146. Sa panahon ng pag-uulat, 7837 na pagbabago ang ginawa mula sa 172 na mga developer. Tatlong bagong kalahok ang nakatanggap ng committer rights. Kabilang sa mga makabuluhang update sa bersyon sa mga port ay: MySQL 5.7, Python 3.6, Ruby 2.5, Samba 4.8, Julia 1.0, Firefox 68.0, Chromium 75.0.3770.100. Ang lahat ng Go port ay na-convert upang gamitin ang flag na "USES=go". Idinagdag ang flag na "USES=cabal" sa Cabal package manager na ginamit para sa Haskell code. Naka-enable ang strict stack protection mode. Ang default na bersyon ng Python ay 3.6 sa halip na 2.7.
    • Ang pagpapalabas ng utility ay inihanda na nsysctl 1.0, na nag-aalok ng analogue sa /sbin/sysctl na gumagamit libxo para sa output at pagbibigay ng pinalawak na hanay ng mga opsyon. Maaaring gamitin ang Nsysctl upang biswal na masubaybayan ang estado ng mga halaga ng sysctl at ipakita ang impormasyon sa mga bagay sa isang nakabalangkas na anyo. Ang output sa XML, JSON at HTML na mga format ay posible;

Pinagmulan: opennet.ru

Magdagdag ng komento