Kutolewa kwa kernel ya Linux 6.1

Baada ya miezi miwili ya maendeleo, Linus Torvalds aliwasilisha kutolewa kwa Linux kernel 6.1. Miongoni mwa mabadiliko yanayojulikana zaidi: msaada kwa ajili ya maendeleo ya madereva na moduli katika lugha ya kutu, kisasa cha utaratibu wa kuamua kurasa za kumbukumbu zilizotumiwa, meneja maalum wa kumbukumbu kwa programu za BPF, mfumo wa kutambua matatizo ya kumbukumbu KMSAN, KCFI (Kernelk Control). -Flow Integrity) utaratibu wa ulinzi, kuanzishwa kwa mti wa muundo wa Maple.

Toleo jipya linajumuisha marekebisho 15115 kutoka kwa watengenezaji 2139, ukubwa wa kiraka ni 51 MB, ambayo ni takriban mara 2 ndogo kuliko ukubwa wa vipande kutoka kwa kernels 6.0 na 5.19. Mabadiliko hayo yaliathiri faili 13165, laini 716247 za kanuni ziliongezwa, na laini 304560 zilifutwa. Takriban 45% ya mabadiliko yote yaliyoletwa katika 6.1 yanahusiana na viendeshi vya kifaa, takriban 14% ya mabadiliko yanahusiana na kusasisha nambari maalum kwa usanifu wa maunzi, 14% inahusiana na safu ya mtandao, 3% inahusiana na mifumo ya faili, na 3% zinahusiana na mifumo ndogo ya kernel ya ndani.

