Kutolewa kwa kernel ya Linux 5.12

Baada ya miezi miwili ya maendeleo, Linus Torvalds aliwasilisha kutolewa kwa Linux kernel 5.12. Miongoni mwa mabadiliko yanayoonekana zaidi: usaidizi wa vifaa vya kuzuia kanda katika Btrfs, uwezo wa kuweka vitambulisho vya mtumiaji kwa mfumo wa faili, kusafisha usanifu wa ARM uliorithiwa, hali ya kuandika "hamu" katika NFS, utaratibu wa LOOKUP_CACHED wa kubainisha njia za faili kutoka kwa kache. , msaada wa maagizo ya atomiki katika BPF, mfumo wa kurekebisha KFENCE wa kutambua makosa wakati wa kufanya kazi na kumbukumbu, hali ya upigaji kura ya NAPI inayoendesha kwenye uzi tofauti wa kernel kwenye stack ya mtandao, hypervisor ya ACRN, uwezo wa kubadilisha mfano wa preempt kwenye kuruka kwenye kazi. kipanga ratiba na usaidizi wa uboreshaji wa LTO wakati wa kujenga huko Clang.

Toleo jipya ni pamoja na 14170 (katika toleo la awali 15480) marekebisho kutoka kwa watengenezaji wa 1946 (1991), saizi ya kiraka ni 38 MB (mabadiliko yaliyoathiriwa 12102 (12090) faili, 538599 (868025) mistari ya nambari iliongezwa, 333377 (261456) mistari ilifutwa). Takriban 43% ya mabadiliko yote yaliyoletwa katika 5.12 yanahusiana na viendeshi vya kifaa, takriban 17% ya mabadiliko yanahusiana na kusasisha nambari maalum kwa usanifu wa maunzi, 12% inahusiana na safu ya mtandao, 5% 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
    • Uwezo wa kuweka vitambulisho vya mtumiaji kwa mifumo ya faili zilizopachikwa umetekelezwa (unaweza ramani ya faili za mtumiaji mmoja kwenye kizigeu cha kigeni kilichopachikwa na mtumiaji mwingine kwenye mfumo wa sasa). Kuweka ramani kunatumika kwa mifumo ya faili ya FAT, ext4 na XFS. Utendaji unaopendekezwa hurahisisha kushiriki faili kati ya watumiaji tofauti na kwenye kompyuta tofauti, ikijumuisha uchoraji ramani itatumika katika utaratibu wa saraka ya nyumba inayoweza kubebeka ya systemd, kuruhusu watumiaji kuhamisha saraka zao za nyumbani hadi media za nje na kuzitumia kwenye kompyuta tofauti, kupanga ramani. vitambulisho vya mtumiaji ambavyo havilingani. Programu nyingine muhimu ni kuandaa utoaji wa upatikanaji wa pamoja wa faili kutoka kwa mwenyeji wa nje, bila kubadilisha data kuhusu wamiliki wa faili katika mfumo wa faili.
    • Vipande vya LOOKUP_CACHED vimepitishwa kwenye kernel, na kuruhusu utendakazi kubainisha njia ya faili kutoka kwa nafasi ya mtumiaji bila kuzuia, kulingana na data inayopatikana kwenye akiba pekee. Hali ya LOOKUP_CACHED imewashwa katika simu ya openat2() kwa kupitisha alamisho RESOLVE_CACHED, ambayo data hutolewa kutoka kwa akiba pekee, na ikiwa uamuzi wa njia unahitaji ufikiaji wa hifadhi, hitilafu ya EAGAIN inarejeshwa.
    • Mfumo wa faili wa Btrfs umeongeza usaidizi wa awali kwa vifaa vya kuzuia kanda (vifaa kwenye diski ngumu za sumaku au SSD za NVMe, nafasi ya kuhifadhi ambayo imegawanywa katika kanda zinazounda vikundi vya vizuizi au sekta, ambayo nyongeza ya data tu inaruhusiwa, kusasisha kikundi kizima cha vizuizi). Katika hali ya kusoma tu, msaada wa vizuizi vilivyo na metadata na data ndogo kuliko ukurasa (ukurasa mdogo) unatekelezwa.
    • Katika mfumo wa faili wa F2FS, uwezo wa kuchagua algorithm na kiwango cha ukandamizaji umeongezwa. Usaidizi ulioongezwa kwa mbano wa kiwango cha juu kwa algoriti ya LZ4. Imetekeleza chaguo la kupachika_merge.
    • Amri mpya ya ioctl FS_IOC_READ_VERITY_METADATA imetekelezwa ili kusoma metadata kutoka kwa faili zilizolindwa na fs-verity.
    • Mteja wa NFS anatumia hali ya uandishi ya "hamu" (anaandika=kuwa na hamu), inapowezeshwa, shughuli za uandishi kwenye faili huhamishwa mara moja kwa seva, na kupita kache ya ukurasa. Hali hii inakuwezesha kupunguza matumizi ya kumbukumbu, hutoa risiti ya papo hapo ya habari kuhusu mwisho wa nafasi ya bure katika mfumo wa faili, na katika hali fulani hufanya iwezekanavyo kufikia utendaji ulioongezeka.
    • Chaguo mpya za kupachika zimeongezwa kwa CIFS (SMB): acregmax ili kudhibiti uhifadhi wa faili na acdirmax ili kudhibiti uhifadhi wa metadata ya saraka.
    • Katika XFS, hali ya kukagua mgao yenye nyuzi nyingi imewashwa, utekelezaji wa fsync umeharakishwa, na msimbo wa growfs umetayarishwa ili kutekeleza kazi ya kupunguza ukubwa wa mfumo wa faili.
  • Huduma za kumbukumbu na mfumo
    • Mfumo mdogo wa DTMP (Dynamic Thermal Power Management) umeongezwa, unaokuruhusu kudhibiti kwa nguvu matumizi ya nishati ya vifaa tofauti kulingana na viwango vya joto vya jumla vilivyowekwa.
    • Uwezo wa kuunda kernel kwa kutumia mkusanyiko wa Clang pamoja na uboreshaji katika hatua ya kuunganisha (LTO, Uboreshaji wa Wakati wa Kiungo) umetekelezwa. Uboreshaji wa LTO hutofautiana kwa kuzingatia hali ya faili zote zinazohusika katika mchakato wa kujenga, wakati njia za jadi za uboreshaji huboresha kila faili tofauti na hazizingatii masharti ya kazi za kupiga simu zilizofafanuliwa katika faili nyingine. Kwa mfano, na LTO, uwekaji wa inline unawezekana kwa kazi kutoka kwa faili zingine, nambari isiyotumiwa haijajumuishwa kwenye faili inayoweza kutekelezwa, ukaguzi wa aina na uboreshaji wa jumla unafanywa katika kiwango cha mradi kwa ujumla. Usaidizi wa LTO kwa sasa umezuiwa kwa usanifu wa x86 na ARM64.
    • Inawezekana kuchagua njia za kuzuia (PREEMPT) katika kipanga ratiba cha kazi katika hatua ya kuwasha (preempt=hakuna/hiari/kamili) au unapofanya kazi kupitia utatuzi (/debug/sched_debug), ikiwa mpangilio wa PREEMPT_DYNAMIC ulibainishwa wakati wa kuunda kerneli. Hapo awali, hali ya extrusion inaweza tu kuwekwa kwenye ngazi ya vigezo vya mkutano. Mabadiliko huruhusu usambazaji kusafirisha kokwa zilizo na hali ya PREEMPT iliyowezeshwa, ambayo hutoa muda mdogo wa kusubiri kwa kompyuta za mezani kwa gharama ya adhabu ndogo ya upitishaji, na ikihitajika kurudi kwenye PREEMPT_VOLUNTARY (hali ya kati ya kompyuta za mezani) au PREEMPT_NONE (hutoa upitishaji wa juu zaidi kwa seva) .
    • Usaidizi wa shughuli za atomiki BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG na BPF_CMPXCHG umeongezwa kwenye mfumo mdogo wa BPF.
    • Programu za BPF hupewa uwezo wa kufikia data kwenye mrundikano kwa kutumia viashiria vilivyo na viwango tofauti. Kwa mfano, ikiwa hapo awali ungeweza tu kutumia faharasa ya vipengele vya mara kwa mara ili kufikia safu kwenye rafu, sasa unaweza kutumia inayobadilisha. Udhibiti wa ufikiaji tu ndani ya mipaka iliyopo unafanywa na kithibitishaji cha BPF. Kipengele hiki kinapatikana tu kwa programu maalum kutokana na wasiwasi kuhusu utumiaji wa udhaifu wa kubahatisha wa utekelezaji wa msimbo.
    • Imeongeza uwezo wa kuambatisha programu za BPF kwenye vifuatilizi tupu ambavyo havihusiani na matukio ya ufuatiliaji yanayoonekana katika nafasi ya mtumiaji (uhifadhi wa ABI haujahakikishwa kwa pointi kama hizo).
    • Msaada kwa basi ya CXL 2.0 (Compute Express Link) imetekelezwa, ambayo hutumiwa kupanga mwingiliano wa kasi kati ya CPU na vifaa vya kumbukumbu (inakuruhusu kutumia vifaa vya kumbukumbu ya nje kama sehemu ya RAM au kumbukumbu ya kudumu, kana kwamba kumbukumbu hii. ziliunganishwa kupitia kidhibiti cha kumbukumbu cha kawaida kwenye CPU).
    • Kiendeshaji cha nvmem kimeongezwa ili kupata data kutoka kwa sehemu za kumbukumbu zilizohifadhiwa na firmware ambazo hazipatikani moja kwa moja na Linux (kwa mfano, kumbukumbu ya EEPROM ambayo inaweza kufikiwa tu na programu dhibiti, au data inayopatikana tu wakati wa awamu ya mapema ya kuwasha).
    • Usaidizi wa mfumo wa wasifu wa "oprofile" umeondolewa, ambao haukutumiwa sana na umebadilishwa na utaratibu wa kisasa zaidi wa perf.
    • Kiolesura cha io_uring asynchronous I/O hutoa muunganisho na vikundi vinavyodhibiti matumizi ya kumbukumbu.
    • Usanifu wa RISC-V unaauni mifumo ya NUMA, pamoja na mbinu za kprobe na uprobes.
    • Imeongeza uwezo wa kutumia simu ya mfumo wa kcmp() bila kujali utendakazi wa vijipicha vya hali ya mchakato (checkpoint/rejesha).
    • EXPORT_UNUSED_SYMBOL() na EXPORT_SYMBOL_GPL_FUTURE() makros, ambazo hazijatumika kwa miaka mingi, zimeondolewa.
  • Virtualization na Usalama
    • Utaratibu wa ulinzi wa KFence (Kernel Electric Fence) iliyoongezwa, ambayo hupata hitilafu wakati wa kufanya kazi na kumbukumbu, kama vile kuzidiwa kwa bafa na ufikiaji baada ya kukomboa kumbukumbu. Tofauti na utaratibu wa kurekebisha KASAN, mfumo mdogo wa KFence una sifa ya kasi ya juu ya uendeshaji na uendeshaji wa chini, ambayo inakuwezesha kupata makosa ya kumbukumbu ambayo yanaonekana tu kwenye mifumo ya kazi au wakati wa operesheni ya muda mrefu.
    • Imeongeza usaidizi kwa kiboreshaji cha macho cha ACRN, kilichoandikwa kwa jicho la utayari wa kazi za wakati halisi na kufaa kwa matumizi katika mifumo muhimu ya dhamira. ACRN hutoa uendeshaji mdogo, huhakikisha utulivu wa chini na mwitikio wa kutosha wakati wa kuingiliana na vifaa. Inaauni uboreshaji wa rasilimali za CPU, I/O, mfumo mdogo wa mtandao, michoro na uendeshaji wa sauti. ACRN inaweza kutumika kuendesha mashine nyingi za pekee zilizotengwa katika vitengo vya udhibiti wa kielektroniki, paneli za ala, mifumo ya habari ya magari, vifaa vya watumiaji wa IoT na teknolojia nyingine iliyopachikwa. ACRN inasaidia aina mbili za mifumo ya wageni - VM za Huduma zilizobahatika, ambazo hutumiwa kudhibiti rasilimali za mfumo (CPU, kumbukumbu, I/O, n.k.), na VM maalum za Mtumiaji, ambazo zinaweza kuendesha usambazaji wa Linux, Android na Windows.
    • Katika mfumo mdogo wa IMA ( Usanifu wa Kipimo cha Uadilifu), ambao hudumisha hifadhidata ya hashi kwa kuangalia uadilifu wa faili na metadata zinazohusiana, sasa inakuwa rahisi kuangalia uadilifu wa data ya kernel yenyewe, kwa mfano, kufuatilia mabadiliko katika sheria za SELinux. .
    • Uwezo wa kukata simu za hypercall za Xen na kuzisambaza kwa emulator inayoendesha kwenye nafasi ya mtumiaji umeongezwa kwenye hypervisor ya KVM.
    • Imeongeza uwezo wa kutumia Linux kama mazingira ya msingi ya Hyper-V hypervisor. Mazingira ya mizizi yana ufikiaji wa moja kwa moja kwa maunzi na hutumiwa kuendesha mifumo ya wageni (sawa na Dom0 katika Xen). Hadi sasa, Hyper-V (Microsoft Hypervisor) iliunga mkono Linux katika mazingira ya wageni tu, lakini hypervisor yenyewe ilidhibitiwa kutoka kwa mazingira ya Windows.
    • Umeongeza usaidizi wa usimbaji fiche wa ndani kwa kadi za eMMC, huku kuruhusu utumie mbinu za usimbaji fiche zilizojengwa ndani ya kidhibiti cha hifadhi ambacho kwa uwazi husimba na kusimbua I/O.
    • Msaada wa RIPE-MD 128/256/320 na Tiger 128/160/192 hashes, ambazo hazitumiki katika msingi, pamoja na cipher ya mkondo wa Salsa20, ambayo ilibadilishwa na algorithm ya ChaCha20, imeondolewa kwenye mfumo mdogo wa crypto. Algorithm ya blake2 imesasishwa ili kutekeleza blake2s.
  • Mfumo mdogo wa mtandao
    • Imeongeza uwezo wa kusogeza kidhibiti cha upigaji kura cha NAPI cha vifaa vya mtandao hadi kwenye mkondo tofauti wa kernel, ambao unaruhusu utendakazi ulioboreshwa kwa baadhi ya aina za mzigo wa kazi. Hapo awali, upigaji kura ulifanywa katika muktadha wa softirq na haukushughulikiwa na kipanga ratiba, jambo ambalo lilifanya iwe vigumu kutekeleza uboreshaji wa hali ya juu ili kufikia utendakazi wa juu zaidi. Utekelezaji katika uzi tofauti wa kernel huruhusu kidhibiti cha upigaji kura kuangaliwa kutoka kwa nafasi ya mtumiaji, kuunganishwa kwa msingi wa CPU, na kuzingatiwa wakati wa kuratibu ubadilishaji wa kazi. Ili kuwezesha hali mpya katika sysfs, kigezo cha /sys/class/net//threaded kinapendekezwa.
    • 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 uwezo wa kuweka kipaumbele kwa nyuzi fulani, ambayo inaruhusu, kwa mfano, kupanga kazi ya nyuzi chelezo ambazo huwashwa tu ikiwa kuna matatizo na uzi msingi.
    • IGMPv3 inaongeza usaidizi kwa utaratibu wa EHT (Ufuatiliaji wa Wapangishaji Wazi).
    • Injini ya kuchuja pakiti ya Netfilter hutoa uwezo wa kumiliki majedwali fulani ili kupata udhibiti wa kipekee (kwa mfano, mchakato wa ngome ya mandharinyuma unaweza kuchukua umiliki wa majedwali fulani, kuzuia mtu mwingine yeyote kuziingilia).
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Tulisafisha mifumo ya ARM iliyopitwa na wakati na isiyodumishwa. Msimbo wa mifumo ya efm32, picoxcell, prima2, tango, u300, zx na c6x, pamoja na viendeshi vinavyohusishwa nayo, imeondolewa.
    • Dereva wa amdgpu hutoa uwezo wa overclock (OverDrive) kadi kulingana na Sienna Cichlid GPU (Navi 22, Radeon RX 6xxx). Usaidizi umeongezwa kwa umbizo la pikseli za FP16 kwa DCE (injini ya kidhibiti cha onyesho) kutoka kizazi cha 8 hadi cha 11. Kwa GPU Navy Flounder (Navi 21) na APU Van Gogh, uwezo wa kuweka upya GPU umetekelezwa.
    • Dereva wa i915 wa kadi za michoro za Intel hutekeleza kigezo cha i915.mitigations ili kuzima mbinu za utengaji na ulinzi ili kuboresha utendakazi. Kwa chips kuanzia Tiger Lake, uwezo wa kutumia utaratibu wa VRR (Kiwango cha Kuonyesha upya Kiwango Kinachobadilika) umejumuishwa, unaokuruhusu kubadilisha kwa urahisi kiwango cha kuonyesha upya kifuatiliaji ili kuhakikisha ulaini na hakuna mapungufu wakati wa michezo. Usaidizi wa teknolojia ya Intel Clear Color umejumuishwa kwa usahihi wa rangi ulioboreshwa. Usaidizi ulioongezwa kwa DP-HDMI 2.1. Uwezo wa kudhibiti mwangaza wa nyuma wa paneli za eDP umetekelezwa. Kwa GPU za Gen9 zilizo na usaidizi wa LSPCON (Level Shifter na Protocol Converter), usaidizi wa HDR umewashwa.
    • Dereva wa nouveau huongeza usaidizi wa awali kwa NVIDIA GPU kulingana na usanifu wa GA100 (Ampere).
    • Dereva wa msm huongeza usaidizi kwa Adreno 508, 509 na 512 GPU zinazotumika katika SDM (Snapdragon) 630, 636 na 660 chips.
    • Usaidizi umeongezwa kwa kadi za sauti za Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s na Pioneer DJM-750. Usaidizi ulioongezwa kwa mfumo mdogo wa sauti wa Intel Alder Lake PCH-P. Usaidizi wa uigaji wa programu wa kuunganisha na kukata kiunganishi cha sauti umetekelezwa kwa utatuzi wa vishikilizi katika nafasi ya mtumiaji.
    • Usaidizi ulioongezwa kwa vifaa vya michezo vya Nintendo 64 vilivyotengenezwa kutoka 1996 hadi 2003 (majaribio ya awali ya kuhamisha Linux hadi Nintendo 64 hayakukamilika na yaliwekwa kama Vaporware). Motisha ya kuunda bandari mpya kwa jukwaa la zamani, ambalo halijatolewa kwa karibu miaka ishirini, ni hamu ya kuchochea maendeleo ya emulators na kurahisisha uwasilishaji wa michezo.
    • Kidhibiti cha mchezo cha PlayStation 5 cha DualSense kimeongezwa.
    • Usaidizi ulioongezwa kwa bodi za ARM, vifaa na majukwaa: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4B.
    • Usaidizi umeongezwa kwa Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070 simu mahiri.
    • Imeongeza dereva wa bcm-vk kwa bodi za kuongeza kasi za Broadcom VK (kwa mfano, bodi za Valkyrie na Viper PCIe), ambazo zinaweza kutumika kupakia shughuli za usindikaji wa sauti, video na picha, pamoja na shughuli zinazohusiana na usimbuaji, kwa kifaa tofauti.
    • Usaidizi ulioongezwa kwa jukwaa la Lenovo IdeaPad na uwezo wa kudhibiti malipo ya mara kwa mara na mwangaza wa kibodi. Pia hutolewa ni usaidizi wa wasifu wa ACPI wa jukwaa la ThinkPad lenye uwezo wa kudhibiti hali za matumizi ya nishati. Kiendeshi kimeongezwa cha mfumo mdogo wa Lenovo ThinkPad X1 Tablet Gen 2 HID.
    • Aliongeza dereva wa ov5647 na usaidizi wa moduli ya kamera ya Raspberry Pi.
    • Usaidizi ulioongezwa kwa bodi za RISC-V SoC FU740 na HiFive Unleashed. Dereva mpya wa chip ya Kendryte K210 pia ameongezwa.

Chanzo: opennet.ru

Kuongeza maoni