Ripoti ya Maendeleo ya FreeBSD ya Q2019 XNUMX

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

  • Masuala ya jumla na ya kimfumo
    • Timu ya Core kwa ujumla imeidhinisha uwezekano wa kujumuisha msimbo katika mfumo ambao unasambazwa chini ya leseni ya BSD na makubaliano ya ziada ya hataza (BSD+Patent), lakini uamuzi wa kujumuisha kila sehemu kwenye mfumo chini ya leseni hii lazima uidhinishwe tofauti;
    • Mkutano wa kwanza wa kikundi kazi iliyoundwa kutekeleza uhamishaji wa misimbo ya chanzo kutoka kwa mfumo mkuu wa udhibiti wa chanzo Ugeuzaji hadi mfumo wa madaraka wa Git ulifanyika. Majadiliano juu ya uwezekano wa uhamiaji bado yanaendelea na maamuzi juu ya maswala mengi bado hayajatengenezwa (kwa mfano, nini cha kufanya na contrib/, ikiwa ni muhimu kuunda upya heshi kwenye hazina ya sasa ya git na jinsi bora ya kutekeleza majaribio ya ahadi);
    • Kutoka kwa NetBSD imehamishwa KCSAN (Kernel Concurrency Sanitizer) zana ya zana, ambayo inakuwezesha kutambua hali ya mbio kati ya nyuzi za kernel zinazoendeshwa kwenye CPU tofauti;
    • Kazi inaendelea ya kutumia kiunganishi kilichojengewa ndani cha Clang (IAS) badala ya kikusanya binuti cha GNU;
    • Miundombinu ya kuiga mazingira ya Linux (Linuxulator) imebadilishwa ili kufanya kazi kwenye usanifu wa ARM64. Imetekelezwa simu ya mfumo ya "renameat2". Huduma ya strace imeboreshwa ili kutambua matatizo katika utekelezeji wa Linux unaoendeshwa kwenye Linuxulator. Tatizo la kuacha kufanya kazi wakati wa kuunganisha faili zinazoweza kutekelezwa na glibc mpya limetatuliwa. Bandari zilizo na vipengee vya Linux kwa Linuxulator zimesasishwa hadi CentOS 7.7;
    • Kama sehemu ya programu ya Majira ya joto ya Google ya Kanuni, wanafunzi walikamilisha miradi sita kwa ufanisi: utekelezaji wa matumizi ya ping ya umoja (IPv4/IPv6) ulitayarishwa, zana za kupima ngome na kutambua makosa kwenye kernel (Kernel sanitizer) zilitengenezwa, mac_ipacl. moduli ilipendekezwa, msimbo uliandikwa kwa ukandamizaji wa kumbukumbu halisi na kazi imefanywa kutenganisha mchakato wa kujenga bandari kutoka kwa usakinishaji wa ndani;
    • Mradi wa upimaji wa fuzzing wa kernel ya FreeBSD kwa kutumia mfumo unaendelea kustawi syzkaller. Katika kipindi cha kuripoti, makosa zaidi ya kumi yalitambuliwa na kuondolewa kwa kutumia syzkaller. Ili kuendesha syzkaller katika mashine pepe kulingana na bhyve, seva tofauti imejitolea, na kutumia
      syzbot imeanzisha majaribio ya mifumo midogo mbalimbali ya FreeBSD katika miundombinu ya Google. Ilipanga uhamishaji wa taarifa kuhusu kuacha kufanya kazi kwa huduma ya backtrace.io ili kurahisisha uwekaji kambi na uchanganuzi wao;

    • Kazi inaendelea kusasisha utekelezaji wa zlib katika kiwango cha kernel.
      Msimbo unaohusiana na ukandamizaji umehamishwa kutoka zlib 1.0.4, iliyotolewa zaidi ya miaka 20 iliyopita, hadi zlib 1.2.11 codebase ya sasa. Ili kuunganisha ufikiaji wa zlib, kazi za kubana, compress2 na uncompress zimeongezwa kwenye kernel. Msimbo unaohakikisha utendakazi wa itifaki ya PPP kutoka kwa mfumo mdogo wa netgraph umehamishwa ili kutumia utekelezaji wa mfumo wa zlib, badala ya toleo lake la maktaba hii. Kern_ctf.c, opencryptodeflate, geom_uzip, subr_compressor, mifumo ndogo pia imehamishiwa kwenye zlib mpya.
      if_mxge, bxe updated na ng_deflate;

    • Kiolesura kipya cha kernel kinatengenezwa sysclininfo, ambayo inakuwezesha kupata vipengele katika hifadhidata ya parameta ya sysctl, iliyochakatwa kwa namna ya MIB (Msingi wa Taarifa ya Usimamizi), na kuhamisha taarifa kuhusu vitu kwa nafasi ya mtumiaji.
  • usalama
    • Moduli ya Kernel imeundwa mac_ipacl, kwa kuzingatia Mfumo wa TrustedBSD MAC na kutekeleza mfumo wa udhibiti wa ufikiaji wa mipangilio ya rafu ya mtandao kwa mazingira ya jela. Kwa mfano, kwa kutumia mac_ipacl, msimamizi wa mfumo wa mwenyeji anaweza kuzuia mtumiaji wa mizizi katika mazingira ya jela kubadilisha au kuweka anwani za IP au mipangilio ya subnet kwa miingiliano fulani ya mtandao. Mfumo wa udhibiti wa ufikiaji wa lazima unaopendekezwa inaruhusu weka orodha za anwani za IP na nyavu ndogo zinazoruhusiwa kwa Jela, kukataza usakinishaji wa IPs fulani na nyati ndogo katika Jela, au punguza ubadilishaji wa vigezo kwa miingiliano fulani ya mtandao tu;
    • Intel ilitoa lango la rafu za programu kwa mradi huo TPM 2.0 (Moduli ya Mfumo Unaoaminika) ili kusawazisha na chipu salama ya kompyuta, ambayo kwa kawaida hutumika kwa upakiaji uliothibitishwa wa programu dhibiti na bootloader ya OS. Vipengee vya rafu vinawasilishwa katika mfumo wa usalama wa bandari/tpm2-tss, zana za usalama/tpm2-na usalama/tpm2-abrmd. Lango la tpm2-tss linajumuisha maktaba za kutumia API ya TPM2, tpm2-tools hutoa huduma za mstari wa amri kwa kutekeleza shughuli za TPM, na tpm2-abrmd ina utekelezwaji wa mchakato wa usuli wa vipengee vya Dalali wa Ufikiaji wa TPM na Kidhibiti Rasilimali ambacho huzidisha maombi kutoka kwa watumiaji tofauti wa TPM. kwa kifaa kimoja. Mbali na uanzishaji uliothibitishwa kwenye FreeBSD, TPM inaweza kutumika kuimarisha usalama wa Strongswan IPsec, SSH na TLS kwa kufanya shughuli za siri kwenye chip tofauti;
    • Kernel ya usanifu wa amd64 inabadilishwa ili kuwasha kwa kutumia mbinu ya ulinzi ya W^X (andika XOR kutekeleza), ambayo inamaanisha kuwa kurasa za kumbukumbu haziwezi kufikiwa kwa wakati mmoja kwa kuandika na kutekeleza (kernel sasa inaweza kupakiwa kwa kutumia kurasa za kumbukumbu zinazoweza kutekelezeka ambazo uandishi wake unafanywa. ni marufuku). Mbinu mpya ya ulinzi wa kernel imejumuishwa katika tawi la HEAD na itajumuishwa katika matoleo ya FreeBSD 13.0 na 12.2;
    • Kwa simu za mfumo wa mmap na mprotect kutekelezwa macro PROT_MAX(), ambayo hukuruhusu kubainisha seti ya alama za vizuizi vya ufikiaji zinazoruhusiwa kwa mabadiliko zaidi (PROT_READ, PROT_WRITE, PROT_EXEC). Kwa kutumia PROT_MAX(), msanidi programu anaweza kukataza uhamishaji wa eneo la kumbukumbu kwa aina inayoweza kutekelezwa au kuomba kumbukumbu ambayo hairuhusu utekelezaji, lakini inaweza kubadilishwa baadaye kuwa inayoweza kutekelezwa. Kwa mfano, eneo la kumbukumbu linaweza kuwa wazi kwa ajili ya kuandikwa kwa muda wa kuunganisha kwa nguvu au uundaji wa msimbo wa JIT, lakini baada ya kuandika kukamilika, inazuiwa kusoma na kutekeleza pekee, na katika siku zijazo, ikiwa imeathiriwa, mshambuliaji. haitaweza kuwezesha uandishi kwa kizuizi hicho cha kumbukumbu. Mbali na PROT_MAX(), sysctl vm.imply_prot_max pia inatekelezwa, ambayo inapoamilishwa, huamua seti ya bendera halali kulingana na vigezo vya awali vya simu ya kwanza ya mmap;
    • Kuimarisha ulinzi dhidi ya unyonyaji wa udhaifu, pamoja na mbinu ya kubahatisha nafasi ya anwani (ASLR), utaratibu wa kubahatisha urekebishaji wa viashiria vinavyoshughulikia sura ya awali ya rafu na miundo iliyowekwa kwenye rafu yenye taarifa kuhusu mazingira, vigezo vya uzinduzi wa programu na data. kwa picha zinazoweza kutekelezwa katika umbizo la ELF inapendekezwa;
    • Kazi imefanywa ili kuondoa utendakazi usio salama kutoka kwa libc (kuanzia kiwango cha C11, utendakazi huu haujajumuishwa kwenye vipimo) na kurekebisha bandari ambazo bado zinatumia chaguo hili la kukokotoa. Mabadiliko yamepangwa kutolewa katika FreeBSD 13.0;
    • Mradi wa majaribio umezinduliwa ili kuunda zana za kupanga mazingira ya jela kulingana na mfumo sufuria kwa kuunda na kusafirisha picha, zinazotekelezwa sawa na Docker, na dereva nomad, ambayo hutoa kiolesura cha kuzindua programu kwa nguvu katika mazingira ya jela. Mfano uliopendekezwa huturuhusu kutenganisha michakato ya kuunda mazingira ya jela na kupeleka maombi ndani yao. Moja ya malengo ya mradi huo ni kutoa njia ya kuendesha jela kama kontena za mtindo wa Docker;
  • Mifumo ya uhifadhi na faili
    • Kutoka NetBSD hadi matumizi ya "makefs". imehamishwa Usaidizi wa mfumo wa faili wa FAT (msdosfs). Mabadiliko yaliyotayarishwa hukuruhusu kuunda picha za FS na FAT bila kutumia dereva wa md na bila mamlaka ya mizizi;
    • Urekebishaji upya wa kiendeshi cha mfumo mdogo wa FUSE (Mfumo wa faili katika USerspace) umekamilika, na kuruhusu uundaji wa utekelezaji wa mfumo wa faili katika nafasi ya mtumiaji. Dereva ambayo awali ilisafirishwa ilikuwa na mende nyingi na ilitokana na FUSE 7.8, ambayo ilitolewa miaka 11 iliyopita. Kama sehemu ya mradi wa uboreshaji wa madereva, usaidizi wa itifaki ya FUSE 7.23 umetekelezwa, msimbo wa kuangalia haki za ufikiaji kwenye upande wa kernel ("-o default_permissions") umeongezwa, simu kwa VOP_MKNOD, VOP_BMAP na VOP_ADVLOCK zimeongezwa, uwezo wa kukatiza shughuli za FUSE umetolewa, usaidizi wa bomba zisizo na jina na soketi za unix zimeongezwa kwenye fusef, iliwezekana kutumia kqueue kwa /dev/fuse, iliwezekana kusasisha vigezo vya mlima kupitia "mount -u", msaada ulioongezwa. kwa ajili ya kusafirisha fusefu kupitia NFS, ilitekeleza uhasibu wa RLIMIT_FSIZE, iliongeza alama za FOPEN_KEEP_CACHE na FUSE_ASYNC_READ, ilifanya uboreshaji mkubwa wa utendakazi na uratibu ulioboreshwa wa kuweka akiba. Dereva mpya imejumuishwa katika matawi ya kichwa na imara/12 (imejumuishwa katika FreeBSD 12.1);
    • Utekelezaji wa NFSv4.2 (RFC-7862) kwa FreeBSD unakaribia kukamilika. Lengo kuu katika kipindi cha kuripoti lilikuwa katika upimaji. Majaribio yamekamilika ili kuthibitisha uoanifu na utekelezaji wa Linux, lakini majaribio ya seva ya pNFS na NFSv4.2 bado yanaendelea. Kwa ujumla, msimbo tayari unachukuliwa kuwa tayari kuunganishwa kwenye kichwa cha FreeBSD/matawi ya sasa. Toleo jipya la NFS linaongeza usaidizi kwa posix_fadvise, kazi za posix_fallocate, modes za SEEKHOLE/SEEKDATA katika lseek, uendeshaji wa kunakili ndani ya sehemu za faili kwenye seva (bila kuhamisha kwa mteja);
  • Msaada wa vifaa
    • Mradi umezinduliwa ili kuboresha utendaji wa FreeBSD kwenye kompyuta ndogo. Kifaa cha kwanza kukaguliwa kwa usaidizi wa maunzi katika FreeBSD kilikuwa kompyuta ya mkononi ya Lenovo X1 ya Carbon ya kizazi cha saba;
    • CheriBSD, uma wa FreeBSD kwa usanifu wa kichakataji cha utafiti CHERI (Uwezo wa Maagizo ya RISC Ulioboreshwa), umesasishwa ili kusaidia kichakataji kipya cha ARM Morello, ambacho kitasaidia mfumo wa udhibiti wa ufikiaji wa kumbukumbu wa CHERI kulingana na muundo wa usalama wa muundo wa Capsicum. Chip ya Morello wanapanga kutolewa mwaka 2021. Watengenezaji wa CheriBSD pia wanaendelea kufuatilia ukuzaji wa mfano wa kumbukumbu wa CHERI kulingana na usanifu wa MIPS;
    • Usaidizi uliopanuliwa wa chips za RockChip RK3399 zinazotumika katika mbao za RockPro64 na NanoPC-T4. Uboreshaji muhimu zaidi ulikuwa msaada kwa eMMC na uundaji wa kiendeshaji kipya cha kidhibiti cha eMMC kinachotumiwa kwenye ubao;
    • 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 taarifa
      Usaidizi wa iProc PCIe umepanuliwa na uwezo wa kutumia shughuli za siri za maunzi ili kuharakisha IPsec umeongezwa.
      Ujumuishaji wa kanuni katika tawi la HEAD unatarajiwa katika robo ya nne;

    • Kumekuwa na maendeleo makubwa katika uundaji wa bandari ya FreeBSD kwa jukwaa la powerpc64. Lengo ni kutoa utendakazi wa ubora kwenye mifumo iliyo na vichakataji vya IBM POWER8 na POWER9, lakini inaweza kutumika kwa hiari kwenye Apple Power Mac za zamani, x500 na Amiga A1222. Tawi la powerpc*/12 linaendelea kusafirisha kwa gcc 4.2.1, na tawi la powerpc*/13 litahamishwa hadi llvm90 hivi karibuni. Kati ya bandari 33306, 30514 zimeunganishwa kwa mafanikio;
    • Uhamishaji wa FreeBSD unaendelea kwa 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. Katika kipindi cha kuripoti, usaidizi wa USB 3.0, SD/MMC, I2C, DPAA na kiolesura cha mtandao cha GPIO ulitekelezwa. Kuna mipango ya kusaidia QSPI na kuboresha utendaji wa kiolesura cha mtandao. Kukamilika kwa kazi na kujumuishwa katika tawi la HEAD kunatarajiwa katika robo ya 4 ya 2019;
    • 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) ili kupanga mawasiliano kati ya nodi za EC2 kwa kasi ya hadi 25 Gb/s. Usaidizi wa NETMAP umeongezwa na kujaribiwa kwa kiendeshi cha ena, na mpangilio wa kumbukumbu umebadilishwa ili kuwezesha hali ya LLQ katika mazingira ya Amazon EC2 A1;
  • Maombi na mfumo wa bandari
    • Vijenzi vya rafu za michoro na bandari zinazohusiana na xorg. Lango zinazotumia USE_XORG na XORG_CAT zimehamishwa hadi kwenye mfumo wa USES badala ya kupiga simu kwa bsd.xorg.mk kupitia bsd.port.mk. Bandari kama hizo sasa zinajumuisha bendera ya "USES=xorg" kwenye faili zao za kutengeneza. Utendaji wa XORG_CAT umetenganishwa na bsd.xorg.mk na sasa umewezeshwa na bendera ya "USES=xorg-cat". Zana zilizoongezwa za kutengeneza bandari za xorg moja kwa moja kutoka kwa hazina ya git
      freedesktop.org, ambayo, kwa mfano, inakuwezesha kuunda bandari kwa matoleo ambayo bado hayajatolewa. Katika siku zijazo, tunapanga kuandaa zana za kutumia mfumo wa kuunganisha meson badala ya zana za kiotomatiki za kujenga milango ya xorg.

      Kazi imefanywa kusafisha bandari za zamani za xorg zilizofungwa kwa vipengee ambavyo havitumiki tena, kwa mfano, lango la x11/libXp limeondolewa, na bandari za x11/Xxf86misc, x11-fonts/libXfontcache na graphics/libGLw zimeacha kutumika. ;

    • Kazi imefanywa ili kuboresha usaidizi wa Java 11 na matoleo mapya zaidi katika FreeBSD, na pia kuhamisha baadhi ya mabadiliko kwenye tawi la Java 8. Baada ya usaidizi wa vipengele vipya vya Java 11 kama vile Java Flight Recorder, HotSpot Serviceability Agent, HotSpot Debugger ilitekelezwa. kwa FreeBSD , DTrace, Javac Server, Java Sound na SCTP, kazi imebadilishwa hadi kuhakikisha kuwa majaribio yote ya uoanifu yamefaulu. Idadi ya kushindwa wakati wa kupitisha vipimo imepunguzwa kutoka 50 hadi 2;
    • Kompyuta ya mezani ya KDE Plasma, Mifumo ya KDE, Programu za KDE na Qt husasishwa hadi matoleo mapya zaidi;
    • Bandari zilizo na eneo-kazi la Xfce zimesasishwa ili kutolewa 4.14;
    • Mti wa bandari za FreeBSD umepita bandari 38000, idadi ya PRs ambazo hazijafungwa ni zaidi ya 2000, ambapo 400 PRs bado hazijatatuliwa. Katika kipindi cha kuripoti, mabadiliko 7340 yalifanywa na watengenezaji 169. Washiriki wawili wapya (Santhosh Raju na Dmitri Goutnik) walipokea haki za wahusika. Toleo jipya la kidhibiti kifurushi cha pkg 1.12 limechapishwa, likiwa na usaidizi wa viwekeleo kwenye mti wa bandari na kusafisha bsd.sites.mk. Miongoni mwa masasisho muhimu ya toleo katika bandari ni: Lazarus 2.0.4, LLVM 9.0, Perl5.30, PostgreSQL 11, Ruby 2.6, Firefox 69.0.1, Firefox-esr 68.1.0, Chromium 76.0;
    • Maendeleo ya mradi yanaendelea ClonOS, zinazoendelea usambazaji maalum wa kupeleka miundombinu ya seva pepe. Kwa upande wa kazi inayosuluhisha, ClonOS inafanana na mifumo kama Proxmox, Triton (Joyent), OpenStack, OpenNebula na Amazon AWS, tofauti kuu ambayo ni utumiaji wa FreeBSD na uwezo wa kusimamia, kupeleka na kudhibiti vyombo vya FreeBSD Jela na mazingira pepe kulingana na Bhyve na Xen hypervisors . Mabadiliko ya hivi karibuni yanajumuisha usaidizi
      cloud-init ya Linux/BSD VM na cloudbase-init ya Windows VM, ikianza mageuzi ya kutumia picha asili, kwa kutumia Jenkins CI kwa majaribio ya ujenzi na hazina mpya ya pkg kwa usakinishaji.
      ClonOS kutoka kwa vifurushi.

Chanzo: opennet.ru

Kuongeza maoni