Linux 5.1 Kernel Verëffentlechung

No zwee Méint Entwécklung, Linus Torvalds agefouert kernel Verëffentlechung Linux 5.1. Ënnert de bemierkenswäertsten Ännerungen: eng nei Interface fir asynchronen I/O io_uring, d'Fäegkeet fir NVDIMM als RAM ze benotzen, Ënnerstëtzung fir gedeelt virtuell Gedächtnis am Nouveau, Ënnerstëtzung fir skalierbar Iwwerwaachung vu ganz grousse Dateiesystemer iwwer Fanotify, d'Fäegkeet fir Zstd Kompressioun ze konfiguréieren Niveauen an Btrfs, eng nei cpuidle TEO Handler, Ëmsetzung vun System rifft der 2038 Problem ze léisen, d'Fähegkeet vun Apparat-Mapper Apparater ouni initramfs ze Stiwwel, SafeSetID LSM Modul, Ënnerstëtzung fir kombinéiert Live Patches.

Haaptstrooss Innovatiounen:

  • Disk Subsystem, I/O an Dateisystemer
    • Eng nei Interface fir asynchronen I/O implementéiert - io_uring, déi bemierkenswäert ass fir seng Ënnerstëtzung fir I/O Polling an d'Fäegkeet fir mat oder ouni Puffer ze schaffen. Loosst eis drun erënneren datt de virdru proposéierten asynchronen I/O Mechanismus "aio" net gebuffert I/O ënnerstëtzt huet, nëmmen am O_DIRECT Modus operéiere konnt (ouni Bufferen an de Cache ëmgoen), Probleemer mat Spären haten wéinst der Waarde op Metadaten Disponibilitéit, an grouss Overhead Käschten ausgestallt wéinst Kopie vun Daten an Erënnerung.

      Bannent der API
      io_uring Entwéckler probéiert d'Mängel vun der aler Aio Interface ze eliminéieren. Vun Produktivitéit io_uring ass ganz no bei SPDK an ass wesentlech viru Libaio wann Dir mat Polling aktivéiert schafft. Eng Bibliothéik gouf virbereet fir io_uring an Endapplikatiounen ze benotzen déi am Benotzerraum lafen liburéieren, déi en héije Kader iwwer d'Kernel-Interface ubitt;

    • Am Event Tracking Mechanismus am FS fanotify () dobäi Ënnerstëtzung fir Superblock- a Strukturännerungssituatiounen ze verfolgen dirent (Evenementer fir Verzeichnungen ze kreéieren, ze läschen an ze verschwannen). Déi presentéiert Fonctiounen hëllefen d'Skalierbarkeetproblemer ze léisen, déi entstinn wann Dir rekursive Verännerungsverfolgung a ganz grousse Dateiesystemer mam Inotify Mechanismus benotzt (dirente Ännerunge konnten virdru nëmmen duerch Inotify verfollegt ginn, awer
      Leeschtung a Konditioune vu rekursive Verfolgung vu grousse nestéierte Verzeichnisser léisst vill ze wënschen). Elo kann esou Iwwerwaachung effektiv duerch Fanotify gemaach ginn;

    • Am Btrfs Dateisystem dobäi d'Kapazitéit fir de Kompressiounsniveau fir den zstd Algorithmus ze personaliséieren, wat als en optimale Kompromiss tëscht dem schnellen awer oneffektive lz4 an der luesen awer gutt Kompressioun xz ugesi ka ginn. Duerch Analogie mat wéi et virdru méiglech war de Kompressiounsniveau ze setzen wann Dir zlib benotzt, ass Ënnerstëtzung fir d'"-o compress = zstd: level" Mount Optioun fir zstd bäigefüügt. Wärend dem Test huet de Minimum éischten Niveau Datekompressioun vun 2.658 Mol mat enger Kompressiounsgeschwindegkeet vun 438.47 MB ​​/ s, Dekompressiounsgeschwindegkeet vun 910.51 MB / s an Erënnerungsverbrauch vu 780 MB geliwwert, an de maximalen Niveau 15 huet 3.126 Mol geliwwert, awer mat enger Kompressioun Vitesse vun 37.30 MB / s. Auspakung 878.84 MB / s an Erënnerung Konsum 2547 MB;
    • Dobäigesat d'Kapazitéit fir aus engem Dateiesystem op dem Apparat-Mapper-Apparat ze booten, ouni Initramfs ze benotzen. Vun der aktueller Kernel Verëffentlechung un, Apparat-Mapper Apparater kënnen direkt während dem Bootprozess benotzt ginn, zum Beispill als Partition mam Root Dateisystem. D'Partition ass konfiguréiert mam Bootparameter "dm-mod.create". Device-Mapper Moduler fir Luede erlaabt sinn: "Krypta", "Verzögerung", "Linear", "Snapshot-Origine" an "Verity";
    • De F2FS_NOCOW_FL-Fändel gouf an de F2FS-Dateisystem hinzugefügt, orientéiert op Flash-Laufwerke, wat Iech erlaabt de Copy-on-Write Modus fir eng bestëmmte Datei auszeschalten;
    • Dateisystem aus dem Kernel geläscht Exofs, déi eng Variant vun ext2 ass, ugepasst fir mat OSD (Object-based Storage Device) Objektspeicher ze schaffen. Ënnerstëtzung fir den SCSI-Protokoll fir sou Objektspeichergeräter gouf och geläscht;
  • Virtualiséierung a Sécherheet
    • Dobäi PR_SPEC_DISABLE_NOEXEC Optioun ze prctl () fir eng Kontroll spekulativ Ausféierung vun Instruktioune fir de ausgewielt Prozess. Eng nei Optioun erlaabt Iech selektiv spekulativ Ausféierung fir Prozesser auszeschalten déi potenziell vun engem Spectre Attack attackéiert kënne ginn. D'Spär dauert bis den éischten Uruff un exec ();
    • Ëmgesat LSM Modul SafeSetID, wat System Servicer erlaabt Benotzer sécher ze verwalten ouni Privilegien z'eskaléieren (CAP_SETUID) an ouni Root Privilegien ze kréien. Privilegien ginn zougewisen andeems Dir Regelen an Securityfs definéiert baséiert op enger wäisser Lëscht vu valabele Bindungen (an der Form "UID1: UID2");
    • Zousätzlech niddereg-Niveau Ännerungen néideg fir Stack-baséiert Luede vu Sécherheet Moduler (LSMs). Agefouert der "lsm" Kernel Boot Optioun fir ze kontrolléieren wéi eng Moduler gelueden sinn a wéi eng Rei;
    • Ënnerstëtzung fir Dateinummraim gouf am Audit-Subsystem bäigefüügt;
    • Erweidert d'Kapazitéite vun der GCC Plugin structleak, déi erlaabt Iech Potential Auslafe vun Erënnerung Inhalt ze blockéieren.Initialiséierung vun all Verännerlechen, datt am Code duerch Referenz Zougang op de Stack benotzt ginn ass;
  • Netzwierk Subsystem
    • Fir Sockets ëmgesat nei Optioun "SO_BINDTOIFINDEX" ähnlech ze
      "SO_BINDTODEVICE", mee huelen als Argument d'Index Zuel vun der Reseau Interface amplaz den Interface Numm;

    • De mac80211 Stack huet d'Fäegkeet bäigefüügt fir verschidde BSSIDs (MAC Adressen) op een Apparat ze ginn. Als Deel vun engem Projet fir d'WiFi-Performance ze optimiséieren, huet de mac80211-Stack d'Loftzäitrechnung bäigefüügt an d'Fäegkeet fir d'Loftzäit tëscht verschidde Statiounen ze verdeelen (wann Dir am Access Point Modus funktionnéiert, manner Iwwerdroungszäit fir luesen drahtlose Statiounen ze verdeelen, anstatt d'Zäit gläichméisseg tëscht all ze verdeelen Statiounen);
    • Zousätzlech Mechanismus "devlink Gesondheet", déi Notifikatiounen ubitt wann Probleemer mat der Netzwierkinterface optrieden;
  • Erënnerung a System Servicer
    • Ëmgesat sécher Signal Liwwerung datt PID weiderbenotzen erlaabt. Zum Beispill, wann Dir virdru Kill rufft, kéint eng Situatioun entstoen, wou direkt nom Sende vun engem Signal den Zil-PID konnt befreit ginn wéinst der Prozesskündung a vun engem anere Prozess besat, an d'Signal géif um Enn an en anere Prozess weiderginn. Fir esou Situatiounen z'eliminéieren, gouf en neie Systemruff pidfd_send_signal bäigefüügt, deen Dateideskriptoren aus /proc/pid benotzt fir eng stabil Prozessverbindung ze garantéieren. Och wann d'PID während der Systemopruffveraarbechtung weiderbenotzt gëtt, ännert d'Dateibeschreiwung net a ka sécher benotzt ginn fir e Signal un de Prozess ze schécken;
    • Dobäigesat d'Fäegkeet fir permanent Erënnerungsapparater ze benotzen (zum Beispill persistent Erënnerung NVDIMM) als RAM. Bis elo huet de Kernel sou Geräter wéi Späichergeräter ënnerstëtzt, awer elo kënnen se och als zousätzlech RAM benotzt ginn. D'Feature gëtt implementéiert als Äntwert op d'Wënsch vun de Benotzer, déi gewëllt sinn mat enger Leeschtungslag opzemaachen an déi gebierteg Linux Kernel Memory Management API ze benotzen anstatt existent User-Space Memory Allocation Systemer ze benotzen, déi uewen op mmap fir den Dax lafen. Fichier;
    • En neie CPU Idle Handler bäigefüügt (cpuidle, entscheet wéini d'CPU an déif Energiespuermodi gesat ka ginn; wat méi déif de Modus, dest méi spuert, awer och wat et méi laang dauert fir de Modus erauszekommen) - TEO (Timer Events Oriented Gouverneur) ). Bis elo goufen zwee cpuidle Handler proposéiert - "Menu" an "Leeder", ënnerscheedend an Heuristik. De "Menü"-Handler huet bekannte Problemer mat heuristesche Entscheedungen ze huelen, fir ze eliminéieren déi et decidéiert gouf en neien Handler ze preparéieren. TEO ass als Alternativ zum "Menü" Handler positionéiert, wat eng méi héich Leeschtung erlaabt wärend dee selwechte Stroumverbrauch behalen.
      Dir kënnt den neien Handler aktivéieren mat dem Bootparameter "cpuidle.governor = teo";

    • Als Deel vun der Aarbecht ze eliminéieren Problemer vun 2038, verursaacht duerch eng Iwwerschwemmung vum 32-bëssen time_t-Typ, enthält Systemanriff déi 32-bëssen Zäitteller fir 64-bëssen Architekturen ubidden. Als Resultat kann d'64-Bit time_t Struktur elo op all Architekturen benotzt ginn. Ähnlech Ännerungen sinn och am Netz-Subsystem fir Optiounen ëmgesat ginn Zäitstempel Netzwierk Sockets;
    • An de waarme Patching System fir de Kär (Live Patching) dobäi "Atomic Replace" Feature fir atomesch eng Serie vun Ännerungen op eng eenzeg Funktioun z'applizéieren. Dës Fonktioun erlaabt Iech Resumé Patches ze verdeelen, déi verschidde Ännerunge gläichzäiteg ofdecken, amplaz vum Prozess vun der Etapp-fir-Etapp Uwendung vu Live Patches an enger strikt definéierter Uerdnung, wat zimmlech schwéier ze erhalen ass. Wärend virdru all spéider Ännerung op den Zoustand vun der Funktioun no der leschter Ännerung muss baséieren, ass et elo méiglech verschidde Ännerunge verbonne mat engem initialen Zoustand gläichzäiteg ze propagéieren (dh Ënnerhalter kënnen e konsolidéierte Patch relativ zum Basiskär erhalen amplaz vun enger Kette vu Flecken déi vuneneen ofhänken);
    • ugekënnegt ofgeschaaft Ënnerstëtzung fir den a.out ausführbare Dateiformat an
      geläscht Code fir Kärdateien an engem.out Format ze generéieren, deen an engem verloossenen Zoustand ass. D'a.out Format gouf laang net op Linux Systemer benotzt, an d'Generatioun vun a.out Dateien ass laang net vun modernen Tools an Standard Linux Konfiguratiounen ënnerstëtzt. Zousätzlech kann de Loader fir a.out Dateien ganz am Benotzerraum ëmgesat ginn;

    • D'Kapazitéit fir net benotzte Code z'identifizéieren an ze läschen ass am BPF Programmverifizéierungsmechanismus bäigefüügt. De Kernel enthält och Patches mat Spinlock Support fir de BPF Subsystem, déi zousätzlech Fäegkeeten ubidden fir d'parallel Ausféierung vu BPF Programmer ze managen;
  • Ausrüstung
    • Am Nouveau Chauffer dobäi Ënnerstëtzung fir heterogen Erënnerung Gestioun, erlaabt der CPU an GPU gemeinsam synchroniséiert Erënnerung Beräicher Zougang. De Shared Virtual Memory System (SVM, Shared Virtual Memory) gëtt op Basis vum HMM (Heterogeneous Memory Management) Subsystem implementéiert, deen d'Benotzung vun Apparater mat hiren eegene Memory Management Eenheeten (MMU, Memory Management Unit) erlaabt, déi Zougang kënnen hunn. Haaptrei Erënnerung. Besonnesch, mat HMM, kënnt Dir e gemeinsame Adressraum tëscht der GPU an der CPU organiséieren, an deem d'GPU Zougang zum Haaptspeicher vum Prozess kritt. SVM Support ass de Moment nëmme fir Pascal Famill GPUs aktivéiert, obwuel Ënnerstëtzung och fir Volta an Turing GPUs gëtt. Ausserdeem, am Nouveau dobäigesat nei ioctl der Migratioun vun Prozess Erënnerung Beräicher ze GPU Erënnerung ze kontrolléieren;
    • Am Intel DRM Driver fir GPU Skylake a spéider (gen9+) abegraff Par défaut eliminéiert de Fastboot Modus onnéideg Modus Ännerungen beim Boot. Dobäigesat новые Apparat Identifizéierer baséiert op Coffelake an Ice Lake Mikroarchitekturen. Fir Coffelake Chips dobäi GVT Ënnerstëtzung (GPU Virtualiséierung). Fir virtuell GPUs ëmgesat VFIO EDID Ënnerstëtzung. Fir LCD Panelen MIPI / DSI dobäi Ënnerstëtzung fir ACPI / PMIC Elementer. Ëmgesat nei TV Modi 1080p30/50/60 TV;
    • Ënnerstëtzung fir Vega10/20 BACO GPU op den amdgpu Chauffer dobäigesat. Implementéiert Vega 10/20 Power Management a Vega 10 Cooler Kontrolltabellen. Nei PCI Apparat Identifizéierer fir Picasso GPUs dobäigesat. Dobäigesat Interface fir geplangte Ofhängegkeeten ze managen fir Deadlocks ze vermeiden;
    • Dobäigesat DRM / KMS Chauffer fir Écran Beschleuniger ARM Komeda (Mali D71);
    • Zousätzlech Ënnerstëtzung fir Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 a Kingdisplay kd097d04 Écran Panelen;
    • Zousätzlech Ënnerstëtzung fir Rockchip RK3328, Cirrus Logic CS4341 an CS35L36, MediaTek MT6358, Qualcomm WCD9335 an Ingenic JZ4725B Audio Codecs, souwéi Mediatek MT8183 Audio Plattform;
    • Zousätzlech Ënnerstëtzung fir NAND Controller Flash STMicroelectronics FMC2, Amlogic Meson;
    • Zousätzlech Beschleuniger Ënnerstëtzung fir Habana AI Hardware Systemer;
    • Zousätzlech Ënnerstëtzung fir NXP ENETC Gigabit Ethernet Controller a MediaTek MT7603E (PCIe) an MT76x8 Wireless Interfaces.

Zur selwechter Zäit ass d'Latäinamerikanesch Free Software Foundation geformt
Optioun komplett gratis Kernel 5.1 - Linux-Libre 5.1-gnu, geläscht vun Firmware a Chauffer Elementer déi net-gratis Komponenten oder Code Sektiounen enthalen, den Ëmfang vun deenen ass vum Hiersteller limitéiert. An der neier Verëffentlechung ass d'Blobbelaaschtung an de mt7603 a Goya Treiber deaktivéiert. Aktualiséiert Blob Reinigungscode an Treiber an Ënnersystemer wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk an touchscreen_dmi. Blob Botzen am Lantiq xrx200 Firmware Loader gouf gestoppt wéinst senger Entfernung vum Kernel.

Source: opennet.ru

Setzt e Commentaire