Versione di u kernel Linux 5.14

Dopu dui mesi di sviluppu, Linus Torvalds hà presentatu a liberazione di u kernel Linux 5.14. Trà i cambiamenti più notevuli: novi chjama di sistema quotactl_fd () è memfd_secret (), rimuzione di ide è driver crudi, novu controller di priorità I / O per cgroup, modalità di pianificazione di attività SCHED_CORE, infrastruttura per creà caricatori di prugramma BPF verificati.

A nova versione include 15883 correzioni da 2002 sviluppatori, a dimensione di u patch hè 69 MB (i cambiamenti anu affettatu 12580 file, 861501 linee di codice sò state aghjunte, 321654 linee sò state eliminate). Circa 47% di tutti i cambiamenti introdotti in 5.14 sò ligati à i driver di u dispositivu, circa 14% di i cambiamenti sò ligati à l'aghjurnamentu di codice specificu à l'architetture hardware, 13% sò ligati à a pila di rete, 3% sò ligati à i sistemi di schedari, è 3% sò ligati à i sottosistemi interni di u kernel.

Innuvazioni principali:

  • Sottosistema di discu, I / O è sistemi di fugliale
    • Un novu controller di priorità I/O hè statu implementatu per i cgroups, rq-qos, chì ponu cuntrullà a priorità di trasfurmazioni di e dumande per bluccà i dispositi generati da i membri di ogni cgroup. Un novu supportu di cuntrollu di priorità hè statu aghjuntu à u pianificatore I/O mq-deadline.
    • U sistema di schedari ext4 implementa un novu cumandamentu ioctl, EXT4_IOC_CHECKPOINT, chì furzà tutte e transazzioni pendenti da u ghjurnale è i so buffers assuciati à esse lavati à u discu, è ancu soprascrive l'area utilizata da u ghjurnale in almacenamiento. U cambiamentu hè statu preparatu cum'è parte di una iniziativa per prevene a fuga di informazioni da i sistemi di schedari.
    • L'ottimisazioni di u rendiment sò state fatte à Btrfs: eliminendu u logu innecessariu di l'attributi estesi durante l'esekzione fsync, u rendiment di operazioni intensive cù attributi estesi hè aumentatu finu à u 17%. Inoltre, quandu eseguite operazioni di trim chì ùn anu micca influenza in estensioni, a sincronizazione completa hè disattivata, chì riduce u tempu di operazione da 12%. Un paràmetru hè statu aghjuntu à sysfs per limità a larghezza di banda I / O quandu verificate u FS. Aghjunghjite chjamate ioctl per annullà l'operazione di ridimensionamentu è eliminazione di u dispositivu.
    • In XFS, l'implementazione di u buffer cache hè stata riprogettata, chì hè stata cambiata per assignà e pagine di memoria in modu batch. Efficienza di cache mejorata.
    • F2FS aghjusta una opzione per operare in modu di sola lettura è implementa un modu di cache di bloccu cumpressu (compress_cache) per migliurà a prestazione di lettura aleatoria. U supportu hè statu implementatu per cumpressione di i fugliali mappati in memoria cù l'operazione mmap (). Per disattivà selettivamente a compressione di u schedariu basatu nantu à una maschera, hè stata pruposta una nova opzione di muntatura nocompress.
    • U travagliu hè statu fattu in u driver exFAT per migliurà a cumpatibilità cù qualchì almacenamentu di càmera digitale.
    • Aghjunghje a chjama di u sistema di quotactl_fd (), chì permette di gestisce e quote micca per mezu di un schedariu speciale di u dispositivu, ma specificendu un descriptor d'archivi assuciatu cù u sistema di fugliale per quale a quota hè applicata.
    • I vechji drivers per i dispositi di bloccu cù l'interfaccia IDE sò stati sguassati da u kernel; sò longu rimpiazzati da u subsistema libata.
    • U driver "raw" hè statu eliminatu da u kernel, chì furnisce un accessu senza buffer à i dispositi bluccati via l'interfaccia /dev/raw. Sta funziunalità hè stata longa implementata in l'applicazioni chì utilizanu a bandiera O_DIRECT.
  • Memoria è servizii di sistema
    • U pianificatore di u travagliu implementa un novu modu di pianificazione, SCHED_CORE, chì vi permette di cuntrullà quali prucessi ponu esse eseguiti inseme nantu à u stessu core CPU. Ogni prucessu pò esse assignatu un identificatore di cookie chì definisce u scopu di a fiducia trà i prucessi (per esempiu, appartenendu à u stessu utilizatore o cuntainer). Quandu urganizeghja l'esekzione di codice, u pianificatore pò assicurà chì un core di CPU hè spartutu solu trà i prucessi assuciati cù u stessu pruprietariu, chì pò esse usatu per bluccà certi attacchi Spectre impedendu chì i travaglii di fiducia è micca affidati sò in esecuzione nantu à u stessu filu SMT (Hyper Threading). .
    • Per cgroup, u supportu per l'operazione di uccisione hè statu implementatu, chì permette di tumbà tutti i prucessi assuciati à u gruppu in una volta (mandà SIGKILL) scrivendu "1" à u schedariu virtuale cgroup.kill.
    • Capacità allargate in relazione à risponde à a rilevazione di chjusi split ("split locks") chì si verificanu quandu accede à dati unaligned in memoria per u fattu chì quandu eseguisce una struzzione atomica, i dati attraversanu duie linee di cache di CPU. Un tali bloccu porta à una calata significativa di u rendiment, cusì prima era pussibule di finisce in forza l'applicazione chì hà causatu u bloccu. A nova versione aghjusta un paràmetru di linea di cumanda di u kernel "split_lock_detect = ratelimit: N", chì permette di definisce un limitu in tuttu u sistema nantu à a tarifa di l'operazioni di chjusi per seconda, dopu avè superatu ogni prucessu chì hè diventatu a fonte di un lock split. serà custrettu à piantà per 20 ms invece di finisce.
    • U controller di larghezza di banda di cgroup CFS (controller di larghezza di banda CFS), chì determina quantu tempu di processore pò esse attribuitu à ogni cgroup, implementa a capacità di definisce limiti di tempu limitatu, chì permette una regulazione megliu di carichi di travagliu sensibili à a latenza. Per esempiu, stabilisce cpu.cfs_quota_us à 50000 è cpu.cfs_period_us à 100000 permetterà à un gruppu di prucessi per perdi 100ms di tempu CPU ogni 50ms.
    • Infrastruttura iniziale aghjunta per a creazione di caricatori di prugramma BPF, chì permetterà ancu a carica di solu prugrammi BPF firmati cù una chjave digitale di fiducia.
    • Aggiunta una nova operazione futex FUTEX_LOCK_PI2, chì usa un timer monotonicu per calculà un timeout chì tene in contu u tempu passatu da u sistema in modu di sonnu.
    • Per l'architettura RISC-V, u supportu per e pagine di memoria grande (Transparent Huge-Pages) è a capacità d'utilizà u mecanismu KFENCE per detectà errori quandu u travagliu cù a memoria sò implementati.
    • A chjama di u sistema madvise (), chì furnisce un mezzu per ottimisà a gestione di memoria di un prucessu, hà aghjustatu i bandieri MADV_POPULATE_READ è MADV_POPULATE_WRITE per generà un "errore di pagina" in tutte e pagine di memoria mappate per leghje o scrive operazioni, senza fà una lettura o scrittura vera. (prefault). L'usu di i bandieri pò esse utile per riduce i ritardi in l'esekzione di u prugramma, per via di l'esekzione proattiva di u gestore di "colpa di pagina" per tutte e pagine micca allocate in una volta, senza aspittà per l'accessu propiu à elli.
    • U sistema di teste di unità kunit hà aghjuntu un supportu per eseguisce e teste in l'ambiente QEMU.
    • Novi tracciatori sò stati aghjunti: "osnoise" per seguità i ritardi di l'applicazione causati da a gestione di l'interruzzione, è "timerlat" per visualizà infurmazioni detallate nantu à i ritagli quandu si sveglia da un signalu di timer.
  • Virtualizazione è Sicurezza
    • A chjama di u sistema memfd_secret() hè stata aghjunta per creà una zona di memoria privata in un spaziu di indirizzu isolatu, visibile solu à u prucessu propiu, micca riflessu à altri prucessi, è micca direttamente accessibile à u kernel.
    • In u sistema di filtru di chjama di u sistema seccomp, quandu si move i gestori di bloccu in u spaziu di l'utilizatori, hè pussibule aduprà una sola operazione atomica per creà un descrittore di file per un compitu isolatu è rinvià quandu si tratta una chjama di sistema. L'operazione pruposta risolve u prublema di interrompe un gestore in u spaziu di l'utilizatori quandu un signale arriva.
    • Aggiuntu un novu mecanismu per a gestione di i limiti di risorse in u spaziu di nomi di l'ID d'utilizatore, chì unisce i contatori rlimit individuali à un utilizatore in u "spaziu di nomi d'utilizatore". U cambiamentu risolve u prublema cù l'usu di cuntatori di risorse cumuni quandu un utilizatore esegue prucessi in cuntenituri diffirenti.
    • L'ipervisore KVM per i sistemi ARM64 hà aghjustatu a capacità d'utilizà l'estensione MTE (MemTag, Memory Tagging Extension) in i sistemi invitati, chì vi permette di ligà tag à ogni operazione di allocazione di memoria è urganizà a verificazione di l'usu currettu di puntatori per bluccà u sfruttamentu di vulnerabilità causate da accede à i blocchi di memoria digià liberati, overflows buffer, accessi prima di inizializazione è usu fora di u cuntestu attuale.
    • I servizii di Autenticazione Pointer di a piattaforma ARM64 ponu avà esse cunfigurati separatamente per u kernel è u spaziu di l'utilizatori. A tecnulugia permette d'utilizà struzzioni ARM64 specializate per verificà l'indirizzi di ritornu cù e firma digitale chì sò almacenati in i bits superiori inutilizati di u punteru stessu.
    • U modu d'utilizatore Linux hà aghjustatu supportu per l'usu di i driver per i dispositi PCI cù un bus PCI virtuale, implementatu da u driver PCI-over-virtio.
    • Per i sistemi x86, aghjustatu supportu per u dispositivu paravirtualizatu virtio-iommu, chì permette à e dumande IOMMU cum'è ATTACH, DETACH, MAP è UNMAP per esse mandate nantu à u trasportu virtio senza emulà e tavule di pagina di memoria.
    • Per i CPU Intel, da a famiglia Skylake à Coffee Lake, l'usu di Intel TSX (Transactional Synchronization Extensions), chì furnisce strumenti per migliurà a prestazione di l'applicazioni multi-threaded eliminendu dinamicamente l'operazioni di sincronizazione inutili, hè disattivatu per difettu. L'estensioni sò disattivate per via di a pussibilità di attacchi Zombieload chì manipulanu a fuga di l'infurmazioni via canali di terzu chì si trova durante l'operazione di u mecanismu TAA (TSX Asynchronous Abort).
  • Sottusistema di rete
    • Integrazione in u core di MPTCP (MultiPath TCP), una estensione di u protocolu TCP per urganizà u funziunamentu di una cunnessione TCP cù a consegna di pacchetti simultaneamente longu parechje rotte attraversu diverse interfacce di rete associate cù diversi indirizzi IP. A nova versione aghjusta un mecanismu per stabilisce e vostre propiu pulitiche di hash di trafficu per IPv4 è IPv6 (pulitica di hash multipath), chì permette di determinà da u spaziu di l'utilizatori chì campi in pacchetti, cumpresi quelli incapsulati, seranu utilizati quandu si calcula l'hash chì determina u scelta di a strada per u pacchettu.
    • U supportu per i sockets SOCK_SEQPACKET (trasmissione urdinata è affidabile di datagrammi) hè statu aghjuntu à u trasportu virtuale virtio.
    • E capacità di u mecanismu di socket SO_REUSEPORT sò state allargate, chì permette à parechji sockets d'ascoltu per cunnette à un portu à una volta per riceve e cunnessione cù a distribuzione di e richieste entrate simultaneamente in tutti i sockets cunnessi via SO_REUSEPORT, chì simplifica a creazione di applicazioni di servitore multi-threaded. . A nova versione aghjusta arnesi per u trasferimentu di cuntrollu à un altru socket in casu di fallimentu durante u processu di una dumanda da u socket inizialmente sceltu (risolve u prublema cù a perdita di cunnessione individuali quandu riavvia i servizii).
  • Equipment
    • U driver amdgpu furnisce supportu per a nova serie di GPU AMD Radeon RX 6000, nome in codice "Beige Goby" (Navi 24) è "Yellow Carp", è ancu un supportu migliuratu per a GPU Aldebaran (gfx90a) è Van Gogh APU. Aggiunta a capacità di travaglià simultaneamente cù parechji pannelli eDP. Per APU Renoir, u supportu per travaglià cù buffers criptati in memoria video (TMZ, Trusted Memory Zone) hè statu implementatu. Aggiuntu supportu per e carte grafiche hot-unplug. Per i GPU Radeon RX 6000 (Navi 2x) è i GPU AMD più antichi, u supportu ASPM (Active State Power Management) hè attivatu per automaticamente, chì era attivatu prima solu per Navi 1x, Vega è GPU Polaris.
    • Per i chips AMD, u supportu per a memoria virtuale sparta (SVM, memoria virtuale spartuta) hè stata aghjuntu basatu annantu à u sottusistema HMM (gestione di memoria heterogenea), chì permette l'usu di i dispositi cù e so unità di gestione di memoria (MMU, unità di gestione di memoria). chì ponu accede à a memoria principale. In particulare, cù HMM, pudete urganizà un spaziu di indirizzu cumuni trà a GPU è CPU, in quale a GPU pò accede à a memoria principale di u prucessu.
    • Hè aghjuntu un supportu iniziale per a tecnulugia AMD Smart Shift, chì cambia dinamicamente i paràmetri di putenza di CPU è GPU in laptop cù un chipset AMD è una carta grafica per rinfurzà a prestazione per i ghjoculi, l'editazione di video è u rendering 3D.
    • U driver i915 per e carte grafiche Intel include supportu per i chip Intel Alderlake P.
    • Aggiuntu driver drm/hyperv per l'adattatore graficu virtuale Hyper-V.
    • Aghjunghje supportu per l'urdinatore Raspberry Pi 400 all-in-one.
    • Aggiuntu driver dell-wmi-privacy per sustene a camera hardware è i switches di microfonu inclusi in i laptop Dell.
    • Per i laptop Lenovo, una interfaccia WMI hè stata aghjunta per cambià i paràmetri di u BIOS via sysfs /sys/class/firmware-attributes/.
    • Supportu allargatu per i dispositi cù interfaccia USB4.
    • Supportu aghjuntu per AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 è Texas Instruments TAS2505 schede sonu è codecs. Supportu audio migliuratu nantu à i laptop HP è ASUS. Aghjunghjite patch per riduce i ritardi prima chì l'audio cumencia à ghjucà nantu à i dispositi USB.

Source: opennet.ru

Add a comment