Versione di u kernel Linux 5.3

Dopu dui mesi di sviluppu, Linus Torvalds introduttu liberazione di u kernel Linux 5.3. Trà i cambiamenti più notevuli: supportu per AMD Navi GPU, processori Zhaoxi è tecnulugia di gestione di l'energia Intel Speed ​​​​Select, a capacità di utilizà struzzioni umwait per aspittà senza usà cicli,
u modu di 'utilizazione clamping' aumenta l'interattività per i CPU asimmetrici, a chjama di u sistema pidfd_open, a capacità di utilizà l'indirizzi IPv4 da a subnet 0.0.0.0/8, a pussibilità di accelerazione hardware nftables, supportu HDR in u sottosistema DRM, integrazione di l'ACRN ipervisore.

В annunziu nova versione, Linus hà ricurdatu à tutti i sviluppatori di a regula principale di u sviluppu di u kernel - mantenendu u listessu cumpurtamentu per i cumpunenti di u spaziu di l'utilizatori. I cambiamenti à u kernel ùn devenu in alcun modu rompe l'applicazioni chì sò digià in esecuzione o portanu à regressioni à u livellu di l'utilizatori. In questu casu, una violazione di u cumpurtamentu pò causà micca solu un cambiamentu in l'ABI, a rimuzione di codice anticu, o l'apparizione d'errori, ma ancu l'impattu indirettu di megliurenze utili chì travaglianu currettamente. Cum'è un esempiu illustratu ci era scartatu utile ottimisazione in u codice Ext4, chì riduce u numeru di accessi à l'unità disattivendu a pre-lettura di a tavola inode per e petite richieste I / O.

L'ottimisazione hà purtatu à u fattu chì, per via di una diminuzione di l'attività di u discu, l'entropia per u generatore di numeri aleatorii getrandom () hà cuminciatu à accumulà più lentamente è in certi cunfigurazioni, in certe circustanze, i congelamenti puderanu esse osservati durante a carica finu à chì a piscina d'entropia hè stata. pienu. Siccomu l'ottimisazione hè veramente utile, hè stata una discussione trà i sviluppatori in quale hè stata pruposta di risolve u prublema disattivendu u modu di bloccu predeterminatu di a chjama di getrandom () è aghjunghjendu una bandiera opzionale per aspittà l'entropia, ma un tali cambiamentu affettarà u qualità di i numeri aleatorii in a fase iniziale di carica.

A nova versione include 15794 correzioni da 1974 sviluppatori,
patch size - 92 MB (cambiamenti affettati 13986 file, aghjunte 258419 linee di codice,
599137 righe eliminate). Circa 39% di tutti i presentati in 5.3
i cambiamenti sò ligati à i cunduttori di u dispositivu, circa 12% di i cambiamenti anu
attitudine versu l'aghjurnamentu di codice specificu à l'architetture hardware, 11%
in relazione à a pila di rete, 3% à i sistemi di schedari è 3% à l'internu
sottosistemi di kernel.

