Versione di u kernel Linux 5.1

Dopu dui mesi di sviluppu, Linus Torvalds introduttu liberazione di u kernel Linux 5.1. Trà i cambiamenti più notevuli: una nova interfaccia per io_uring I/O asincronu, a capacità di utilizà NVDIMM cum'è RAM, supportu per a memoria virtuale spartuta in Nouveau, supportu per u monitoraghju scalabile di sistemi di schedarii assai grandi via fanotify, a capacità di cunfigurà a compressione Zstd. livelli in Btrfs, un novu cpuidle TEO handler, implementazione di e chjama di u sistema per risolve u prublema 2038, a capacità di boot da i dispositi device-mapper senza initramfs, u modulu SafeSetID LSM, supportu per patch live cumminati.

menu innovazioni:

  • Sottosistema di discu, I / O è sistemi di fugliale
    • Implementatu una nova interfaccia per l'I/O asincronu - io_uring, chì hè notu per u so supportu per u polling I / O è a capacità di travaglià cù o senza buffering. Ricurdemu chì u mecanismu I/O asincronu prupostu prima "aio" ùn sustene micca l'I/O buffered, puderia solu operà in u modu O_DIRECT (senza buffering è bypassing a cache), hà avutu prublemi cù chjusi per aspittà di a dispunibilità di metadata, è esibì grandi spese generali per via di a copia di dati in memoria.

      Dentru l'API
      I sviluppatori io_uring anu pruvatu à eliminà i difetti di a vechja interfaccia aio. By produttività io_uring hè assai vicinu à SPDK è hè significativamente davanti à libaio quandu travaglia cù polling attivatu. Una libreria hè stata preparata per aduprà io_uring in l'applicazioni finali in esecuzione in u spaziu di l'utilizatori liburing, chì furnisce un quadru di altu livellu nantu à l'interfaccia di u kernel;

    • In u mecanismu di seguimentu di l'eventu in u FS fanotify () aghjustatu supportu per u seguimentu di superblocchi è situazioni di cambiamentu di struttura dirent (eventi di creazione, sguassazione è muvimentu di cartulari). E caratteristiche presentate aiutanu à risolve i prublemi di scalabilità chì si presentanu quandu creanu u seguimentu di cambiamenti recursivi in ​​sistemi di schedarii assai grandi utilizendu u mecanismu inotify (i cambiamenti diretti puderanu esse tracciati prima solu per inotify, ma
      prestazione in cundizioni di seguimentu recursive di grandi repertorii nidificati lasciava assai per esse desideratu). Avà tali surviglianza pò esse effittivamenti fattu attraversu fanotify;

    • Nantu à u sistema di schedari Btrfs aghjustatu l'abilità di persunalizà u nivellu di cumpressione per l'algoritmu zstd, chì pò esse cunsideratu cum'è u cumprumissu ottimali trà u lz4 veloce, ma inefficace, è a compressione lenta ma bona xz. Simile à cumu prima era pussibule di stabilisce u livellu di cumpressione quandu si usa zlib, u supportu per l'opzione di muntagna "-o compress = zstd:level" hè stata aghjunta per zstd. Durante a prova, u primu livellu minimu hà furnitu cumpressione di dati da 2.658 volte cù una velocità di compressione di 438.47 MB ​​/ s, una velocità di decompressione di 910.51 MB / s è u cunsumu di memoria di 780 MB, è u livellu massimu 15 furnia 3.126 volte, ma cù una compressione. vitezza di 37.30 MB / s. Unpacking 878.84 MB / s è cunsumu di memoria 2547 MB;
    • Aggiuntu a capacità di boot da un sistema di schedari situatu nantu à u dispositivu device-mapper, senza aduprà initramfs. Partendu cù a liberazione di u kernel attuale, i dispositi di mappe di u dispositivu ponu esse utilizati direttamente durante u prucessu di boot, per esempiu, cum'è una partizione cù u sistema di file root. A partizione hè cunfigurata cù u paràmetru di boot "dm-mod.create". I moduli di Device-mapper permessi per a carica includenu: "cripta", "ritardu", "lineare", "snapshot-origine" è "verità";
    • A bandiera F2FS_NOCOW_FL hè stata aghjunta à u sistema di fugliale F2FS orientatu versu i drive Flash, chì permette di disattivà u modu di copia in scrittura per un schedariu datu;
    • U sistema di schedari eliminatu da u kernel Exofs, chì hè una variante di ext2, adattatu per travaglià cù l'almacenamiento d'oggetti OSD (Dispositivu di Storage basatu in oggetti). U supportu per u protokollu SCSI per tali dispositi di almacenamiento d'ughjettu hè statu ancu eliminatu;
  • Virtualizazione è Sicurezza
    • Aggiunta l'opzione PR_SPEC_DISABLE_NOEXEC à prctl () per cuntrullà l'esekzione speculativa di l'istruzzioni per u prucessu sceltu. Una nova opzione permette di disattivà selettivamente l'esecuzione speculativa per i prucessi chì puderanu esse attaccati da un attaccu Spectre. A serratura dura finu à a prima chjamata à exec ();
    • Implementatu u modulu LSM SafeSetID, chì permette à i servizii di u sistema di gestisce in modu sicuru l'utilizatori senza l'escalamentu di privilegi (CAP_SETUID) è senza guadagnà privilegi di root. I privileggi sò attribuiti da definisce e regule in securityfs basatu nantu à una lista bianca di ligami validi (in a forma "UID1: UID2");
    • Aghjunghjite cambiamenti di livellu bassu necessariu per a carica basata in stack di moduli di sicurezza (LSM). Introduce l'opzione di boot di u kernel "lsm" per cuntrullà quali moduli sò caricati è in quale ordine;
    • U supportu per i spazii di nomi di u schedariu hè statu aghjuntu à u sottosistema di auditu;
    • Expanded e capacità di u plugin GCC structleak, chì permette di bluccà e fughe potenziali di cuntenutu di memoria.Inizializazione di qualsiasi variàbili chì sò utilizati in u codice per l'accessu di riferimentu nantu à a pila hè furnita;
  • Sottusistema di rete
    • Per i sockets implementatu nova opzione "SO_BINDTOIFINDEX" simile à
      "SO_BINDTODEVICE", ma pigliendu com'è argumentu u numeru indice di l'interfaccia di a reta invece di u nome di l'interfaccia;

    • A pila mac80211 hà aghjustatu a capacità di assignà parechji BSSID (indirizzi MAC) à un dispositivu. Cum'è parte di un prughjettu per ottimisà u rendimentu WiFi, a pila mac80211 hà aghjustatu a cuntabilità di u tempu d'aria è a capacità di distribuisce u tempu d'aria trà parechje stazioni (quandu operanu in modu di puntu d'accessu, allocanu menu tempu di trasmissione à stazioni wireless lente, invece di distribuisce u tempu uniformemente trà tutti. stazioni);
    • Meccanisimu aghjuntu "salute devlink", chì furnisce notificazioni quandu i prublemi accadenu cù l'interfaccia di a rete;
  • Memoria è servizii di sistema
    • Implementatu consegna sicura di signali chì permette a reutilizazione PID. Per esempiu, quandu si chjamava kill in precedenza, una situazione puderia esse induve, immediatamente dopu avè mandatu un signalu, u PID di destinazione puderia esse liberatu per via di a terminazione di u prucessu è occupatu da un altru prucessu, è u signale finisce per esse passatu à un altru prucessu. Per eliminà tali situazioni, hè stata aghjunta una nova chjamata di sistema pidfd_send_signal, chì usa descriptori di file da /proc/pid per assicurà un prucessu stabile. Ancu s'è u PID hè riutilizatu durante u processu di a chjama di u sistema, u descrittore di u schedariu ùn cambierà micca è pò esse usatu in modu sicuru per mandà un signalu à u prucessu;
    • Aggiuntu l'abilità di utilizà i dispositi di memoria permanente (memoria persistente, per esempiu NVDIMM) cum'è RAM. Finu à avà, u kernel supportava tali dispositi cum'è i dispositi di almacenamento, ma avà ponu ancu esse usatu cum'è RAM addiziale. A funzione hè implementata in risposta à i desideri di l'utilizatori chì sò disposti à sopportà un ritardu di rendiment è volenu aduprà l'API nativa di gestione di memoria di u kernel Linux invece di utilizà sistemi di allocazione di memoria di u spaziu di l'utilizatori esistenti in esecuzione nantu à mmap per u dax. schedariu;
    • Aggiuntu un novu gestore di CPU idle (cpuidle, decide quandu u CPU pò esse messu in modi di risparmiu di energia prufonda; u più profondu u modu, u più grande u risparmiu, ma ancu u più tempu ci vole à esce da u modu) - TEO (Timer Events Oriented Governor) ). Finu à avà, dui gestori di cpuidle sò stati pruposti - "menu" è "scala", chì sò diffirenti in heuristiche. U gestore di "menu" hà cunnisciutu prublemi cù decisione heuristic, per eliminà chì hè statu decisu di preparà un novu gestore. TEO hè posizionatu cum'è una alternativa à u gestore "menu", chì permette un rendimentu più altu mantenendu u listessu livellu di cunsumu di energia.
      Pudete attivà u novu gestore cù u paràmetru di boot "cpuidle.governor=teo";

    • Comu parte di u travagliu per eliminà prublemi di 2038, causatu da un overflow di u tippu time_t 32-bit, include chjami di u sistema chì offrenu contatori di tempu 32-bit per architetture 64-bit. In u risultatu, a struttura time_t 64-bit pò avà esse usata in tutte l'architetture. I cambiamenti simili sò stati implementati ancu in u sottusistema di rete per l'opzioni sicunnu prese di rete;
    • In u sistema di patching hot per u core (patching live) aghjustatu Funzione "Atomic Replace" per applicà atomicamente una seria di cambiamenti à una sola funzione. Questa funzione permette di distribuisce patch riassuntu chì copre parechji cambiamenti à una volta, invece di u prucessu di applicazione stage-by-stage di patch live in un ordine strettamente definitu, chì hè abbastanza difficiule di mantene. Mentre chì prima ogni cambiamentu sussegwente duvia esse basatu annantu à u statu di a funzione dopu à l'ultimu cambiamentu, hè avà pussibule di propagà parechji cambiamenti ligati à un statu iniziale à una volta (vale à dì, i mantenitori ponu mantene un patch cunsulidatu in quantu à u kernel di basa invece). di una catena di patch chì dipendenu l'una di l'altru);
    • Annunziata supportu deprecated per u furmatu di file eseguibile a.out è
      sguassatu codice per generà i schedarii core in u formatu a.out, chì hè in un statu abbandunatu. U formatu a.out ùn hè micca stata utilizata in sistemi Linux per un bellu pezzu, è a generazione di i schedari a.out hè stata longa senza supportu da l'arnesi muderni in cunfigurazioni Linux predeterminate. Inoltre, u caricatore per i schedari a.out pò esse implementatu interamente in u spaziu di l'utilizatori;

    • A capacità di identificà è caccià u codice inutilizatu hè stata aghjunta à u mecanismu di verificazione di u prugramma BPF. U kernel include ancu patches cù supportu di spinlock per u subsistema BPF, chì furnisce capacità supplementari per gestisce l'esekzione parallela di prugrammi BPF;
  • Equipment
    • In Nouveau driver aghjustatu supportu per a gestione di memoria eterogenea, chì permette à a CPU è a GPU di accede à e spazii di memoria sincronizzati cumuni. U sistema di memoria virtuale spartutu (SVM, memoria virtuale spartuta) hè implementatu nantu à a basa di u subsistema HMM (gestione di memoria heterogenea), chì permette l'usu di i dispositi cù e so unità di gestione di memoria propria (MMU, unità di gestione di memoria), chì ponu accede. 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. U supportu SVM hè attualmente attivatu solu per i GPU di a famiglia Pascal, ancu se u supportu hè furnitu ancu per i GPU Volta è Turing. Inoltre, in Nouveau aghjuntu novu ioctl per cuntrullà a migrazione di e zone di memoria di prucessu à a memoria GPU;
    • In u driver Intel DRM per GPU Skylake è più tardi (gen9+) inclusu Per automaticamente, u modu fastboot elimina cambiamenti in modu innecessariu durante u boot. Aggiuntu новые identificatori di i dispositi basati nantu à i microarchitetture Coffelake è Ice Lake. Per patatine fritte Coffelake aghjustatu supportu GVT (Virtualization GPU). Per GPU virtuali implementatu Support VFIO EDID. Per i pannelli LCD MIPI/DSI aghjustatu supportu per l'elementi ACPI/PMIC. Implementatu novi modi TV 1080p30/50/60 TV;
    • Aghjunghje supportu per Vega10/20 BACO GPU à u driver amdgpu. Implementatu a gestione di l'energia Vega 10/20 è i tavulini di cuntrollu di i cooler Vega 10. Aggiunti novi identificatori di dispositivi PCI per i GPU Picasso. Aggiuntu interfaccia per a gestione di dipendenze schedulable per evità i blocchi;
    • Aggiuntu Driver DRM / KMS per acceleratori di schermu ARM Komeda (Mali D71);
    • Aghjunghje supportu per i pannelli Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 è Kingdisplay kd097d04;
    • Aghjunghje supportu per i codecs audio Rockchip RK3328, Cirrus Logic CS4341 è CS35L36, MediaTek MT6358, Qualcomm WCD9335 è Ingenic JZ4725B, è ancu a piattaforma audio Mediatek MT8183;
    • Supportu aghjuntu per i controller NAND Flash STMicroelectronics FMC2, Amlogic Meson;
    • Aghjunghje un supportu acceleratore per i sistemi hardware Habana AI;
    • Supportu aghjuntu per i controller NXP ENETC gigabit Ethernet è l'interfacce wireless MediaTek MT7603E (PCIe) è MT76x8.

À u listessu tempu, a Fundazione di Software Liberu Latino-Americana furmatu
opzione kernel completamente gratuitu 5.1 - Linux-libre 5.1-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 mt7603 è goya. Codice di pulizia blob aghjurnatu in i driver è i sottosistemi wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk è touchscreen_dmi. A pulizia di blob in u caricatore di firmware lantiq xrx200 hè stata fermata per via di a so rimozione da u kernel.

Source: opennet.ru

Add a comment