Kutolewa kwa kernel ya Linux 5.11

Baada ya miezi miwili ya maendeleo, Linus Torvalds aliwasilisha kutolewa kwa Linux kernel 5.11. Miongoni mwa mabadiliko mashuhuri zaidi: usaidizi wa viunga vya Intel SGX, utaratibu mpya wa kukatiza simu za mfumo, basi kisaidizi dhahania, marufuku ya kukusanyika moduli bila MODULE_LICENSE(), hali ya kuchuja haraka kwa simu za mfumo katika seccomp, kusitisha msaada kwa ia64 usanifu, uhamisho wa teknolojia ya WiMAX kwenye tawi la "staging", uwezo wa kuingiza SCTP katika UDP.

Toleo jipya linajumuisha marekebisho 15480 kutoka kwa watengenezaji 1991, ukubwa wa kiraka ni 72 MB (mabadiliko yaliathiri faili 12090, mistari 868025 ya kanuni iliongezwa, mistari 261456 ilifutwa). Takriban 46% ya mabadiliko yote yaliyoletwa katika 5.11 yanahusiana na viendeshi vya kifaa, takriban 16% ya mabadiliko yanahusiana na kusasisha nambari maalum ya usanifu wa maunzi, 13% inahusiana na safu ya mtandao, 3% inahusiana na mifumo ya faili na 4% zinahusiana na mifumo ndogo ya kernel ya ndani.