menu innovazioni:

  • Memoria è servizii di sistema
    • Sviluppu cuntinuatu di a funziunalità "pidfd" per aiutà à trattà e situazioni di reutilizazione PID (pidfd hè assuciatu cù un prucessu specificu è ùn cambia micca, mentre chì un PID pò esse assuciatu cù un altru prucessu dopu chì u prucessu attuale assuciatu cù quellu PID finisci). Hè statu aghjuntu prima à u kernel
      a chjama di u sistema pidfd_send_signal () è a bandiera CLONE_PIDFD in a chjama di clone () per ottene un pidfd per l'usu in idfd_send_signal (). Utilizà clone() cù a bandiera CLONE_PIDFD puderia causà prublemi cù i gestori di serviziu o u sistema di terminazione di forza fora di memoria di a piattaforma Android. In questu casu, una chjama à fork () o clone () senza CLONE_PIDFD hè aduprata per inizià.

      Kernel 5.3 hà introduttu a chjama di u sistema pidfd_open(), chì vi permette di ottene un pidfd verificabile per un prucessu esistenti arbitrariu chì ùn hè statu creatu chjamendu clone () cù a bandiera CLONE_PIDFD. Hè aghjustatu ancu u supportu per u polling pidfd usendu poll() è epoll(), chì permette à i gestori di prucessu di seguità a terminazione di prucessi arbitrarii senza teme di una cundizione di razza se un PID hè assignatu à un novu prucessu. U mecanismu per notificà quandu un prucessu assuciatu cù pidfd hà finitu hè simile à notificà quandu u so prucessu di u zitellu hè finitu;

    • U supportu per u mecanismu di pinning di carica hè statu aghjuntu à u pianificatore di attività (Serratura di usu), chì vi permette di aderisce à i intervalli di freccia minima o massima, secondu e funzioni attive nantu à u CPU. U meccanismo presentatu accelera i travaglii chì affettanu direttamente a qualità di l'esperienza di l'utilizatori eseguendu questi compiti almenu à l'estremità più bassa di a frequenza "richiesta". I travaglii di priorità bassa chì ùn affettanu micca u travagliu di l'utilizatori sò lanciati utilizendu u limitu superiore di a frequenza "permessa". I limiti sò stabiliti via l'attributi sched_uclamp_util_min è sched_uclamp_util_max in a chjama di u sistema sched_setattr().
    • Supportu aghjuntu à a tecnulugia di gestione di l'energia Intel Speed ​​​​Select, dispunibule nantu à i servitori selezziunati cù processori Intel Xeon. Sta tecnulugia permette di stabilisce e paràmetri di rendiment è di partizione per i diversi nuclei di CPU, chì vi permette di priurità u rendiment per i travaglii realizati nantu à certi nuclei, sacrificà u rendiment in altri core;
    • Prucessi in u spaziu di l'utilizatori furnitu l'abilità di aspittà per un pocu tempu senza aduprà loops cù l'istruzzioni umwait. Questa struzzione, inseme cù l'istruzzioni di umonitor è tpause, serà offruta in i prossimi chips "Tremont" di Intel, è permetterà l'implementazione di ritardi chì sò efficaci energetichi è ùn anu micca influenzatu u funziunamentu di l'altri fili quandu utilizanu Hyper Threading;
    • Per l'architettura RISC-V, u supportu per e grandi pagine di memoria hè statu aghjuntu;
    • U mecanismu di traccia di kprobes hà aghjustatu a capacità di dereference pointers di u kernel à u spaziu di l'utilizatori, chì pò esse usatu, per esempiu, per evaluà u cuntenutu di e strutture passate à e chjama di u sistema. A capacità di installà cuntrolli in u stadiu di boot hè stata ancu aghjunta.
    • Aggiunta l'opzione PREEMPT_RT à u schedariu di cunfigurazione per l'operazione in tempu reale. U codice stessu per sustene u modu in tempu reale ùn hè ancu aghjuntu à u kernel, ma l'apparizione di l'opzione hè un bonu signu chì l'epica à longu andà. integrazione Realtime-Preempt patches sò vicinu à a fine;
    • Aghjunghje a chjama di u sistema clone3 () cù l'implementazione di una versione più estensibile di l'interfaccia clone (), chì permette di specificà un numeru più grande di bandieri;
    • Added bpf_send_signal() handler, chì permette à i prugrammi BPF di mandà signalazioni à prucessi arbitrarii;
    • Per l'eventi perf in l'ambiente di l'ipervisore KVM, hè statu aghjuntu un novu mecanismu di filtru di l'avvenimenti, chì permette à l'amministratore di determinà i tipi di avvenimenti chì sò permessi o micca permessi per u monitoraghju in u sistema di l'ospiti;
    • A capacità di processà prugrammi cù loops hè stata aghjunta à u mecanismu di verificazione di l'applicazioni eBPF se l'esekzione di u loop hè limitata è ùn pò micca purtà à superà u limitu di u massimu di struzzioni;
  • Sottosistema di discu, I / O è sistemi di fugliale
    • U sistema di schedari XFS supporta avà u bypass di inode multi-threaded (per esempiu, quandu cuntrolla i quote). New ioctls BULKSTAT è INUMBERS sò stati aghjunti, chì furnisce l'accessu à e funzioni chì apparsu in a quinta edizione di u formatu FS, cum'è l'ora di nascita inode è a capacità di stabilisce i paràmetri BULKSTAT è INUMBERS per ogni gruppu AG (Gruppi di Allocazione);
    • In Ext4 sustegnu aghjuntu vuoti in cartulari (blocchi unlinked).
      Trattamentu furnitu flag "i" (immutable) per i schedari aperti (scrittura hè pruibita in una situazione se a bandiera hè stata stabilita in un mumentu chì u schedariu era digià apertu);

    • Btrfs furnisce una definizione di una implementazione rapida di crc32c in tutte l'architetture;
    • In CIFS, u codice per u supportu smbdirect hè statu eliminatu cum'è sviluppu sperimentale. SMB3 hà aghjustatu a capacità di utilizà algoritmi criptografici in u modu GCM. Aggiunta una nova opzione di muntagna per estrae i paràmetri di u modu da e entrate ACE (Access Control Entry). Optimized u rendiment di a chjama aperta () ;
    • Aggiunta una opzione à F2FS per limità u cullettivu di basura quandu eseguite in u puntu di cuntrollu = disattivà u modu. Aggiuntu ioctl per caccià i intervalli di blocchi da F2FS, chì permette l'aghjustamenti di a dimensione di a partizione in u volu. Aggiunta a capacità di mette un schedariu di scambiu in F2FS per furnisce I / O direttu. Aghjunghje supportu per pinning un schedariu è allocazione di blocchi per schedarii simili per tutti l'utilizatori;
    • Aggiuntu supportu per l'operazioni asincrone sendmsg () è recvmsg () à l'interfaccia per l'input / output asincronu io_uring;
    • U supportu per a compressione cù l'algoritmu zstd è a capacità di verificà l'imaghjini FS firmati sò stati aghjuntu à u sistema di schedari UBIFS;
    • Ceph FS supporta avà e etichette di sicurezza SELinux per i schedari;
    • Per NFSv4, una nova opzione di muntagna "nconnect=" hè stata implementata, chì determina u numeru di cunnessione stabilitu cù u servitore. U trafficu trà queste cunnessioni serà distribuitu cù l'equilibriu di carica. Inoltre, u servitore NFSv4 crea avà un repertoriu /proc/fs/nfsd/clients cù infurmazione nantu à i clienti attuali, cumprese l'infurmazioni nantu à i schedari chì anu apertu;
  • Virtualizazione è Sicurezza
    • U kernel include un ipervisore per i dispositi integrati ACRN, chì hè scrittu cù un ochju à prontu per i travaglii in tempu reale è l'adattabilità per l'usu in sistemi di missione critica. ACRN furnisce una spesa minima, guarantisci una latenza bassa è una reattività adatta quandu interagisce cù l'equipaggiu. Supporta a virtualizazione di risorse CPU, I / O, sottosistema di rete, gràfiche è operazioni di sonu. ACRN pò esse usatu per eseguisce parechje macchine virtuali isolate in unità di cuntrollu elettronicu, dashboards, sistemi d'infurmazione di l'automobile, dispositivi IoT di cunsumatori è altre tecnulugia integrata;
    • In u modu d'utilizatore Linux aghjuntu Modu di viaghju in u tempu, chì vi permette di rallentà o accelerà u tempu in un ambiente UML virtuale per fà più faciule per debug codice legatu à u tempu. In più, un paràmetru hè statu aghjuntu
      time-travel-start, chì permette à u clock di u sistema di principià da un mumentu specificu in formatu epoca;

    • L'opzioni di a linea di cummanda di u kernel "init_on_alloc" è "init_on_free" sò state aghjunte, quandu hè specificatu, a zeroing di e zoni di memoria allocate è liberate hè attivata (ripienu cù zeri per malloc è liberu), chì permette una sicurezza aumentata per via di l'inizializazione supplementaria;
    • Un novu driver aghjuntu virtio-iommu cù l'implementazione di un dispositivu paravirtualizatu chì permette di mandà richieste IOMMU cum'è ATTACH, DETACH, MAP è UNMAP sopra u trasportu virtio senza emulà e tavule di pagina di memoria;
    • Un novu driver aghjuntu virtio-pmem, chì rapprisentanu l'accessu à i dispositi di almacenamiento mappati à u spaziu di indirizzu fisicu, cum'è NVDIMM;
    • Implementatu a capacità di attaccà chjavi criptografici à un utilizatore o un spaziu di nomi di rete (i chjavi diventanu inaccessibili fora di u spaziu di nome selezziunatu), è ancu di prutege e chjave cù ACL;
    • À u subsistema criptu aghjustatu supportu per un algoritmu di hashing non criptograficu assai veloce xxhash, a velocità di quale dipende da u rendiment di memoria;
  • Sottusistema di rete
    • Trattamentu attivatu di l'indirizzi IPv4 in a gamma 0.0.0.0/8, chì prima ùn era micca dispunibule per l'usu. Introduzione di sta subnet permetterà distribuisce altri 16 milioni di indirizzi IPv4;
    • In Netfilter per nftables aghjustatu supportu per i meccanismi di accelerazione hardware per u filtru di pacchetti attraversu l'usu di drivers aghjuntu API Flow Block. Tavule intere di regule cù tutte e catene ponu esse posti à u latu di l'adattatori di rete. L'attivazione hè fatta da vincendu a bandiera NFT_TABLE_F_HW à a tavula. Supporta semplici metadati di protokollu Layer 3 è Layer 4, accettà / rifiutà l'azzioni, mappings per IP è porti di rete di mittente / ricevitore è tipu di protokollu;
    • Aggiuntu supportu integratu di seguimentu di cunnessione per i ponti di rete, chì ùn hà micca bisognu di l'usu di a capa di emulazione br_netfilter;
    • In nf_tables aghjustatu U supportu per u modulu SYNPROXY, chì riplica funziunalità simili da iptables, è a capacità di verificà e regule per l'opzioni individuali in l'intestazione IPv4 hè ancu implementata;
    • Aggiunta l'abilità di attaccà i prugrammi BPF à i chjami di sistema setsockopt () è getsockopt (), chì, per esempiu, vi permette di aghjunghje u vostru propiu gestore d'accessu à queste chjamate. Inoltre, un novu puntu di chjama (hook) hè statu aghjuntu, cù quale pudete urganizà una chjama à u prugramma BPF una volta per ogni intervallu RTT (round-trip-time, ping time);
    • Per IPv4 è IPv6 aghjuntu novu mecanismu di almacenamentu di dati di routing nexthop destinatu à aumentà a scalabilità di e tabelle di routing. I testi anu dimustratu chì quandu si usa u novu sistema, un settore di 743 mila rotte hè stata caricata in u kernel in solu 4.3 seconde;
    • Per Bluetooth implementatu funziunalità necessaria per supportà LE ping;
  • Equipment
    • Aggiuntu supportu per i processori compatibili x86 di a cumpagnia Zhaoxin, sviluppatu com'è u risultatu di un prughjettu cumuni trà VIA Technologies è a Municipalità di Shanghai. A famiglia CPU ZX hè custruita nantu à l'architettura x86-64 Isaia, cuntinuendu u sviluppu di a tecnulugia VIA Centaur;
    • U sottosistema DRM (Direct Rendering Manager), è ancu i driver di gràficu amdgpu è i915, hà aghjustatu supportu per l'analisi, l'elaborazione è l'invio di metadati HDR (high dynamic range) via u portu HDMI, chì permettenu l'usu di pannelli HDR è schermi capaci di affissà intervalli di luminosità supplementari;
    • U driver amdgpu hà aghjustatu u supportu iniziale per AMD NAVI GPU (RX5700), chì include u driver di basa, u codice di interazione di u screnu (DCN2), GFX è u supportu di calculu (GFX10),
      SDMA 5 (Sistema DMA0), gestione di l'energia è codificatori / decodificatori multimediali (VCN2). amdgpu migliurà ancu u supportu per e carte basate nantu à i GPU Vega12 è Vega20, per i quali anu aghjustatu capacità di memoria supplementu è di gestione di l'energia;

    • Aghjunghje supportu per e carte basate in VegaM GPU à u driver amdkfd (per GPU discrete, cum'è Fiji, Tonga, Polaris);
    • In u driver DRM per schede video Intel per chip Icelake implementatu novu modu di correzione gamma multi-segmenti. Aggiunta a capacità di pruduce via DisplayPort in u formatu YCbCr4: 2: 0. Novu firmware aghjuntu GuC per SKL, BXT, KBL, GLK è ICL. A capacità di disattivà a putenza di u screnu in modu asincronu hè stata implementata. Aggiuntu supportu per salvà è restaurà u cuntestu di rendering per i chips Ironlake (gen5) è gen4 (Broadwater - Cantiga), chì vi permette di restaurà u statu GPU da u spaziu di l'utilizatori quandu si move da una operazione batch à l'altru;
    • U driver Nouveau furnisce a rilevazione di u chipset NVIDIA Turing TU116;
    • E capacità di u driver DRM / KMS per l'acceleratori di schermu ARM Komeda (Mali D71) sò state allargate, u supportu per u scaling, split / merge layers, rotazione, scrittura differita, AFBC, SMMU è formati di codifica di culore Y0L2, P010, YUV420_8/10BIT hà. statu aghjuntu;
    • U driver MSM aghjunghjenu supportu per a serie A540 GPU Adreno utilizata in i processori Qualcomm, è ancu supportu per u controller MSM8998 DSI per Snapdragon 835;
    • Aggiunti driver per i pannelli LCD Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 è VXT VL050-8048NT-C01;

    • Aggiuntu driver per attivà strumenti di accelerazione di decodifica
      video dispunibuli in Amlogic Meson SoC;

    • In u driver v3d (per a GPU Broadcom Video Core V utilizata in u Raspberry Pi) hè apparsu supportu spedizioni di shaders di compute;
    • Aggiuntu driver per tastiere SPI è trackpads utilizati in mudelli muderni di laptop Apple MacBook è MacBookPro;
    • Aggiuntu prutezzione supplementu per i chjami ioctl assuciati cù u driver floppy, è u driver stessu hè marcatu cum'è micca mantenutu
      ("orfanu"), chì implica a terminazione di a so prova. U driver hè sempre guardatu in u kernel, ma u so funziunamentu currettu ùn hè micca garantitu. U cunduttore hè cunsideratu obsoletu, postu chì hè difficiule di truvà l'equipaggiu di travagliu per pruvà - tutte e unità esterne attuali, in regula, utilizanu l'interfaccia USB.

    • Aggiuntu cpufreq driver per Raspberry Pi boards, chì permette di cuntrullà dinamicamente i cambiamenti in a frequenza di u processatore;
    • Aggiuntu supportu per u novu ARM SoC Mediatek mt8183 (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSP + MMA) è Amlogic G12B (4x Cortex-A73 + 2x Cortex- A53 ), è ancu i pannelli:
      • Purismu Librem5,
      • Aspeed BMC,
      • Microsoft Olympus BMC,
      • Kontron SMARC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger96,
      • Google Cheza (Qualcomm SDM845),
      • Qualcomm Dragonboard 845c (Qualcomm SDM845),
      • Hugsun X99 TV Box (Rockchip RK3399),
      • Khadas Edge/Edge-V/Captain (Rockchip RK3399),
      • Salute RZ/G2M,
      • NXP LS1021A-TSN.

À u listessu tempu, a Fundazione di Software Liberu Latino-Americana furmatu
opzione kernel completamente gratuitu 5.3 - Linux-libre 5.3-gnu, sguassatu di firmware è elementi di driver chì cuntenenu cumpunenti non liberi o sezioni di codice, u scopu di quale hè limitatu da u fabricatore. In a nova versione, a carica di blob hè disattivata in i driver qcom, hdcp drm, allegro-dvt è meson-vdec.
Codice di pulizia blob aghjurnatu in i driver è i sottosistemi amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, driver di sonu per Skylake, è ancu in a documentazione di u microcode.

Source: opennet.ru

Add a comment