Pärast kahte kuud arendust Linus Torvalds ydinversioon . Märkimisväärsemate muudatuste hulka kuuluvad: süvateemade piiramine, mis takistab omamoodulite sümbolite toomist GPL-modulitesse; konteksti vahetamise operatsioonide kiirendamine FSGSBASE protsessorijuhise abil; kahandatud kernelipildi compressioon Zstd abil; prioriteetide ümberkorraldamine tuumas; PRP (Parallel Redundancy Protocol) toetamine; jääkajaiba planeerimise arvestamine depsude planplaanis; puhverdatud mälulehekülgede koondamine; capability-lipp CAP_CHECKPOINT_RESTOR; süsteemi kutse close_range(); dm-crypt jõudluse tõstmine; Xen PV 32-bitiste külalissüsteemide koodi eemaldamine; uue slab mälu haldamise mehhanismi rakendamine; Btrfs „rescue“ valik; inline-šifreerimise toetamine ext4 ja F2FS.
Uude versiooni on lisatud 16 074 parandust 2011 arendajalt,
patši suurus - 62 MB (muudatused puudutasid 14 548 faili, lisatud 782 155 rida koodi, eemaldatud 314 792 rida). Umbes 45% kõigist 5.9
muudatustest on seotud seadme draiveritega, umbes 15% muudatustest on
seotud riistvaraarhitektuuride kohandatud koodi värskendamisega, 13%
on seotud võrgusteekiga, 3% -ga failisüsteemidest ja 3% tuuma
alamsüsteemidega.
:
- Mälu ja süsteemiteenused
- kaitset GPL-kihistike kasutamise vastu, et siduda omamoodulid GPL-litsentsiga sülearvutites osadega, mis on välja antud ainult GPL-litsentsiga moodulitele. Lipp TAINT_PROPRIETARY_MODULE tuleb nüüd kõigist moodulitest, mis impordivad sümboleid moodulitest, millel on see lipp. Kui GPL-moodul üritab impordida sümboleid mitte-GPL moodulist, siis see GPL-moodul omandab TAINT_PROPRIETARY_MODULE tähistuse ning ei saa juurdepääsuks kasutatavad kernelikomponendid, mis on saadaval ainult GPL-litsentsiga moodulitel, isegi kui moodul varem importis gplonly kategooriast sümboleid. Tagasiühendus (ainult EXPORT_SYMBOL_GPL eksportimine moodulites, mis on imporditud EXPORT_SYMBOL_GPL), mis võiks häirida omamoodulite toimimist, ei ole rakendatud (ainult omamooduli lipp on päritud, aga mitte GPL-seonded).
- kcompactd mehhanismi toetamine taustal töötamise mehhanism, mis võimaldab suurendada suurte mälu lehtede arvu, mis on tuumale kätte saadavad. Esialgsetes hinnangutes vähendab taustal pakkimise minimaalsete ülekandete arvudena 70-80 korda viivitusi suurte mälu lehtede eraldamisel (huge-page) võrreldes varasema nõudepõhise (on-demand) pakkimismehhanismiga. Kexterna fragmentatsiooni piiri seadmiseks, mida toetab kcompactd, on lisatud sysctl vm.compaction_proactiveness.
- tuuma pildi tihendamise toe andmine, kasutades algoritmi (zstd).
- X86 süsteemide jaoks on toetatud protsessorite käsklus , mis võimaldab lugeda ja muuta FS/GS registrite sisu kasutaja ruumist. Tuumas kasutatakse FSGSBASE konteksti vahetamise toimingute kiirusel, välistades tarbetud MSR kirjutamise operatsioonid GSBASE'i jaoks, ja kasutaja ruumis võimaldab vältida tarbetuid süsteemikõnesid FS/GS muutmiseks.
- parameeter „allow_writes“, mis võimaldab keelata MSR registerte sisu muutmise kasutaja ruumist ja piirata nende registrite sisu juurdepääsu lugemiste operatsioonidega, kuna MSR-i muutmine võib põhjustada probleeme. Vaikeväärtuses pole kirjutamist keelatud, muudatused MSR-is kajastuvad logis, kuid tulevikus plaanitakse vaikimisi juurdepääsu muuta ainult lugemisrežiimiks.
- Asünkroonse sisendi/väljundi liidesesse on lisatud täielik tugi asünkroonsetele puhverdatud lugemisoperatsioonidele, mis ei vaja tuuma lõime kaasamist. Kirjutamise tugi on oodata järgmisel versioonil.
- Deadline sisendi/väljundi ajakava plaanimine, arvestades läbilaskevõimet, teha õigeid otsuseid asümmeetrilistes süsteemides, nagu ARM arhitektuuril põhinevad süsteemid ja big.LITTLE, mis kombineerivad ühes kiibis võimsad ja vähem aktiivsed energiatõhusad CPU tuumad. Eelkõige võimaldab uus režiim vältida planeerimisprobleeme, kui aeglane CPU tuum ei oma piisavalt ressursse ülesande õigeaegseks täitmiseks.
- Energiakasutuse mudel tuumas (Energy Model framework) nüüd mitte ainult CPU energiakasutuse käitumist, vaid katab ka perifeerseadmed.
- Rakendatud on süsteemi kutse close_range(), mis võimaldab protsessil korraga sulgeda terve vahemiku avatud failikirjeid.
- Tekstikonsoli ja draiveri fbcon rakendamine , mis pakkus võimalust programmeeritud teksti kerimist tagasi (CONFIG_VGACON_SOFT_SCROLLBACK) rohkem kui VGA tekstirežiimi videomälu maht.
- prioriteetide määramise algoritm niššide sees. Uus variant tagab parema järjepidevuse kõikides tuumade alamkonstruktsioonides prioriteetide määramisel reaalajas ülesannetele.
- Lisatud on sysctl , et hallata CPU sageduse sundimise parameetreid reaalajas ülesannete jaoks (näiteks saab reaalajas ülesannete täitmisel käidu automaatselt muuta energiasäästmiseks, kui vahetatakse vooluallikat akule või mobiilsetele süsteemidele).
- On toimunud ettevalmistused Transparent Huge Pages tehnoloogia toetuse rakendamiseks lehe puhvrisse.
- fanotify mehhanismis on rakendatud uusi lippe FAN_REPORT_NAME ja FAN_REPORT_DIR_FID, et edastada teavet vanema nime ja ainulaadse identifikaatori FID kohta, kui toimub katalooge loovate, kustutavate või liigutavate objektide loomisega seotud sündmusi ja mitte kataloogidega seotud objekte.
- cgroups jaoks uus mälu jaotamise kontrollija slab (slab memory controller), mis eristub slab'i jälgimise üleviimisega mälu lehtedelt tuuma objektide tasemele, võimaldades slab-lehti jagada erinevate cgroupide vahel, selle asemel, et eraldi slab'i vahepealseid jaotusi igale cgroupile eraldada. Pakutud lähenemine aitab tõsta slab'i kasutamise efektiivsust, vähendada slab'i jaoks kasutatavat mälu suurust 30–45% ja oluliselt vähendada tuuma jaoks mälukulu ja mälufragmenteerimist.
- Helisüsteemis ja , vastavalt soovituslikele suunistele kaasava terminoloogia kasutamiseks Linuxi tuumas, on toimunud poliitiliselt korrektsete terminite puhastamine. Kood on puhastatud sõnade "slave", "master", "blacklist" ja "whitelist" kasutamisest.
- Virtualiseerimine ja turvalisus
- Kerne koostamisel Clang'i kompilaatoriga on võimalus konfigureerida (CONFIG_INIT_STACK_ALL_ZERO) automaatne algväärtustamine kõigile virnast salvestatud muutuja nullväärtusega (koostamisel on märgitud „-ftrivial-auto-var-init=zero“).
- Seccomp süsteemi, kasutades protsessi kontrolli režiimi kasutajaruumis, failide descriptorite jälgitavasse protsessi asenduste tegemine, et täielikult emuleerida süsteemikõnesid, mis viivad failide descriptorite loomisse. See funktsionaalsus on nõutud isoleeritud konteinerite süsteemides ja Chrome'i liivakasti teostustes.
- xtensa ja csky arhitektuuride jaoks on lisatud süsteemikõnede piirangute toimetamine seccomp alamsüsteemi abil. Xtensa jaoks on täiendavalt ellu viidud auditimehhanismi tugi.
- uus capability-lipp CAP_CHECKPOINT_RESTORE, mis võimaldab ilma täiendavate privileegide edastamiseta anda juurdepääsu protsesside seisundi külmutamise ja taastamisega seotud võimalustele.
- GCC 11-s on ellu viidud kõik vajalikud funktsioonid
silumisvahendi KCSAN (Kernel Concurrency Sanitizer) jaoks, mis on mõeldud tuvastama rikkeolukordi süsteemis. Nii võib KCSAN-i nüüd kasutada GCC-s kokku pandud kerneles. - AMD Zen ja uuemate CPU mudelite jaoks P2PDMA tehnoloogia tugi, mis võimaldab DMA otse edastada andmeid kahe seadme vahel, mis on ühendatud PCI bussiga.
- dm-cryptis on lisatud režiim, mis vähendab viivitusi, tehes krüptograafilist töötlemist andmete puhul ilma tööde järjekordadeta. Antud režiim on samuti vajalik blokeerivates seadmetes (seadmed, mille alad peavad olema kirjutatavad järjestikku, uuendades kogu plokkide rühma). Töö on tehtud läbilaskevõime suurendamiseks ja viivituste vähendamiseks dm-cryptis.
- 32-bitiste külalissüsteemide toe kood on eemaldatud, mis töötavad paravirtualiseerimise režiimis Xen hüperviisori all. Selliste süsteemide kasutajad peaksid minema üle 64-bitiste kernelite kasutamisele külaliskeskkondades või kasutama paravirtualiseerimise (PV) asemel täis (HVM) või kombineeritud (PVH) virtualiseerimise režiime.
- Diskisüsteem, sisend/väljund ja failisüsteemid
- Btrfs failisüsteemis «rescue» mountivalik, mis ühtlustab juurdepääsu kõikidele muudele taastamisvalikutele. Eemaldatud on «alloc_start» ja «subvolrootid» valikute tugi, samuti on aegunud «inode_cache» valiku tugi. Sooritusvõime on optimeeritud, eriti on fsync() toimingute täitmine oluliselt kiirenenud. võimalus kasutada alternatiivseid kontrollsummatüüpe, mis erinevad CRC32c-st.
- inline-krüptimise (Inline Encryption) kasutamine ext4 ja F2FS failisüsteemides, mille aktiveerimiseks on ette nähtud mäletamise valik «inlinecrypt». Inline-krüptimise režiim võimaldab rakendada salvestusseadmest klahvidega krüptimist, mis teostab sissetuleku/ väljundi läbipaistvat krüptimist ja dekrüptimist.
- XFS-is inode'i (flush) tühjendamine täiesti asünkroonse režiimis, mis ei blokeeri protsesse, kui mälu puhtaks tegemise operatsioon on käimas. Lahendatud on vanem probleem kvotidega, millega nõrgalt jälgiti pehme limiidi ületamise ning inode'i arvu piiramise hoiatuste õigeid andmeid. DAX-i toe rakendamine on ühtlustatud ext4 ja xfs jaoks.
- Ext4-s bitikaartide jaotuse ennetav laadimine. Koos mitte-initsialiseeritud rühmade skaneerimise piiranguga, on optimeerimine lühendanud väga suurte jaotuste montaaži aega.
- F2FS-is ioctl F2FS_IOC_SEC_TRIM_FILE, mis võimaldab kasutada TRIM/discard käske, et füüsiliselt nullida faili spetsiifilised andmed, näiteks juurdepääsuvõtmete eemaldamiseks ilma jääkandmete salvestamiseta.
F2FS-is on samuti uus prahi kogumise režiim GC_URGENT_LOW, mis töötab agressiivsemalt, välistades teatud kontrollid ooterežiimist (idle) enne prahi kogumise alustamist. - bcache'is on bucket_size muutunud ekstentide jaoks 16 bitist 32 bitiseks, valmistades tee zoniseeritud seadmete vahemälu kasutamiseks.
- SCSI alamsüsteemi on lisatud inline-krüptimise kasutamise võimalus, mis põhineb UFS-kontrollerite ().
- Uus tuuma käskluse parameeter «debugfs», mis võimaldab hallata sama nimega pseudo-failisüsteemi kättesaadavust.
- NFSv4.2 kliendis on tagatud failide laiendatud atribuute (xattr) toetamine.
- dm-dust interfäär, et välja anda loetelu kõigist avastatud vigaste plokkide diskil («dmsetup message dust1 0 listbadblocks»).
- md/raid5 jaoks on lisatud parameeter /sys/block/md1/md/stripe_size, et seadistada STRIPE-ploki suurust.
- NVMe salvestusseadmete jaoks tugi seadme zoniseerimise (ZNS, NVM Express Zoned Namespace) käskudele, mis võimaldab jagada salvestusruumi tsoonideks, mis koosnevad plokkide rühmadest, et paremini hallata andmete asukohta salvestusseadmest.
- Võrgusüsteem
- Netfilter'is võime keelduda pakettide edastamisest enne marsruudimise kontrollimist (keeldumise väljend REJECT võib nüüd kasutada mitte ainult INPUT, FORWARD ja OUTPUT ahelates, vaid ka PREROUTING etapis icmp ja tcp jaoks).
- nftables võime auditeerida seadistuse muutustega seotud sündmusi.
- nftables API-s netlink toetatakse anonüümseid ahelaid, millele antakse nime dünaamiliselt tuumal. Kui anonüümsete ahelatega seotud reegel eemaldatakse, eemaldatakse ka see ahel automaatselt.
- BPF-is on lisandunud iteratiivsete funktsioonide tugi, et käia läbi, filtreerida ja muuta assotsiatiivsete massiivide (map) elemente ilma andmete kopeerimiseta kasutajaruumi. Iteraatoreid saab kasutada TCP ja UDP soketite puhul, mis võimaldab BPF-programmidel avatud soketite loendeid üle vaadata ja sealt vajalikke andmeid välja tõmmata.
- On lisatud uus BPF-programmi tüüp BPF_PROG_TYPE_SK_LOOKUP, mis käivitatakse, kui tuum otsib sobivat kuulamis soketit sissetulevatele ühendustele. Taolise BPF-programmi abil on võimalik luua käsitlejaid, mis teevad otsuseid selle kohta, millise soketiga peaks ühendus seonduma, ilma et see piirduks süsteemi kutsumise bind() raamistikuga. Näiteks on võimalik siduda üks soket aadresside või portide vahemikku. Lisaks on bpf_setsockopt() lisatud tugi SO_KEEPALIVE lipule ja rakendatud on BPF_CGROUP_INET_SOCK_RELEASE käsitlejate seadistamise võimalus, mis kutsutakse esile soketi vabastamisel.
- On rakendatud protokolli (Parallel Redundancy Protocol), mis võimaldab Etherneti põhjal rakendada rakendustele läbipaistvat varurežiimi lülitumist, kui mis tahes võrgu komponendid võivad ebaõnnestuda.
- mac80211 stacks toetatakse neljaastmelist WPA/WPA2-PSK kanali kokkulepimist päästepunkti režiimis.
- On lisatud võimalus vahetada qdisc (queue discipline) planeerijat, et kasutada vaikimisi võrgu järjekordade haldamise algoritmi FQ-PIE (Flow Queue PIE), mille eesmärk on vähendada vahebufferite pakkide negatiivset mõju piirides olevatel võrgu seadmetel (bufferbloat) kaabelmodemiga võrkudes.
- MPTCP (MultiPath TCP) funktsioonide tugi on lisatud, mis on TCP protokolli laiendus, et korraldada TCP-ühenduse toimimist, edastades pakette samaaegselt mitme marsruudi kaudu, mis on seotud erinevate IP-aadressidega. Lisatud on sünnituskoogi, DATA_FIN, automaatsete puhvrite seadistamise, pistikute diagnostika ja REUSEADDR, REUSEPORT ning V6ONLY lippude kasutamise tugi setsockopt funktsioonis.
- Virtuaalsetele marsruuditabelitele VRF (Virtual Routing and Forwarding), mis võimaldavad mitmete marsruudidomeenide töötamist ühes süsteemis, on rakendatud 'strict' režiim. Käesolevas režiimis saab virtuaalne tabel olla seotud ainult marsruuditabeliga, mida ei kasutata muudes virtuaalsetes tabelites.
- Ath11k traadita draiver toetab 6GHz sagedust ja .
- Varustus
- UniCore arhitektuuri tugi on eemaldatud, mis oli välja töötatud Peking Ülikooli mikropõhikümnendikus ning lisatud Linuxi tuuma alates 2011. aastast. See arhitektuur on alates 2014. aastast olnud toeta ja ei toeta GCC-d.
- RISC-V arhitektuuri jaoks on toetatud (debugfs-liides tuuma kattevuse analüüsimiseks), kmemleak (mälu leketuvastus süsteem), virnastamise kaitsmine, üleminekute sildid ja tickless-operatsioonid (signaalist sõltumatu taimeri mitmeülesanne).
- PowerPC arhitektuuri jaoks on rakendatud juuresolevate spinlock järjekordade tugi, mis on oluliselt parandanud jõudlust lukustuste konflikti olukordades.
- ARM ja ARM64 arhitektuuride jaoks on vaikimisi kasutusele võetud CPU sageduse reguleerimise mehhanism (cpufreq guvernöör), mis kasutab otsuste langetamiseks sageduse muutmisel otse teavet töö planeerijalt ja saab kohe pöörduda cpufreq draiverite poole, et kiirelt muuta sagedust, kohandades CPU tööparameetreid vastavalt praegusele koormusele.
- Intel videokaartide DRM-draiveris i915 on lisatud tugi Rocket Lake mikroarhitektuuriga kiipidele. Intel Xe DG1. .
- Navi 21 Navi 22 Lisatud on omadus kuvamise pööramiseks 90, 180 või 270 kraadi.
Huvitav on, et AMD GPU jaoks on draiver...Huvitav, et AMD GPU jaoks on olemas draiver. kõige suurem juht sõlmes — selle koodis on umbes 2,71 miljonit rida, mis moodustab ligikaudu 10% kogu südamiku suurusest (27,81 miljonit rida). Samuti kuulub 1,79 miljonit rida automaatselt genereeritud pealkirjade failidele andmete jaoks GPU registrite jaoks, samas kui C-kood hõlmab 366 tuhat rida (võrdluseks, Intel i915 draiver sisaldab 209 tuhat rida ja Nouveau — 149 tuhat).
- Nouveau draiveris raam-rahulolu kontrollimise toetamine (Tsüklilise Üksikasjaliku Kontrolli) NVIDIA GPU ekraanide mootorratastes. Rakendus põhineb dokumentatsioonil, mille on esitanud NVIDIA.
- LCD-paneelide draiverid on lisatud: Frida FRD350H54004, KOE TX26D202VM0BWA, CDTech S070PWS19HP-FC21, CDTech S070SWV29HG-DC44, Tianma TM070JVHG33 ja Xingbangda XBD599.
- Heli sub-süsteemis ALSA on rakendatud toetus (välist HDMI-seadmete pideva toite hoidmise režiim, et vältida viivitusi esitamise alustamisel) ja mikrofoni aktiveerimise ja muteerimise nuppude valgustuse juhtimiseks, lisaks on toetatud uusi seadmeid, sealhulgas kontrollerit .
- Toetatakse ARM-plaate, seadmeid ja platvorme: Pine64 PinePhone v1.2, Lenovo IdeaPad Duet 10.1, ASUS Google Nexus 7, Acer Iconia Tab A500, Qualcomm Snapdragon SDM630 (kasutuses Sony Xperia 10, 10 Plus, XA2, XA2 Plus ja XA2 Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, viis uut plaati NXP i.MX6 platvormile, MikroTik RouterBoard 3011, Xiaomi Libra, Microsoft Lumia 950, Sony Xperia Z5, MStar, Microchip Sparx5, Intel Keem Bay, Amazon Alpine v3, Renesas RZ/G2H.
Samas Lõuna-Ameerika Vaba Tarkvara Fond
variant — , puhastatud kõikidest tihenditest ja draiveritest, mis sisaldavad mittevaba komponente või koodikilde, mille rakendust piirab tootja. Uues väljaandes on keelatud mitmesuguste draiverite jaoks bloopide laadimine WiFi rtw8821c ja SoC MediaTek mt8183. Uuendatud on bloopide puhastamise kood draiverites ja Habanalabs, Wilc1000, amdgpu, mt7615, i915 CSR, Mellanox mlxsw (Spectrum3), r8169 (rtl8125b-2) ja x86 touchscreen alamsüsteemides.
Allikas: opennet.ru
