Pärast kahe kuu arendust esitles Linus Torvalds Linux 5.13 tuuma väljaannet. Kõige olulisemad muudatused hõlmavad: EROFS failisüsteem, Apple M1 kiipide esialgne toetus, «misc» cgroup-kontroller, /dev/kmem toe lõpetamine, uute Intel ja AMD GPU-de tugi, tuuma funktsioonide otsene kutsumine BPF-programmidest, tuuma pakettide randomiseerimine igal süsteemikutsel, Clangiga koostamise võimalus CFI (Control Flow Integrity) kaitsega, Landlock LSM moodul täiendavate protsessipiirangute jaoks, virtuaalne heliseade virtio põhjal, multi-shot režiim io_uringus.
Uues versioonis on 17189 parandust 2150 arendajalt (kõige suurem ajaloos), patchi suurus on 60 MB (muudatused puudutasid 12996 faili, lisatud 794705 koodi rida, eemaldatud 399590 rida). Umbes 47% kõigist 5.13 versioonis esitatud muudatustest on seotud seadme draiveritega, umbes 14% muudatusi on seotud riistvara arhitektuurile spetsiifilise koodi uuendamisega, 13% on seotud võrgu pakettide töötlemisega, 5% -ga failisüsteemidest ja 4% on seotud tuuma sisemiste alamsüsteemidega.
Põhilised uuendused:
- Disski alamsüsteem, sisend/väljund ja failisüsteemid
- Lisatud tugi EROFS-i (Enhanced Read-Only File System) failisüsteemile, mille on välja pakkunud Huawei ja mis on mõeldud ainult lugemisrežiimis olevate jaotiste jaoks. Uus failisüsteem toetab andmete salvestamist kokkusurutud kujul ning võrreldes Ext4-ga näitab see sarnast jõudlust järjestikuste lugemisoperatsioonide tegemisel, kuid ületab Ext4-d andmete juhusliku ligipääsu korral kordades. Näiteks 4:1 kokkusurumise astme ja testimise korral serveril HDD-ga ületas EROFS failisüsteem Ext4 juhuslikus lugemises rohkem kui kuus korda, samas kui Android-smartfoniga, millel on Flash, peaaegu kolm korda. Nagu teiste lugemiseks mõeldud failisüsteemide puhul, on EROFS struktuur oluliselt lihtsustatud, jättes rakenduses välja mõned metadatatsoonid, nagu töönahast vaba plokkide kaart.
- SMB3 failisüsteemi jaoks on implementeritud mountimisvõimalus „rasize”, mille abil saab määrata readaheadi akna suuruse, et suurendada jõudlust teatud koormustüüpide puhul.
- Ext4 fail süsteem võimaldab katalooge kustutades elementide ümberkirjutamist. Samuti on ext4-s lubatud samal ajal kasutada suurustundetust režiimi ja krüpteerimist.
- ExFAT fail süsteemis on lisatud toe ioctl-käsklusele FITRIM (discard), et teavitada salvestusseadet kasutamata blokke.
- XFS fail süsteemis on lisatud võimalus vabastada ruumi viimase jaotuse grupist, mis on esimene samm olemasolevate XFS jaotuste suuruse vähendamise funktsiooni rakendamisel.
- Lisatud on uus süsteemikõne quotactl_path, mis erineb quotactlist sellest, et võimaldab kvote hallata mitte spetsiaalse seadme faili kaudu, vaid failisüsteemi mount-punkti tee määramise kaudu.
- Fanotify mehhanismis on laiendatud võimalusi, mis on kergesti ligipääsetavad mitteprivileegitud kasutajatele. Näiteks inotify sarnaselt saab nüüd, ilma SYS_CAP_ADMIN õigusteta, jälgida sündmusi OPEN, ACCESS, MODIFY ja CLOSE failide ja kaustade kohta.
- Mälu ja süsteemiteenused
- Lisatud uus cgroup kontroller - «Misc» (CONFIG_CGROUP_MISC), mis on mõeldud skalaarsüsteemide piiramiseks ja jälgimiseks, mida saab hallata lihtsa loenduri abil ning piirata maksimaalselt lubatud väärtustega. Näiteks tuuakse esile uue cgroup kontrolleri rakendamine aadressiruumi identifikaatorite haldamisel, mida kasutatakse AMD SEV (Secure Encrypted Virtualization) mehhanismis.
- Asünkroonse sisendi/väljundi io_uring liideses on POLL-i päringute jaoks rakendatud «multi-shot» režiim, kus POLL-i ei eemaldata sündmuse genereerimise järel, vaid see jääb aktiivseks ja võib genereerida mitmeid sündmusi.
- Reaalajas tuumavarsest on üle toodud kood, mis tagab tuuma voogudes tarkvara genereeritud katkestuste töötlemise, mis võimaldab neid kõrgema prioriteediga protsessidega välja tõrjuda.
- Lisatud sisemine netfs teegi, kuhu on viidud tüüpilised funktsioonid, mida kasutatakse võrgufailisüsteemides.
- PowerPC arhitektuurile on rakendatud ajakontrollide (time namespaces) toimet, mis võimaldavad konteineris oma aega kasutada.
- RISC-V arhitektuuri jaoks on rakendatud kexec, crash dump, kprobe ja tuuma käivitamine kohapeal (execute-in-place, käitamine algses mälus, ilma laadimata RAM-i).
- BPF-i jälgimisprogrammides on võimalik kasutada ülesande kohalikku andmete salvestust (task-local storage), mis tagab kõrgema jõudluse, sidudes andmed konkreetse BPF-i töötlejaga.
- Uus mehhanism otse tuumafunktsioonide kutsumiseks BPF-programmidest on rakendatud, mida on juba kasutatud TCP ülekande algoritmide teostamiseks. Turvalisuse tagamiseks peavad kutsutavad funktsioonid olema selgelt määratletud heakskiidulikus nimekirjas.
- Funktsioonide jälgimisüsteemi ftrace on lisatud valik func-no-repeats, mis võimaldab kuvada järjestikuseid korduvaid funktsiooni kutsungeid loendina.
- Kasutajapoolse mäluhäirete (userfaultfd()) süsteemikutsesse, mis on mõeldud lehekülgede veateadete käsitlemiseks, on lisatud võimalus hallata osalisi veateateid, kus mäheleht on olemas, kuid sellel ei ole kirjet mäluleheküljete tabelis.
- Tugi toetamine erifaili /dev/kmem lõpetati, mis andis juurdepääsu kogu tuuma aadressiruumi. See fail on tunnistatud aegunuks ja tekitab turvaprobleeme.
- Intel'i kiipide jaoks on välja töötatud uus jahutuse juhtimise draiver, mis võimaldab protsessori sageduse vähendamist ülekuumenemise ohu korral. Erinevalt olemasolevast TCC (Thermal Control Circuit) aktiveerimise mehhanismist manipuleerib uus draiver suhteliste väärtustega, st vähendab sagedust oluliselt temperatuuri tõusmist ootamata, kuid mitte enne kriitilise väärtuse ületamist.
- Virtualiseerimine ja turvalisus
- LSM-modul, mis tagab rakenduste isoleerimise läbi Landlocki, on loodud protsessigruppide vahelise suhtluse piiramiseks väliskeskkonnaga. See on välja töötatud arvesse võttes selliseid isoleerimismeetodeid nagu XNU Sandbox, FreeBSD Capsicum ja OpenBSD Pledge/Unveil. Juurdepääsu määramine toimub BPF-programmi abil, kuid erinevalt seccomp-bpf'ist ei filtri Landlock süsteemikõnesid ja nende argumente, vaid võimaldab piirata ydraakobjektide kasutamist, nagu failihierarhiad. Landlock võimaldab igal protsessil, sealhulgas ilma privileegideta, end tõhusalt isoleerida ja takistada isoleerimise ümbersuunamist haavatavuste või pahatahtlike muudatuste avastamise korral. Landlock loob protsessile kaitstud isoleeritud keskkonnad, mida rakendatakse olemasolevate juurdepääsuhaldusmehhanismide ülemise kihtina. Näiteks võib programm keelata juurdepääsu failidele väljaspool töökausta.
- Lisatud on juhusliku siirde võimalus kernel'i tekki töötlemisel süsteemi kutsungite korral, et rasketada rünnakute korral tekkidele. Pakutud kaitse aluseks on juhusliku tekkide siirde valimine iga süsteemi kutsungi korral, mis muudab mälu teekide paigutuse määramise keerulisemaks isegi juhul, kui saada teavet aadresside kohta, kuna järgmise süsteemi kutsungi korral muudetakse tekkide baasaadressi. Juhuslikkuse sisselülitamiseks on ette nähtud kernel'i käsurea parameetrid „randomize_kstack_offset=on/off“ ja seadistus CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Kulud hindavad ligikaudu 1% jõudluse langust.
- Lisatud on tugi kernel'i ülesehitamiseks, mis sisaldab Clang'i kompilaatoris CFI (Control Flow Integrity, juhtimisvoo terviklikkuse) kaitse mehhanismi, mis lisab iga kaudse funktsiooni kutsungi eel kontrolli, et tuvastada mõningaid määramatuse vorme, mis võivad potentsiaalselt katkestada normaalse täitmise järjekorra (control flow) haldamise, muuta mälu funktsioonide pointereid. CFI sisselülitamiseks on ette nähtud parameeter CONFIG_CFI_CLANG.
- Äärmiselt usaldusväärses krüptovõtmete salvestamise teenuses (key ring) katab usaldusväärsete võtmete mehhanism (Trusted Keys) nüüd mitte ainult TPM-modulite võtmeid, vaid ka TEE (Trusted Execution Environment) keskkonnast saadud võtmeid. Usaldusväärsete võtmete allika haldamiseks on esitatud käivitamisparameeter „trusted.source“. Lisaks on lisatud võimalus usaldusväärsete võtmete töötlemiseks ASN.1 formaadis.
- Käivitamise ajal on lisatud parameeter, et ennetavalt laadida tagasi kutsutud sertifikaatide nimekiri. Lahendatud on probleem (CVE-2020-26541), mille tõttu ignoreeriti UEFI Secure Boot mustas nimekirjas sertifikaate, mis on esitatud formaadis EFI_CERT_X509_GUID, mis võimaldas süsteemi laadimist tagasi kutsutud sertifikaadiga.
- Ydri krüptosüsteemi on lisatud ECDSA digitaalsete allkirjade kontrollimise toimetuse toetamist, mis põhineb elliptilistel kõveratel.
- Rakendatud on SELinuxi poliitikate sertifitseerimist IMA (Integrity Measurement Architecture) alusel, mis tagab andmete terviklikkuse kontrollimiseks hashide andmebaasi haldamise.
- Võrgu alamsüsteem
- WiMAX tehnoloogia tugi on eemaldatud, kuna see ei ole enam avalikes võrkudes kasutusel, ja ainsaks tuumajuhiks, millega WiMAX-i kasutada, jääb vananenud Intel 2400m draiver. NetworkManageri võrgukonfiguratoris lõpetati WiMAX-i tugi 2015. aastal. Praeguseks on WiMax praktiliselt täielikult asendatud selliste tehnoloogiatega nagu LTE, HSPA+ ja Wi-Fi 802.11n.
- Lisatud draiver MANA (Microsoft Azure Network Adapter) võrgukohandurile.
- Draiverisse ath11k on lisatud tugi Qualcomm QCN9074 juhtmeta moodulitele, mis toetavad 802.11ax.
- Draiveris iwlwifi on rakendatud passiivse skaneerimise võimalus 6 GHz vahemikus. Ukrainale on lisatud tugi IEEE 802.11ax sisse- ja väljalülitamiseks BIOSi seadete põhjal.
- XDP (eXpress Data Path) alamsüsteemi optimeerimine on võimaldanud manipuleerida võrgupakettidega enne nende töötlemist Linuxi tuumavõrgustikus. Tehtud testid näitavad XDP jõudluse suurenemist 4–8%. Virtio seadmete puhul võib AF_XDP tarkvaratöötluse jõudluskasv ulatuda 33%-ni.
- ICMP-is on rakendatud laiendatud PROBE sõnumite tugi, nagu on määratletud RFC 8335-s.
- Jätkatud integreerimist MPTCP (MultiPath TCP) tuumasse, TCP protokolli laiendus, mis organiseerib TCP-ühenduse, edastades pakette samal ajal mitme marsruudi kaudu erinevate võrguliideste kaudu, mis on seotud erinevate IP-aadressidega. Uues väljaandes on lisatud sockopt toe tüüpide valikute määramiseks. Teostatud on eraldi alamvoogude (subflow) lähtestamise võimalus.
- Netfilterisse on lisatud ressursside haldamise tugi, kasutades ühtset cgroups v2 hierarhiat.
- Ethtoolis on rakendatud liides IEEE MIB statistika lugemiseks, toetades mlx5 ja bnxt. Võrgudraiveritele on lubatud извлекать произвольные данные из SFP EEPROM, manipuleerides mitte paariga nihke + suurus, vaid mälu lehtedega.
- Seadmed
- On rakendatud esialgne tugi Apple M1 ARM-kiibile, mis hõlmab katkestuste kontrollerit, taimerit, UART-i, SMP-d, sisendi/väljundi korraldamise funktsioone ja MMIO-d. GPU tagasiviimine ei ole veel lõpetatud, väljundi korraldamiseks on pakutud raamifailide ja konsooli toetust järjestikuse porta kaudu.
- Jätkatakse tuuma puhastamist vanadest draiveritest, eemaldatud on draiverid "gasket" (Google ASIC), "sysace", "umem" ja mitmed vanad draiverid järjestikuste portide jaoks.
- Pärast 13 aastat staging-haru olemasolu on stabiliseeritud ja peamise komplekti kantud draiver "comedi" andmete kogumise seadmete toe jaoks.
- Lisatud on GUD (Generic USB Display) draiver, mis rakendab põhija juhi ekraanidele ja TV-adapteritele, mis on ühendatud USB-liidese kaudu. Draiver pakub DRM-i omadusi (Direct Rendering Manager) pildi pööramiseks, heledusreguleerimiseks, EDID-i juurde pääsemiseks, videorežiimide seadistamiseks ja TV-ühendamiseks, mida saab kasutada spetsiifiliste seadmete draiverite loomise aluseks.
- Lisatud on helidraiver "virtio", mis rakendab virtuaalset heliseadet, mida saab kasutada külalissüsteemides heli edastamiseks ja salvestamiseks ilma helikaardile ligipääsu ülekandeta ja ilma emuleerimiseta.
- amdgpu draiverisse on lisatud esmane tugi GPU Aldebaran (gfx90a). FreeSync tehnoloogia esmane tugi HDMI-le on aktiveeritud (varem oli saadaval ainult DisplayPort'is), võimaldades ekraanil uuendussageduse kohandamist. ASSR (Alternatiivne Segaja Tühjendamise Reset) tugi on lisatud. Lisatud ioctl video kodeerimise ja dekodeerimisega seotud võimaluste pärimiseks. Lisatud CONFIG_DRM_AMD_SECURE_DISPLAY režiim kriitilise teabe kuvamiseks mõeldud ekraanide muutuste tuvastamiseks. Energiat säästva mehhanismi ASPM tugi on samuti lisatud.
- i915 draiveris Intel graafikakaartidele on lisatud tugi Intel Alderlake-S kiipidele. Lisatud eDP MSO (Embedded DisplayPort Multi-SST Operation) tugi.
- Lisatud tugi mängukontrollerile Luna (Amazon), samuti puuteekraanidele Hycon HY46XX, ILITEK Lego seeriale ja MStar MSG2638.
Samas ajal Lõuna-Ameerika vaba tarkvara fond käivitas täiesti vabade komponentidega tuuma versiooni 5.11 — Linux-libre 5.11-gnu, mis on puhastatud sulgude ja draiverite elementidest, mis sisaldavad vabu komponente või koodilõike, mille kasutusala on tootja poolt piiratud. Uues väljaandes on puhas draiver comedi. Cyclades, isicom tty ja i2400m wimax draiverite puhastamine on lõpetatud ja need on kernist eemaldatud. Koodiblobide puhastus draiverites ja alamsüsteemides amdgpu, i915 csr, r8152 usb, mhi bus, x86 puuteekraan ja qualcomm arm64 on uuendatud.
Allikas: opennet.ru
