Linux 5.6 Kernel Verëffentlechung

No zwee Méint Entwécklung, Linus Torvalds agefouert kernel Verëffentlechung Linux 5.6. Ënnert de bemierkenswäertsten Ännerungen: Integratioun vun der WireGuard VPN Interface, Ënnerstëtzung fir USB4, Nummraim fir Zäit, d'Fäegkeet fir TCP Stau Handler mat BPF ze kreéieren, initial Ënnerstëtzung fir MultiPath TCP, d'Befreiung vum Kernel vum 2038 Problem, de "Bootconfig" Mechanismus , ZoneFS.

Déi nei Versioun enthält 13702 Fixer vun 1810 Entwéckler,
Patchgréisst - 40 MB (Ännerunge betraff 11577 Dateien, dobäi 610012 Zeilen Code,
294828 Reihen ewechgeholl). Ongeféier 45% vun all presentéiert am 5.6
Ännerungen sinn am Zesummenhang mat Apparat Chauffeuren, ongeféier 15% vun Ännerungen sinn
Haltung zum Update Code spezifesch fir Hardwarearchitekturen, 12%
mat der Reseau Stack assoziéiert, 4% mat Fichier Systemer an 3% mat intern
kernel subsystems.

Haaptstrooss Innovatiounen:

  • Netzwierk Subsystem
    • Dobäigesat Ëmsetzung vun engem VPN Interface WireGuard, déi baséiert op modernen Verschlësselungsmethoden (ChaCha20, Poly1305, Curve25519, BLAKE2s) implementéiert ass, ass einfach ze benotzen, fräi vu Komplikatiounen, huet sech an enger Rei vu groussen Implementatiounen bewisen a bitt ganz héich Leeschtung (3,9 Mol méi séier wéi OpenVPN a punkto Begrëffer) vum Duerchgang). WireGuard benotzt d'Konzept vun Verschlësselungsschlëssel Routing, wat involvéiert e private Schlëssel un all Netzwierkschnitt ze befestigen an et ze benotzen fir d'ëffentlech Schlësselen ze binden. Ëffentlech Schlësselen ginn ausgetauscht fir eng Verbindung op eng ähnlech Manéier wéi SSH opzebauen. Kryptografesch Primitiv erfuerderlech fir WireGuard ze schaffen et war iwwerdroen aus der Bibliothéik Zénk als Deel vun der Norm Crypto API an abegraff an de Kär 5.5.
    • Ugefaangen Integratioun vu Komponenten déi néideg sinn fir MPTCP (MultiPath TCP) z'ënnerstëtzen, eng Ausdehnung vum TCP-Protokoll fir d'Organisatioun vun der Operatioun vun enger TCP-Verbindung mat der Liwwerung vu Päck gläichzäiteg laanscht verschidde Strecken duerch verschidde Netzwierkschnëttplazen, déi mat verschiddene IP Adressen verbonne sinn. Fir Netzwierkapplikatiounen gesäit sou eng aggregéiert Verbindung aus wéi eng regulär TCP Verbindung, an all d'Flow Trennungslogik gëtt vun MPTCP ausgefouert. Multipath TCP ka benotzt ginn fir den Duerchgang ze erhéijen an d'Zouverlässegkeet ze erhéijen. Zum Beispill kann MPTCP benotzt ginn fir Dateniwwerdroung op engem Smartphone mat WiFi a 4G Linken gläichzäiteg ze organiséieren, oder fir Käschten ze reduzéieren andeems Dir e Server verbënnt mat e puer bëlleg Linken amplaz vun engem deiere Link.
    • Dobäigesat Ënnerstëtzung fir d'Netzschlaangveraarbechtungsdisziplin sch_ets (Verbesserte Transmissioun Auswiel, IEEE 802.1Qaz), déi d'Fäegkeet bitt Bandbreedung tëscht verschiddene Trafficklassen ze verdeelen. Wann d'Laascht op eng bestëmmte Verkéiersklass ënner der zougewisener Bandbreedung ass, dann erlaabt d'ETS aner Trafficklassen déi verfügbar (onbenotzt) Bandbreedung ze benotzen. Qdisc sch_ets ass als PRIO Disziplin konfiguréiert a benotzt Verkéiersklassen fir strikt a gemeinsame Bandbreedlimiten ze definéieren. ETS funktionnéiert als Kombinatioun vun Disziplinnen PRIO и DRR - wann et strikt limitéiert Traffic Klassen, PRIO benotzt, mä wann et kee Verkéier an der Schlaang ass, et Wierker wéi DRR.
    • Eng nei Zort vu BPF Programmer bäigefüügt BPF_PROG_TYPE_STRUCT_OPS, wat Iech erlaabt Kernel Funktioun Handler duerch BPF ëmzesetzen. De Moment kann dës Fonktioun scho benotzt ginn fir TCP Stau Kontroll Algorithmen a Form vu BPF Programmer ëmzesetzen. Als Beispill proposéiert BPF Programm mat Algorithmus Ëmsetzung DCTCP.
    • Akzeptéiert an de Kär änneren, Iwwersetzungsinstrumenter ettool mat ioctl () ze benotzen netlink Interface. Déi nei Interface mécht et méi einfach Extensiounen ze addéieren, verbessert Fehlerhandhabung, erlaabt Notifikatiounen ze schécken wann de Staat ännert, vereinfacht d'Interaktioun tëscht dem Kernel an dem Benotzerraum, a reduzéiert d'Zuel vun de genannte Lëschten déi synchroniséiert musse ginn.
    • Zousätzlech Implementatioun vum FQ-PIE (Flow Queue PIE) Netzwierk Queue Management Algorithmus bäigefüügt, zielt fir den negativen Impakt vum Zwëschen Paketbuffering op Randnetzausrüstung (Bufferbloat) ze reduzéieren. FQ-PIE weist héich Effizienz wann se a Systemer mat Kabelmodem benotzt ginn.
  • Disk Subsystem, I/O an Dateisystemer
    • Fir Btrfs Dateisystem dobäi asynchrone Ëmsetzung vun der DISCARD Operatioun (markéiert befreit Blocken déi net méi kierperlech gespäichert musse ginn). Am Ufank goufen DISCARD Operatiounen synchron ausgeführt, wat zu Leeschtungsverschlechterung kéint féieren wéinst den Drive, déi op déi entspriechend Kommandoen waarden fir ze kompletéieren. Asynchron Ëmsetzung erlaabt Iech net op den Drive ze waarden fir DISCARD ofzeschléissen an dës Operatioun am Hannergrond auszeféieren.
    • An XFS ausgefouert Botzen Code deen al 32-bëssen Zäit counters benotzt (den time_t Typ gouf duerch time64_t ersat), féiert zu der 2038 Problem. Fixéiert Feeler an Erënnerungskorruptioun déi op 32-Bit Plattformen geschitt ass. De Code gouf ëmgebaut fir mat erweiderten Attributer ze schaffen.
    • Fir ext4 Dateisystem agefouert Leeschtungsoptimisatiounen am Zesummenhang mat der Handhabung vun Inode Sperrung wärend Lies- a Schreifoperatiounen. Verbesserte Rewriting Leeschtung am Direct I / O Modus. Fir d'Diagnostik vu Probleemer ze vereinfachen, ginn déi éischt a lescht Fehlercodes am Superblock gespäichert.
    • Am F2FS Dateisystem ëmgesat Fäegkeet fir Daten a kompriméierter Form ze späicheren. Fir eng individuell Datei oder Verzeechnes kann d'Kompressioun aktivéiert ginn mat dem Kommando "chattr +c Datei" oder "chattr +c dir; touch dir/file". Fir déi ganz Partition ze kompriméieren, kënnt Dir d'Optioun "-o compress_extension=ext" am Mount Utility benotzen.
    • De Kärel enthält e Dateiesystem ZoneFS, Wat vereinfacht Low-Level Aarbecht mat zonéierte Späichergeräter. Zoned Drive bedeit Apparater op haart magnetesche Placken oder NVMe SSDs, de Späicherplatz an deem an Zonen opgedeelt ass, déi Gruppe vu Blocken oder Secteuren ausmaachen, an deenen nëmmen sequentiell Zousatz vun Daten erlaabt ass, déi ganz Grupp vu Blocken aktualiséieren. FS ZoneFS gouf vu Western Digital entwéckelt an assoziéiert all Zone am Drive mat enger separater Datei, déi benotzt ka ginn fir Daten am roude Modus ze späicheren ouni Manipulatioun um Sektor- a Blockniveau, d.h. Erlaabt Uwendungen d'Datei API ze benotzen amplaz direkt Zougang zum Blockapparat mat engem ioctl.
    • An NFS ass d'Montage vu Partitionen iwwer UDP als Standard deaktivéiert. Zousätzlech Ënnerstëtzung fir d'Fäegkeet fir Dateien direkt tëscht Serveren ze kopéieren, definéiert an der NFS 4.2 Spezifizéierung. Eng nei Mountoptioun "Softreval" bäigefüügt, wat et erlaabt Cache Attributwäerter am Fall vu Serverfehler ze benotzen. Zum Beispill, wann Dir dës Optioun spezifizéiert, nodeems de Server net verfügbar ass, bleift et méiglech laanscht d'Weeër an der NFS-Partition ze plënneren an Zougang zu Informatioun déi am Cache etabléiert ass.
    • Ausgefouert Optimiséierung vun der Leeschtung vum fs-verity Mechanismus, benotzt fir d'Integritéit an d'Authentifikatioun vun eenzelne Dateien ze iwwerwaachen. Méi sequenziell Liesgeschwindegkeet dank der Notzung vun engem Merkle Hashbaum. D'Performance vun FS_IOC_ENABLE_VERITY gouf optimiséiert wann et keng Daten am Cache ass (preemptive Liesung vu Säiten mat Daten gouf applizéiert).
  • Virtualiséierung a Sécherheet
    • D'Kapazitéit fir de SELinux-Modul auszeschalten beim Laafen ass ofgeschaaft ginn, an d'Ausluede vun engem schonn aktivéierten SELinux gëtt an der Zukunft verbueden. Fir SELinux auszeschalten musst Dir de "selinux=0" Parameter op der Kernel Kommandozeil passéieren.
    • Dobäigesat Ënnerstëtzung fir Nummraim fir Zäit (Zäitnummraim), erlaabt Iech den Zoustand vun der Systemuhr un de Container ze binden (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), benotzt Är eegen Zäit am Container an, wann Dir de Container an en anere Host migréiert, suergt dofir datt d'CLOCK_MONOTONIC an CLOCK_BOOTTIME Liesungen onverännert bleiwen (huelt d'Zäit no der Luede berücksichtegt, mat oder ouni Rechnung am Schlofmodus ze sinn ).

    • Den /dev/random Blocking Pool gouf geläscht. D'Behuele vun /dev/random ass ähnlech wéi /dev/urandom wat d'Entropieblockéierung no der Initialiséierung vum Pool verhënnert.
    • De Kärkär enthält e Chauffer deen et erlaabt Gaaschtsystemer déi VirtualBox lafen fir Verzeechnes ze montéieren déi vun der Hostëmfeld exportéiert ginn (VirtualBox Shared Folder).
    • E Set vu Patches gouf zum BPF Subsystem bäigefüügt (BPF Dispatcher), wann Dir de Retpoline Mechanismus benotzt fir géint Spectre V2 Klass Attacken ze schützen, erlaabt et Iech d'Effizienz ze erhéijen fir BPF Programmer ze ruffen wann Eventer verbonne mat hinnen optrieden (zum Beispill, et mécht et méiglech den Uruff vun XDP Handler ze beschleunegen wann e Netzwierk Paket kënnt).
    • Zousätzlech Chauffer fir TEE (Trusted Execution Environment) z'ënnerstëtzen agebaut an AMD APUs.
  • Erënnerung a System Servicer
    • BPF huet Ënnerstëtzung fir global Funktiounen bäigefüügt. Entwécklung gëtt als Deel vun enger Initiativ duerchgefouert fir Ënnerstëtzung fir Bibliothéike vu Funktiounen ze addéieren déi an de BPF Programmer abegraff kënne ginn. De nächste Schrëtt ass fir dynamesch Extensiounen z'ënnerstëtzen, déi et erlaben global Funktiounen ze lueden, inklusiv existent global Funktiounen z'ersetzen wärend se am Gebrauch sinn. De BPF Subsystem füügt och Ënnerstëtzung fir eng Variant vun der Kaartoperatioun (benotzt fir persistent Daten ze späicheren), déi d'Ausféierung am Batchmodus ënnerstëtzt.
    • Bäiginn Den Apparat "cpu_cooling" erlaabt Iech eng iwwerhëtzt CPU ze killen andeems se se fir kuerz Zäit an den Idle Staat setzen.
    • Zousätzlech System Uruff openat2(), déi eng Rei vun zousätzlech Fändelen offréiert Fichier Wee Resolutioun ze limitéieren (Verbuet vun Kräizung Mount Punkten, symbolesch Linken, magesch Linken (/proc/PID/fd), "../" Komponente).
    • Fir heterogen Systemer baséiert op der grousser.LITTLE Architektur, déi mächteg a manner effizient energieeffizient CPU Cores an engem Chip kombinéieren, gëtt de uclamp_min Parameter festgeluecht wann Dir Echtzäit Aufgaben ausféiert (entstanen am Kernel 5.3 gëtt et e Mechanismus fir d'Laascht ze sécheren). Dëse Parameter garantéiert datt d'Aufgab vum Scheduler op engem CPU-Kär gesat gëtt deen genuch Leeschtung huet.
    • De Kernel gëtt befreit Problemer vun 2038. Ersat déi lescht verbleiwen Handler, déi den 32-Bit (ënnerschriwwenen int) Typ time_t fir den epochalen Zäitzähler benotzt hunn, deen, ënner Berécksiicht vum Bericht vun 1970, am Joer 2038 iwwerflësseg sollt.
    • Weider Verbesserung vun der asynchroner I / O Interface io_uring, an deem virgesinn Ënnerstëtzung fir nei Operatiounen: IORING_OP_FALLOCATE (Reservatioun vun eidelen Beräicher), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (Dateien opmaachen an zoumaachen),
      IORING_OP_FILES_UPDATE (Fichier'en aus der Quick Access Lëscht derbäisetzen an ewechhuelen),
      IORING_OP_STATX (Datei Informatiounsufro),
      IORING_OP_READ,
      IORING_OP_WRITE (vereinfacht Analoga vun IORING_OP_READV an IORING_OP_WRITEV),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (asynchrone Varianten vun Uruff posix_fadvise a madvise), IORING_OP_SEND,
      IORING_OP_RECV (Netzdaten schécken a kréien),
      IORING_OP_EPOLL_CTL (Operatiounen ausféieren op epoll Dateibeschreiwungen).

    • Zousätzlech System Uruff pidfd_getfd(), erlaabt e Prozess e Fichier Descriptor fir eng oppe Datei aus engem anere Prozess ze recuperéieren.
    • Ëmgesat de "bootconfig" Mechanismus, deen et erlaabt, zousätzlech zu Kommandozeiloptiounen, d'Parameter vum Kärel duerch eng Astellungsdatei ze bestëmmen. Fir esou Dateien op d'Initramfs Bild ze addéieren, gëtt de Bootconfig Utility proposéiert. Dës Fonktioun kann zum Beispill benotzt ginn fir kprobes bei der Startzäit ze konfiguréieren.
    • Ëmgeschafft e Mechanismus fir ze waarden op Schreiwen a Liesen vun Daten an onbenannt Päifen. D'Ännerung huet et méiglech gemaach Aufgaben wéi d'Parallelmontage vu grousse Projeten ze beschleunegen. Wéi och ëmmer, d'Optimiséierung kann zu enger Rennenbedingung an der GNU maachen wéinst engem Feeler an der 4.2.1 Verëffentlechung, déi an der Versioun 4.3 fixéiert gouf.
    • Der PR_SET_IO_FLUSHER Fändel zu prctl dobäigesat (), déi benotzt ka ginn Erënnerung-gratis Prozesser ze markéieren, datt net ze Grenzen ënnerleien soll wann de System niddereg op Erënnerung ass.
    • Baséierend op dem ION-Speicherverdeelungssystem, deen an Android benotzt gëtt, gouf en Subsystem implementéiert dma-buf Koup, wat Iech erlaabt d'Allokatioun vun DMA-Puffer ze kontrolléieren fir Erënnerungsberäicher tëscht Chauffeuren, Uwendungen a verschiddenen Ënnersystemer ze deelen.
  • Hardware Architekturen
    • Zousätzlech Ënnerstëtzung fir d'E0PD Extensioun, déi am ARMv8.5 erschéngt an erlaabt de Schutz géint Attacken am Zesummenhang mat der spekulativer Ausféierung vun Instruktiounen op der CPU. E0PD-baséiert Schutz resultéiert am nidderegen Overhead wéi KPTI (Kernel Page Table Isolation) Schutz.
    • Fir Systemer baséiert op der ARMv8.5 Architektur, Ënnerstëtzung fir d'RNG Instruktioun gouf dobäi, Zougang zu engem Hardware pseudo-zoufälleg Zuel Generator. Am Kärel gëtt d'RNG Instruktioun benotzt fir Entropie ze generéieren wann de Kernel geliwwert pseudo-zoufälleg Zuel Generator initialiséiert.
    • Geläscht Ënnerstëtzung fir MPX (Memory Protection Extensions) am Kernel bäigefüügt 3.19 an erlaabt Iech d'Kontroll vu Pointer ze organiséieren fir sécherzestellen datt d'Grenze vun Erënnerungsberäicher respektéiert ginn. Dës Technologie gouf net wäit an de Compiler benotzt a gouf vum GCC geläscht.
    • Fir d'RISC-V Architektur ass Ënnerstëtzung fir de KASan (Kernel Adress Sanitizer) Debugging Tool ëmgesat ginn, wat hëlleft Feeler z'identifizéieren wann Dir mat Erënnerung schafft.
  • Ausrüstung
    • Spezifizéierung Ënnerstëtzung ëmgesat USB 4.0, deen op dem Thunderbolt 3-Protokoll baséiert a bitt Duerchgang bis zu 40 Gbps, während d'Réckkompatibilitéit mat USB 2.0 an USB 3.2 behalen. Duerch Analogie mat Thunderbolt USB 4.0 Interface erlaabt Iech verschidde Protokoller iwwer engem eenzege Kabel mat engem Connector ze tunneléieren Typ-C, dorënner PCIe, Display Port an USB 3.x, souwéi Software Implementatioune vu Protokoller, zum Beispill, fir Netzwierkverbindunge tëscht Hosten z'organiséieren. D'Implementatioun baut op den Thunderbolt Chauffer, deen schonn am Linux Kernel abegraff ass an passt et un fir mat USB4-kompatibelen Hosten an Apparater ze schaffen. D'Ännerungen addéieren och Ënnerstëtzung fir Thunderbolt 3 Geräter fir d'Softwareimplementatioun vum Connection Manager, deen verantwortlech ass fir Tunnelen ze kreéieren fir verschidde Geräter duerch en eenzege Connector ze verbannen.
    • Amdgpu Chauffer dobäi initial Ënnerstëtzung fir HDCP 2.x (High-Bandwidth Digital Content Protection) Kopieschutztechnologie. Zousätzlech Ënnerstëtzung fir den AMD Pollock ASIC Chip baséiert op Raven 2. Implementéiert d'Fäegkeet fir d'GPU fir d'Renoir an Navi Famillen zréckzesetzen.
    • DRM Treiber fir Intel Video Kaarten dobäi DSI VDSC Ënnerstëtzung fir Chips baséiert op Ice Lake an Tiger Lake microarchitecture, LMEM mmap (Gerät lokal Erënnerung) gouf ëmgesat, VBT (Video BIOS Table) Parsing gouf verbessert, HDCP 2.2 Ënnerstëtzung gouf fir Coffee Lake Chips ëmgesat.
    • D'Aarbecht ass weidergaang fir den amdkfd Treibercode ze vereenegen (fir diskret GPUs, wéi Fidschi, Tonga, Polaris) mam amdgpu Chauffer.
    • De k10temp Chauffer gouf ëmgeschafft, fir Ënnerstëtzung fir Spannung an aktuell Parameteren fir AMD Zen CPUs ze weisen, souwéi erweidert Informatioun vun Temperatursensoren, déi an Zen an Zen 2 CPUs benotzt ginn.
    • Am Nouveau Chauffer dobäi Ënnerstëtzung fir verifizéiert Firmware Luede Modus fir NVIDIA GPUs baséiert op der Turing Mikroarchitektur (GeForce RTX 2000), wat et méiglech gemaach huet Ënnerstëtzung fir 3D Beschleunegung fir dës Kaarten z'erméiglechen (Download offiziell Firmware mat enger NVIDIA digital Ënnerschrëft ass néideg). Zousätzlech Ënnerstëtzung fir den TU10x Grafikmotor. Probleemer mat HD Audio goufen geléist.
    • Zousätzlech Ënnerstëtzung fir Datekompressioun beim Iwwerdroen iwwer DisplayPort MST (Multi-Stream Transport).
    • Neie Chauffer dobäigesat "op 11k»fir Qualcomm Wireless Chips déi 802.11ax ënnerstëtzen.
      De Chauffer baséiert op dem mac80211 Stack an ënnerstëtzt Zougangspunkt, Workstation a Mesh Network Node Modi.

    • Duerch sysfs gëtt Zougang zu liesbaren Temperatursensorlesungen, déi op modernen Festplacken an SSDs benotzt ginn.
    • Erlaabt bedeitend Ännerunge vum ALSA Soundsystem, fir de Code ze befreien Problemer vun 2038 (Vermeit d'Benotzung vum 32-Bit Time_t Typ an den snd_pcm_mmap_status an snd_pcm_mmap_control Interfaces). Zousätzlech Ënnerstëtzung fir nei Audiocodecs
      Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.

    • Dobäigesat Treiber fir LCD Panelen Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Sharp LS020B1DD01D Fotoen

    • Dobäigesat Ënnerstëtzung fir ARM Boards a Gen1 Plattformen Amazon Echo (OMAP3630-baséiert), Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
      Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
      Tolino Shine 3 eBook Lieser,
      Embedded Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX an HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
      Rockchip Radxa Dalang Carrier, Radxa Rock Pi N10, VMARC RK3399Pro SOM
      ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Unisoc SC9863com7180m 4. Zousätzlech Ënnerstëtzung fir de PCIe Controller benotzt am Raspberry Pi XNUMX.

Zur selwechter Zäit ass d'Latäinamerikanesch Free Software Foundation geformt
Optioun komplett gratis Kernel 5.6 - Linux-Libre 5.6-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. Déi nei Verëffentlechung deaktivéiert Blob Lueden an Treiber fir AMD TEE, ATH11K a Mediatek SCP. Aktualiséiert Blob Reinigungscode an AMD PSP, amdgpu an Nouveau Treiber an Ënnersystemer.

Source: opennet.ru

Setzt e Commentaire