Két hónapos fejlesztés után Linus Torvalds kernel kiadás A legjelentősebb változások között szerepel a VPN-interfész integrációja. WireGuard, USB4 támogatás, idő névterek, TCP torlódáskezelők létrehozásának lehetősége BPF használatával, a MultiPath TCP kezdeti támogatása, kernel javítás a 2038-as év problémájára, a "bootconfig" mechanizmus, ZoneFS.
Az új verzió 13702 1810 javítást tartalmaz XNUMX XNUMX fejlesztőtől,
javítás mérete - 40 MB (a változások 11577 fájlt érintettek, hozzáadva 610012 kódsort,
294828 sor eltávolítva). Az 45-ben bemutatott összesnek körülbelül 5.6%-a
a változtatások eszközillesztőkkel kapcsolatosak, a változtatások körülbelül 15%-a
hozzáállás a hardver architektúrákra jellemző kód frissítéséhez, 12%
a hálózati veremhez, 4% a fájlrendszerekhez és 3% a belsőhöz kapcsolódik
kernel alrendszerek.
:
- Hálózati alrendszer
- VPN interfész megvalósítása , amely modern titkosítási módszereken (ChaCha20, Poly1305, Curve25519, BLAKE2s) alapul, könnyen használható, komplikációktól mentes, számos nagyszabású implementációban bizonyította hatékonyságát, és nagyon nagy teljesítményt nyújt (3,9-szer gyorsabb OpenVPN áteresztőképesség szerint). WireGuard A titkosítási kulcsútválasztás koncepcióját alkalmazzák, amely magában foglalja egy privát kulcs hozzárendelését minden hálózati interfészhez, és nyilvános kulcsok használatát a kötéshez. A nyilvános kulcsok cseréje a kapcsolat létrehozásához hasonló az SSH-hoz. A működéshez szükséges. WireGuard kriptográfiai primitívek a könyvtárból a szabványos Crypto API részeként és a magba .
- az MPTCP (MultiPath TCP) támogatásához szükséges komponensek integrációja, a TCP-protokoll kiterjesztése a TCP-kapcsolat működésének megszervezésére a csomagok egyidejű, több útvonalon történő kézbesítésével, különböző, különböző IP-címekhez tartozó hálózati interfészeken keresztül. Hálózati alkalmazások esetén az ilyen összesített kapcsolat úgy néz ki, mint egy normál TCP-kapcsolat, és az összes áramlási szétválasztási logikát az MPTCP hajtja végre. A többutas TCP használható az átviteli sebesség és a megbízhatóság növelésére. Az MPTCP-vel például megszervezhető okostelefonon az adatátvitel WiFi és 4G kapcsolattal egyidejűleg, vagy csökkenthető a költségek, ha egy szervert egy drága helyett több olcsó link segítségével csatlakoztatunk.
- támogatja a sch_ets (, IEEE 802.1Qaz), amely lehetővé teszi a sávszélesség elosztását a forgalom különböző osztályai között. Ha egy adott forgalmi osztály terhelése a kiosztott sávszélesség alatt van, akkor az ETS lehetővé teszi, hogy más forgalmi osztályok is használják a rendelkezésre álló (nem használt) sávszélességet. A Qdisc sch_ets PRIO diszciplínaként van konfigurálva, és forgalmi osztályokat használ a szigorú és megosztott sávszélesség-korlátok meghatározásához. Az ETS tudományágak kombinációjaként működik и — ha szigorúan korlátozott forgalmi osztályok vannak, akkor a PRIO kerül alkalmazásra, de ha nincs forgalom a sorban, akkor DRR-ként működik.
- Új típusú BPF programok kerültek hozzáadásra , amely lehetővé teszi a kernel függvénykezelők megvalósítását a BPF-en keresztül. Jelenleg ez a funkció már használható TCP torlódáscsökkentő algoritmusok megvalósítására BPF programok formájában. Mint például BPF program algoritmus implementációval .
- Elfogadva a magba , fordítóeszközök az ioctl() segítségével . Az új felület megkönnyíti a bővítmények hozzáadását, javítja a hibakezelést, lehetővé teszi az állapotváltozásokról szóló értesítések küldését, leegyszerűsíti a kernel és a felhasználói terület közötti interakciót, valamint csökkenti a szinkronizálandó nevesített listák számát.
- Az FQ-PIE (Flow Queue PIE) hálózati sorkezelési algoritmus hozzáadott megvalósítása, amelynek célja a köztes csomagpufferelés szélső hálózati berendezésekre gyakorolt negatív hatásának csökkentése (bufferbloat). Az FQ-PIE nagy hatékonyságot mutat, ha kábelmodemes rendszerekben használják.
- Lemez alrendszer, I/O és fájlrendszerek
- Btrfs fájlrendszerhez a DISCARD művelet aszinkron megvalósítása (a felszabadult blokkok megjelölése, amelyeket már nem kell fizikailag tárolni). Kezdetben a DISCARD műveleteket szinkronban hajtották végre, ami teljesítménycsökkenéshez vezethet, mivel a meghajtók a megfelelő parancsok befejezésére várnak. Az aszinkron megvalósítás lehetővé teszi, hogy ne várja meg, amíg a meghajtó befejezi a DISCARD-ot, és ezt a műveletet a háttérben hajtja végre.
- XFS-ben A régi 32 bites időszámlálókat használó kód megtisztítása (a time_t típust time64_t váltotta fel), ami a 2038-as problémához vezetett. Javítottuk a 32 bites platformokon előforduló hibákat és memóriasérüléseket. A kódot átdolgoztuk, hogy kibővített attribútumokkal működjön.
- Az ext4 fájlrendszerhez Az olvasási és írási műveletek során az inode zárolásának kezeléséhez kapcsolódó teljesítményoptimalizálások. Jobb újraírási teljesítmény Direct I/O módban. A problémák diagnosztizálásának egyszerűsítése érdekében az első és az utolsó hibakód a szuperblokkban tárolódik.
- Az F2FS fájlrendszeren az adatok tömörített formában történő tárolásának képessége. Egyedi fájl vagy könyvtár esetén a tömörítés engedélyezhető a "chattr +c file" vagy a "chattr +c dir; érintse meg a könyvtárat/fájlt". A teljes partíció tömörítéséhez használja a „-o compress_extension=ext” opciót a mount segédprogramban.
- A kernel tartalmaz egy fájlrendszert , amely leegyszerűsíti az alacsony szintű munkát a zónás tárolóeszközökkel. A zónás meghajtók olyan merevmágneses lemezeken vagy NVMe SSD-ken lévő eszközöket jelentenek, amelyekben a tárterület blokk- vagy szektorcsoportokat alkotó zónákra van felosztva, amelyekbe csak az adatok egymás utáni hozzáadása engedélyezett, frissítve a teljes blokkcsoportot. Az FS ZoneFS-t a Western Digital fejlesztette ki, és a meghajtó minden zónájához külön fájlt társít, amely felhasználható adatok tárolására nyers módban, szektor- és blokkszintű manipuláció nélkül, pl. Lehetővé teszi az alkalmazások számára, hogy a fájl API-t használják ahelyett, hogy közvetlenül hozzáférnének a blokkeszközhöz egy ioctl használatával.
- Az NFS-ben a partíciók UDP-n keresztüli csatlakoztatása alapértelmezés szerint le van tiltva. Az NFS 4.2 specifikációban meghatározott támogatás hozzáadva a fájlok szerverek közötti közvetlen másolásához. Hozzáadott egy új "softreval" csatolási opciót, amely lehetővé teszi a gyorsítótárazott attribútumértékek használatát szerverhiba esetén. Például ennek a beállításnak a megadásakor, miután a kiszolgáló nem elérhető, továbbra is lehetséges az NFS-partíció útvonalain való mozgás és a gyorsítótárban elhelyezett információk elérése.
- az egyes fájlok integritásának és hitelesítésének ellenőrzésére használt fs-verity mechanizmus teljesítményének optimalizálása. Megnövelt szekvenciális olvasási sebesség a Merkle hash fa használatának köszönhetően. Az FS_IOC_ENABLE_VERITY teljesítményét optimalizáltuk, ha nincs adat a gyorsítótárban (az adatokat tartalmazó oldalak megelőző beolvasása lett alkalmazva).
- Virtualizáció és biztonság
- Az SE modul letiltásának lehetősége elavult.Linux működés közben, és a jövőben a már aktivált SE kirakodásaLinux tiltott lesz. Az SE letiltásáhozLinux A kernel parancssorában át kell adni a "selinux=0" paramétert.
- az idő névtereinek támogatása (idő névterek), lehetővé téve a rendszeróra állapotának a tárolóhoz való kötését (CLOCK_REALTIME,
CLOCK_MONOTONIC, CLOCK_BOOTTIME), használja a saját idejét a tárolóban, és amikor a tárolót másik gazdagépre helyezi át, ügyeljen arra, hogy a CLOCK_MONOTONIC és CLOCK_BOOTTIME értékek változatlanok maradjanak (vegye figyelembe a betöltés utáni időt, az alvó üzemmód figyelembevételével vagy anélkül ). - A /dev/random blokkolókészlet eltávolítva. A /dev/random viselkedése hasonló a /dev/urandomhoz az entrópia blokkolásának megakadályozása szempontjából a készlet inicializálása után.
- A mag kernel tartalmaz egy illesztőprogramot, amely lehetővé teszi a VirtualBoxot futtató vendégrendszerek számára a gazdagép által exportált könyvtárak csatlakoztatását (VirtualBox Shared Folder).
- A javítások készlete hozzáadásra került a BPF alrendszerhez (), amikor a Retpoline mechanizmust használja a Spectre V2 osztályú támadások elleni védelemre, lehetővé teszi a BPF-programok hívásának hatékonyságának növelését, amikor azokhoz kapcsolódó események fordulnak elő (például lehetővé teszi az XDP-kezelők hívásának felgyorsítását, ha egy hálózati csomag érkezik).
- Illesztőprogram hozzáadva az AMD APU-kba épített TEE (Trusted Execution Environment) támogatásához.
- Memória- és rendszerszolgáltatások
- A BPF kiegészítette a globális funkciók támogatását. A fejlesztés annak a kezdeményezésnek a részeként zajlik, amely a BPF-programokba beilleszthető függvénykönyvtárak támogatását célozza. A következő lépés a dinamikus kiterjesztések támogatása lesz, amelyek lehetővé teszik a globális funkciók betöltését, beleértve a meglévő globális funkciók lecserélését használat közben. A BPF alrendszer a leképezési művelet egy változatát is támogatja (mely állandó adatok tárolására szolgál), amely támogatja a kötegelt módban történő végrehajtást.
- A „cpu_cooling” eszköz lehetővé teszi a túlmelegedett CPU hűtését azáltal, hogy rövid időre készenléti állapotba helyezi.
- Rendszerhívás hozzáadva , amely további jelzőket kínál a fájl elérési út felbontásának korlátozására (beillesztési pontok keresztezésének tilalma, szimbolikus hivatkozások, mágikus hivatkozások (/proc/PID/fd), „../” komponensek).
- A big.LITTLE architektúrán alapuló heterogén rendszerek esetében, amelyek egy chipben egyesítik az erős és kevésbé hatékony energiahatékony CPU magokat, az uclamp_min paraméter a valós idejű feladatok végrehajtása során kerül beállításra ( az 5.3-as kernelben van egy mechanizmus a terhelés rögzítésére). Ez a paraméter biztosítja, hogy a feladatot az ütemező megfelelő teljesítménnyel rendelkező CPU magra helyezze.
- A kernel felszabadul . Lecserélték az utolsó megmaradt kezelőket, amelyek a 32 bites (signed int) time_t típust használták az epochális időszámlálóhoz, ami az 1970-es jelentést figyelembe véve 2038-ban túlcsordul.
- Az aszinkron I/O interfész folyamatos fejlesztése amelyben új műveletek támogatása: IORING_OP_FALLOCATE (üres területek lefoglalása), IORING_OP_OPENAT,
IORING_OP_OPENAT2,
IORING_OP_CLOSE (fájlok megnyitása és bezárása),
IORING_OP_FILES_UPDATE (fájlok hozzáadása és eltávolítása a gyors hozzáférési listáról),
IORING_OP_STATX (fájlinformációs kérés),
IORING_OP_READ,
IORING_OP_WRITE (az IORING_OP_READV és IORING_OP_WRITEV egyszerűsített analógjai),
IORING_OP_FADVISE,
IORING_OP_MADVISE (a posix_fadvise és madvise hívások aszinkron változatai), IORING_OP_SEND,
IORING_OP_RECV (hálózati adatok küldése és fogadása),
IORING_OP_EPOLL_CTL (műveleteket hajtson végre az epoll fájlleírókon). - Rendszerhívás hozzáadva , amely lehetővé teszi egy folyamat számára, hogy egy másik folyamatból lekérjen egy fájlleírót egy megnyitott fájlhoz.
- a „bootconfig” mechanizmus, amely a parancssori opciók mellett lehetővé teszi a kernel paramétereinek beállítását egy beállítási fájlon keresztül. Ha ilyen fájlokat szeretne hozzáadni az initramfs képfájlhoz, a rendszer a bootconfig segédprogramot javasolja. Ez a szolgáltatás például a kprobes rendszerindításkor történő beállítására használható.
- egy mechanizmus, amely az adatok névtelen csövekben történő írására és olvasására vár. A változás lehetővé tette az olyan feladatok felgyorsítását, mint a nagy projektek párhuzamos összeszerelése. Az optimalizálás azonban versenyfeltételekhez vezethet a GNU make-ban a 4.2.1-es kiadás hibája miatt, amelyet a 4.3-as verzióban javítottak.
- Hozzáadtuk a PR_SET_IO_FLUSHER jelzőt a prctl()-hez, amellyel megjelölhetők a memóriamentes folyamatok, amelyeket nem szabad korlátozni, ha a rendszernek kevés a memóriája.
- A használt technológia alapján Android Az ION memóriaelosztási rendszerben van egy megvalósított alrendszer , amely lehetővé teszi a DMA pufferek kiosztásának szabályozását az illesztőprogramok, alkalmazások és különböző alrendszerek közötti memóriaterületek megosztásához.
- Hardver architektúrák
- Támogatás hozzáadva az E0PD bővítményhez, amely az ARMv8.5-ben jelent meg, és védelmet tesz lehetővé a CPU-n végrehajtott utasítások spekulatív végrehajtásával kapcsolatos támadások ellen. Az E0PD alapú védelem alacsonyabb többletterhelést eredményez, mint a KPTI (Kernel Page Table Isolation) védelem.
- Az ARMv8.5 architektúrára épülő rendszerek esetében az RNG utasítás támogatása került hozzáadásra, hozzáférést biztosítva egy hardveres pszeudo-véletlenszám-generátorhoz. A kernelben az RNG utasítás entrópia generálására szolgál a kernel által biztosított pszeudo-véletlenszám-generátor inicializálása során.
- Eltávolítottuk a kernelbe hozzáadott MPX (Memory Protection Extensions) támogatását és lehetővé teszi a mutatók ellenőrzésének megszervezését annak biztosítása érdekében, hogy a memóriaterületek határait betartsák. Ezt a technológiát nem használták széles körben a fordítókban, és eltávolították a GCC-ből.
- A RISC-V architektúrához a KASan (Kernel address sanitizer) hibakereső eszköz támogatása valósult meg, amely segít azonosítani a memóriával végzett munka során fellépő hibákat.
- Оборудование
- Specifikáció támogatás megvalósítva , amely a Thunderbolt 3 protokollon alapul, és akár 40 Gbps átviteli sebességet biztosít, miközben megőrzi az USB 2.0 és USB 3.2 visszamenőleges kompatibilitását. -vel analógiával Az USB 4.0 interfész lehetővé teszi a különböző protokollok alagútvezetését egyetlen csatlakozós kábelen keresztül , beleértve a PCIe-t, a Display Portot és az USB 3.x-et, valamint a protokollok szoftveres implementációit, például a gazdagépek közötti hálózati kapcsolatok létrehozására szolgálókat. A implementáció a kernelben már meglévőkön alapul. Linux A Thunderbolt illesztőprogram frissült, és az USB4-kompatibilis gazdagépekkel és eszközökkel való együttműködésre lett optimalizálva. A változtatások a Thunderbolt 3 eszközök támogatását is hozzáadják a Connection Manager szoftveres implementációjához, amely egyetlen porton keresztül több eszköz csatlakoztatásához szükséges alagutak létrehozásáért felelős.
- Amdgpu illesztőprogramban A HDCP 2.x (High-bandwidth Digital Content Protection) másolásvédelmi technológia kezdeti támogatása. Hozzáadott támogatás a Raven 2-n alapuló AMD Pollock ASIC chiphez. Megvalósította a GPU visszaállításának lehetőségét a Renoir és Navi családoknál.
- DRM illesztőprogram Intel videokártyákhoz DSI VDSC támogatás az Ice Lake és Tiger Lake mikroarchitektúrán alapuló chipekhez, megvalósult az LMEM mmap (eszköz helyi memóriája), továbbfejlesztették a VBT (Video BIOS Table) elemzést, a Coffee Lake chipeknél HDCP 2.2 támogatást valósítottak meg.
- Folytatódott a munka az amdkfd illesztőprogram kódjának (a különálló GPU-khoz, mint például a Fiji, Tonga, Polaris) és az amdgpu illesztőprogram egyesítése.
- A k10temp illesztőprogramot átdolgozták, támogatva az AMD Zen CPU-k feszültség- és áramparamétereinek megjelenítését, valamint a Zen és Zen 2 CPU-kban használt hőmérséklet-érzékelőktől származó bővített információkat.
- A nouveau sofőrben a Turing mikroarchitektúrán (GeForce RTX 2000) alapuló ellenőrzött firmware-betöltési mód támogatása NVIDIA GPU-khoz, amely lehetővé tette a 3D-s gyorsítás támogatását ezeknél a kártyáknál (hivatalos firmware letöltése NVIDIA digitális aláírással szükséges). Hozzáadott támogatás a TU10x grafikus motorhoz. A HD Audio problémái megoldódtak.
- Hozzáadott támogatás az adatok tömörítéséhez DisplayPort MST-n (Multi-Stream Transport) keresztül történő átvitel esetén.
- Új illesztőprogram hozzáadva "» a 802.11ax szabványt támogató Qualcomm vezeték nélküli chipekhez.
Az illesztőprogram a mac80211 veremre épül, és támogatja a hozzáférési pont, a munkaállomás és a mesh hálózati csomópont módokat. - A sysf-eken keresztül hozzáférést biztosítunk a modern merevlemezeken és SSD-ken használt hőmérséklet-érzékelők leolvasható adataihoz.
- jelentős változások az ALSA hangrendszerben, amelyek célja a kód megszabadítása (elkerülve a 32 bites time_t típus használatát az snd_pcm_mmap_status és snd_pcm_mmap_control felületeken). Új audiokodekek támogatása hozzáadva
Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770. - illesztőprogramok LCD panelekhez 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 kártyák és Gen1 platformok támogatása: Amazon Echo (OMAP3630 alapú), 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 e-könyv olvasó,
Embedded Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX és 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 Hozzáadott támogatás a Raspberry Pi 8505-ben használt PCIe vezérlőhöz.
Ugyanakkor a Latin-Amerikai Szabad Szoftver Alapítvány
opció - , megtisztítva a nem szabad komponenseket vagy kódrészleteket tartalmazó firmware-től és illesztőprogram-elemektől, amelyek terjedelmét a gyártó korlátozza. Az új kiadás letiltja a blob-betöltést az AMD TEE, ATH11K és Mediatek SCP illesztőprogramjaiban. Frissített blob-tisztító kód az AMD PSP-ben, az amdgpu és a nouveau illesztőprogramokban és alrendszerekben.
Forrás: opennet.ru