Ubunifu kuu:

  • Mfumo mdogo wa diski, I/O na mifumo ya faili
    • Chaguzi kadhaa za kupachika zimeongezwa kwa Btrfs ili zitumike wakati wa kurejesha data kutoka kwa mfumo wa faili ulioharibika: “rescue=ignorebadroots” kwa ajili ya kupachikwa, licha ya uharibifu wa baadhi ya miti ya mizizi (kiwango, uuid, kuhamisha data, kifaa, csum, nafasi ya bure), “ rescue=ignoredatacsums” ili kuzima ukaguzi wa cheki kwa data na "rescue=all" ili kuwezesha kwa wakati mmoja modi za 'ignorebadroots', 'ignoredatacssums' na 'nologreplay'. Chaguo la kupachika "inode_cache", ambalo hapo awali liliacha kutumika, limekatishwa. Msimbo umetayarishwa ili kutekeleza utumiaji wa vizuizi vyenye metadata na data ndogo kuliko saizi ya ukurasa (PAGE_SIZE), pamoja na usaidizi wa hali ya ugawaji wa nafasi iliyo kanda. Maombi ambayo hayana buffered (Direct IO) yamehamishwa hadi kwenye miundombinu ya iomap. Utendaji wa idadi ya shughuli umeboreshwa; katika hali nyingine, kuongeza kasi kunaweza kufikia makumi ya asilimia.
    • XFS hutumia bendera ya "mahitaji ya kurekebisha", ambayo inaashiria hitaji la ukarabati. Bendera hii ikiwekwa, mfumo wa faili hauwezi kupachikwa hadi bendera itakapowekwa upya na matumizi ya xfs_repair.
    • Ext4 hutoa tu marekebisho ya hitilafu na uboreshaji, pamoja na kusafisha msimbo.
    • Usafirishaji upya wa mifumo ya faili iliyowekwa juu ya NFS inaruhusiwa (yaani, kizigeu kilichowekwa kupitia NFS sasa kinaweza kusafirishwa kupitia NFS na kutumika kama akiba ya kati).
    • Simu ya mfumo close_range(), ambayo inaruhusu mchakato wa kufunga safu nzima ya vifafanuzi vya faili wazi mara moja, imeongeza chaguo CLOSE_RANGE_CLOEXEC ili kufunga vifafanuzi katika hali ya utekelezaji wa karibu-on-exec.
    • Mfumo wa faili wa F2FS huongeza simu mpya za ioctl() ili kuruhusu udhibiti wa nafasi ya mtumiaji juu ya faili ambazo zimehifadhiwa katika fomu iliyobanwa. Imeongezwa "compress_mode=" chaguo la kuweka ili kuchagua kuweka kidhibiti cha mbano kwenye upande wa kernel au katika nafasi ya mtumiaji.
    • Ilitoa uwezo wa kupachika Vifuniko kwa michakato isiyodhibitiwa kwa kutumia nafasi tofauti ya majina ya mtumiaji. Ili kuthibitisha ufuasi wa utekelezaji wa mfano wa usalama, ukaguzi kamili wa kanuni ulifanyika. Overlayfs pia huongeza uwezo wa kuendesha kwa kutumia nakala za picha za mfumo wa faili kwa kuzima kwa hiari ukaguzi wa UUID.
    • Mfumo wa faili wa Ceph umeongeza usaidizi kwa itifaki ya msgr2.1, ambayo inaruhusu matumizi ya algoriti ya AES-GCM wakati wa kutuma data kwa njia iliyosimbwa.
    • Moduli ya dm-multipath hutekeleza uwezo wa kuzingatia mshikamano wa CPU (“Uhusiano wa IO”) wakati wa kuchagua njia ya maombi ya I/O.
  • Huduma za kumbukumbu na mfumo
    • Utaratibu mpya wa kukatiza simu umeongezwa, kulingana na prctl(), ambayo hukuruhusu kutoa vighairi kutoka kwa nafasi ya mtumiaji wakati wa kufikia simu mahususi ya mfumo na kuiga utekelezaji wake. Utendaji huu unahitajika katika Mvinyo na Protoni ili kuiga simu za mfumo wa Windows, ambayo ni muhimu ili kuhakikisha upatanifu na michezo na programu zinazotekeleza simu za mfumo moja kwa moja kwa kupita API ya Windows (kwa mfano, kulinda dhidi ya matumizi yasiyoidhinishwa).
    • Simu ya mtumiajifaultfd() mfumo, iliyoundwa kushughulikia hitilafu za ukurasa (ufikiaji wa kurasa za kumbukumbu ambazo hazijatengwa) katika nafasi ya mtumiaji, sasa ina uwezo wa kuzima ushughulikiaji wa ubaguzi unaotokea katika kiwango cha kernel ili iwe vigumu zaidi kutumia udhaifu fulani.
    • Mfumo mdogo wa BPF umeongeza usaidizi kwa hifadhi ya eneo la kazi, ambayo hutoa ufungaji wa data kwa kidhibiti mahususi cha BPF.
    • Uhasibu wa matumizi ya kumbukumbu na programu za BPF umeundwa upya kabisa - kidhibiti cha kikundi kimependekezwa badala ya memlock rlimit kusimamia matumizi ya kumbukumbu katika vitu vya BPF.
    • Utaratibu wa BTF (Aina ya Umbizo la BPF), ambao hutoa maelezo ya kukagua aina katika pseudocode ya BPF, hutoa usaidizi kwa moduli za kernel.
    • Usaidizi ulioongezwa wa kuzima (), renameat2() na unlinkat() simu za mfumo kwa kiolesura cha io_uring kisicholingana cha I/O. Unapopiga simu io_uring_enter(), uwezo wa kubainisha muda wa kuisha umeongezwa (unaweza kuangalia usaidizi wa hoja ili kubainisha muda wa kuisha kwa kutumia alama ya IORING_FEAT_EXT_ARG).
    • Usanifu wa ia64 unaotumiwa katika vichakataji vya Intel Itanium umehamishwa hadi kwenye kategoria ya mayatima, ambayo ina maana kwamba majaribio yamekoma. Hewlett Packard Enterprise iliacha kukubali maagizo ya vifaa vipya vya Itanium, na Intel ilifanya hivyo mwaka jana.
    • Usaidizi wa mifumo kulingana na usanifu wa MicroBlaze ambao haujumuishi kitengo cha usimamizi wa kumbukumbu (MMU) umesitishwa. Mifumo hiyo haijaonekana katika maisha ya kila siku kwa muda mrefu.
    • Kwa usanifu wa MIPS, usaidizi wa majaribio ya chanjo ya msimbo umeongezwa kwa kutumia matumizi ya gcov.
    • Usaidizi ulioongezwa kwa basi wasilianifu dhahania kwa ajili ya kuingiliana na vifaa vya kufanya kazi nyingi ambavyo vinachanganya utendakazi unaohitaji viendeshaji tofauti (kwa mfano, kadi za mtandao zilizo na usaidizi wa Ethernet na RDMA). Basi inaweza kutumika kuteua dereva wa msingi na upili kwa kifaa, katika hali ambapo utumiaji wa mfumo mdogo wa MFD (Vifaa Vinavyofanya Kazi Nyingi) ni wa matatizo.
    • Kwa usanifu wa RISC-V, usaidizi umeongezwa kwa mfumo wa ugawaji wa kumbukumbu wa CMA (Contiguous Memory Allocator), ambao umeboreshwa kwa kutenga maeneo makubwa ya kumbukumbu kwa kutumia mbinu za harakati za ukurasa wa kumbukumbu. Kwa RISC-V, zana pia hutekelezwa ili kupunguza ufikiaji wa /dev/mem na kuzingatia muda wa kuchakata uliokatizwa.
    • Kwa mifumo ya ARM ya 32-bit, usaidizi umeongezwa kwa zana ya kurekebisha anwani ya KASan (Kernel address sanitizer), ambayo husaidia kutambua makosa wakati wa kufanya kazi na kumbukumbu. Kwa 64-bit ARM, utekelezaji wa KASan umebadilishwa kutumia lebo za MTE (MemTag).
    • Simu ya mfumo ya epoll_pwait2() imeongezwa ili kuruhusu muda kuisha kwa usahihi wa nanosecond (simu ya epoll_wait huchezea milisekunde).
    • Mfumo wa ujenzi sasa unaonyesha hitilafu wakati wa kujaribu kuunda moduli za kernel zinazoweza kupakiwa ambazo leseni ya msimbo haijafafanuliwa kwa kutumia MODULE_LICENSE() macro. Kuanzia sasa, kutumia EXPORT_SYMBOL() macro kwa vitendaji tuli pia kutasababisha hitilafu ya ujenzi.
    • Usaidizi ulioongezwa wa kuchora vitu vya GEM kutoka kwa kumbukumbu inayotumiwa kwa I/O, ambayo ilifanya iwezekane kuharakisha kazi na fremu kwenye baadhi ya usanifu.
    • Kconfig imeacha kutumia Qt4 (huku ikidumisha usaidizi wa Qt5, GTK na Ncurses).
  • Virtualization na Usalama
    • Usaidizi wa hali ya majibu ya haraka umeongezwa kwenye simu ya mfumo wa seccomp(), ambayo hukuruhusu kuamua kwa haraka sana ikiwa simu fulani ya mfumo inaruhusiwa au imepigwa marufuku kulingana na bitmap ya vitendo isiyobadilika iliyoambatishwa kwenye mchakato, ambayo haihitaji kuendeshwa. kidhibiti cha BPF.
    • Vipengele vya kernel vilivyounganishwa vya kuunda na kudhibiti enclaves kulingana na teknolojia ya Intel SGX (Programu ya Walinzi eXtensions), ambayo inaruhusu programu kutekeleza msimbo katika maeneo yaliyotengwa ya kumbukumbu, ambayo mfumo wote una ufikiaji mdogo.
    • Kama sehemu ya mpango wa kupunguza ufikiaji kutoka kwa nafasi ya mtumiaji hadi kwa MSR (rejista ya mfano mahususi), ikiandikia rejista ya MSR_IA32_ENERGY_PERF_BIAS, ambayo hukuruhusu kubadilisha modi ya ufanisi wa nishati ya kichakataji ("kawaida", "utendaji", "kuokoa nguvu") , ni marufuku.
    • Uwezo wa kuzima uhamishaji wa majukumu ya kipaumbele kati ya CPU umehamishwa kutoka tawi la kernel-rt kwa mifumo ya wakati halisi.
    • Kwa mifumo ya ARM64, uwezo wa kutumia lebo za MTE (MemTag, Kiendelezi cha Uwekaji Tagi za Kumbukumbu) kwa anwani za kumbukumbu za vidhibiti umeongezwa. Utumiaji wa MTE umewezeshwa kwa kubainisha chaguo la SA_EXPOSE_TAGBITS katika sigaction() na hukuruhusu kuangalia matumizi sahihi ya viashiria ili kuzuia unyonyaji wa udhaifu unaosababishwa na kufikia vizuizi vya kumbukumbu vilivyoachiliwa, kufurika kwa bafa, ufikiaji kabla ya kuanzishwa, na kutumia nje ya muktadha wa sasa.
    • Imeongeza kigezo cha "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING", ambacho huruhusu mfumo mdogo wa dm-verity kuangalia saini za hash za vyeti vilivyowekwa kwenye ufunguo wa pili. Kwa mazoezi, usanidi hukuruhusu kudhibitisha sio vyeti tu vilivyojengwa kwenye kernel, lakini pia vyeti vilivyopakiwa wakati wa operesheni, ambayo inafanya uwezekano wa kusasisha vyeti bila kusasisha kernel nzima.
    • Linux ya hali ya mtumiaji imeongeza usaidizi wa hali ya kusimamisha-kuto-fanya kitu, ambayo inakuwezesha kufungia mazingira na kutumia ishara ya SIGUSR1 ili kuamka kutoka kwa hali ya usingizi.
    • Utaratibu wa virtio-mem, unaokuruhusu kuziba moto na kukata kumbukumbu kwa mashine pepe, umeongeza usaidizi kwa Njia Kubwa ya Kuzuia (BBM), ambayo inafanya uwezekano wa kuhamisha au kuchukua kumbukumbu katika vizuizi vikubwa kuliko saizi ya kumbukumbu ya kernel. block, ambayo ni muhimu ili kuboresha VFIO katika QEMU.
    • Usaidizi wa msimbo wa CHACHA20-POLY1305 umeongezwa kwenye utekelezaji wa msingi wa TLS.
  • Mfumo mdogo wa mtandao
    • Kwa 802.1Q (VLAN), utaratibu wa usimamizi wa kushindwa kwa uunganisho (CFM, Usimamizi wa Makosa ya Muunganisho) umetekelezwa, ambayo inakuwezesha kutambua, kuthibitisha na kutenganisha kushindwa katika mitandao yenye madaraja ya kawaida (Virtual Bridged Networks). Kwa mfano, CFM inaweza kutumika kutenga matatizo katika mitandao inayojumuisha mashirika mengi huru ambayo wafanyakazi wao wanapata vifaa vyao pekee.
    • Usaidizi ulioongezwa wa kujumuisha pakiti za itifaki za SCTP katika pakiti za UDP (RFC 6951), ambayo hukuruhusu kutumia SCTP kwenye mitandao iliyo na watafsiri wa anwani wakubwa ambao hawaungi mkono SCTP moja kwa moja, na pia kutekeleza SCTP kwenye mifumo ambayo haitoi ufikiaji wa moja kwa moja kwa IP. safu.
    • Utekelezaji wa teknolojia ya WiMAX umesogezwa kwenye jukwaa na umepangwa kuondolewa katika siku zijazo ikiwa hakuna watumiaji wanaohitaji WiMAX. WiMAX haitumiki tena kwenye mitandao ya umma, na kwenye kernel dereva pekee ambaye WiMAX inaweza kutumika ni dereva wa zamani wa Intel 2400m. Usaidizi wa WiMAX ulikomeshwa katika kisanidi mtandao cha NetworkManager mnamo 2015. Hivi sasa, WiMax inakaribia kubadilishwa kabisa na teknolojia kama vile LTE, HSPA+ na Wi-Fi 802.11n.
    • Kazi imefanywa ili kuboresha utendaji wa usindikaji wa trafiki ya TCP inayoingia katika hali ya sifuri, i.e. bila kunakili zaidi kwa bafa mpya. Kwa trafiki ya ukubwa wa kati, kufunika makumi au kilobaiti mia kadhaa ya data, kutumia zerocopy badala ya recvmsg() ni bora zaidi. Kwa mfano, mabadiliko yaliyotekelezwa yalifanya iwezekanavyo kuongeza ufanisi wa usindikaji wa trafiki ya mtindo wa RPC na ujumbe wa KB 32 wakati wa kutumia zerocopy kwa 60-70%.
    • Imeongeza simu mpya za ioctl() ili kuunda madaraja ya mtandao yanayotumia viungo vingi vya PPP. Uwezo uliopendekezwa unaruhusu fremu kuhama kutoka chaneli moja hadi nyingine, kwa mfano kutoka PPPoE hadi kipindi cha PPPoL2TP.
    • 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 linatanguliza uwezo wa kutumia chaguo la ADD_ADDR kutangaza anwani za IP zinazopatikana ambazo zinaweza kuunganishwa wakati wa kuongeza mitiririko mipya kwenye muunganisho uliopo wa MPTCP.
    • Imeongeza uwezo wa kusanidi vitendo wakati bajeti ya upigaji kura ya muunganisho imepitwa (upigaji kura una shughuli nyingi). Hali iliyokuwapo awali ya SO_BUSY_POLL ilimaanisha kubadili hadi softirq wakati bajeti ilikwisha. Kwa programu zinazohitaji kuendelea kutumia upigaji kura, chaguo jipya la SO_PREFER_BUSY_POLL linapendekezwa.
    • IPv6 hutumia usaidizi wa modi za SRv6 End.DT4 na End.DT6, zinazotumiwa kuunda IPv4 L3 VPN za watumiaji wengi na vifaa vya VRF (Uelekezaji na usambazaji wa mtandaoni).
    • Netfilter iliunganisha utekelezaji wa misemo iliyowekwa, ambayo ilifanya iwezekane kubainisha misemo mingi kwa kila kipengele cha orodha zilizowekwa.
    • API zimeongezwa kwenye safu isiyotumia waya ya 802.11 ili kusanidi vikomo vya nguvu vya SAR, pamoja na vigezo vya AE PWE na HE MCS. Kiendeshaji cha Intel iwlwifi kimeongeza usaidizi kwa masafa ya 6GHz (Ultra High Band). Dereva wa Qualcomm Ath11k ameongeza usaidizi kwa teknolojia ya FILS (Fast Initial Link Setup, iliyosanifishwa kama IEEE 802.11ai), ambayo hukuruhusu kuondoa ucheleweshaji wa kutumia mitandao mingine wakati wa kuhama kutoka sehemu moja ya ufikiaji hadi nyingine.
  • Оборудование
    • Dereva wa amdgpu hutoa msaada kwa AMD "Green Sardine" APU (Ryzen 5000) na "Dimgrey Cavefish" GPU (Navi 2), pamoja na usaidizi wa awali wa AMD Van Gogh APU na Zen 2 msingi na RDNA 2 GPU (Navi 2). Umeongeza usaidizi wa vitambulishi vipya vya Renoir APU (kulingana na Zen 2 CPU na Vega GPU).
    • Dereva ya i915 ya kadi za video za Intel inasaidia teknolojia ya IS (Integer scaling) na utekelezaji wa chujio kwa kuongeza kiwango kwa kuzingatia hali ya saizi za jirani (Ufafanuzi wa karibu-jirani) ili kuamua rangi ya saizi zinazokosekana. Usaidizi wa kadi za Intel DG1 za kipekee umepanuliwa. Usaidizi wa teknolojia ya "Big Joiner" umetekelezwa, ambayo imekuwapo tangu chips za Ice Lake / Gen11 na inaruhusu matumizi ya transcoder moja kuchakata mitiririko miwili, kwa mfano, kwa kutoa skrini ya 8K kupitia DisplayPort moja. Imeongeza modi ya kubadili kwa usawa kati ya bafa mbili kwenye kumbukumbu ya video (async flip).
    • Dereva wa nouveau ameongeza usaidizi wa awali kwa NVIDIA GPU kulingana na usanifu mdogo wa Ampere (GA100, GeForce RTX 30xx), hadi sasa mdogo kwa zana za kudhibiti modi za video.
    • Usaidizi ulioongezwa kwa itifaki ya 3WIRE inayotumiwa katika paneli za LCD. Usaidizi ulioongezwa kwa paneli za novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 na ABT Y030XX067A 3.0. Kwa kando, tunaweza kutambua msaada kwa jopo la simu mahiri za OnePlus 6 na 6T, ambayo ilifanya iwezekane kupanga upakiaji wa kernel isiyobadilishwa kwenye vifaa.
    • Usaidizi umeongezwa kwa kidhibiti cha kwanza cha kipekee cha Intel cha USB4, Maple Ridge.
    • Usaidizi ulioongezwa kwa Allwinner H6 I2S, Vifaa vya Analogi ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI na XCVR, Realtek RT715 na Qualcomm SM8250 codecs.
    • Umeongeza usaidizi wa bodi za ARM, vifaa na majukwaa: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinity2M 730PC382M 98PCda Arm 3236 Nuvo750, Arm8 Nuvo64, BCM30 Mikrotik kulingana na Marvell Prestera XNUMXDXXNUMX, seva zilizo na Nuvoton NPCMXNUMX BMC, Kontron i.MXXNUMXM Mini, Espressobin Ultra, "Trogdor" Chromebook, Kobol HeliosXNUMX, Engicam PXXNUMX.Core.
    • Usaidizi uliojumuishwa ndani wa kiweko cha michezo cha Ouya kulingana na NVIDIA Tegra 3.

Wakati huo huo, Taasisi ya Programu ya Bure ya Amerika ya Kusini iliunda toleo la 5.11 kernel ya bure kabisa - Linux-libre 5.11-gnu, iliyoondolewa kwa vipengele vya firmware na viendeshi vyenye vipengele visivyo vya bure au sehemu za msimbo, upeo wa ambayo ni mdogo. na mtengenezaji. Toleo jipya husafisha viendeshi vya qat_4xxx (crypto), lt9611uxcm (daraja la dsi/hdmi), ccs/smia++ (sensor), ath11k_pci, kibadilishaji sauti cha nxp na kidhibiti cha mhi pci. Imesasisha msimbo wa kusafisha blob katika viendeshaji na mifumo ndogo ya amdgpu, btqca, btrtl, btsb, i915 csr. Bluu mpya zimezimwa katika saa ya m3 rproc, idt82p33 ptp na qualcomm arm64.

Chanzo: opennet.ru

Kuongeza maoni