Kernel ya Linux 5.14

Kernel ya Linux 5.14

Baada ya miezi miwili ya maendeleo, Linus Torvalds kuletwa kutolewa kwa kernel Linux 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.

kuu ubunifu:

  • mfumo mdogo wa diski, pembejeo/pato na mifumo ya faili:
    • kwa kikundi kutekelezwa kidhibiti kipya cha kipaumbele cha I/O - rq-qos, ambacho kinaweza 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;
    • kwenye mfumo wa faili wa ext4 kutekelezwa amri mpya ya ioctl EXT4_IOC_CHECKPOINT, ambayo inalazimisha miamala yote inayosubiri kutoka kwa logi na vibafa zinazohusiana hadi kwenye diski, na pia kubatilisha eneo linalotumiwa na kumbukumbu katika hifadhi. Mabadiliko hayo yalitayarishwa kama sehemu ya mpango wa kuzuia uvujaji wa taarifa kutoka kwa mifumo ya faili;
    • katika Btrfs kuletwa Uboreshaji wa utendakazi: Kwa kuondoa ukataji miti usio wa lazima wa sifa zilizopanuliwa wakati wa utekelezaji wa fsync, utendakazi wa utendakazi wa kina na sifa zilizopanuliwa uliongezeka 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 imefanyiwa kazi upya utekelezaji wa kashe ya buffer, ambayo huhamishiwa kwa ugawaji wa kurasa za kumbukumbu katika hali ya kundi. Kuboresha ufanisi wa cache;
    • F2FS iliongeza chaguo la kufanya kazi katika hali ya kusoma tu na kutekeleza hali ya kuweka akiba 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 ukandamizaji wa faili na mask, chaguo jipya la mlima nocompress limependekezwa;
    • kazi imefanywa katika dereva wa exFAT ili kuboresha utangamano na uhifadhi wa baadhi ya kamera za digital;
    • simu ya mfumo imeongezwa nukuu_fd(), ambayo inakuwezesha kusimamia upendeleo si kwa njia ya faili maalum ya kifaa, lakini kwa kutaja maelezo ya faili inayohusishwa na mfumo wa faili ambao upendeleo hutumiwa;
    • Madereva ya zamani ya vifaa vya kuzuia na kiolesura cha IDE yameondolewa kwenye kernel; kwa muda mrefu yamebadilishwa na mfumo mdogo wa libata. Msaada wa vifaa vya zamani umehifadhiwa kwa ukamilifu, mabadiliko yanahusu tu uwezo wa kutumia madereva ya zamani, wakati wa kutumia ambayo anatoa ziliitwa /dev/hd*, na si /dev/sd*;
    • Dereva "mbichi" imeondolewa kwenye kernel, ikitoa ufikiaji usio na buffer kwa vifaa vya kuzuia kupitia kiolesura cha /dev/raw. Utendaji huu umetekelezwa kwa muda mrefu katika programu kwa kutumia bendera ya O_DIRECT;
  • huduma za kumbukumbu na mfumo:
    • hali mpya ya kuratibu imetekelezwa katika kipanga kazi SCHED_CORE, ambayo hukuruhusu kudhibiti ni michakato gani inaweza kufanya kazi 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 uleule wa SMT (Hyper Threading). ;
    • kwa utaratibu wa kikundi, usaidizi wa operesheni ya kuua umetekelezwa, ambayo inakuwezesha kuua taratibu zote zinazohusiana na kikundi mara moja (tuma SIGKILL) kwa kuandika "1" kwa faili ya virtual 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 inakuruhusu 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 ya mgawanyiko utakuwa. kulazimishwa 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, kina uwezo wa kufafanua mipaka iliyopunguzwa na muda fulani wa hatua, ambayo inaruhusu udhibiti bora wa mizigo nyeti ya latency. 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;
    • aliongeza miundombinu ya awali ya kuunda vipakiaji vya programu ya BPF, ambayo itaruhusu zaidi upakuaji wa programu tu za BPF zilizosainiwa na ufunguo wa kuaminika wa dijiti;
    • imeongeza operesheni mpya ya futex FUTEX_LOCK_PI2, ambayo hutumia timer ya monotonic ili kuhesabu muda, ambayo inazingatia muda uliotumiwa 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 KFENCE kutambua makosa wakati wa kufanya kazi na kumbukumbu;
    • kwenye madvise() simu ya mfumo, ambayo hutoa njia ya kuongeza usimamizi wa kumbukumbu ya mchakato, aliongeza MADV_POPULATE_READ na MADV_POPULATE_WRITE bendera ili kuzalisha "kosa la ukurasa" kwenye kurasa zote za kumbukumbu zilizopangwa kwa shughuli za kusoma au kuandika, bila kufanya kusoma au kuandika halisi (chaguo-msingi). 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 hazijatengwa mara moja, bila kusubiri ufikiaji halisi kwao;
    • katika mfumo wa kupima kitengo kuni aliongeza usaidizi wa kufanya majaribio katika mazingira ya QEMU;
    • wafuatiliaji wapya wameongezwa: "kelele" kufuatilia ucheleweshaji wa programu unaosababishwa na ushughulikiaji wa kukatiza, na " timerlat " kuonyesha maelezo ya kina kuhusu ucheleweshaji wakati wa kuamka kutoka kwa ishara ya kipima muda;
  • uboreshaji na usalama:
    • imeongezwa simu ya mfumo memfd_secret(), ambayo inakuwezesha kuunda eneo la kumbukumbu ya kibinafsi katika nafasi ya pekee ya anwani, inayoonekana tu kwa mchakato wa mmiliki, usioonyeshwa katika michakato mingine na haipatikani moja kwa moja kwa kernel;
    • katika mfumo wa kuchuja simu wa seccomp, wakati wa kuhamisha vidhibiti vya kufuli kwenye nafasi ya mtumiaji, inawezekana kutumia operesheni moja ya atomiki kuunda kielezi cha faili kwa kazi iliyotengwa na kuirudisha wakati wa kusindika simu ya mfumo. Operesheni iliyopendekezwa inasuluhisha shida na usumbufu wa kidhibiti katika nafasi ya mtumiaji wakati ishara inafika;
    • imeongezwa utaratibu mpya ili kudhibiti ukomo wa rasilimali katika nafasi ya jina ya kitambulisho cha mtumiaji, ambayo hufunga vihesabu vya rlimit binafsi kwa mtumiaji katika "nafasi ya majina ya mtumiaji". Mabadiliko hutatua tatizo kwa matumizi ya 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 matumizi sahihi ya viashiria kuzuia unyonyaji. udhaifu unaosababishwa na kufikia vizuizi vya kumbukumbu vilivyoachiliwa tayari, vihifadhi vilivyojaa, ufikiaji kabla ya kuanzishwa na kutumia nje ya muktadha wa sasa;
    • Uthibitishaji wa Pointer unaotolewa na jukwaa la ARM64 sasa unaweza kusanidiwa kando kwa kernel na nafasi ya mtumiaji. Teknolojia inakuruhusu kutumia maagizo maalum ya ARM64 ili kuthibitisha anwani za kurejesha kwa kutumia saini za dijiti ambazo zimehifadhiwa kwenye sehemu za juu zisizotumiwa za pointer yenyewe;
    • katika hali ya mtumiaji Linux aliongeza usaidizi wa matumizi ya madereva kwa vifaa vya PCI na basi ya PCI inayotekelezwa na dereva wa PCI-over-virtio;
    • kwa mifumo ya x86, imeongeza usaidizi wa kifaa cha virtio-iommu paravirtualized, ambacho hukuruhusu kutuma maombi ya IOMMU, kama vile ATTACH, DETACH, MAP na UNMAP, kwenye usafiri wa virtio bila kuiga jedwali za kurasa za 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 Zombieload, kuendesha uvujaji wa habari kupitia chaneli za wahusika wengine ambao hufanyika wakati wa utendakazi wa utaratibu wa kukatiza shughuli za asynchronous (TAA, TSX Asynchronous Abort);
  • mfumo mdogo wa mtandao:
    • kuendelea 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 pamoja na njia kadhaa kupitia miingiliano tofauti ya mtandao inayohusishwa na anwani tofauti za IP. Katika toleo jipya imeongezwa utaratibu wa kuweka sera zako za hashi za trafiki za IPv4 na IPv6 (sera ya njia nyingi za hashi), ikiwezesha kutoka kwa nafasi ya mtumiaji kubainisha ni sehemu gani katika pakiti, ikiwa ni pamoja na zile zilizoambatanishwa, zitatumika wakati wa kukokotoa heshi ambayo huamua chaguo la njia. kwa pakiti;
    • msaada wa soketi umeongezwa kwa virtio ya uchukuzi pepe SOCK_SEQPACKET (usambazaji kwa utaratibu na wa kuaminika wa datagrams);
    • 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. . Katika toleo jipya aliongeza ina maana ya 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);
  • vifaa:
    • katika dereva wa amdgpu kutekelezwa msaada 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 utaratibu wa kuokoa nguvu 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 iliyoshirikiwa (SVM, kumbukumbu pepe iliyoshirikiwa) imeongezwa kulingana na mfumo mdogo wa HMM (usimamizi wa kumbukumbu nyingi), ambao unaruhusu matumizi ya vifaa vilivyo na vitengo vyao vya usimamizi wa kumbukumbu (MMU, kitengo cha usimamizi wa kumbukumbu), ambayo inaweza kufikia kumbukumbu kuu. Ikiwa ni pamoja na kutumia HMM, unaweza kupanga nafasi ya anwani iliyoshirikiwa kati ya GPU na CPU, ambayo GPU inaweza kufikia kumbukumbu kuu ya mchakato;
    • aliongeza msaada wa teknolojia ya awali AMD Smart Shift, ambayo hubadilisha kwa kiasi kikubwa vigezo vya matumizi ya nishati ya CPU na GPU kwenye kompyuta za mkononi zilizo na chipset na kadi ya michoro ya AMD ili kuboresha utendaji wakati wa kucheza michezo, kuhariri video na uwasilishaji wa 3D;
    • katika kiendeshi cha i915 cha kadi za video za Intel pamoja msaada kwa chips za Intel Alderlake P;
    • aliongeza kiendesha drm/hyperv kwa adapta ya picha ya Hyper-V;
    • imeongezwa kiendeshi cha michoro cha simpledrm kinachotumia EFI-GOP au VESA framebuffer iliyotolewa na UEFI firmware au BIOS kwa kutoa. Kusudi kuu la kiendeshi ni kutoa uwezo wa pato la picha wakati wa hatua za awali za kuwasha, kabla ya kiendeshi kamili cha DRM. Dereva pia inaweza kutumika kama suluhisho la muda kwa vifaa ambavyo bado havina viendeshi asili vya DRM;
    • aliongeza msaada wa kompyuta zote kwa moja Raspberry Pi 400;
    • Imeongeza kiendeshi cha faragha cha dell-wmi ili kusaidia swichi za maunzi ya kamera na kipaza sauti zilizojumuishwa kwenye kompyuta za mkononi za Dell;
    • kwa laptops za Lenovo imeongezwa interface ya WMI ya kubadilisha vigezo vya BIOS kupitia sysfs /sys/class/firmware-attributes/;
    • kupanuliwa msaada kwa vifaa vilivyo na interface ya USB4;
    • aliongeza usaidizi wa kadi za sauti na kodeki AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 na Texas Instruments TAS2505. Usaidizi wa sauti ulioboreshwa kwenye kompyuta za mkononi za HP na ASUS. Imeongezwa viraka ili kupunguza ucheleweshaji kabla ya sauti kuanza kucheza kwenye vifaa vilivyo na kiolesura cha USB.

Chanzo - opennet.ru.

Chanzo: linux.org.ru