Kutolewa kwa kernel ya Linux 5.14

Baada ya miezi miwili ya maendeleo, Linus Torvalds aliwasilisha kutolewa kwa Linux kernel 5.14. Miongoni mwa mabadiliko mashuhuri zaidi: simu mpya za quotactl_fd() na memfd_secret() za mfumo, kuondolewa kwa ide na viendesha ghafi, kidhibiti kipya cha kipaumbele cha I/O kwa kikundi, hali ya kuratibu kazi ya SCHED_CORE, miundombinu ya kuunda vipakiaji vilivyothibitishwa vya BPF.

Toleo jipya linajumuisha marekebisho 15883 kutoka kwa watengenezaji 2002, ukubwa wa kiraka ni 69 MB (mabadiliko yaliathiri faili 12580, mistari 861501 ya kanuni iliongezwa, mistari 321654 ilifutwa). Takriban 47% ya mabadiliko yote yaliyoletwa katika 5.14 yanahusiana na viendesha kifaa, takriban 14% ya mabadiliko yanahusiana na kusasisha msimbo maalum wa usanifu wa maunzi, 13% yanahusiana na safu ya mtandao, 3% inahusiana na mifumo ya faili, na 3% zinahusiana na mifumo ndogo ya kernel ya ndani.

Ubunifu kuu:

  • Mfumo mdogo wa diski, I/O na mifumo ya faili
    • Kidhibiti kipya cha kuweka vipaumbele cha I/O kimetekelezwa kwa vikundi, rq-qos, ambavyo vinaweza kudhibiti kipaumbele cha usindikaji wa maombi ya kuzuia vifaa vinavyozalishwa na wanachama wa kila kikundi. Usaidizi mpya wa kidhibiti cha kipaumbele umeongezwa kwa kipanga ratiba cha I/O cha tarehe ya mwisho ya mq.
    • Mfumo wa faili wa ext4 hutekeleza amri mpya ya ioctl, EXT4_IOC_CHECKPOINT, ambayo inalazimisha miamala yote inayosubiri kutoka kwa jarida na vibafa vinavyohusika kusafishwa hadi kwenye diski, na pia kubatilisha eneo linalotumiwa na jarida katika hifadhi. Mabadiliko hayo yalitayarishwa kama sehemu ya mpango wa kuzuia uvujaji wa taarifa kutoka kwa mifumo ya faili.
    • Uboreshaji wa utendakazi umefanywa kwa Btrfs: kwa kuondoa ukataji miti usio wa lazima wa sifa zilizopanuliwa wakati wa utekelezaji wa fsync, utendakazi wa utendakazi wa kina na sifa zilizopanuliwa umeongezeka kwa hadi 17%. Zaidi ya hayo, wakati wa kufanya shughuli za trim ambazo haziathiri viwango, maingiliano kamili yamezimwa, ambayo ilipunguza muda wa operesheni kwa 12%. Mpangilio umeongezwa kwa sysfs ili kupunguza kipimo data cha I/O wakati wa kuangalia FS. Umeongeza simu za ioctl ili kughairi kubadilisha ukubwa na kufuta utendakazi wa kifaa.
    • Katika XFS, utekelezaji wa kashe ya buffer imeundwa upya, ambayo imebadilishwa kwa kugawa kurasa za kumbukumbu katika hali ya kundi. Ufanisi wa kache ulioboreshwa.
    • F2FS huongeza chaguo la kufanya kazi katika hali ya kusoma tu na kutumia modi ya kache iliyobanwa (compress_cache) ili kuboresha utendaji wa kusoma bila mpangilio. Usaidizi umetekelezwa kwa kubana faili zilizowekwa kwenye kumbukumbu kwa kutumia utendakazi wa mmap(). Ili kuzima kwa kuchagua mbano wa faili kulingana na kinyago, chaguo jipya la kupachika nocompress limependekezwa.
    • Kazi imefanywa katika kiendeshi cha exFAT ili kuboresha upatanifu na hifadhi ya kamera ya dijiti.
    • Imeongeza simu ya mfumo ya quotactl_fd(), ambayo hukuruhusu kudhibiti upendeleo sio kupitia faili maalum ya kifaa, lakini kwa kubainisha kielezi cha faili kinachohusishwa na mfumo wa faili ambao upendeleo unatumika.
    • Viendeshi vya zamani vya vifaa vya kuzuia vilivyo na kiolesura cha IDE vimeondolewa kwenye kernel; kwa muda mrefu vimebadilishwa na mfumo mdogo wa libata.
    • Dereva "mbichi" imeondolewa kwenye kernel, ikitoa ufikiaji usio na buffered kwa vifaa vya kuzuia kupitia kiolesura cha /dev/raw. Utendaji huu umetekelezwa kwa muda mrefu katika programu zinazotumia bendera ya O_DIRECT.
  • Huduma za kumbukumbu na mfumo
    • Mratibu wa kazi anatumia hali mpya ya kuratibu, SCHED_CORE, ambayo inakuruhusu kudhibiti ni michakato gani inayoweza kutekelezwa pamoja kwenye msingi sawa wa CPU. Kila mchakato unaweza kupewa kitambulisho cha kuki ambacho kinafafanua upeo wa uaminifu kati ya michakato (kwa mfano, inayomilikiwa na mtumiaji au chombo kimoja). Wakati wa kupanga utekelezaji wa msimbo, kipanga ratiba kinaweza kuhakikisha kuwa msingi mmoja wa CPU unashirikiwa tu kati ya michakato inayohusishwa na mmiliki yuleyule, ambayo inaweza kutumika kuzuia baadhi ya mashambulizi ya Specter kwa kuzuia kazi zinazoaminika na zisizoaminika kufanya kazi kwenye uzi ule ule wa SMT (Hyper Threading). .
    • Kwa kikundi, usaidizi wa operesheni ya kuua umetekelezwa, ambayo hukuruhusu kuua michakato yote inayohusishwa na kikundi mara moja (tuma SIGKILL) kwa kuandika "1" kwa faili ya kawaida ya cgroup.kill.
    • Uwezo uliopanuliwa unaohusiana na kukabiliana na ugunduzi wa kufuli za mgawanyiko ("kufuli za kupasuliwa") ambazo hutokea wakati wa kufikia data isiyopangwa kwenye kumbukumbu kutokana na ukweli kwamba wakati wa kutekeleza maagizo ya atomiki, data huvuka mistari miwili ya kache ya CPU. Kuzuia vile husababisha kushuka kwa kiasi kikubwa kwa utendaji, hivyo hapo awali iliwezekana kusitisha kwa nguvu maombi ambayo yalisababisha kuzuia. Toleo jipya linaongeza kigezo cha mstari wa amri ya kernel "split_lock_detect=ratelimit:N", ambayo hukuruhusu kufafanua kikomo cha mfumo mzima juu ya kiwango cha utendakazi wa kufunga kwa sekunde, baada ya kuzidi ambayo mchakato wowote ambao umekuwa chanzo cha kufuli kwa mgawanyiko. italazimika kusimama kwa 20 ms badala ya kusitisha.
    • Kidhibiti cha kipimo data cha kikundi CFS (kidhibiti cha kipimo data cha CFS), ambacho huamua ni muda gani wa kichakataji unaweza kugawiwa kwa kila kikundi, hutekelezea uwezo wa kufafanua mipaka ya muda, ambayo inaruhusu udhibiti bora wa mizigo ya kazi nyeti kwa muda. Kwa mfano, kuweka cpu.cfs_quota_us hadi 50000 na cpu.cfs_period_us hadi 100000 kutaruhusu kikundi cha michakato kupoteza 100ms ya muda wa CPU kila 50ms.
    • Imeongeza miundombinu ya awali ya kuunda vipakiaji vya programu ya BPF, ambayo itaruhusu zaidi upakiaji wa programu za BPF pekee zilizotiwa saini kwa ufunguo wa dijiti unaoaminika.
    • Imeongeza operesheni mpya ya futex FUTEX_LOCK_PI2, ambayo hutumia kipima muda cha monotoni kukokotoa muda ambao unazingatia muda unaotumiwa na mfumo katika hali ya usingizi.
    • Kwa usanifu wa RISC-V, usaidizi wa kurasa kubwa za kumbukumbu (Kurasa Kubwa za Uwazi) na uwezo wa kutumia utaratibu wa KFENCE kugundua makosa wakati wa kufanya kazi na kumbukumbu hutekelezwa.
    • Simu ya mfumo wa madvise(), ambayo hutoa njia ya kuboresha usimamizi wa kumbukumbu ya mchakato, imeongeza bendera za MADV_POPULATE_READ na MADV_POPULATE_WRITE ili kutoa "kosa la ukurasa" kwenye kurasa zote za kumbukumbu zilizopangwa kusoma au kuandika shughuli bila kusoma au kuandika halisi (prefault. ) Matumizi ya bendera yanaweza kuwa na manufaa kwa kupunguza ucheleweshaji katika utekelezaji wa programu, kutokana na utekelezaji wa haraka wa kidhibiti cha "kosa la ukurasa" kwa kurasa zote ambazo hazijagawanywa mara moja, bila kusubiri ufikiaji halisi kwao.
    • Mfumo wa kupima kitengo cha kunit umeongeza usaidizi wa kufanya majaribio katika mazingira ya QEMU.
    • Vifuatiliaji vipya vimeongezwa: "osnoise" kufuatilia ucheleweshaji wa programu unaosababishwa na ushughulikiaji wa kukatiza, na "timerlat" ili kuonyesha maelezo ya kina kuhusu ucheleweshaji wakati wa kuamka kutoka kwa ishara ya kipima muda.
  • Virtualization na Usalama
    • Simu ya mfumo memfd_secret() imeongezwa ili kuunda eneo la kumbukumbu la kibinafsi katika nafasi iliyotengwa ya anwani, inayoonekana tu kwa mchakato wa kumiliki, isiyoonyeshwa kwa michakato mingine, na haipatikani moja kwa moja na kernel.
    • Katika mfumo wa kuchuja simu ya seccomp, wakati wa kuhamisha vidhibiti vya kuzuia kwenye nafasi ya mtumiaji, inawezekana kutumia operesheni moja ya atomiki ili kuunda maelezo ya faili kwa kazi iliyotengwa na kuirudisha wakati wa kusindika simu ya mfumo. Operesheni inayopendekezwa hutatua tatizo la kukatiza kidhibiti katika nafasi ya mtumiaji wakati ishara inapowasili.
    • Imeongeza utaratibu mpya wa kudhibiti vikomo vya rasilimali katika nafasi ya jina ya kitambulisho cha mtumiaji, ambayo hufunga vihesabu vya rlimit mahususi kwa mtumiaji katika "nafasi ya jina la mtumiaji". Mabadiliko hayo hutatua tatizo kwa kutumia vihesabio vya kawaida vya rasilimali wakati mtumiaji mmoja anaendesha michakato katika vyombo tofauti.
    • Hypervisor ya KVM ya mifumo ya ARM64 imeongeza uwezo wa kutumia kiendelezi cha MTE (MemTag, Memory Tagging Extension) katika mifumo ya wageni, ambayo hukuruhusu kufunga vitambulisho kwa kila operesheni ya ugawaji kumbukumbu na kupanga kuangalia utumiaji sahihi wa viashiria kuzuia unyonyaji. udhaifu unaosababishwa na kufikia vizuizi vya kumbukumbu vilivyofunguliwa, bafa iliyojaa kupita kiasi, ufikiaji kabla ya kuanzishwa na kutumia nje ya muktadha wa sasa.
    • Vifaa vya Uthibitishaji wa Pointer vya jukwaa la ARM64 sasa vinaweza kusanidiwa kando kwa kernel na nafasi ya mtumiaji. Teknolojia inakuruhusu kutumia maagizo maalum ya ARM64 ili kuthibitisha anwani za kurejesha kwa kutumia sahihi za dijiti ambazo zimehifadhiwa kwenye sehemu za juu za kielekezi chenyewe ambazo hazijatumika.
    • Linux ya hali ya mtumiaji imeongeza usaidizi wa kutumia viendeshi vya vifaa vya PCI na basi pepe ya PCI, inayotekelezwa na kiendeshi cha PCI-over-virtio.
    • Kwa mifumo ya x86, imeongeza usaidizi wa kifaa cha virtio-iommu paravirtualized, ikiruhusu maombi ya IOMMU kama vile ATTACH, DETACH, MAP na UNMAP kutumwa kwa usafiri wa virtio bila kuiga majedwali ya ukurasa wa kumbukumbu.
    • Kwa Intel CPUs, kutoka kwa familia ya Skylake hadi Ziwa la Kahawa, matumizi ya Intel TSX (Viendelezi vya Usawazishaji wa Miamala), ambayo hutoa zana za kuboresha utendakazi wa programu zenye nyuzi nyingi kwa kuondoa kwa nguvu utendakazi wa usawazishaji usio wa lazima, huzimwa kwa chaguo-msingi. Viendelezi vimezimwa kutokana na uwezekano wa mashambulizi ya Zombieload ambayo hudhibiti uvujaji wa taarifa kupitia chaneli za wahusika wengine ambao hutokea wakati wa utendakazi wa utaratibu wa TAA (TSX Asynchronous Abort).
  • Mfumo mdogo wa mtandao
    • Kuunganishwa katika msingi wa MPTCP (MultiPath TCP), ugani wa itifaki ya TCP kwa ajili ya kuandaa uendeshaji wa uhusiano wa TCP na utoaji wa pakiti wakati huo huo kwenye njia kadhaa kupitia miingiliano tofauti ya mtandao inayohusishwa na anwani tofauti za IP. Toleo jipya linaongeza utaratibu wa kuweka sera zako za hashi za trafiki za IPv4 na IPv6 (sera ya njia nyingi za hashi), ikiwezesha kubainisha kutoka kwa nafasi ya mtumiaji ni sehemu zipi katika pakiti, ikiwa ni pamoja na zile zilizoambatanishwa, zitatumika wakati wa kukokotoa heshi ambayo huamua uchaguzi wa njia ya pakiti.
    • Usaidizi wa soketi za SOCK_SEQPACKET (usambazaji ulioagizwa na unaotegemewa wa datagramu) umeongezwa kwa usafiri wa mtandaoni wa virtio.
    • Uwezo wa utaratibu wa soketi wa SO_REUSEPORT umepanuliwa, ambayo inaruhusu soketi kadhaa za kusikiliza kuunganishwa kwenye mlango mmoja mara moja ili kupokea miunganisho na usambazaji wa maombi yanayoingia kwa wakati mmoja kwenye soketi zote zilizounganishwa kupitia SO_REUSEPORT, ambayo hurahisisha uundaji wa programu za seva zenye nyuzi nyingi. . Toleo jipya linaongeza zana za kuhamisha udhibiti kwenye tundu lingine katika kesi ya kushindwa wakati wa kusindika ombi na tundu lililochaguliwa awali (hutatua tatizo na kupoteza kwa miunganisho ya mtu binafsi wakati wa kuanzisha upya huduma).
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Dereva wa amdgpu hutoa usaidizi kwa mfululizo mpya wa AMD Radeon RX 6000 wa GPU, zilizopewa jina la β€œBeige Goby” (Navi 24) na β€œYellow Carp”, pamoja na usaidizi ulioboreshwa wa Aldebaran GPU (gfx90a) na Van Gogh APU. Imeongeza uwezo wa kufanya kazi kwa wakati mmoja na paneli kadhaa za eDP. Kwa APU Renoir, usaidizi wa kufanya kazi na vibafa vilivyosimbwa kwa njia fiche kwenye kumbukumbu ya video (TMZ, Eneo la Kumbukumbu linaloaminika) umetekelezwa. Usaidizi ulioongezwa kwa kadi za picha za moto-kuchomoa. Kwa GPU za Radeon RX 6000 (Navi 2x) na GPU za zamani za AMD, usaidizi wa ASPM (Active State Power Management) umewashwa kwa chaguomsingi, ambao hapo awali ulikuwa umewashwa kwa Navi 1x, Vega na Polaris GPU pekee.
    • Kwa chipsi za AMD, usaidizi wa kumbukumbu pepe ya pamoja (SVM, kumbukumbu pepe iliyoshirikiwa) imeongezwa kulingana na mfumo mdogo wa HMM (Usimamizi wa kumbukumbu nyingi), ambao unaruhusu utumiaji wa vifaa vilivyo na vitengo vyao vya usimamizi wa kumbukumbu (MMU, kitengo cha usimamizi wa kumbukumbu), ambayo inaweza kufikia kumbukumbu kuu. Hasa, kwa kutumia HMM, unaweza kupanga nafasi ya anwani iliyoshirikiwa kati ya GPU na CPU, ambayo GPU inaweza kufikia kumbukumbu kuu ya mchakato.
    • Umeongeza usaidizi wa awali wa teknolojia ya AMD Smart Shift, ambayo hubadilisha kwa urahisi mipangilio ya nguvu ya CPU na GPU kwenye kompyuta ndogo zilizo na chipset ya AMD na kadi ya michoro ili kuboresha utendaji wa michezo, uhariri wa video na uonyeshaji wa 3D.
    • Dereva wa i915 wa kadi za michoro za Intel ni pamoja na usaidizi wa chipsi za Intel Alderlake P.
    • Kiendeshi cha drm/hyperv kimeongezwa kwa adapta ya picha pepe ya Hyper-V.
    • Usaidizi ulioongezwa kwa kompyuta ya Raspberry Pi 400 yote kwa moja.
    • Kiendeshi cha faragha cha dell-wmi kimeongezwa ili kuauni kamera ya maunzi na swichi za maikrofoni zilizojumuishwa kwenye kompyuta za mkononi za Dell.
    • Kwa kompyuta za mkononi za Lenovo, kiolesura cha WMI kimeongezwa kwa kubadilisha mipangilio ya BIOS kupitia sysfs /sys/class/firmware-attributes/.
    • Usaidizi uliopanuliwa kwa vifaa vilivyo na kiolesura cha USB4.
    • Usaidizi ulioongezwa kwa kadi za sauti za AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 na Texas Instruments TAS2505 na kodeki. Usaidizi wa sauti ulioboreshwa kwenye kompyuta za mkononi za HP na ASUS. Viraka vilivyoongezwa ili kupunguza ucheleweshaji kabla ya sauti kuanza kucheza kwenye vifaa vya USB.

Chanzo: opennet.ru

Kuongeza maoni