PĂ€rast kahte kuu arendust tutvustas Linus Torvalds Linuxi tuuma versiooni 5.19. KĂ”ige tĂ€helepanuvÀÀrsemate muudatuste seas on: LoongArch protsessori arhitektuuri tugi, BIG TCP patchide integreerimine, fscache'i nĂ”udmisel tööreĆŸiim, a.out formaadi toe koodi eemaldamine, ZSTD rakendamise vĂ”imalus pĂŒsivara tihendamiseks, mĂ€lu eemaldamise haldamise liides kasutajaruumist, pseudojuhuslike numbrite generaatori töökindluse ja jĂ”udluse tĂ”stmine, Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) ja ARM SME (Scalable Matrix Extension) laienduste tugi.
Teates mainis Linus, et jÀrgmisele Linuxi tuuma vÀljaandele antakse tÔenÀoliselt number 6.0, kuna 5.x harus on piisavalt palju vÀljaandeid, et muuta versiooninumbri esimest numbrit. Numbrimuudatus toimub esteetilistel pÔhjustel ja on formaalne samm, mis leevendab ebamugavust, mis tuleneb suure arvu vÀljalaskete kogunemisest seerias.
Linus mainis ka, et kasutas vĂ€ljaande koostamiseks Apple'i ARM64 (Apple Silicon) arhitektuuril pĂ”hinevat sĂŒlearvutit Linuxi keskkonnas, mis pĂ”hineb Asahi Linuxi jaotusel. See ei ole Linuse peamine tööjaam, kuid ta kasutas seda platvormi, et testida selle sobivust tuumaga töötamiseks ja veenduda, et suudab tuuma vĂ€ljaandeid koostada reisil, olles kĂ€eulatuses kerge sĂŒlearvuti. Enne seda, palju aastaid tagasi, oli Linusel kogemus Apple'i riistvara kasutamisega arendamiseks â kunagi kasutas ta ppc970 protsessoril pĂ”hinevat arvutit ja Macbook Air sĂŒlearvutit.
Uude versioonisse on vastu vĂ”etud 16401 parandust 2190 arendajalt (eelmisel vĂ€ljaandel oli 16206 parandust 2127 arendajalt), patĆĄi suurus on 90 MB (muudatused puudutasid 13847 faili, lisati 1149456 koodirida, kustutati 349177 rida). Ligikaudu 39% kĂ”igist, mis 5.19 muudatustes esitatud, on seotud seadme draiverite, umbes 21% muudatustest on seotud riistvaraarhitektuuride spetsiifiliste koodide vĂ€rskendamisega, 11% on seotud vĂ”rgu kihiga, 4% â failisĂŒsteemidega ja 3% tuuma sisemiste alamsĂŒsteemidega.
Peamised uuendused tuumas 5.19:
- DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
- EROFS (Enhanced Read-Only File System) failisĂŒsteem, mis on mĂ”eldud kasutamiseks ainult lugemisreĆŸiimis olevates partitsioonides, on ĂŒle viidud fscache alamsĂŒsteemi kasutamisele, et andmeid vahemĂ€llu salvestada. See muudatus on vĂ”imaldanud oluliselt tĂ”sta sĂŒsteemide jĂ”udlust, kus EROFS-pĂ”hisest pildist kĂ€ivitatakse suur hulk konteinerite.
- Fscache alamsĂŒsteemi on lisatud nĂ”udmisel lugemise reĆŸiim, et optimeerida EROFS-i. Uus reĆŸiim lubab korraldada failisĂŒsteemi piltide lugemise vahemĂ€llu salvestamist, mis asuvad kohalikus sĂŒsteemis. Erinevalt algselt saadaval olnud reĆŸiimist, mis keskendus andmete vahemĂ€llu salvestamisele kohaliku failisĂŒsteemi kaudu, delegeerib nĂ”udmisel reĆŸiim andmete hankimise ja nende vahemĂ€llu kirjutamise funktsioonid eraldi taustaprotsessile, mis töötab kasutajaruumis.
- XFS-is on tagatud miljardite laiendatud atribuutide salvestamise vĂ”imalus i-node-s. Ăhe faili ekstentside maksimaalne arv on tĂ”stetud 4 miljardilt 247-le. Tehtud on reĆŸiim, mis vĂ”imaldab korraga mitme laiendatud faili atribuudi atomaarset uuendamist.
- Btrfs failisĂŒsteemis on optimeeritud lukustuste töötlemist, mis on vĂ”imaldanud saavutada umbes 7% jĂ”udluse kasvu otse nĂŒĂŒd-reeĆŸis kirjutamise korral. NOCOW (copy-on-write'ita) reĆŸiimis on operatsioonide jĂ”udlus tĂ”usnud ligikaudu 3%. Send-komandi kĂ€ivitamisel on vĂ€hendatud lehe vahemĂ€lu koormust. Aluslehe minimaalne suurus on vĂ€henenud 64K-lt 4K-le (saab kasutada lehte vĂ€hendavaid alapindade suurusi, mis on vĂ€iksemad kui ytuumalehe suurus). Ăleminek on toimunud baasseente (radix tree) kasutamiselt algoritmile XArrays.
- NFS-serverisse on lisatud lukustuse oleku pikendamise reĆŸiim, mille klient on vĂ€lja tĂ”mmanud ja mis ei vasta enam pĂ€ringutele. Uus reĆŸiim lubab lukustuse eemaldamist viivitada kuni ĂŒhe pĂ€eva, kui teine klient ei taotle konkurentsivĂ”imelist lukustust. Tavalistes tingimustes eemaldatakse lukustus 90 sekundi pĂ€rast pĂ€rast seda, kui klient on lĂ”petanud vastamise.
- Faneventide jĂ€lgimise alamsĂŒsteemis on fanotifys rakendatud lipp FAN_MARK_EVICTABLE, millega saab vĂ€lja lĂŒlitada siht-i-node'i kinnitamise vahemĂ€llu, nĂ€iteks harudeta osade vahemĂ€llu salvestamise ignoreerimiseks.
- FAT32 failisĂŒsteemi draiverisse on lisatud tugi failide loomise aja teabe saamiseks sĂŒsteemikutsest statx, pakkudes tĂ”husamat ja funktsionaalsemat varianti stat(), mis tagastab failide kohta tĂ€iendavat teavet.
- exFAT draiverisse on tehtud olulisi optimeerimisi, mis aitavad samal ajal puhastada sektorite rĂŒhma "dirsync" reĆŸiimis, selle asemel et teha jĂ€rjestikuseid sektorite puhastusi. Optimeerimise tulemusena on SD-kaardile paljude kataloogide loomise efektiivsus tĂ”usnud enam kui 73-85%, olenevalt klastrite suurusest.
- Tuuma on lisatud esimene parandav uuendus ntfs3 draiverile. Alates ntfs3 lisamisest tuuma 5.15 oktoobris eelmisel aastal, ei ole draiverit uuendatud ja arendajatega on kaotus suhtlus, kuid nĂŒĂŒd on arendajad uuesti muutuste avaldamisega alustanud. Pakutud plaastrites on kĂ”rvaldatud mĂ€lulekke ning krahhide tekitavad vead, lahendatud on xfstestsâi tĂ€itmise probleemid, puhastatud on kasutamata kood ja parandatud trĂŒkivead.
- OverlayFS-ile on lisatud vĂ”imalus kaardistada kasutajate identifikaatorid montitud failisĂŒsteemides, mida kasutatakse selleks, et seostada teatud kasutaja faile vÔÔrasse sektsioonis mĂ”ne teise kasutajaga praeguses sĂŒsteemis.
- MĂ€lu ja sĂŒsteemiteenused
- Lisatud on algtugi LoongArch kÀsuarsenali arhitektuurile, mida kasutatakse Loongson 3 5000 protsessorites ja mis realizeerib uut RISC ISA, mis sarnaneb MIPS-i ja RISC-V-ga. LoongArch arhitektuur on saadaval kolmes variandis: kÀrbitud 32-bitine (LA32R), tavaline 32-bitine (LA32S) ja 64-bitine (LA64).
- Kood a.out teostatavate failide formaadi toeks on eemaldatud, kuna see on tuumale muutunud aegunuks alates 5.1 versioonist. a.out formaati ei ole pikka aega kasutatud Linuxi sĂŒsteemides ning a.out failide generaatorit ei toetata kaasaegsetes tööriistades vaikeseadistustes Linuxi jaoks. a.out failide laadijat saab tĂ€ielikult rakendada kasutajaruumi.
- Toetamine x86 arhitektuuriga seotud kÀivitusvalikute jaoks, nagu nosep, nosmap, nosmep, noexec ja noclflush, on lÔpetatud.
- Toetamine aegunud CPU arhitektuuri h8300 (Renesas H8/300) on lÔpetatud, mis on juba ammu olnud hoolduseta.
- Suurendatud on vĂ”imalusi, mis on seotud jagatud lukustuste («split lock») tuvastamisega, mis tekivad, kui omandatakse ebaĂŒhtlastesse andmetesse juurdepÀÀs, kuna atomaarsete kĂ€skude tĂ€itmisel andmed ĂŒletavad kaht CPU vahemĂ€lu rida. Sellised lukustused pĂ”hjustavad mĂ€rkimisvÀÀrset jĂ”udluse langust. Kui varem andis sĂŒdamik vaikimisi hoiatuse lukustust pĂ”hjustava protsessi kohta, siis nĂŒĂŒd aeglustatakse probleemsuhtega protsessi tĂ€iendavalt, et sĂ€ilitada ĂŒlejÀÀnud sĂŒsteemi jĂ”udlus.
- Lisatud tugi Intel'i protsessorites ellu viidud IFS (In-Field Scan) mehhanismile, mis vĂ”imaldab kĂ€ivitada madala taseme diagnostikateste CPU-le, mis suudavad tuvastada probleeme, mida ei tuvastata tavaliste ECC (Error Correction Code) vĂ”i paaritusbitide pĂ”histe vahendite abil. Tehtavad testid on kujundatud laaditava pĂŒsivara vormis, mis on sarnane mikrokoode vĂ€rskendustega. Testimise tulemused on kĂ€ttesaadavad lĂ€bi sysfs.
- Lisatud on vĂ”imalus lĂ”imida bootconfig faili kernelisse, mis vĂ”imaldab lisaks kĂ€surea valikutele mÀÀrata kernelâi töö parameetreid konfiguratsioonifaili kaudu. LĂ”imimine toimub koos koostamisvaliku âCONFIG_BOOT_CONFIG_EMBED_FILE=»/PATH/TO/BOOTCONFIG/FILE»â abil. Varem mÀÀrati bootconfig initrd pildiga. Kernelisse lĂ”imimine vĂ”imaldab bootconfig'i kasutada konfiguratsioonides ilma initrd-ta.
- Tugiteenustena on rakendatud vĂ”imalus laadida pĂŒsivara, mis on tihendatud Zstandard algoritmi abil. Sysfs-s on lisatud juhtfailide komplekt /sys/class/firmware/*, mis vĂ”imaldab algatada pĂŒsivara laadimist kasutajaruumi.
- AsĂŒnkroosse sisendi/vĂ€ljundi io_uring liideses on pakutud uus lipp IORING_RECVSEND_POLL_FIRST, mille seadistamisel saadetakse vĂ”rguoperatsioon esmalt töötlemiseks pollingu abil, mis vĂ”ib sÀÀsta ressursse olukordades, kus operatsiooni töötlemine viivitusega on lubatud. io_uring-is on samuti lisatud socket() sĂŒsteemikutse tugi, pakutud uusi lippe failide descriptorite haldamise lihtsustamiseks, lisatud «multi-shot» reĆŸiim accept() kĂ”nes mitme ĂŒhenduse samaaegseks vastuvĂ”tmiseks, ja lisatud operatsioonid NVMe kĂ€sukĂ€ikude otse seadmesse suunamiseks.
- Xtensa arhitektuurile on lisatud KCSAN (Kernel Concurrency Sanitizer) silumisvahendi tugi, mis on mĂ”eldud tuvastama tĂ”rkeid tuumas. Samuti on lisatud toetust unereĆŸiimile ja kaasprotsessoritele.
- m68k (Motorola 68000) arhitektuurile on rakendatud virtuiaalmasin (platvormi simulaator), mis pÔhineb Android Goldfish emulatoril.
- AArch64 arhitektuurile on rakendatud Armv9-A SME (Scalable Matrix Extension) laienduste tugi.
- eBPF alamsĂŒsteemis on lubatud tĂŒĂŒbistatud nĂ€idikute salvestamine kaardistruktuurides ning lisatud on dĂŒnaamiliste nĂ€idikute tugi.
- Kasutusele on vĂ”etud uus ennetav mĂ€lu vĂ€ljaastumise mehhanism, mis toetab haldamist kasutaja ruumist faili memory.reclaim kaudu. Numbrite kirjutamine mÀÀratud faili toob kaasa vastava arvu baitide ĂŒritamise vĂ€ljatĂ”ukamist cgroupiga seotud komplektist.
- MÀlu kasutuse jÀlgimise tÀpsust on parendatud andmete tihendamise ajal vahetusfailis zswap mehhanismi abil.
- RISC-V arhitektuurile on rakendatud 32-bitiste kĂ€ivitatavate failide kĂ€itamise tugi 64-bitistes sĂŒsteemides, lisatud on reĆŸiim, mis seondab piiravat omadust mĂ€lu lehtedega (nt. vahemĂ€lu keelamiseks) ning rakendatud on funktsioon kexec_file_load().
- 32-bitiste Armv4T ja Armv5 sĂŒsteemide toe rakendus on kohandatud ĂŒlikasutatavate mitme platvormi kernelite kogumite jaoks, mis sobivad erinevatele ARM-sĂŒsteemidele.
- Virtualiseerimine ja turvalisus
- EFI alamsĂŒsteemis on vĂ”imalik konfidentsiaalse teabe edastamine kĂŒlalisĂŒsteemidele ilma selle avalikustamiseta host-sĂŒsteemile. Andmed esitatakse securityfs kaudu kataloogis security/coco.
- Lockdown kaitse reĆŸiimis, mis piirab root-kasutaja juurdepÀÀsu tuumale ja blokeerib UEFI Secure Boot'i ĂŒmbersĂ”idu teed, on kĂ”rvaldatud lĂ”he, mis vĂ”imaldas kaitset ĂŒletada tuuma silumisvahendi manipulatsioonide kaudu.
- Tugipunktid, mille eesmĂ€rk on parandada pseudojuhuslike numbrite generaatori usaldusvÀÀrsust ja jĂ”udlust, on sisse lĂŒlitatud.
- Clang 15 abil koos ehitamisel rakendatakse tuuma struktuuride randomiseerimise mehhanismi toetust.
- Landlock mehhanismi, mis vĂ”imaldab piirata rĂŒhma protsesside interaktsiooni vĂ€liskeskkonnaga, on antud reeglite tugi, mis vĂ”imaldab kontrollida failide ĂŒmbernimetamise toimingute tĂ€itmist.
- IMA (Integrity Measurement Architecture) alamsĂŒsteem, mis on mĂ”eldud operatsioonisĂŒsteemi komponentide terviklikkuse kontrollimiseks digitaalsete allkirjade ja ridade abil, on muudetud kasutama fs-verity moodulit failide tĂ”endamiseks.
- Muutunud on tegevuste loogika, kui on vĂ€lja lĂŒlitatud piiranguta juurdepÀÀs eBPF alamsĂŒsteemile â varem lĂŒlitati vĂ€lja kĂ”ik kĂ€sud, mis olid seotud bpf() sĂŒsteemikutsumisega, kuid alates versioonist 5.19 on jÀÀnud juurdepÀÀs kĂ€skudele, mis ei vii objektide loomise juurde. Sellise kĂ€itumise korral vajab BPF-programmi laadimine privileege, kuid seejĂ€rel saavad privilgeeritud protsessid selle programmiga suhelda.
- AMD SEV-SNP (Secure Nested Paging) laiendi tugi on lisatud, et tagada ohutu töö sissetoomata lehe tabelitega ja kaitsta rĂŒnnakute eest nagu âundeSErVedâ ja âSEVerityâ AMD EPYC protsessoritega, mis vĂ”ivad ĂŒletada AMD SEV (Secure Encrypted Virtualization) kaitsemehhanismi.
- Intel TDX (Trusted Domain Extensions) mehhanismi tugi on lisatud, mis vĂ”imaldab blokeerida katsetad kolmandate isikute ligipÀÀsu krĂŒpteeritud mĂ€lule. virtuaalmasinate.
- Virtio-blk draiverisse, mida kasutatakse plokkseadmete emuleerimiseks, on lisatud toetuse I/O pollimise kasutamiseks, mis tÔestatud testide kohaselt vÀhendas latentsust umbes 10%.
- VĂ”rgusĂŒsteem
- TĂąhtĂŒre on lisatud BIG TCP patĆĄide seeria, mis vĂ”imaldab suurendada TCP-paketi maksimaalset suurust kuni 4GB, et optimeerida kĂ”rge kiire punktidevahelist tööd. Selline paketi suurendamine 16-bitise vĂ€ljakujunduse suuruse puhul saavutatakse âjumboâ paketide rakendamise kaudu, mille IP-pealkirjas on suurus mÀÀratud 0-ks, samas kui tegelik suurus esitatakse eraldi 32-bitise vĂ€ljakujunduse valdkonnas eraldi lisatud pealkirjas. Tulemustes tĂ”i paketi suuruse mÀÀramine 185 KB kaasa lĂ€bilaskevĂ”ime suurenemise 50% ja mĂ€rkimisvÀÀrse latentsuse vĂ€hendamise andmeedastuses.
- Tööd pakettide viskamise pÔhjuste jÀlgimise vahendite integreerimiseks vÔrgu Àrakonnas on jÀtkatud (reason koodid). PÔhjuse kood edastatakse mÀlu vabastamise ajal, mis on seotud paketiga, ja vÔimaldab arvesse vÔtta selliseid olukordi nagu pakettide viskamine valede vÀljade tÀitmise tÔttu, spufimise tuvastamine rp_filteri poolt, vale kontrollsummade, mÀlupuudus, IPSec XFRM reeglite aktiveerumine, vale TCP jÀrjestuse number jne.
- Lisatud on tugi MPTCP (MultiPath TCP) ĂŒhenduste tagasipöördumise jaoks normaalse TCP siiski olukordades, kus MPTCP teatud vĂ”imalusi ei ole vĂ”imalik kasutada. MPTCP on TCP protokolli laiendus, et korraldada TCP-ĂŒhenduse tööd pakettide edastamisega samaaegselt lĂ€bi mitmete marsruutide erinevate vĂ”rguliideste kaudu, mis on seotud erinevate IP-aadressidega. Lisatud on API MPTCP voogude juhtimiseks kasutajaruumi.
- Varustus
- Lisatud on ĂŒle 420 000 rida koodi, mis on seotud amdgpu draiveriga, millest umbes 400 000 rida on automaatselt genereeritud pĂ€ised, mis sisaldavad andmeid ASIC registreid AMD GPU draiveris, ning veel 22,5 tuhat rida tagavad AMD SoC21 toe esialgse rakendamise. AMD GPU draiveri kogumaht on ĂŒletanud 4 miljonit rida koodi. Lisaks SoC21-le sisaldab AMD draiver toed SMU 13.x (System Management Unit), on uuendatud USB-C ja GPUVM tuge ning valmistatud ette jĂ€rgnevate RDNA3 (RX 7000) ja CDNA (AMD Instinct) platvormide toe jaoks.
- Intel i915 draiveris on laienenud vĂ”imalused, mis on seotud energiatarbimise juhtimisega. Lisatud on Intel DG2 (Arc Alchemist) GPU identifikaatorid, mida kasutatakse sĂŒlearvutites, tagatud on Intel Raptor Lake-P (RPL-P) platvormi esialgne tugi, lisatud on teave Arctic Sound-M graafikakaartide kohta, rakendatud on ABI arvutusmootorite jaoks, DG2 kaartide jaoks on lisatud Tile4 formaadi tugi ning Haswell mikroarhitektuuril pĂ”hinevates sĂŒsteemides on toeks DisplayPort HDR.
- Nouveau draiveris on ĂŒlemineku protsess drm_gem_plane_helper_prepare_fb kasutamisele, mĂ”nede struktuuride ja muutuja jaoks on rakendatud staatiline mĂ€lu eraldamine. Mis puudutab Nouveau avatud allikaid, mille on avaldanud NVIDIA tuuma moodulites, siis praegune töö seisneb vigade tuvastamises ja kĂ”rvaldamises. Edaspidi on plaanis avaldatud rakendusi kasutada draiveri jĂ”udluse tĂ”stmiseks.
- Lisatud on draiver NVMe kontrolleri jaoks, mida kasutatakse Apple M1 kiipidega arvutites.
Samas on LĂ”una-Ameerika Vaba Tarkvara Fond loonud tĂ€ielikult avatud 5.19 tuuma variandi â Linux-libre 5.19-gnu, mis on puhastatud tootja poolt piiratud kasutusala vĂ”imaldavaid sulgureid ja draivereid sisaldavatest mitteavaldavatest komponentidest vĂ”i koodilĂ”ikudest. Uues vĂ€ljaandes on puhastatud draivereid pureLiFi X/XL/XC ja TI AMx3 Wkup-M3 IPC jaoks. Uuendatud on puhastuskoode blobide jaoks draiverites ja alam-sĂŒsteemides nagu Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu draiverid. Tehtud on Qualcomm AArch64 devicetree-failide töötlemine. Lisatud on uus komponentide nimetamissema toetamine Sound Open Firmware. ATM Ambassador draiveri puhastamine, mis on tuumast eemaldatud, on lĂ”petatud. HDCP ja Mellanox Core blobide puhastamise haldamine on viidud eraldi kconfig siltidesse.
Allikas: opennet.ru
