Ripoti ya Maendeleo ya FreeBSD Q2019 XNUMX

iliyochapishwa ripoti ya maendeleo ya mradi wa FreeBSD kuanzia Aprili hadi Juni 2019. Miongoni mwa mabadiliko tunaweza kutambua:

  • Masuala ya jumla na ya kimfumo
    • Timu ya Core iliamua kuanzisha kikundi kazi ili kuchunguza uwezekano wa kuhamisha msimbo wa chanzo kutoka kwa mfumo mkuu wa udhibiti wa chanzo cha Ubadilishaji hadi mfumo wa Git uliogatuliwa.
    • Ilifanya majaribio ya fuzz ya kerneli ya FreeBSD kwa kutumia mfumo syzkaller na idadi ya makosa yaliyotambuliwa yalisahihishwa. Imeongeza safu ya majaribio ya kutatanisha ya maktaba kwa uoanifu na mazingira ya biti-32 kwenye mifumo iliyo na kerneli ya 64-bit. Uwezo wa kuendesha syzkaller katika mashine za mtandaoni zenye msingi wa bhyve umetekelezwa. Katika hatua inayofuata, imepangwa kupanua wigo wa upimaji wa simu za mfumo, tumia sanitizer ya LLVM kuangalia kernel, tumia netdump kuokoa utupaji wa kernel wakati wa ajali wakati wa majaribio ya fuzzing, nk.
    • Kazi imeanza ya kusasisha utekelezaji wa zlib katika kiwango cha kernel. Kwa ufikiaji wa kernel kwa msimbo wa zlib, saraka ya contrib/zlib ilibadilishwa jina na kuwa sys/contrib/zlib, na faili ya kichwa cha crc.h pia ilipewa jina ili kuepusha mgongano na zlib/crc.h. Imesafisha msimbo wa urithi ambao ulitegemea zlib na kuingiza. Ifuatayo, imepangwa kutoa uwezo wa kujenga kernel wakati huo huo na zlib ya zamani na mpya kwa uhamisho wa taratibu kwa toleo jipya la kazi zinazotumia compression;
    • Miundombinu ya kuiga mazingira ya Linux (Linuxulator) imesasishwa. Kuongezeka kwa usaidizi kwa zana za utatuzi za Linux kama vile matumizi ya strace. Kifurushi cha linux-c7-strace kimeongezwa kwenye milango, ambacho kinaweza kutumika kufuatilia faili zinazotekelezeka za Linux badala ya huduma za kawaida za truss na ktrace, ambazo bado haziwezi kusimbua baadhi ya bendera na miundo maalum ya Linux. Zaidi ya hayo, kifurushi cha linux-ltp chenye utekelezaji wa Mradi wa Majaribio ya Linux kimeongezwa na masuala ya uoanifu na vitekelezo vilivyounganishwa na matoleo mapya ya glibc yametatuliwa;
    • Utekelezaji wa shughuli za ucheleweshaji wa kuchelewa katika utaratibu wa pmap umehamishiwa kwa matumizi ya algorithm ya usindikaji wa foleni ambayo inafanya kazi bila kufuli, ambayo imefanya iwezekanavyo kutatua matatizo ya scalability wakati wa kufanya idadi kubwa ya shughuli za unmap sambamba;
    • Utaratibu wa kuzuia vnode wakati wa utekelezaji wa simu za mfumo wa execve() familia imebadilishwa, ambayo imefanya iwezekanavyo kufikia ufanisi zaidi wakati wa kutekeleza wakati huo huo execve() kwa faili sawa (kwa mfano, wakati wa kufanya shughuli za kusanyiko na usawazishaji. ya uzinduzi wa mkusanyaji);
  • usalama
    • Hypervisor ya bhyve inaendelea kuboresha usaidizi wa uhamishaji wa moja kwa moja wa mazingira ya wageni kutoka kwa mwenyeji mmoja hadi mwingine na utendakazi wa Hifadhi/Rejesha, ambayo inakuruhusu kusimamisha mfumo wa wageni, kuhifadhi hali kwenye faili, na kisha kuendelea na utekelezaji.
    • Kupitia matumizi ya maktaba ya libvdsk, bhyve imeongeza usaidizi kwa picha za diski katika umbizo la QCOW2. Ufungaji unahitajika kufanya kazi
      iliyorekebishwa maalum toleo la bhyve, ambalo limebadilishwa ili kutumia vidhibiti vya utendakazi wa faili kulingana na libvdsk. Katika kipindi cha kuripoti, libvdsk pia ilifanya kazi ya kurahisisha ujumuishaji wa usaidizi wa miundo mipya, utendakazi ulioboreshwa wa kusoma na kuandika, na kuongeza usaidizi wa Copy-On-Write. Kati ya kazi zilizobaki, ujumuishaji wa libvdsk katika muundo mkuu wa bhyve umebainishwa;

    • Mfumo wa kukusanya taarifa za trafiki umeongezwa kwenye bandari
      Maltrail, ambayo hukuruhusu kuunda mitego ya maombi hasidi ya mtandao (IP na vikoa kutoka kwa orodha zisizoruhusiwa zimeangaliwa) na kutuma habari kuhusu shughuli iliyotambuliwa kwa seva ya kati kwa kuzuia au kuchambua majaribio ya kushambulia baadae;

    • Majukwaa yameongezwa kwenye bandari kwa ajili ya kugundua mashambulizi, kuchambua kumbukumbu na kufuatilia uadilifu wa faili Wazuh (uma wa Ossec na usaidizi wa kuunganishwa na ELK-Stack);
  • Mfumo mdogo wa mtandao
    • Kiendeshaji cha ena kimesasishwa ili kusaidia kizazi cha pili cha adapta za mtandao za ENAv2 (Elastic Network Adapter) zinazotumika katika miundombinu ya Elastic Compute Cloud (EC2) kupanga mawasiliano kati ya nodi za EC2 kwa kasi ya hadi 25 Gb/s. Usaidizi wa NETMAP umeongezwa kwa kiendesha ena.
    • FreeBSD HEAD inachukua rafu mpya ya MMC/SD, kulingana na mfumo wa CAM na kukuruhusu kuunganisha vifaa na kiolesura cha SDIO (Secure Digital I/O). Kwa mfano, SDIO inatumika katika moduli za WiFi na Bluetooth kwa mbao nyingi, kama vile Raspberry Pi 3. Raspberry Pi 802.11. Raspberry Pi XNUMX. Rasi hii mpya pia inaruhusu kiolesura cha CAM kitumike kutuma amri za SD kutoka kwa programu katika nafasi ya mtumiaji, ambayo huwezesha kuunda kifaa. madereva wanaofanya kazi katika kiwango cha mtumiaji. Kazi imeanza ya kuunda viendeshaji kwa chips zisizotumia waya za Broadcom zinazofanya kazi katika hali ya FullMAC (upande wa chip inafanana na mfumo wake wa uendeshaji na utekelezaji wa mrundikano wake wa wireless XNUMX);
    • Kazi inaendelea ili kutekeleza NFSv4.2 (RFC-7862) kwa FreeBSD. Toleo jipya la NFS linaongeza usaidizi kwa posix_fadvise, vitendaji posix_fallocate, modi za SEEKHOLE/SEEKDATA katika lseek, na utendakazi wa unakili wa ndani wa sehemu za faili kwenye seva (bila kuhamishiwa kwa mteja).

      Kwa sasa FreeBSD hutoa usaidizi wa kimsingi kwa Operesheni za LayoutError, IOAdvise, Allocate, na Copy. Kilichosalia ni kutekeleza operesheni ya Tafuta inayohitajika kutumia lseek(SEEKHOLE/SEEKDATA) na NFS. Msaada wa NFSv4.2 umepangwa kwa FreeBSD 13;

  • Mifumo ya uhifadhi na faili
    • Mradi wa kurekebisha kiendeshi kwa mfumo mdogo wa FUSE (Mfumo wa Faili katika USerspace), ambao unaruhusu kuunda utekelezaji wa mifumo ya faili katika nafasi ya mtumiaji, unakaribia kukamilika. Kiendeshi kilichotolewa awali kimepitwa na wakati na kina hitilafu nyingi. Kama sehemu ya mradi wa uboreshaji wa madereva, usaidizi wa itifaki ya FUSE 7.23 ulitekelezwa (toleo la awali la 7.8, lililotolewa miaka 11 iliyopita liliungwa mkono), msimbo uliongezwa ili kuangalia haki za ufikiaji kwenye upande wa kernel ("-o default_permissions"). VOP_MKNOD, VOP_BMAP na VOP_ADVLOCK ziliongezwa, uwezo wa kukatiza shughuli za FUSE, usaidizi ulioongezwa kwa bomba zisizo na jina na soketi za unix kwenye fusef, uwezo wa kutumia kqueue kwa /dev/fuse, kuruhusiwa kusasisha vigezo vya mlima kupitia "mount -u", msaada ulioongezwa. kwa kusafirisha fusefu kupitia NFS, uhasibu ulitekelezwa wa RLIMIT_FSIZE, umeongezwa alama za FOPEN_KEEP_CACHE na FUSE_ASYNC_READ, uboreshaji muhimu wa utendakazi umefanywa na upangaji wa akiba umeboreshwa;
    • Usaidizi wa uendeshaji wa BIO_DELETE umeongezwa kwa msimbo wa pager wa kubadilishana, ambayo inakuwezesha kutumia amri ya TRIM wakati wa kuondoa vizuizi kutoka kwa viendeshi vya SSD ili kuongeza maisha yao ya huduma.
  • Msaada wa vifaa
    • Kazi inaendelea kutekeleza usaidizi kwa ARM64 SoC Broadcom BCM5871X na vichakataji vya ARMv8 Cortex-A57, vinavyolenga kutumika katika vipanga njia, lango na hifadhi ya mtandao. Katika kipindi cha kuripoti, usaidizi kwa mabasi ya ndani na nje ya iProc PCIe uliboreshwa, usaidizi wa BNXT Ethernet uliongezwa, na kazi inaendelea ya kutumia injini ya crypto iliyojengewa ndani ili kuharakisha IPsec. Ujumuishaji wa kanuni katika tawi la HEAD unatarajiwa katika nusu ya pili ya mwaka;
    • Kazi imeanza kuhusu usaidizi wa 64-bit SoC NXP LS1046A kulingana na kichakataji cha ARMv8 Cortex-A72 chenye injini jumuishi ya kuchakata pakiti za mtandao, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 na USB 3.0. Msaada kwa jukwaa la msingi (SMP ya watumiaji wengi) na SATA 3.0 tayari imetekelezwa. Usaidizi wa USB 3.0, SD/MMC na I2C unatengenezwa. Mipango hiyo ni pamoja na usaidizi wa Ethernet, GPIO na QSPI. Kukamilika kwa kazi na kujumuishwa katika tawi la HEAD kunatarajiwa katika robo ya 4 ya 2019.
    • Viendeshaji vya mlx5en na mlx5ib vilivyosasishwa vya Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex], na adapta za ConnectX-6 [Dx] Ethernet na InfiniBand. Usaidizi ulioongezwa kwa adapta za Mellanox Socket Direct (ConnectX-6), zinazoruhusu upitishaji wa hadi 200Gb/s kwenye basi ya PCIe Gen 3.0. Kwa chips za BlueField za msingi nyingi, usaidizi wa kiendeshi cha RShim umeongezwa. Kifurushi cha mstflint kilicho na seti ya huduma za uchunguzi kwa adapta za Mellanox kimeongezwa kwenye bandari;
  • Maombi na mfumo wa bandari
    • Vipengee vya rafu za michoro vimesasishwa. Kiendeshi cha drm.ko (Kidhibiti Utoaji wa Moja kwa Moja) kimehamishwa kutoka kwa kinu cha Linux 5.0. Kiendeshaji hiki kinachukuliwa kuwa cha majaribio na kimeongezwa kwenye mti wa bandari kama graphics/drm-devel-kmod. Kwa kuwa kiendeshi hutumia mfumo uliosasishwa wa Linux KPI ili kuendana na API ya DRM ya Linux kernel, FreeBSD CURRENT inahitajika ili kuendeshwa. Kiendeshi cha vboxvideo.ko drm cha VirtualBox virtual GPU pia kimehamishwa kutoka Linux. Kifurushi cha Mesa kimesasishwa ili kutoa 18.3.2 na kubadilishwa kutumia LLVM kutoka lango la devel/llvm80 badala ya devel/llvm60.
    • Mti wa bandari za FreeBSD umepita bandari 37000, idadi ya PRs ambazo hazijafungwa inasalia kuwa 2146. Katika kipindi cha kuripoti, mabadiliko 7837 yalifanywa kutoka kwa wasanidi 172. Washiriki watatu wapya walipokea haki za kujitolea. Miongoni mwa masasisho muhimu ya toleo kwenye bandari ni: MySQL 5.7, Python 3.6, Ruby 2.5, Samba 4.8, Julia 1.0, Firefox 68.0, Chromium 75.0.3770.100. Milango yote ya Go imebadilishwa ili kutumia alama ya "USES=go". Imeongeza bendera ya "USES=cabal" kwa kidhibiti kifurushi cha Cabal kinachotumika kwa msimbo wa Haskell. Hali ya ulinzi wa rafu kali imewashwa. Toleo chaguo-msingi la Python ni 3.6 badala ya 2.7.
    • Toleo la matumizi limeandaliwa nsysctl 1.0, ambayo inatoa analog kwa /sbin/sysctl inayotumia libxo kwa pato na kutoa seti iliyopanuliwa ya chaguo. Nsysctl inaweza kutumika kuangalia kuibua hali ya maadili ya sysctl na kuwasilisha habari juu ya vitu katika muundo uliopangwa. Pato katika umbizo la XML, JSON na HTML linawezekana;

Chanzo: opennet.ru

Kuongeza maoni