Pärast kahte kuud arendust Linus Torvalds ydinversioon . Kõige silmatorkavamate muudatuste seas on WireGuardi VPN-liidese integreerimine, USB4 toe lisamine, ajapõhiste nimede loomine, TCP ülekande käsitlejate loomise võimalus BPF abil, MultiPath TCP esialgne tugi, tuuma 2038. aasta probleemi kõrvaldamine, „bootconfig“ mehhanism ning ZoneFS failisüsteem.
Uues versioonis on 13702 parandust 1810 arendajalt,
patchi suurus on 40 MB (muudatused puudutasid 11577 faili, lisati 610012 rida koodi,
eemaldati 294828 rida). Ligikaudu 45% kõigist 5.6 esitatud muudatustest
muudatustest on seotud seadme draiveritega, umbes 15% muudatustest on
puudutab riistvaraarhitektuuride jaoks spetsiifilisi koodimuudatusi, 12% on seotud võrgu stalinitustega, 4% - failisüsteemidega ja 3% - sisemiste
VPN-liidese rakendamine
alamsüsteemidega.
:
- Võrgusüsteem
- , mis on välja töötatud uusimate krüptograafia meetodite (ChaCha20, Poly1305, Curve25519, BLAKE2s) põhjal, on lihtne kasutada, ei ole keeruline, on tõestanud enda usaldusväärsust mitmes suuremas rakenduses ning tagab väga kõrge jõudluse (üle 3,9 korda kiirem kui OpenVPN). WireGuard kasutab krüpteerimisvõtmetele suunatud marsruutimise kontseptsiooni, mis tähendab, et iga võrgu liidese jaoks on seotud privaatvõti ja kasutatakse avatud võtmete omavaheline sidumist. Tühiste avatud võtmete vahetamine ühenduse loomiseks toimub SSH-prinsiibi sarnaselt. WireGuardi tööks vajalikud krüptograafilised primitiivid on lisatud standardse Crypto API ja tuuma osana komponentide integreerimine, mis on vajalik MPTCP (MultiPath TCP) toe tagamiseks, TCP protokolli laiendus, et korraldada TCP-ühenduse töötamist pakettide edastamisega samaaegselt mitmete radade kaudu, mis on seotud erinevate IP-aadressidega. Võrgurakenduste jaoks näib selline koondatud ühendus tavalisena TCP-ühenduseks, kuid kogu voogude jaotus toimub MPTCP abil. Multipath TCP võib olla kasulik nii läbilaskevõime suurendamiseks kui ka usaldusväärsuse suurendamiseks. Näiteks võib MPTCP-d kasutada andmete edastamiseks nutitelefonis, kasutades samaaegselt WiFi ja 4G linke või kulude vähendamiseks serveri ühendamisel mitme odava lingi kaudu ühe kalli asemel. võrgu järjestuste töötlemise distsipliini sch_ets toetamine ( .
- Enhanced Transmission Selection
- поддержка дисциплины обработки сетевых очередей sch_ets (, IEEE 802.1Qaz), mis pakub võimalust jaotada ribalaiust erinevate liiklusklasside vahel. Kui teatud liiklusklassile määratud ribalaius on madalam kui antud ribalaius, võimaldab ETS teistel liiklusklassidel kasutada kättesaadavat (kasutamata) ribalaiust. Qdisc sch_ets konfigureeritakse kui PRIO distsipliin ja kasutab liiklusklasse ribalaiuse rangete ja jagatud piirangute määramiseks. ETS töötab nagu distsipliinide kombinatsioon ja — kui liiklusklassidel on ranged piirangud, kasutatakse PRIO-d, kuid kui liiklusjärjekorras ei ole andmeid, töötab see nagu DRR.
- Lisatud uus BPF-programmi tüüp , mis võimaldab rakendada kernelifunktsiooni töötlejad BPF kaudu. Praegu on antud võimalust juba võimalik kasutada TCP ülekande juhtimise algoritmide rakendamiseks BPF-programmidena. Näiteks BPF-programm rakendusega .
- On vastu võetud kernelisse , mis edastab tööriista ioctl()'lt netlinki liidese kasutamisele Lisatud võrgujärjekordade haldamise algoritmi FQ-PIE (Flow Queue PIE) rakendus, mille eesmärk on vähendada pakettide vahebufferite negatiivset mõju piiriüleses võrguseadmestikus (bufferbloat). FQ-PIE näitab suurt efektiivsust kaabelmodemiga süsteemides.
- Btrfs failisüsteemile
- Diskisüsteem, sisend/väljund ja failisüsteemid
- asünkroonne rakendus DISCARD operatsioonile (vabastatud plokkide märkimine, mida ei pea füüsiliselt talletama). Alguses viidi DISCARD operatsioonid läbi sünkronselt, mis võis põhjustada jõudluse langust, kuna tuli oodata vastavaid käske salvestusseadmest. Asünkroonne rakendus võimaldab mitte oodata, kuni salvestusseade DISCARD lõpetab, ja teostada see operatsioon taustal. асинхронная реализация операции DISCARD (пометка освобождённых блоков, которые уже можно не хранить физически). Изначально операции DISCARD выполнялись синхронно, что могло приводить к проседанию производительности из-за ожидания завершения соответствующих команд накопителями. Асинхронная реализация позволяет не ждать завершения DISCARD накопителем и выполнять данную операцию в фоне.
- XFS-is koodi puhastamine, kus on kasutatud vanu 32-bitiseid ajaloendureid (tüüp time_t on asendatud time64_t), mis toovad kaasa 2038. aasta probleemid. Parandatud on mälulekkeid ja vigu, mis ilmnesid 32-bitistel platvormidel. Kood on ümber kirjutatud laienetud atribuutidega töötamiseks.
- ext4 failisüsteemis tulemuslikkuse optimeerimine, mis on seotud inode'i lukustamise töötlemisega lugemise ja kirjutamise operatsioonide käigus. Otsese sisendi režiimis (Direct I/O) on paranenenud uuendamise tulemuslikkus. Probleemide diagnoosimise lihtsustamiseks on superplokis säilitatud esimese ja viimase veakoodi salvestamine.
- F2FS failisüsteemis on andmete salvestamise võimalus kokkusurutud kujul. Erandi failile või kataloogile saab kokkusurumise sisse lülitamiseks kasutada käsku „chattr +c file” või „chattr +c dir; touch dir/file”. Kogu partitsiooni kokkusurumiseks saab mount utiliidis kasutada valikut „-o compress_extension=ext”.
- Tuuma koosseisu on võetud failisüsteem , mis lihtsustab madala taseme tööd zoniseeritud salvestusseadmetega. Zoonitud seadmed viitavad kõvakettale või NVMe SSD-idele, kus salvestusruum on jagatud piirkondadeks, mis koosnevad plokkidest või sektoritest, kuhu on lubatud ainult järjestikune andmete lisamine, uuendades kogu plokigruppi. ZoneFS failisüsteem on välja töötatud Western Digitali poolt ning seob iga seadme piirkonna eraldi failiga, mida saab kasutada andmete salvestamiseks „raw”-režiimis ilma sektorite ja plokkide tasemel manipuleerimiseta, st võimaldab rakendustel kasutada failide API-d, mitte pöörduda otse plokiseadmest ioctl'iga.
- NFS-is on vaikimisi keelatud osade montaaž UDP kaudu. On lisatud tugi NFS 4.2 spetsifikatsioonis määratud otsekandmisvõimele failide vahel serverite vahel. Uus montaaživalik „softreval” on lisatud, võimaldades, et serveri tõrke korral kasutatakse vahemälus hoitud atribuutide väärtusi. Näiteks, kui see valik on määratud, säilib pärast serveri kättesaamatust võimalus navigeerida NFS-osade radadel ja pöörduda teabe poole, mis on vahemällu langenud.
- fs-verity mehhanismi jõudluse optimeerimine, mida kasutatakse üksikfailide terviklikkuse ja autentsuse kontrollimiseks. Järjepideva lugemise kiirus on suurenenud, tänu Merkle puu kasutamisele. FS_IOC_ENABLE_VERITY jõudlust on optimeeritud olukordades, kus mälu pole andmeid, rakendades andmeserveri lehe ettelugemist.
- Virtualiseerimine ja turvalisus
- SELinuxi mooduli töö ajal keelamine on välja kuulutatud vananenuks, ja tulevikus keelatakse juba aktiveeritud SELinuxi väljavõtmine. SELinuxi keelamiseks on vaja edastada parameeter "selinux=0" kernelivaliku real.
- ajaruumi (time namespaces) toetamine, mis võimaldab siduda konteineris süsteemi kellade oleku (CLOCK_REALTIME,
CLOCK_MONOTONIC, CLOCK_BOOTTIME), kasutada konteineris oma aega ja tagada, et konteineri migreerimisel teisele hostile jäävad CLOCK_MONOTONIC ja CLOCK_BOOTTIME lugemised muutumatuks (arvesta aega pärast laadimist, arvestades või mitte arvestades ooterežiimi). - Blokeeritud puu /dev/random on eemaldatud. /dev/random käitumine on viidud lähedale /dev/urandomile, et vältida energia blokeerimist pärast puu initsialiseerimist.
- Kerneli põhikoostisesse on lisatud draiver, mis võimaldab VirtualBoxi all töötavatel külalisüsteemidel mountida host-keskkonna poolt eksporditud katalooge (VirtualBox Shared Folder).
- BPF alamsüsteemi on lisatud komplekt plaastritest (), Retpoline mehhanismi rakendamise tingimustes Spectre V2 rünnakute kaitseks, mis võimaldab suurendada BPF-programmide kutse efektiivsust seotud sündmuste ilmnemisel (nt kiirendab XDP protsessorite kutseid võrgu paketi saabumise korral).
- Lisatud on draiver APU AMD TEE (Trusted Execution Environment) toetamiseks.
- Mälu ja süsteemiteenused
- BPF-s on lisatud globaalsed funktsioonide toetused. Arendus käib algatuse raames, et lisada funktsioonide raamatute tugi, mida saab BPF programmides kasutada. Järgmine etapp on dünaamiliste laienduste toomine, mis võimaldavad globaalsete funktsioonide laadimist, sealhulgas olemasolevate globaalsete funktsioonide asendamist nende kasutamise ajal. BPF alamsüsteemi on lisatud ka map operatsiooni variandi tugi (mida kasutatakse püsivate andmete salvestamiseks), mis toetab partii režiimi täitmist.
- seade «cpu_cooling», mis võimaldab ülekuumenenud CPU-d jahutada, viies selle lühikesteks perioodideks oote(režiimi) sisse.
- Lisa süsteemikõne , mis pakub täiendavate lipukeste komplekti failiteede määrangute piiramiseks (punktide ristumise, sümboolsete linkide, magic-linkide (/proc/PID/fd) ja komponendi „..“ keeldude).
- Mitmekesistele big.LITTLE arhitektuuridel põhinevatele süsteemidele, mis ühendavad ühes kiibis võimsamad ja vähem efektiivsed energiatõhusad CPU tuumad, on reaalajas ülesannete täitmisel tagatud uclamp_min parameetri seadmine ( 5.3 tuumas koormuse kinnitamise mehhanism). Antud parameeter tagab, et ülesanne paigutatakse planeerija poolt CPU tuumale, millel on piisavalt jõudlust.
- Tuuma on vabastatud . Viimased jäägid, kus ajaperioodi loenduriks kasutati 32-bitist (signed int) type time_t, mis arvestades alates 1970. aastast peaks 2038. aastal üle voolama, on asendatud.
- Jätkub asünkroonse sisendi/väljundi liidese täiustamine , kus uute operatsioonide tugi: IORING_OP_FALLOCATE (tühi ala ettevalmistamine), IORING_OP_OPENAT,
IORING_OP_OPENAT2,
IORING_OP_CLOSE (failide avamine ja sulgemine),
IORING_OP_FILES_UPDATE (failide lisamine ja eemaldamine kiire juurdepääsu loost),
IORING_OP_STATX (faili info pärimine),
IORING_OP_READ,
IORING_OP_WRITE (lihtsustatud analoogid IORING_OP_READV ja IORING_OP_WRITEV),
IORING_OP_FADVISE,
IORING_OP_MADVISE (asünkroonilised variandid posix_fadvise ja madvise kutsumistest), IORING_OP_SEND,
IORING_OP_RECV (võrgu andmete saatmine ja vastuvõtmine),
IORING_OP_EPOLL_CTL (failikirjete epoll käitamisel). - Lisa süsteemikõne , mis võimaldab protsessil väljastada teise protsessi avatud faili failikäsitsija.
- mehhanism «bootconfig», mis võimaldab lisaks käsurea valikutele määrata tuuma tööparameetreid konfiguratsioonifaili kaudu. Sarnaste failide lisamiseks initramfs kujule on ette nähtud utiliit bootconfig. Antud võimalust saab kasutada näiteks kprobe'ide seadistamiseks käivitamise ajal.
- andmete salvestamise ja lugemise oote-mehhanism nimetamata kanalites (pipe). Muudatus võimaldas kiirendada selliste ülesannete täitmist nagu suurte projektide paralleelne kokkupanek. Sellegipoolest võib optimeerimine põhjustada võistlusolukorra GNU make'is versioonis 4.2.1 esinenud vea tõttu, mis on kõrvaldatud versioonis 4.3.
- Funktsiooni prctl() on lisatud lipp PR_SET_IO_FLUSHER, mida saab kasutada mälu vabastamisega seotud protsesside märgistamiseks, kellele ei tohiks kohaldada piiranguid süsteemi mälu puudumise korral.
- Androidis kasutataval mäluhalduse süsteemil ION põhinev alamsüsteem , mis võimaldab hallata DMA-puhversüsteemide jagamist erinevate draiverite, rakenduste ja alamsüsteemide vahel.
- Riistvaraarhitektuurid
- Lisatud on E0PD laienduse tugi, mis ilmus ARMv8.5-s ja võimaldab kaitset spekulatiivsete käskude täitmisega seotud rünnakute vastu CPU-s. E0PD põhine kaitse toob kaasa väiksemad kulu, võrreldes KPTI (Kernel Page Table Isolation) kaitsega.
- ARMv8.5 arhitektuuriga süsteemide jaoks on lisatud RNG käsku tugi, mis võimaldab juurdepääsu riistvaralisele pseudojuhuslike arvude generaatorile. Kerneli sisse on RNG käsku kasutatud entropia genereerimiseks, kui algatada kerneli poolt pakutavat pseudojuhuslike arvude generaatorit.
- Toetust MPX (Memory Protection Extensions) laiendusele, mis oli lisatud kernelisse ja mis võimaldab viidete piire jälgida, on eemaldatud. Edasi nimetatud tehnoloogia ei leidnud laialdast levikut kompilaatorites ja on GCC-st eemaldatud.
- RISC-V arhitektuurile on rakendunud KASan (Kernel address sanitizer) tõrkeotsingu tööriista tugi, mis tagab mäluga töötamisel vigade avastamise.
- Varustus
- Tugi on rakendatud spetsifikatsioonile , mis põhineb Thunderbolt 3 protokollil ja tagab kuni 40 Gbit/s andmeedastuskiirus, säilitades samas tagasipööratava ühilduvuse USB 2.0 ja USB 3.2-ga. Sarnaselt võimaldab USB 4.0 liides tunnelda erinevaid protokolle ühe kaabli kaudu, mille pistik on , sealdes PCIe, Display Port ja USB 3.x, samuti protokollide tarkvaralised rakendused, näiteks hostide vaheliste võrgulinkide organiseerimiseks. Teostus põhineb juba Linuxi tuumas olemasoleval Thunderbolti draiveril ja kohandab selle tööks USB4 ühilduvate hostide ja seadmete jaoks. Muudatused lisavad samuti toetuse Thunderbolt 3 seadmete jaoks ühenduste haldamise tarkvaras (Connection Manager), mis vastutab tunnelite loomise eest, et ühendada mitu seadet läbi ühe pesa.
- Draiveris amdgpu on lisatud HDCP 2.x (High-bandwidth Digital Content Protection) kopeerimiskaitse algtoetuse. Lisatud tugi AMD Pollock ASIC kiibile, mis põhineb Raven 2-l. Implementeritud GPU lähtestamise võimalus Renoir ja Navi peredele.
- Intel'i graafikakaartide DRM-draiveris on DSI VDSC tugi Ice Lake ja Tiger Lake mikroarhitektuuri kiipidele, rakendatud LMEM mmap (seadmestik kohaliku mälu) ning parendatud VBT (Video BIOS Table) parsimist, HDCP 2.2 toe rakendamine Coffee Lake kiipide jaoks.
- Jätkati amdkfd draiveri (diskreetsete GPU-de, nagu Fiji, Tonga, Polaris) koodi ühtlustamist amdgpu draiveriga.
- Kohandatud k10temp draiver, mis nüüd toetab AMD Zen CPU-de pinget ja voolu parameetrite väljundit ning laienenud teavet Zen ja Zen 2 CPU-de temperatuurianduritelt.
- nouveau draiveris on kinnitatud käivitustarkvara verifitseerimise režiim NVIDIA mikroarhitektuuri Turing (GeForce RTX 2000) GPU-dele, mis võimaldas 3D-kiirenduse toe lisamist nendele kaartidele (nõuab ametlike NVIDIA digitaalselt allkirjastatud käivitustarkvarade laadimist). Lisatud TU10x graafikamoottori tugi. Lahendatud probleemid HD Audio-ga.
- Lisatud andmete kokkusurutuse tugi DisplayPort MST (Multi-Stream Transport) kaudu edastamise ajal.
- Uus draiver «» Qualcommi traadita kiipide jaoks, millel on toetus 802.11ax.
Draiver põhineb mac80211 rakenduspinnal ja toetab pääsupunkti, tööjaama ja Mesh-võrgu sõlme režiime. - sysfs kaudu pakutakse ligipääs loetavatele temperatuuriandurite näitudele, mida kasutatakse kaasaegsetes kõvaketastes ja SSD-des.
- märkimisväärsed muudatused ALSA helisüsteemis, mille eesmärk on vabaneda koodist (32-bitise time_t tüübi kasutamine snd_pcm_mmap_status ja snd_pcm_mmap_control liidestes). Lisatud toetus uutele helikodeerijatele
Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770. - LCD-paneelide draiverid Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
BOE NV140FHM-N49,
Satoz SAT050AT40H12R2,
Sharp LS020B1DD01D. - ARM-plaatide ja Gen1 Amazon Echo platvormide tugi (OMAP3630 baasil), Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
Tolino Shine 3 eRaamatute luger,
Embedded Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX ja HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
Rockchip Radxa Dalang Carrier, Radxa Rock Pi N10, VMARC RK3399Pro SOM
ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Unisoc SC9863A, Qualcomm SC7180. Lisatud PCIe-kontrolleri tugi, mida kasutatakse Raspberry Pi 4-s.
Samas Lõuna-Ameerika Vaba Tarkvara Fond
variant — , puhastatud mittesisalduvate komponentide või koodilõikude, mille kasutamist piirab tootja, sisaldavatest tarkvaradest ja draiveritest. Uues väljaandes on keelatud AMD TEE, ATH11K ja Mediatek SCP draiverites blobide laadimine. Uuendatud blobide puhastamise kood AMD PSP, amdgpu ja nouveau draiverites ja alamsüsteemides.
Allikas: opennet.ru
