Linuxi 6.1 ydinversiooni

PĂ€rast kahte kuud arendust esitles Linus Torvalds Linuxi 6.1 ydinversiooni. KĂ”ige silmapaistvamad muudatused hĂ”lmavad toetust draiverite ja moodulite arendamiseks Rusti keeles, mĂ€lu lehe mÀÀramise mehhanismi moderniseerimist, spetsiaalset mĂ€lu haldurit BPF-programmide jaoks, KMSAN mĂ€luprobleemide diagnostikasĂŒsteemi ja KCFI (Kernel Control-Flow Integrity) kaitsemehhanismi, samuti Maple tree struktuuri kasutuselevĂ”ttu.

Uude versiooni on vastu vĂ”etud 15115 parandust 2139 arendajalt, plaastri suurus on 51 MB, mis on umbes 2 korda vĂ€iksem kui 6.0 ja 5.19 kernide plaastrite suurused. Muutused hĂ”lmasid 13165 faili, lisati 716247 koodiread ja eemaldati 304560 rida. Umbes 45% kĂ”ikidest 6.1 versioonis esitatud muudatustest on seotud seadme draiveritega, umbes 14% muudatustest puudutab riistvaraarhitektuurile spetsiifilise koodi vĂ€rskendamist, 14% on seotud vĂ”rgu tarkvaraga, 3% faili sĂŒsteemidega ja 3% tuuma sisemiste alamsĂŒsteemidega.

