PĂ€rast kahte kuud arendust esitles Linus Torvalds Linuxi 6.11 sĂŒdamiku versiooni. KĂ”ige mĂ€rgatavamate muudatuste hulka kuuluvad: toetuse lisamine aatomkollektsiooni toimingute jaoks plokitasandil, bind() ja listen() toimingute tugi io_uringis, uus mehhanism katkestuste töötlejate lukustamiseks, vĂ”imalus kirjutada mĂ€llu peegeldatud kĂ€ivitatavaid faile, toimetajate toetamine plokkseadmete draivide kirjutamiseks Rustis, getrandom() kutse optimeerimine ja uus AES-GCM rakendus.
Uue versiooni jaoks on vastu vĂ”etud 15130 parandust 2078 arendajalt, plaastri suurus on 85 MB (muudatused puudutasid 13282 faili, lisatud on 985857 rida koodi, kustutatud on 268915 rida). Eelmises vĂ€ljaandes oli 14564 parandust 1989 arendajalt, plaastri suurus oli 41 MB (kaks korda vĂ€iksem kui 6.11 sĂŒdamiku plaastri puhul). Umbes 46% kĂ”ikidest 6.11 versioonis esitatud muudatustest on seotud seadmedraiveritega, umbes 17% muudatusi on seotud riistvaraarhitektuuriga spetsiifilise koodi uuendamisega, 10% on seotud vĂ”rgu virnadega, 5% failisĂŒsteemide ja 3% sĂŒdamiku sisemiste alamsĂŒsteemidega.
Peamised uuendused sĂŒdamikus 6.11:
- Disski alamsĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
- Reaalajas toetas atomaarsete kirjutamise operatsioonide rakendamist plokkide tasemel, kus salvestisse kirjutatakse kas kogu mÀÀratud plokkide komplekt vĂ”i ei kirjutata ĂŒhtegi plokki. See kaitseb olukordade eest, kus seadme rikke jĂ€rel salvestatakse ainult osa plokke, jĂ€ttes teises osas varasema teabe. Atomaarse kirjutamisreĆŸiimi sisselĂŒlitamiseks on sĂŒsteemi kutsesse pwritev() lisatud lipp RWF_ATOMIC. Teavet atomaarse kirjutamise toetuse kohta (atomic_write_unit_min, atomic_write_unit_max ja atomic_write_segments_max) eraldi failide kontekstis saab funktsiooniga statx().
- Pakutakse tuge töötavate protsessidega seotud tĂ€idesaatevatesse failidesse kirjutamiseks. Varasemalt, nagu teistes Unix-pĂ”histes sĂŒsteemides, andis kernel vea, kui prooviti kirjutada tĂ€idesaatevasse faili kĂ€ivitatud protsessi. See piirang on tĂ”mmatud tagasi, kuna see on praktiliselt mĂ”ttetu.
- Reaalajas on rakendatud vÔimalus arendada plokk-seadmestikke draivereid Rust keeles. NÀiteks on tuuma lisatud rnull draiver, mis on analoog null_blk draiverist, kirjutatud Rust keeles.
- FailisĂŒsteemis Btrfs on mount-valikute ârescue=â kaudu lisatud tugi uutele reĆŸiimidele âignoremetacsumsâ ja âignoresuperflagsâ, mida saab kasutada teatud kontrollide edasiviimiseks kasutajaruumi failisĂŒsteemi taastamisel pĂ€rast ebaĂ”nnestumist. Dynaamilise blokeerĂŒhma tagastamise operatsioon on ĂŒmber kujundatud, et vĂ€listada vabade ruumide puuduse olukordade tekkimine osalise tĂ€itmise tingimustes.
- FailisĂŒsteemis ntfs3 on saadaval toetavad atribuudid âcompressedâ ja âimmutableâ, mis mÀÀratlevad kokkusurutud ja muutumatud failid.
- FailisĂŒsteemides F2FS ja Ext4 on failinimede töötlemine, mis ei arvestanud tĂ€htede suurust, lihtsustatud, salvestades nimed qstr-tĂ€htedena ilma tarbetute tĂ€htede vormindamisteta.
- FailisĂŒsteemis Ext4 on funktsioon jbd2_transaction_committed optimeeritud, et suurendada jĂ”udlust vĂ€ga kiiretel tĂ€itemeetoditel (testides on tĂ€heldatud operatsioonide arvu suurenemist sekundis kuni 20%).
- SĂŒsteemi kutse statx() lubab NULL-punkti edastamist tĂŒhja faili tee stringi asemel, juhul kui lipp AT_EMPTY_PATH on seadistatud.
- SĂŒsteemi kutsel open_by_handle_at() on leevendatud failile juurdepÀÀsuĂ”iguste kontrollimist, kui puuduvad Ă”igused CAP_DAC_READ_SEARCH algse nimekontrollimise jaoks. Varem ei vĂ”imaldanud CAP_DAC_READ_SEARCH Ă”igus algsesse nimede ruumi kasutada sĂŒsteemi kutset open_by_handle_at() konteinerites.
- SĂŒsteemi kutsete listmount() ja statmount() funktsionaalsus on laienenud. listmount() kaudu on lisatud LISTMOUNT_REVERSE lipp, et kuvada mntpunktide tabeli sisu vastupidises jĂ€rjekorras (uued kirjed ĂŒlal). statmount() kaudu on rakendatud valikute vĂ€ljastamine, mis on mÀÀratud failisĂŒsteemi mountimise ajal. MĂ”lemas sĂŒsteemi kutses on lubatud töö, kui algsesse nimede ruumi ei ole ligipÀÀsu (kui on ainult juurdepÀÀs kohalikule vĂ”i vĂ€lisele nimede ruumile).
- FailisĂŒsteemis Bcachefs on rakendatud probleemsete andmete automaatne lĂ€bipaistva taastamise tugi, kasutades tĂ”rke taastamiskoode - kui lugemisel ilmneb sisend/vĂ€ljund viga vĂ”i arvutatud kontrollsummade erinevus, siis probleemne andmeplokk kirjutatakse automaatselt ĂŒle, kui selle taastamiseks on olemas ĂŒlekĂŒllus.
- MĂ€lu ja sĂŒsteemiteenused
- Pakkumisse on lisatud patĆĄid, mis rakendavad uut mehhanismi katkestuste töötlejate (BH, bottom-half) blokeerimiseks, mis tagab kasutatavate andmestruktuuride blokeerimise, kuid ei takista samal ajal nendele mitteseotud koodi paralleelset tĂ€itmist. Toodud muudatus on vĂ”imaldanud vĂ€hendada reaalajas reĆŸiimis töötavate tuumade latentsust ning parandanud ka tavatuumade tulemuslikkust (nĂ€iteks teatud koormuste puhul on vĂ”rgualusel sĂŒsteemil tĂ€heldatud 14,5% tulemuslikkuse kasvu).
- AsĂŒnkroonse sisendi/vĂ€ljundi io_uring alamsĂŒsteemi on lisatud toe funktsioonide bind() ja listen() tĂ€itmiseks, mida kasutatakse vastuvĂ”tvate vĂ”rgu sokettide loomisel.
- Lisatud on ioctl-operatsioonide kogum NSFS (NameSpace FS) pseudo-failisĂŒsteemile, mida kasutatakse nimefestivalide haldamiseks. Uued ioctl-id vĂ”imaldavad transformeerida protsesside ja lĂ”imede gruppide identifikaatoreid erinevate protsesside identifikaatori ruumides (PID namespace). Sarnased ioctl-id, mis vĂ”imaldavad kasutades pidfd-identifikaatoreid mÀÀrata protsesside failides kirjeldajaid eraldi nimefestivalides, on samuti lisatud pseudo-failisĂŒsteemile pidfd.
- BPF-programmidele on lisatud toe uuele iteratoorile bitimaskide töötlemiseks, mida saab kasutada nĂ€iteks eraldiseisvate bittide lĂ€bivaatamiseks mĂ€lu piirkondades, nagu cpumask. Lisatud on mehhanism kasutajaruumi protsesside teavitamiseks struktuuri detach/unregister objekti lahtiĂŒhendamisest. Laiendatud on tĂŒĂŒpide valikut, mida saab massiivides kasutada (nĂ€iteks saab deklareerida massiive, millel on elemendid tĂŒĂŒpide kptr, bpf_rb_root ja bpf_list_head). Pakutud on usaldusvÀÀrsem mehhanism Split BTF (BPF Type Format), mida kasutatakse tĂŒĂŒpide kontrollimiseks BPF pseudokoodis.
- Lisatud alusĂŒsteem, mis vĂ”imaldab korraldada toiteandmise seadmetele teatud jĂ€rjekorras, juhul kui ĂŒks seade peab olema aktiveeritud enne teist (nĂ€iteks Qualcommi platvormide juhtmevabade kiipide aktiveerimisel).
- Lisatud moodul «Sloppy logic analyzer», mis vĂ”imaldab luua lihtsaid signaaliloogika analĂŒsaatoreid, kasutades GPIO-d ja töötades eraldi CPU tuumal.
- Lisatud runtime-konstantide tugi, mida saab kasutada ĂŒks kord initsialiseeritavate muutujate asemel. NĂ€iteks saab runtime-konstantide abil asendada muutujad, mis salvestavad sihtmĂ€rk ja suuruse dentry vahemĂ€lus. Need muutujad seadistatakse laadimise ajal ja ei muutu kunagi. Idee on asendada selliste muutujate vÀÀrtused otse juhistes koodis, vĂ€listades pointeritega manipuleerimisega seotud kulud.
- JÀtkuvad muutused Rust-for-Linux haru, mis on seotud Rust'i keele kasutamisega juhikute ja tuumamoodulite arenduses (Rust'i tugi ei ole vaikimisi aktiveeritud ning ei too kaasa Rust'i lisamist tuuma kohustuslike kogumite sÔltuvuste hulka). Lisatud on Rust 1.80 vÀljalaske tugi (minimaalne versioon on endiselt Rust 1.78). Lisaks eelnevalt mainitud blokiseadmete draiverite arendamisele on uue versiooniga lisatud ka abstsesside toide, juurdepÀÀs kasutaja ruumile (uaccess) ja struktuuri "page" tööd.
- x86-64 sĂŒsteemidele on rakendatud uus sĂŒsteemikĂ”ne uretprobe(), mis optimeerib uretprobe jĂ€lgimismehhanismi toimimist, vĂ”imaldades jĂ€lgida funktsioonide tagastatud vÀÀrtusi kasutaja ruumi rakendustes.
- On lisatud kernel'i kÀsurea parameetrid: "reserve_mem", mis reserveerib nimetatud mÀluala kÀivitamise ajal, ja "ramoops.mem_name", mida kasutatakse pstore mÀluala jaoks, mis on loodud reserve_mem kaudu.
- Kontrolleri, mis pÔhineb cgroup'il, on faili memory.reclaim lisatud parameeter "swappiness", mis vÔimaldab muuta tasakaalu anonyymsete mÀlulehtede vahetamise ja failide vahemÀlu jaoks kasutatava mÀlu vabastamise vahel.
- Lisatud on ioctl-liides PROCMAP_QUERY, et efektiivsemalt leida virtuaalseid mÀlu alasid (Virtual Memory Area) failis /proc/PID/maps.
- SĂŒsteemi kutsesse mmap() on lisatud lipp MAP_DROPPABLE, et taotleda mĂ€lu, mida ei kunagi vahetata vĂ€lja, ja mille puudumise korral vĂ”ib eemaldada.
- Arhitektuurile ARM64 on rakendatud fĂŒĂŒsiliste ja virtuaalsete CPU-de kuumplugimise (online/offline reĆŸiimide) tugi ACPI sĂŒsteemides.
- Arhitektuurile RISC-V on tagatud mÀlukuumplugimise tugi ja lisatud on GCC plugin STACKLEAK, mis initsialiseerib kÔik stack'is hoitavad muutujad, et vÀltida teabe leket kernelist mitte-initsialiseeritud muutuja kaudu, mis vÔib sisaldada varasemaid andmeid.
- EFI valege mÀlukaardi vale mehhanism eemaldatud laadimisprotsessis. See mehhanism ei olnud praktiliselt kasutusel ning takistas usaldusvÀÀrse tÀitmise arendusi. virtuaalmasinad.
- PowerPC 40x platvormi tugi lÔpetatud.
- GNU Make'i versioonile on esitatud kĂ”rgemad nĂ”uded â tuuma kompileerimiseks on vajalik vĂ€hemalt 2013. aastal vĂ€lja antud GNU Make'i versioon.
- Virtualiseerimine ja turvalisus
- Integreeritud on parandused, mis kiirendavad oluliselt (kuni 15 korda) juhuslike numbrite saamist sĂŒsteemi kĂ”ne kaudu getrandom(). Optimeerimine pĂ”hineb vDSO (virtuaalne dĂŒnaamiline jagatud objekt) mehhanismi kasutamisel, mis vĂ”imaldab sĂŒsteemi kĂ”ne kĂ€itlejat tuua tuumast kasutaja ruumi ning vĂ€ltida konteksti vahetusi. SĂŒsteemi kĂ”ne rakenduse laadimine toimub otse tuuma poolt protsessi aadressiruumi.
- x86-64 sĂŒsteemide jaoks on lansseeritud uus AES-GCM krĂŒpteerimise algoritmi teostus, mis toetab VAES, VPCLMULQDQ ja AVX512/AVX10 vektorijuhte kasutamist arvutuste kiirendamiseks. Tehtud testid nĂ€itavad, et jĂ”udluse tĂ”us pĂ€rast uuele teostusele ĂŒleminekut vĂ”ib ulatuda kuni 156%-ni. AES-GCM assemblerteostus on tĂ€ielikult ĂŒmber kirjutatud, arvestades korrektset, jĂ”udlust, suurust ja koodi pĂ”hjalikku dokumentatsiooni.
- On lisatud vĂ”imalus kĂ€ivitada sĂŒdamik kĂŒlalissĂŒsteemina virtualiseeritud keskkondades, kasutades AMD SEV-SNP (Secure Nested Paging) protsessori laiendust, mis on ette nĂ€htud mĂ€lu sisemiste lehekĂŒlgede tabelite turvaliseks kasutamiseks. Ressursside juurdepÀÀsu tĂ€iendavaks isolatsiooniks virtuaalsetest masinatest vĂ”ib kasutada SVSM (Linux Secure VM Service Module) moodulit. HĂŒpperviisorisse KVM on lisatud algtugi kĂŒlalissĂŒsteemide kĂ€ivitamiseks, mida kaitseb AMD SEV-SNP.
- Lisatud on eraldi bucket slab allocator, mis aktiveeritakse CONFIG_SLAB_BUCKETS parameetri kaudu ja tagab kaitse âheap sprayingâ rĂŒnnakute eest.
- KVM hĂŒperviisoris on lisatud ioctl-kutse, et eelnevalt eraldada mĂ€lu kĂŒlalissĂŒsteemile enne selle tegelikku kĂ€ivitumist.
- VĂ”rgu alamsĂŒsteem
- Lisatud sysctl-parameeter net.tcp_rto_min_us, mille kaudu saab seadistada minimaalset taasesituse ootetÀhtaega (retransmission timeout) TCP-sokkide jaoks.
- Ehtool utiliiti on lisatud vÔimalus Ôrnalt seadistada katkestuste töötlemise konfigureerimist vÔrgu liidesed, mis kasutavad Net DIM liidest.
- Seadmed
- AMDGPU draiveris on sisse lĂŒlitatud algtoetamine AMD RDNA4 GPU-le ("GFX12"). Toetatud on tehnoloogiad DCN 4.0.x, GC 12.0, GMC 12.0, SDMA 7.0, MES12 ja MMHUB 4.1.
- JÀtkatakse Intel Xe arhitektuuril pÔhineva Xe drm-draiveri (Direct Rendering Manager) arendust, mida kasutatakse Intel Arc seeria graafikakaartides ja integreeritud graafikas alates Tiger Lake protsessoritest. Parendatud on GPU-d, mis pÔhinevad mikroarhitektuuridel Battlemage, Arrow Lake ja Lunar Lake.
- DRM (Direct Rendering Manager) alamsĂŒsteemis on ĂŒmber kirjutatud monitori poolt edastatavate EDID (Extended Display Identification Data) parameetrite töötleja.
- i915 draiveris on lisatud Battlemage Xe2 GPU tugi ja vaikimisi on sisse lĂŒlitatud CMRR (Content Match Refresh Rate) reĆŸiim.
- msm DRM-draiveris (Qualcomm Adreno GPU) on lisatud SM7150 platvormi ja GPU X185 ja a505 tugi.
- Lisatud on tugi Lincoln Tech Sol LCD185-101CT, Microtips Technology 13-101HIEBCAF0-C, Microtips Technology MF-103HIEB0GA0, BOE nv110wum-l60, IVO t109nw41, WL-355608-A8, PrimeView PM070WL4, Lincoln Technologies LCD197, Ortustech COM35H3P70ULC, AUO G104STN01 ja K&d kd101ne3-40ti ekraanipaneelidele.
- Heli sĂŒsteemis on lisatud tugi Intel Panther Lake, Asahi Kasei AK4619, Cirrus Logic CS530x, Everest Semiconductors ES8311, NXP i.MX95, LPC32xx, Qualcomm LPASS v2.5, WCD937x, Realtek RT1318, RT1320 ja Texas Instruments PCM5242 kiipidele ja koodekitele.
- Viimased muudatused on tehtud ARM SoC Snapdragon X Elite toe tagamiseks, kus kasutatakse ettevĂ”tte oma 12-tuumalist CPU-d Qualcomm Oryon ja GPU-d Qualcomm Adreno. Kiip on mĂ”eldud kasutamiseks sĂŒlearvutites ja lauaarvutites, edestades paljuski Apple M3 ja Intel Core Ultra 155H kiipe. 6.11 versiooni tuumale lisatud muudatused on seotud GPU Adreno X1-85 toe ja energiahoolduse haldamisega. Snapdragon X Elite SoC baasil olevate seadmete hulgas on vĂ€lja kuulutatud tugi ASUS Vivobook S15 ja Lenovo Yoga Slim7x sĂŒlearvutitele.
Samal ajal lĂ”i Ladina-Ameerika vabade tarkvarade fond tĂ€iesti vabade tuumade variandi 6.11 â Linux-libre 6.10-gnu, mis on puhastatud kogu tarkvarast ja draiveritest, mis sisaldavad mittesoodsaid komponente vĂ”i koodiosasid, mille kasutusala on tootja poolt piiratud. VĂ€ljaandes 6.11 on uuendatud puhastusprotsessi kood blobide kohta draiverites mdgpu, adreno, vgxy61, atomisp, btnxpuart, prueth ja tas2781. Uute draiverite amdgpu isp, tn40, rtl8192du, cs40l50, rt1320 ja pcie-rcar-gen4 puhastamise protsess on teostatud. Blobi nimede puhastamine dts-failides (devicetree) arhitektuurile Aarch64 on lĂ”pule viidud. Lisatud versioon primitiivide laadimise jaoks, mis ei genereeri hoiatusi ega pĂ€ringuid (nowait-nowarn). Lisatud kood primitiivide laadimisprotsessi mÀÀramiseks Rusti keeles kirjutatud koodis.
Allikas: opennet.ru