Ubunifu kuu katika kernel 6.1:

  • Huduma za kumbukumbu na mfumo
    • Imeongeza uwezo wa kutumia kutu kama lugha ya pili ya kukuza viendeshaji na moduli za kernel. Sababu kuu ya kuunga mkono Rust ni kurahisisha kuandika viendesha kifaa salama na cha hali ya juu kwa kupunguza uwezekano wa kufanya makosa wakati wa kufanya kazi na kumbukumbu. Usaidizi wa kutu umezimwa kwa chaguo-msingi na haisababishi Rust kujumuishwa kama utegemezi unaohitajika wa kernel. Punje hadi sasa imepitisha toleo la chini, lililovuliwa la viraka, ambalo limepunguzwa kutoka mistari 40 hadi 13 elfu ya msimbo na hutoa tu kiwango cha chini kinachohitajika, kinachotosha kujenga moduli rahisi ya kernel iliyoandikwa kwa lugha ya Rust. Katika siku zijazo, imepangwa kuongeza hatua kwa hatua utendaji uliopo, kuhamisha mabadiliko mengine kutoka kwa tawi la Rust-for-Linux. Sambamba na hilo, miradi inatengenezwa ili kutumia miundombinu iliyopendekezwa ili kuendeleza viendeshaji vya viendeshi vya NVMe, itifaki ya mtandao wa 9p na Apple M1 GPU katika lugha ya Rust.
    • Kwa mifumo kulingana na usanifu wa AArch64, RISC-V na LoongArch iliyo na EFI, uwezo wa kupakia moja kwa moja picha za kernel zilizobanwa umetekelezwa. Vishikilizi vilivyoongezwa vya kupakia, kukimbia na kupakua picha za kernel, zinazoitwa moja kwa moja kutoka kwa EFI zboot. Vidhibiti vya kusakinisha na kufuta itifaki kutoka kwa hifadhidata ya itifaki ya EFI pia vimeongezwa. Hapo awali, upakiaji ulifanywa na kiboreshaji tofauti, lakini sasa hii inaweza kufanywa na kidhibiti kwenye kernel yenyewe - picha ya kernel huundwa kama programu ya EFI.
    • Utungaji unajumuisha sehemu ya patches na utekelezaji wa mfano wa usimamizi wa kumbukumbu wa ngazi mbalimbali, ambayo inakuwezesha kutenganisha mabenki ya kumbukumbu na sifa tofauti za utendaji. Kwa mfano, kurasa zinazotumiwa sana zinaweza kuhifadhiwa kwenye kumbukumbu ya haraka zaidi, huku kurasa zinazotumika mara chache sana zinaweza kuhifadhiwa katika kumbukumbu ya polepole. Kernel 6.1 inatanguliza utaratibu wa kubainisha ni wapi kurasa zinazotumiwa sana ziko katika kumbukumbu ya polepole ili ziweze kukuzwa hadi kumbukumbu ya haraka, na pia huleta dhana ya jumla ya viwango vya kumbukumbu na utendakazi wao jamaa.
    • Inajumuisha utaratibu wa MGLRU (Multi-Generational LRU), ambao unachukua nafasi ya utekelezaji wa zamani wa LRU (Inayotumika Hivi Karibuni) kulingana na foleni mbili zenye muundo wa hatua nyingi ambao huamua vyema zaidi ni kurasa zipi za kumbukumbu zinazotumika na zipi zinaweza kusukumwa kizigeu cha kubadilishana.
    • Usaidizi umeongezwa kwa muundo wa data wa "mti wa mchoro" uliopendekezwa na wahandisi wa Oracle, ambao umewekwa kama mbadala mzuri zaidi wa muundo wa "mti mwekundu-mweusi". Mti wa maple ni lahaja ya B-tree inayoauni uwekaji faharasa wa masafa na imeundwa ili kutumia vyema akiba ya vichakataji vya kisasa. Baadhi ya mifumo ndogo ya usimamizi wa kumbukumbu tayari imehamishiwa kwenye mti wa maple, ambayo imekuwa na athari chanya kwenye utendaji wao. Katika siku zijazo, mti wa maple unaweza kutumika kutekeleza kufuli masafa.
    • Uwezo wa kuunda programu "haribifu" za BPF iliyoundwa mahususi kuanzisha kuzima kwa dharura kupitia crash_kexec() simu umeongezwa kwenye mfumo mdogo wa BPF. Programu kama hizo za BPF zinaweza kuhitajika kwa madhumuni ya utatuzi ili kuanzisha uundaji wa utupaji wa kuacha kufanya kazi kwa wakati fulani. Ili kufikia utendakazi wa uharibifu wakati wa kupakia programu ya BPF, lazima ubainishe bendera ya BPF_F_DESTRUCTIVE, uwashe sysctl kernel.destructive_bpf_enabled, na uwe na haki za CAP_SYS_BOOT.
    • Kwa programu za BPF, inawezekana kuhesabu vipengele vya kikundi, pamoja na rasilimali za kuhesabu (faili, vma, taratibu, nk) za thread maalum au kazi. Aina mpya ya ramani imetekelezwa ili kuunda vihifadhi pete za watumiaji.
    • Imeongeza simu maalum ya mgao wa kumbukumbu katika programu za BPF (kigawanya kumbukumbu), ambayo hutoa mgao salama wa kumbukumbu katika muktadha wa BPF kuliko kmalloc ya kawaida ().
    • Sehemu ya kwanza ya mabadiliko imeunganishwa, kutoa uwezo wa kuunda madereva kwa vifaa vya pembejeo na interface ya HID (Human Interface Device), inayotekelezwa kwa namna ya programu za BPF.
    • Kernel imeondoa kabisa msimbo ili kuauni umbizo la faili inayoweza kutekelezwa ya a.out, ambayo iliacha kutumika katika toleo la 5.1 na imezimwa kwa usanifu mkuu tangu matoleo ya 5.18 na 5.19. Umbizo la a.out limeacha kutumika kwa muda mrefu kwenye mifumo ya Linux, na uundaji wa faili za a.out hauauniwi na zana za kisasa katika usanidi chaguo-msingi wa Linux. Kipakiaji cha faili za a.out kinaweza kutekelezwa kabisa katika nafasi ya mtumiaji.
    • Kwa mifumo inayozingatia usanifu wa seti ya maagizo ya LoongArch inayotumiwa katika vichakataji vya Loongson 3 5000 na kutekeleza RISC ISA mpya, sawa na MIPS na RISC-V, usaidizi wa matukio ya kipimo cha utendaji (matukio ya kawaida), kexec, kdump na mkusanyiko wa BPF JIT unatekelezwa. .
    • Kiolesura cha io_uring kisicholingana cha I/O kinatoa modi mpya, IORING_SETUP_DEFER_TASKRUN, ambayo inaruhusu kazi inayohusiana na bafa ya pete kuahirishwa kwa muda hadi ombi la programu litolewe, ambalo linaweza kutumika kutengeneza kazi ya kundi na kuepusha masuala ya kusubiri kwa sababu ya kuahirishwa. wakati mbaya.
    • Michakato katika nafasi ya mtumiaji hupewa uwezo wa kuanzisha ubadilishaji wa anuwai ya kurasa za kumbukumbu za kawaida kuwa seti ya kurasa kubwa za kumbukumbu (Kurasa Kubwa za Uwazi).
    • Utekelezaji ulioongezwa wa kifaa cha /dev/userfaultfd, ambacho huruhusu ufikiaji wa utendakazi wa mfumo wa mtumiajifaultfd() kwa kutumia haki za ufikiaji katika FS. Utendaji wa userfaultfd hukuruhusu kuunda vidhibiti vya kufikia kurasa za kumbukumbu ambazo hazijatengwa (hitilafu za ukurasa) katika nafasi ya mtumiaji.
    • Mahitaji ya toleo la matumizi ya GNU Make yameongezwa - angalau toleo la 3.82 sasa linahitajika ili kujenga kernel.
  • Mfumo mdogo wa diski, I/O na mifumo ya faili
    • Uboreshaji muhimu wa utendakazi umefanywa kwa mfumo wa faili wa Btrfs; miongoni mwa mambo mengine, utendakazi wa simu ya FIEMAP ioctl umeongezwa kwa maagizo ya ukubwa. Usaidizi ulioongezwa wa uandishi wa asynchronous buffered kwa programu zinazotumia io_uring. Usaidizi ulioongezwa kwa faili zilizolindwa na fs-verity kwenye operesheni ya "tuma".
    • Mfumo wa faili wa ext4 umeongeza uboreshaji wa utendakazi unaohusiana na matengenezo ya jarida na uendeshaji wa kusoma tu.
    • Mfumo wa faili wa EROFS (Mfumo wa Faili Ulioboreshwa wa Kusoma Pekee), iliyoundwa kwa ajili ya matumizi ya sehemu zinazoweza kufikiwa katika hali ya kusoma tu, unatumia uwezo wa kushiriki data iliyorudiwa katika mifumo tofauti ya faili.
    • Simu ya mfumo wa statx() imeongezwa ili kuonyesha maelezo kuhusu kama I/O ya moja kwa moja inaweza kutumika kwenye faili.
    • Usaidizi wa kuunda faili za muda kwa kutumia bendera ya O_TMPFILE umeongezwa kwenye mfumo mdogo wa FUSE (Mifumo ya faili katika Nafasi ya Mtumiaji).
  • Virtualization na Usalama
    • Utekelezaji wa utaratibu wa ulinzi wa CFI (Control Flow Integrity) umebadilishwa, na kuongeza ukaguzi kabla ya kila simu isiyo ya moja kwa moja ya chaguo za kukokotoa ili kugundua aina fulani za tabia ambazo hazijabainishwa ambazo zinaweza kusababisha ukiukaji wa agizo la kawaida la utekelezaji (mtiririko wa kudhibiti) kama matokeo ya matumizi ya matumizi ambayo hubadilisha viashiria hadi vitendakazi vilivyohifadhiwa kwenye kumbukumbu . Utekelezaji wa kawaida wa CFI kutoka kwa mradi wa LLVM umebadilishwa na chaguo pia kulingana na utumiaji wa Clang, lakini iliyorekebishwa haswa kulinda mifumo ndogo ya kiwango cha chini na kokwa za mfumo wa uendeshaji. Katika LLVM, utekelezaji mpya utatolewa katika toleo la Clang 16 na utawezeshwa kwa chaguo la "-fsanitize=kcfi". Tofauti kuu na utekelezaji mpya ni kwamba haujafungamanishwa na uboreshaji wa wakati wa kiungo (LTO) na haisababishi viashiria vya utendakazi kubadilishwa na viungo kwenye jedwali la kuruka.
    • Kwa moduli za LSM (Moduli ya Usalama ya Linux), inawezekana kuunda vidhibiti vinavyokatiza shughuli ili kuunda nafasi za majina.
    • Zana zimetolewa ili kuthibitisha saini za dijiti za PKCS#7 katika programu za BPF.
    • Uwezo wa kufungua katika hali isiyozuia (O_NONBLOCK), ambayo iliondolewa bila kukusudia katika kernel 5.6, imerudishwa kwa /dev/random.
    • Kwenye mifumo iliyo na usanifu wa x86, onyo limeongezwa katika kesi ya uchoraji wa kurasa za kumbukumbu na mifumo ndogo ya kernel ambayo wakati huo huo inaruhusu utekelezaji na uandishi. Katika siku zijazo, uwezekano wa kukataza kabisa ramani ya kumbukumbu kama hiyo inazingatiwa.
    • Utaratibu wa utatuzi wa KMSAN (Kernel Memory Sanitizer) umeongezwa ili kugundua utumiaji wa kumbukumbu ambao haujaanzishwa kwenye kernel, pamoja na uvujaji wa kumbukumbu ambao haujatambuliwa kati ya nafasi ya mtumiaji na vifaa.
    • Maboresho yamefanywa kwa jenereta ya nambari ya uwongo ya CRNG isiyo ya kawaida inayotumika katika simu ya getrandom. Mabadiliko hayo yalitayarishwa na Jason A. Donenfeld, mwandishi wa VPN WireGuard, na yanalenga kuboresha usalama wa uchimbaji nambari kamili wa bahati nasibu.
  • Mfumo mdogo wa mtandao
    • Rafu ya TCP hutoa uwezo (umezimwa kwa chaguomsingi) wa kutumia jedwali la tundu la heshi kando kwa kila nafasi ya majina, ambayo huboresha utendaji kazi kwenye mifumo yenye idadi kubwa ya nafasi za majina.
    • Msimbo umeondolewa ili kuauni itifaki ya DECnet iliyopitwa na wakati. Vijiti vya API vya nafasi ya mtumiaji vimeachwa mahali pake ili kuruhusu programu zinazotumia DECnet kukusanywa, lakini programu hizi hazitaweza kuunganishwa kwenye mtandao.
    • Itifaki ya netlink imeandikwa.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Kiendeshaji cha amdgpu kimeongeza usaidizi wa usambazaji wa DSC (Mfinyazo wa Mtiririko wa Maonyesho) kwa ukandamizaji wa data usio na hasara wakati wa kubadilishana habari na skrini zinazoauni maazimio ya juu sana. Kazi inaendelea kutoa usaidizi kwa majukwaa ya AMD RDNA3 (RX 7000) na CDNA (Instinct). Usaidizi umeongezwa kwa DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x na GMC 11.x vipengele vya IP. Kiendeshaji cha amdkfd (kwa GPU zisizo za kawaida za AMD kama vile Polaris) hutoa usaidizi kwa GFX 11.0.3.
    • Dereva wa i915 (Intel) ni pamoja na usaidizi wa Meteor Lake GPU. Meteor Lake na GPU mpya zaidi zinaweza kutumia kiolesura cha DP 2.0 (DisplayPort). Vitambulisho vilivyoongezwa vya kadi za video kulingana na usanifu mdogo wa Alder Lake S.
    • Usaidizi ulioongezwa kwa mifumo midogo ya sauti inayotekelezwa katika vichakataji vya Apple Silicon, Intel SkyLake na Intel KabyLake. Dereva ya sauti ya CS35L41 HDA inasaidia hali ya kulala. Imeongeza usaidizi wa ASoC (ALSA System on Chip) kwa chipsi za sauti zilizounganishwa Apple Silicon, AMD Rembrant DSPs, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake na Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSPs, Qualcomm SC8280X8250, Qualcomm SC8450X4392, SMXNUMX na Texas Instruments SRCXNUMX
    • Usaidizi ulioongezwa kwa paneli za LCD Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120ACO-ACCO-ACO-ACA1A, AUO B116UAN01.6. 116WH M-N21, INX N116BCA- EA2 , INX N116BCN-EA1, Multi-Inno Technology MI0800FT-9.
    • Usaidizi ulioongezwa kwa vidhibiti vya AHCI SATA vinavyotumika katika Baikal-T1 SoC.
    • Usaidizi ulioongezwa kwa chips za Bluetooth MediaTek MT7921, Intel Magnetor (CNVi, Muunganisho Uliounganishwa), Realtek RTL8852C, RTW8852AE na RTL8761BUV (Edimax BT-8500).
    • Kiendeshaji cha ath11k cha moduli zisizotumia waya za Qualcomm kimeongeza usaidizi wa utambazaji wa spectral katika masafa ya 160 MHz, kimetekeleza NAPI yenye nyuzi nyingi, na usaidizi ulioboreshwa wa chipsi za Wi-Fi za Qualcomm WCN6750.
    • Viendeshi vilivyoongezwa vya kibodi ya PinePhone, viguso vya InterTouch (ThinkPad P1 G3), X-Box Adaptive Controller, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, IBM Operation Panel, XBOX One Elite remotes, tablets XP-PEN Deco Pro S. na Intuos Pro Small (PTH-460).
    • Kiendeshaji kimeongezwa cha vichapuzi vya kriptografia vya Aspeed HACE (Hash na Crypto Engine).
    • Usaidizi ulioongezwa kwa vidhibiti vilivyojumuishwa vya Thunderbolt/USB4 Intel Meteor Lake.
    • Usaidizi umeongezwa kwa simu mahiri za Sony Xperia 1 IV, Samsung Galaxy E5, E7 na Grand Max, Pine64 Pinephone Pro.
    • Usaidizi ulioongezwa kwa ARM SoC na bodi: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 na RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQntQnt8062, IPQntQnt8065, IP8, IPQntQnt, IP8195, IPQntQnt, IP4DXL BL i.MX4MM OSM-S, MT1 (Acer Tomato), Radxa ROCK XNUMXC+, Toleo la Biashara la NanoPi RXNUMXS, JetHome JetHub DXNUMXp. Viendeshaji vilivyosasishwa vya SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom na NXP.

Wakati huo huo, Taasisi ya Programu ya Bure ya Amerika ya Kusini iliunda toleo la kernel ya bure kabisa 6.1 - Linux-libre 6.1-gnu, iliyofutwa na vipengele vya firmware na viendeshi vyenye vipengele visivyo na bure au sehemu za msimbo, upeo wa ambayo ni mdogo. na mtengenezaji. Toleo jipya husafisha kiendeshi kipya cha rtw8852b na faili za DTS za Qualcomm na MediaTek SoCs mbalimbali kwa vichakataji kulingana na usanifu wa AArch64. Imesasisha msimbo wa kusafisha blob katika viendeshaji na mifumo midogo ya amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI. Usafishaji wa viendeshaji vilivyopitwa na wakati kadi za TV za tm6000, cpia2 v4l, sp8870, av7110 umesahihishwa.

Chanzo: opennet.ru

Kuongeza maoni