Peamised uuendused 6.1 ydis:

  • MĂ€lu ja sĂŒsteemiteenused
    • Lisatud on vĂ”imalus kasutada Rusti keelt teise keele toena draiverite ja ydin moodulite arendamisel. Rusti toetamist motiveerib soov lihtsustada turvaliste ja kvaliteetsete seadme draiverite kirjutamist, vĂ€hendades mĂ€luhaldusvigade tekkimise tĂ”enĂ€osust. Rusti tugi ei ole vaikimisi aktiveeritud ja see ei too kaasa Rusti lisamist ydin kohustuslikesse koostamis sĂ”ltuvustesse. Ydinesse on praegu vastu vĂ”etud minimaalne kĂ€rbitud patch, mis on kokku vĂ€hendatud 40 000 read 13 000 reani ja tagab ainult vajaliku miinimumi, mis on piisav lihtsa Rustis kirjutatud ydin mooduli kompileerimiseks. Edaspidi plaanitakse jĂ€rk-jĂ€rgult suurendada olemasolevat funktsionaalsust, viies Rust-for-Linux harust ka teisi muudatusi. Samal ajal arendatakse projekte NVMe mĂ€luseadmete draiverite, vĂ”rgu protokolli 9p ja Apple M1 GPU draiverite arendamiseks Rusti keeles.
    • AArch64, RISC-V ja LoongArch arhitektuuridel pĂ”hinevate sĂŒsteemide puhul on rakendatud vĂ”imalus otse laadida kokku pakitud tuumapilte EFI kaudu. Lisatud on kĂ€itlejad tuumapiltide laadimiseks, kĂ€ivitamiseks ja eemaldamiseks, mida kutsutakse EFI zboot'ist otse. Samuti on lisatud kĂ€itlejad protokollide installimiseks ja eemaldamiseks EFI protokollide andmebaasist. Varasemalt tegi eraldi laadija lahtipakkimise ja nĂŒĂŒd saab seda teha kĂ€itleja otse tuumas — tuumapilt vormindatakse EFI rakendusena.
    • Komplekti on vastu vĂ”etud osa patĆĄidest, mis rakendavad mitmeastmelise mĂ€luhalduse mudelit, mille abil saab jagada mĂ€lupanke erinevate tootlikkuse omadustega. NĂ€iteks vĂ”ivad kĂ”ige intensiivsemalt kasutatavad lehed paikneda kĂ”ige kiiremas mĂ€lus, samas kui harva kasutatavad lehed vĂ”ivad olla suhteliselt aeglases mĂ€lus. Tuuma 6.1 on vastu vĂ”etud mehhanism intensiivselt kasutatavate lehtede tuvastamiseks aeglases mĂ€lus, et edendada need kiiremasse mĂ€llu, samuti on rakendatud mĂ€lutasemete ĂŒldine kontseptsioon ja nende suhteline tootlikkus.
    • Komplekti on lisatud MGLRU (Multi-Generational LRU) mehhanism, mis asendas vana LRU (Least Recently Used) rakenduse kahe jĂ€rjekorra pĂ”hjal mitmeastmelise struktuuriga, mis suudab paremini mÀÀrata, millised mĂ€lulehed on tĂ”eliselt kasutuses ja millised saab eemaldada vahemĂ€lust.
    • Lisatud on tugi Oracle'i inseneride ettepanekule andmestruktuuri "maple tree" osas, mis positsioneeritakse kui tĂ”husam asendus "red-black tree" struktuurile. Maple tree on B-puu variant, mis toetab vahemike jĂ€rgi indekseerimist ja on projekteeritud vahemĂ€lu tĂ”husaks kasutamiseks. kaasaegsed protsessorid. Maple tree'le on juba edastatud mĂ”ned mĂ€luhaldus alamsĂŒsteemid, mis on positiivselt mĂ”jutanud nende tootlikkust. Tulevikus vĂ”ib maple tree'd kasutada vahemike (range locking) blokeerimise rakendamiseks.
    • BPF-alajasse on lisatud vĂ”imalus luua "destruktiivseid" BPF-programme, mis on spetsiaalselt kavandatud sĂŒsteemi kokkuvarisemise kĂ€ivitamiseks lĂ€bi crash_kexec() kutsumise. Taolised BPF-programmid vĂ”ivad olla vajalikud silumise eesmĂ€rkidel, et algatada crash-dumpi loomine kindlal ajal. Destruktiivsete operatsioonide kĂ€ivitamiseks BPF-programmi laadimise ajal on vajalik mÀÀrata lipp BPF_F_DESTRUCTIVE, aktiveerida sysctl kernel.destructive_bpf_enabled ja omada Ă”igusi CAP_SYS_BOOT.
    • BPF-programmidel on vĂ”imalus lĂ€bi kĂ€ia cgroup elemente ja ressurse (failid, vma, protsessid jne) teatud lĂ”ime vĂ”i ĂŒlesande ulatuses. Uus map-tĂŒĂŒp ringbuffereid (user ring buffer) loomiseks on rakendatud.
    • Lisatud on spetsiaalne kutsumine mĂ€lunĂ”udmiseks BPF-programmides (memory allocator), mis tagab konteksti BPF turvalisema mĂ€luhalduse, kui tavaline kmalloc().
    • Integreeritud on esimene osa muudatustest, mis vĂ”imaldavad luua sisendseadetega HID (Human Interface Device) liidese draivereid, mis on rakendatud BPF-programmide kaudu.
    • Kernelist on tĂ€ielikult eemaldatud kood a.out vormingute toetamiseks, mis on tunnistatud vananenuks versioonis 5.1, ning alates versioonidest 5.18 ja 5.19 on see peamiste arhitektuuride jaoks vĂ€lja lĂŒlitatud. A.out vormingut ei ole pikka aega Linuxi sĂŒsteemides kasutatud ning a.out failide genereerimine ei ole tĂ€napĂ€evaste tööriistadega vaikimisi Linuxi konfiguratsioonides toetatud. A.out failide jaoks laadija vĂ”ib olla tĂ€ielikult teostatud kasutaja ruumis.
    • LoongArch arhitektuuril pĂ”hinevates sĂŒsteemides, mis on rakendatud Loongson 3 5000 protsessorites ja mis ellu viib uut RISC ISA, mis meenutab MIPS-i ja RISC-V-d, on rakendatud jĂ”udlusmÔÔtmise sĂŒndmuste (perf event), kexec, kdump ja BPF JIT-kompileerimise tugi.
    • AsĂŒnkroonse sisendi/vĂ€ljundi io_uring liideses on pakutud uus reĆŸiim IORING_SETUP_DEFER_TASKRUN, mis vĂ”imaldab ajutiselt edasi lĂŒkata ringbuffereid puudutavate toimingute tĂ€itmist, kuni rakendusest on tulnud pĂ€ring, mida saab kasutada tööde pakettide moodustamiseks ja viivituste probleemide vĂ€ltimiseks rakenduse ebasobiva aja tagasivĂ”tu tĂ”ttu.
    • Kasutaja ruumis toimuvatel protsessidel on vĂ”imalus alustada tavapĂ€raste mĂ€lulehtede vahemiku transformeeringut suurte mĂ€lu lehtede komplektiks (Transparent Huge-Pages).
    • Lisatud seadme /dev/userfaultfd rakendamine, mis vĂ”imaldab juurdepÀÀsu sĂŒsteemi kutsumise userfaultfd() funktsionaalsusele failisĂŒsteemi Ă”iguste kasutamisega. Userfaultfd funktsionaalsus vĂ”imaldab luua kĂ€itlejad mittejaotatud mĂ€lulehtedele (page faults) kasutaja ruumis.
    • Suurenendatud nĂ”udmised GNU Make utiliidi versioonile — nĂŒĂŒd on kernelit koguda jaoks vajalik vĂ€hemalt versioon 3.82.
  • DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
    • Btrfs failisĂŒsteemi on tehtud olulisi jĂ”udlusoptimeeringuid, sealhulgas on oluliselt suurendatud ioctl-heitete FIEMAP jĂ”udlust. Lisatud on asĂŒnkroonne pöördusfailide kirjutamise tugi rakenduste jaoks, mis kasutavad io_uring. Operatsioonile 'send' on lisatud tugi failidele, mis on kaitstud fs-verity abil.
    • Ext4 failisĂŒsteemis on lisatud jĂ”udlusoptimeeringud, mis on seotud ajakirja haldamise ja ainult lugemise reĆŸiimis töötamisega.
    • EROFS (Enhanced Read-Only File System) failisĂŒsteemis, mis on mĂ”eldud lugemise reĆŸiimis olevate sektsioonide jaoks, on rakendatud vĂ”imalus jagada andmeid, mis dubleeruvad erinevates failisĂŒsteemides.
    • SĂŒsteemi kutsesse statx() on lisatud vĂ”imalus esitada teavet faili otse sisendi/sisalduse rakendamise kohta.
    • FUSE (Filesystems in User Space) alam sĂŒsteemi on lisatud tugi ajutiste failide loomisel lipu O_TMPFILE kasutamiseks.
  • Virtualiseerimine ja turvalisus
    • CFI (Control Flow Integrity) kaitse mehhanismi rakenduse töö on asendatud, mis lisab igale kaudsele funktsioonikutsungile kontrollimise, et tuvastada mĂ”ningaid mÀÀramatute kĂ€itumisvormide, mis vĂ”ivad potentsiaalselt pĂ”hjustada normaalsete tĂ€itmisjĂ€rjekordade (control flow) rikkumist, kui kasutatakse eksploitide, mis muudavad mĂ€lu salvestatud funktsioonide nĂ€itajaid. LLVM projektist pĂ€rinev vaikimisi CFI rakendus on asendatud variandiga, mis pĂ”hineb samuti Clang'il, kuid on spetsiaalselt kohandatud madala taseme alamsĂŒsteemide ja operatsioonisĂŒsteemide tuumade kaitsmiseks. LLVM-is pakutakse uut rakendust Clang 16 vĂ€ljalaskes ja see hĂ”lmab valikut „-fsanitize=kcfi“. Uue rakenduse peamine erinevus on see, et see ei ole sidustatud linkimisetapi optimeeringutega (LTO) ja ei pĂ”hjusta funktsioonide nĂ€itajate asendamist ĂŒlemineku tabelis viidetega.
    • LSM-moodulite (Linux Security Module) jaoks on vĂ”imalus luua kĂ€itlejaid, mis vaatavad ĂŒle nimede ruumide loomise toimingud.
    • Pakutakse vahendeid PKCS#7 digitaalsete allkirjade kinnitamiseks BPF-programmides.
    • Aadressis /dev/random on taas lubatud avamine mitteblokeerivas reĆŸiimis (O_NONBLOCK), mis eemaldati ekslikult tuumas 5.6.
    • x86 arhitektuuriga sĂŒsteemides on lisatud hoiatus, kui tuuma alamsĂŒsteemid mappivad mĂ€lu lehti, mis lubavad samaaegselt teostamist ja kirjutamist. Edasi on plaanis tĂ€ielik keelata selline mĂ€lu mappimine.
    • Lisatud on silumismehhanism KMSAN (Kernel Memory Sanitizer) mitteinitsialiseeritud mĂ€lu kasutamise tuvastamiseks tuumas ning mitteinitsialiseeritud mĂ€lu lekkide tuvastamiseks kasutajaruumi ja seadmete vahel.
    • Pseudojuhuslike arvude krĂŒptograafiliselt usaldusvÀÀrse generaatori CRNG tĂ€iustused, mida kasutatakse getrandom'i kutse kaudu, on valmistatud Jason Donenfeld'i poolt. VPN WireGuardi autor Jason A. Donenfeld on suunatud pseudojuhuslike tĂ€isarvude saamise turvalisuse parandamisele.
  • VĂ”rgusĂŒsteem
    • TCP-stekis rakendatakse vĂ”imalus (vaikimisi keelatud) kasutada eraldi hĂ€shtabeleid sissetulevate ĂŒhenduste jaoks igas nimede ruumis, mis vĂ”imaldab suurendada sĂŒsteemide jĂ”udlust, millel on suur arv nimede ruume.
    • Vanad DECnet protokoll toetamine eemaldati. Kasutajaruumi jÀÀvad API-kohad, mis vĂ”imaldavad koostada rakendusi, mis kasutavad DECnet'i, kuid nende rakenduste andmed ei saa vĂ”rku ĂŒhenduda.
    • Dokumenditud netlink protokoll.
  • Varustus
    • Amdgpu draiverisse on lisatud DSC (Display Stream Compression) toe tugi, et vĂ”imaldada kadudeta andmete tihendamist suhtlemisel ekraanidega, millel on vĂ€ga kĂ”rge eraldusvĂ”ime. JĂ€tkub töö AMD RDNA3 (RX 7000) ja CDNA (Instinct) platvormide toe tagamiseks. Lisatud on DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x ja GMC 11.x IP-komponentide tugi. Amdkfd draiveris (AMD diskreetsete GPU-de, nagu Polaris, jaoks) on rakendatud GFX 11.0.3 toe tugi.
    • I915 (Intel) draiverisse on lisatud Meteor Lake GPU toe tugi. Meteor Lake ja uuemate GPU-de jaoks on tagatud DP 2.0 (DisplayPort) liidese tugi. Lisatud on tuvastajad Alder Lake S mikroarhitektuuri pĂ”histe graafikakaartide jaoks.
    • Lisatud on toetust Apple Siilicon, Intel SkyLake ja Intel KabyLake protsessorites rakendatud helisĂŒsteemidele. CS35L41 HDA helidraiveris on lisatud toe tugi une reĆŸiimi ĂŒleminekuks. ASoC (ALSA sĂŒsteem baasil) toe tugi on lisatud Apple Siilicon'i, AMD Rembrandt DSP-de, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake ja Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSP-de, Qualcomm SC8280XP, SM8250, SM8450 ja Texas Instruments SRC4392 integreeritud helichipide jaoks.
    • Lisatud on toe tugi Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120ACA-EA1, AUO B116XAK01.6, BOE NT116WHM-N21, INX N116BCA-EA2, INX N116BCN-EA1 ja Multi-Inno Technology MI0800FT-9 LCD-paneelide jaoks.
    • Lisatud on toe tugi AHCI SATA kontrolleritele, mida kasutatakse Baikal-T1 SoC-s.
    • Lisatud on toe tugi MediaTek MT7921, Intel Magnetor (CNVi, Integreeritud Ühendus), Realtek RTL8852C, RTW8852AE ja RTL8761BUV (Edimax BT-8500) Bluetooth-kiipidele.
    • Qualcomm'i ath11k draiverisse on lisatud toe tugi spektraalse skaneerimise jaoks 160 MHz vahemikus, rakendatud on mitme lĂ”ime NAPI, parandatud on Qualcomm WCN6750 Wi-Fi kiipide toe tugi.
    • Lisatud on draiverid PinePhone'i klaviatuuri, InterTouch (ThinkPad P1 G3) puuteplaatide, X-Box Adaptive Controller'i, PhoenixRC Flight Controller'i, VRC-2 Car Controller'i, DualSense Edge Controller'i, IBM-i juhtpaneelide (IBM Operation Panel), XBOX One Elite puldiga, XP-PEN Deco Pro S ja Intuos Pro Small (PTH-460) tahvelarvutitega.
    • Lisatud on draiver Aspeed HACE (Hash and Crypto Engine) krĂŒptograafiliste kiirendite jaoks.
    • Lisatud on toe tugi Intel Meteor Lake integreeritud Thunderbolt/USB4 kontrollerite jaoks.
    • Lisatud on toe tugi Sony Xperia 1 IV, Samsung Galaxy E5, E7 ja Grand Max ning Pine64 Pinephone Pro nutitelefonide jaoks.
    • Lisatud toetus ARM SoC-dele ja plaatidele: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 ja RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ8065, Kontron SL/BL i.MX8MM OSM-S, MT8195 (Acer Tomato), Radxa ROCK 4C+, NanoPi R4S Enterprise Edition, JetHome JetHub D1p. Uuendatud draiverid Samsungi, Mediatek'i, Renesase, Tegra, Qualcommi, Broadcomi ja NXP SoC-dele.

Samas on Ladina-Ameerika vaba tarkvara fond loonud tĂ€ielikult vaba tuuma versiooni 6.1 - Linux-libre 6.1-gnu, mis on puhastatud firmade poolt piiratud juurdepÀÀsuga komponentide vĂ”i koodijuppide elementidest. Uues vĂ€ljaandes on puhastatud uus draiver rtw8852b ja DTS-failid erinevate Qualcommi ja MediaTeki SoC-de jaoks, mis pĂ”hinevad AArch64 arhitektuuril. Uuendatud blobide puhastamise kood draivertes ja amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI allĂŒksustes. Korraldatud on vanade draiverite tm6000 TV kaartide, cpia2 v4l, sp8870, av7110 puhastamine.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster