Vydanie jadra Linux 5.17

Po dvoch mesiacoch vývoja predstavil Linus Torvalds vydanie linuxového jadra 5.17. Medzi najvýznamnejšie zmeny: nový systém riadenia výkonu pre procesory AMD, možnosť rekurzívne mapovať ID používateľov v súborových systémoch, podpora prenosných kompilovaných programov BPF, prechod generátora pseudonáhodných čísel na algoritmus BLAKE2s, pomôcka RTLA pre analýzu vykonávania v reálnom čase, nový backend fscache pre ukladanie sieťových súborových systémov do vyrovnávacej pamäte, možnosť pripájať mená k anonymným operáciám mmap.

Nová verzia obsahuje 14203 1995 opráv od 37 11366 vývojárov, veľkosť opravy je 506043 MB (zmeny sa dotkli 250954 44 súborov, pribudlo 5.17 16 riadkov kódu, zmazalo sa 15 4 riadkov). Približne 4 % všetkých zmien zavedených v XNUMX súvisí s ovládačmi zariadení, približne XNUMX % zmien súvisí s aktualizáciou kódu špecifického pre hardvérové ​​architektúry, XNUMX % súvisí so sieťovým zásobníkom, XNUMX % sa týka súborových systémov a XNUMX % súvisia s internými subsystémami jadra.

Kľúčové inovácie v jadre 5.17:

  • Diskový subsystém, I/O a súborové systémy
    • Implementovaná možnosť vnoreného mapovania ID používateľov pripojených súborových systémov, slúžiace na porovnanie súborov konkrétneho používateľa na pripojenom cudzom oddiele s iným používateľom na aktuálnom systéme. Pridaná funkcia vám umožňuje rekurzívne používať mapovanie nad súborovými systémami, pre ktoré je mapovanie už aplikované.
    • Subsystém fscache, ktorý sa používa na organizáciu ukladania údajov do vyrovnávacej pamäte v lokálnom súborovom systéme údajov prenášaných prostredníctvom sieťových súborových systémov, bol úplne prepísaný. Nová implementácia sa vyznačuje výrazným zjednodušením kódu a nahradením zložitých operácií plánovania a sledovania stavov objektov jednoduchšími mechanizmami. Podpora pre nový fscache je implementovaná v súborovom systéme CIFS.
    • Subsystém sledovania udalostí vo fanotify FS implementuje nový typ udalosti FAN_RENAME, ktorý vám umožňuje okamžite zachytiť operáciu premenovania súborov alebo adresárov (predtým sa na spracovanie premenovania používali dve samostatné udalosti FAN_MOVED_FROM a FAN_MOVED_TO).
    • Súborový systém Btrfs má optimalizované protokolovanie a operácie fsync pre veľké adresáre, implementované skopírovaním iba indexových kľúčov a znížením množstva protokolovaných metadát. Bola poskytnutá podpora indexovania a vyhľadávania podľa veľkosti záznamov voľného miesta, čo znížilo latenciu približne o 30 % a skrátilo čas vyhľadávania. Povolené prerušiť operácie defragmentácie. Možnosť pridania zariadení pri vyvažovaní medzi jednotkami je vypnutá, t.j. pri pripájaní súborového systému s voľbou skip_balance.
    • Bola navrhnutá nová syntax pre pripojenie súborového systému Ceph, ktorá rieši existujúce problémy spojené s väzbou na IP adresy. Okrem IP adries môžete teraz na identifikáciu servera použiť aj identifikátor klastra (FSID): mount -t ceph [chránené e-mailom]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Súborový systém Ext4 sa presunul na nové pripájacie API, ktoré oddeľuje možnosti analýzy a konfigurácie superbloku. Zrušili sme podporu pre možnosti pripojenia lazytime a nolazytime, ktoré boli pridané ako dočasná zmena na uľahčenie prechodu util-linux na používanie príznaku MS_LAZYTIME. Pridaná podpora pre nastavenie a čítanie štítkov vo FS (ioctl FS_IOC_GETFSLABEL a FS_IOC_SETFSLABEL).
    • NFSv4 pridal podporu pre prácu v súborových systémoch bez ohľadu na veľkosť písmen v názvoch súborov a adresárov. NFSv4.1+ pridáva podporu pre definovanie agregovaných relácií (trunkovanie).
  • Pamäťové a systémové služby
    • Pridaný ovládač amd-pstate na zabezpečenie dynamickej kontroly frekvencie pre optimálny výkon. Ovládač podporuje CPU a APU AMD počnúc generáciou Zen 2, ktorá bola vyvinutá spoločne s Valve a je zameraná na zlepšenie účinnosti správy energie. Pre adaptívne zmeny frekvencie sa používa mechanizmus CPPC (Collaborative Processor Performance Control), ktorý umožňuje presnejšie meniť indikátory (neobmedzuje sa len na tri úrovne výkonu) a rýchlejšie reagovať na zmeny stavu ako predtým používaný P-stav založený na ACPI. ovládače (CPUFreq).
    • Subsystém eBPF ponúka obslužný program bpf_loop(), ktorý poskytuje alternatívny spôsob organizácie slučiek v programoch eBPF, rýchlejší a jednoduchší na overenie overovateľom.
    • Na úrovni jadra je implementovaný mechanizmus CO-RE (Compile Once - Run Everywhere), ktorý umožňuje skompilovať kód programov eBPF iba raz a použiť špeciálny univerzálny loader, ktorý prispôsobí načítaný program aktuálnym typom jadra a BTF. (Formát typu BPF).
    • Oblasti súkromnej anonymnej (pridelenej cez malloc) pamäte je možné priradiť názvy, čo môže zjednodušiť ladenie a optimalizáciu spotreby pamäte v aplikáciách. Názvy sa priraďujú cez prctl s príznakom PR_SET_VMA_ANON_NAME a zobrazujú sa v /proc/pid/maps a /proc/pid/smaps v tvare "[anon: ]“.
    • Plánovač úloh poskytuje v /proc/PID/sched sledovanie a zobrazovanie času stráveného procesmi v stave vynúteného nečinnosti, ktorý sa používa napríklad na zníženie záťaže pri prehriatí procesora.
    • Pridaný modul gpio-sim, určený na simuláciu čipov GPIO na testovanie.
    • Do príkazu "perf ftrace" bol pridaný podpríkaz "latency" na generovanie histogramov s informáciami o latencii.
    • Pridaná sada nástrojov „RTLA“ na analýzu práce v reálnom čase. Zahŕňa nástroje ako osnoise (určuje vplyv operačného systému na vykonávanie úlohy) a timerlat (mení oneskorenia spojené s časovačom).
    • Druhá séria opráv bola integrovaná s implementáciou konceptu fólií stránok, ktoré pripomínajú zložené stránky, ale majú vylepšenú sémantiku a jasnejšiu organizáciu práce. Používanie súborov vám umožňuje zrýchliť správu pamäte v niektorých podsystémoch jadra. Navrhované opravy dokončili konverziu vyrovnávacej pamäte stránok na používanie súborov a pridali počiatočnú podporu pre súbory v súborovom systéme XFS.
    • Pridaný režim zostavovania „make mod2noconfig“, ktorý generuje konfiguráciu, ktorá zhromažďuje všetky zakázané podsystémy vo forme modulov jadra.
    • Požiadavky na verziu LLVM/Clang, ktorú možno použiť na zostavenie jadra, boli zvýšené. Build teraz vyžaduje vydanie aspoň LLVM 11.
  • Virtualizácia a bezpečnosť
    • Navrhuje sa aktualizovaná implementácia generátora pseudonáhodných čísel RDRAND, zodpovedného za prevádzku zariadení /dev/random a /dev/urandom, pozoruhodná pre prechod na používanie hašovacej funkcie BLAKE2s namiesto SHA1 na operácie zmiešavania entropie. Táto zmena zlepšila bezpečnosť generátora pseudonáhodných čísel odstránením problematického algoritmu SHA1 a odstránením prepisovania inicializačného vektora RNG. Keďže algoritmus BLAKE2s je lepší ako algoritmus SHA1, jeho použitie malo tiež pozitívny vplyv na výkon.
    • Pridaná ochrana pred zraniteľnosťami v procesoroch spôsobených špekulatívnym vykonávaním pokynov po operáciách bezpodmienečného skoku vpred. Problém nastáva z dôvodu preventívneho spracovania inštrukcií bezprostredne nasledujúcich za inštrukciou vetvenia v pamäti (SLS, Straight Line Speculation). Povolenie ochrany vyžaduje zostavenie s aktuálne testovaným vydaním GCC 12.
    • Pridaný mechanizmus na sledovanie počítania referencií (refcount, reference-count), zameraný na zníženie počtu chýb v počítaní referencií, ktoré vedú k prístupu do pamäte po jej uvoľnení. Mechanizmus je v súčasnosti obmedzený na sieťový subsystém, no v budúcnosti ho možno prispôsobiť aj iným častiam jadra.
    • Boli implementované rozšírené kontroly nových záznamov v tabuľke stránok procesnej pamäte, čo umožňuje odhaliť určité typy poškodení a zastaviť systém a blokovať útoky v počiatočnom štádiu.
    • Pridaná možnosť rozbaľovania modulov jadra priamo samotným jadrom a nie obsluhou v užívateľskom priestore, čo umožňuje použitie modulu LoadPin LSM na zabezpečenie načítania modulov jadra do pamäte z overeného úložného zariadenia.
    • Poskytnutá zostava s príznakom "-Wcast-function-type", ktorý umožňuje varovanie pred prenesením ukazovateľov funkcie na nekompatibilný typ.
    • Pridaný virtuálny hostiteľský ovládač pvUSB pre hypervízor Xen, ktorý poskytuje prístup k USB zariadeniam preposlaným hosťovským systémom (umožňuje hosťovským systémom prístup k fyzickým USB zariadeniam priradeným hosťujúcemu systému).
    • Bol pridaný modul, ktorý umožňuje interakciu cez Wi-Fi so subsystémom IME (Intel Management Engine), ktorý sa dodáva vo väčšine moderných základných dosiek s procesormi Intel a je implementovaný ako samostatný mikroprocesor, ktorý pracuje nezávisle od CPU.
    • Pre architektúru ARM64 bola implementovaná podpora pre ladiaci nástroj KCSAN (Kernel Concurrency Sanitizer), ktorý je určený na dynamickú detekciu rasových podmienok v jadre.
    • Pre 32-bitové ARM systémy pribudla možnosť využiť mechanizmus KFENCE na detekciu chýb pri práci s pamäťou.
    • Hypervízor KVM pridáva podporu pre inštrukcie AMX (Advanced Matrix Extensions) implementované v nadchádzajúcich serverových procesoroch Intel Xeon Scalable.
  • Sieťový subsystém
    • Pridaná podpora pre presuny operácií súvisiacich s riadením prevádzky na stranu sieťových zariadení.
    • Pridaná možnosť používať protokol MCTP (Management Component Transport Protocol) cez sériové zariadenia. MCTP možno použiť na komunikáciu medzi riadiacimi jednotkami a ich pridruženými zariadeniami (hostiteľské procesory, periférne zariadenia atď.).
    • Zásobník TCP bol optimalizovaný, napríklad na zlepšenie výkonu volaní recvmsg, bolo implementované oneskorené uvoľnenie vyrovnávacích pamätí soketov.
    • Na úrovni oprávnenia CAP_NET_RAW je povolené nastavenie režimov SO_PRIORITY a SO_MARK prostredníctvom funkcie setsockopt.
    • V prípade IPv4 je povolené, aby boli surové sokety viazané na nemiestne IP adresy pomocou volieb IP_FREEBIND a IP_TRANSPARENT.
    • Pridaný sysctl arp_missed_max na konfiguráciu prahového počtu zlyhaní počas kontroly monitora ARP, po ktorej sa sieťové rozhranie prepne do stavu deaktivovaného.
    • Poskytuje možnosť konfigurovať samostatné hodnoty sysctl min_pmtu a mtu_expires pre sieťové menné priestory.
    • Do rozhrania ethtool API bola pridaná možnosť nastaviť a určiť veľkosť vyrovnávacích pamätí pre prichádzajúce a odchádzajúce pakety.
    • Netfilter pridal podporu pre filtrovanie tranzitnej prevádzky pppoe v sieťovom moste.
    • Modul ksmbd, ktorý implementuje súborový server pomocou protokolu SMB3, pridal podporu pre výmenu kľúčov, povolil sieťový port 445 pre smbdirect a pridal podporu pre parameter „smb2 max credit“.
  • Оборудование
    • Do subsystému drm (Direct Renderering Manager) a ovládača i915 bola pridaná podpora obrazoviek na zobrazovanie dôverných informácií, napríklad niektoré notebooky sú vybavené obrazovkami so vstavaným režimom dôverného prezerania, čo sťažuje pohľad zvonku. . Pridané zmeny vám umožňujú pripojiť špecializované ovládače pre takéto obrazovky a ovládať dôverné režimy prehliadania nastavením vlastností v bežných ovládačoch KMS.
    • Ovládač amdgpu obsahuje podporu technológie ladenia STB (Smart Trace Buffer) pre všetky GPU AMD, ktoré ju podporujú. STB uľahčuje analýzu porúch a identifikáciu zdroja problémov tým, že do špeciálnej vyrovnávacej pamäte ukladá informácie o funkciách vykonávaných pred posledným zlyhaním.
    • Ovládač i915 pridáva podporu pre čipy Intel Raptor Lake S a štandardne umožňuje podporu grafického subsystému čipov Intel Alder Lake P. Ovládať podsvietenie obrazovky je možné cez rozhranie VESA DPCD.
    • V ovládačoch fbcon/fbdev bola vrátená podpora hardvérovej akcelerácie rolovania v konzole.
    • Pokračujúca integrácia zmien na podporu čipov Apple M1. Implementovaná schopnosť používať ovládač simpledrm na systémoch s čipom Apple M1 na výstup cez framebuffer poskytovaný firmvérom.
    • Pridaná podpora pre ARM SoС, zariadenia a dosky Snapdragon 7c, 845 a 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek (MT8183 Acer Chromebook 314), Mediatek MT7986a/b (používaný v smerovačoch Wi-Fi), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI, NMXP i320s , Aspeed AST8/AST8, Engicam i.Core STM2500MP2600, Allwinner Tanix TX32, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t1/t6 MacBook Pro 6000/6001.
    • Pridaná podpora pre procesory ARM Cortex-M55 a Cortex-M33.
    • Pridaná podpora pre zariadenia založené na CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Pridaná podpora pre StarFive JH7100 SoC založený na architektúre RISC-V.
    • Pridaný ovládač lenovo-yogabook-wmi na ovládanie podsvietenia klávesnice a prístup k rôznym senzorom v Lenovo Yoga Book.
    • Pridaný ovládač asus_wmi_sensors pre prístup k senzorom používaným na základných doskách Asus X370, X470, B450, B550 a X399 založených na procesoroch AMD Ryzen.
    • Pridaný ovládač x86-android-tablets pre tablety x86 dodávané s platformou Android.
    • Pridaná podpora pre dotykové obrazovky TrekStor SurfTab duo W1 a elektronické pero pre tablety Chuwi Hi10 Plus a Pro.
    • Ovládače pre SoC Tegra 20/30 pridali podporu pre správu napájania a napätia. Umožňuje spustenie na starších 32-bitových zariadeniach Tegra SoC, ako sú ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 a Pad TF300TG.
    • Pridané ovládače pre priemyselné počítače Siemens.
    • Pridaná podpora pre Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA a Team Source Display TSTST.043015 LCD displej TST.
    • Pridaná podpora pre zvukové systémy a kodeky AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, systémy Intel využívajúce NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320AD. Problémy s Tegra3 HD-audio boli vyriešené. Pridaná podpora HDA pre kodeky CS194L35. Vylepšená podpora zvukových systémov pre notebooky Lenovo a HP, ako aj základné dosky Gigabyte.

Zdroj: opennet.ru

Pridať komentár