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
- vĂ”rgurea arendusprotseduuride toetamine 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. asĂŒnkroonne DISCARD-operatsiooni teostamine (vabastatud plokkide mĂ€rkimine, mida ei pea enam fĂŒĂŒsiliselt sĂ€ilitama). Esialgu viidi DISCARD-operatsioonid lĂ€bi sĂŒnkroonselt, mis vĂ”is pĂ”hjustada jĂ”udluse langust vastava kĂ€sku tĂ€itva seadme ooteaja tĂ”ttu. AsĂŒnkroonne teostus vĂ”imaldab mitte oodata DISCARD-i lĂ”petamist seadme poolt ja teostada seda toimingut taustal.
- 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
