Linux kernel release 5.6

Nei twa moannen fan ûntwikkeling, Linus Torvalds yntrodusearre kernel release Linux 5.6. Under de meast opfallende feroarings: yntegraasje fan 'e WireGuard VPN-ynterface, stipe foar USB4, nammeromten foar tiid, de mooglikheid om TCP-congestiebehannelers te meitsjen mei BPF, inisjele stipe foar MultiPath TCP, it befrijen fan de kearn fan it 2038-probleem, it "bootconfig" meganisme , ZoneFS.

De nije ferzje omfettet 13702 fixes fan 1810 ûntwikkelders,
patchgrutte - 40 MB (feroarings beynfloede 11577 bestannen, 610012 rigels koade waarden tafoege,
294828 rigen fuortsmiten). Sawat 45% fan alle presintearre yn 5.6
feroarings binne yn ferbân mei apparaat drivers, likernôch 15% fan feroarings hawwe
hâlding foar it bywurkjen fan koade spesifyk foar hardware-arsjitektuer, 12%
ferbûn mei it netwurk stack, 4% mei triem systemen en 3% mei ynterne
kernel subsystemen.

haad ynnovaasjes:

  • Netwurk subsysteem
    • Added ymplemintaasje fan in VPN-ynterface WireGuard. fan trochstreaming). WireGuard brûkt it konsept fan fersiferingskaai-routing, wêrby't it heakjen fan in privee kaai oan elke netwurkynterface omfettet en it brûke om de iepenbiere kaaien te binen. Iepenbiere kaaien wurde útwiksele om in ferbining te meitsjen op in fergelykbere manier as SSH. Kryptografyske primitiven nedich foar WireGuard om te wurkjen it wie oerdroegen út de bibleteek Sink as ûnderdiel fan de standert Krypto API en ynbegrepen yn 'e kearn 5.5.
    • Begûn yntegraasje fan komponinten dy't nedich binne om MPTCP (MultiPath TCP) te stypjen, in útwreiding fan it TCP-protokol foar it organisearjen fan de wurking fan in TCP-ferbining mei de levering fan pakketten tagelyk lâns ferskate rûtes fia ferskate netwurkynterfaces ferbûn mei ferskate IP-adressen. Foar netwurkapplikaasjes liket sa'n aggregearre ferbining op in gewoane TCP-ferbining, en alle logika foar streamôfskieding wurdt útfierd troch MPTCP. Multipath TCP kin brûkt wurde om sawol trochslach te fergrutsjen en betrouberens te ferheegjen. Bygelyks, MPTCP kin brûkt wurde om gegevens oerdracht te organisearjen op in smartphone mei WiFi en 4G-keppelings tagelyk, of om kosten te ferminderjen troch in server te ferbinen mei ferskate goedkeape keppelings ynstee fan ien djoere.
    • Added stipe foar de ferwurkingsdisipline foar netwurkwachtrige sch_ets (Ferbettere Transmission Seleksje, IEEE 802.1Qaz), dy't de mooglikheid biedt om bânbreedte te fersprieden tusken ferskate klassen fan ferkear. As de lading op in bepaalde ferkearsklasse ûnder de tawiisde bânbreedte is, lit de ETS oare ferkearsklassen de beskikbere (net brûkte) bânbreedte brûke. Qdisc sch_ets is konfigurearre as in PRIO dissipline en brûkt ferkear klassen foar in definiearje strange en dielde bânbreedte grinzen. ETS wurket as in kombinaasje fan dissiplines PRIO и DRR - as d'r strikt beheind ferkearsklassen binne, wurdt PRIO brûkt, mar as der gjin ferkear yn 'e wachtrige is, wurket it as DRR.
    • In nij type BPF-programma's tafoege BPF_PROG_TYPE_STRUCT_OPS, wêrmei jo kearnfunksjebehannelers kinne ymplementearje fia BPF. Op it stuit kin dizze funksje al brûkt wurde om TCP-congestiekontrôlealgoritmen te ymplementearjen yn 'e foarm fan BPF-programma's. As in foarbyld foarsteld BPF programma mei algoritme ymplemintaasje DCTCP.
    • Akseptearre yn 'e kearn feroarings, oerset ark ettool mei ioctl () te brûken netlink ynterface. De nije ynterface makket it makliker om tafoegings ta te foegjen, ferbetteret flaterhanneling, lit notifikaasjes ferstjoerd wurde as steat feroaret, ferienfâldiget de ynteraksje tusken de kearn en brûkersromte, en ferminderet it oantal neamde listen dy't syngronisearre wurde moatte.
    • Tafoege ymplemintaasje fan it FQ-PIE (Flow Queue PIE) netwurk wachtrige behear algoritme, rjochte op it ferminderjen fan de negative ynfloed fan tuskenlizzende pakket buffering op râne netwurk apparatuer (bufferbloat). FQ-PIE toant hege effisjinsje as brûkt yn systemen mei kabelmodems.
  • Skiif subsysteem, I / O en triem systemen
    • Foar Btrfs-bestânsysteem tafoege asynchrone ymplemintaasje fan 'e DISCARD-operaasje (markearje befrijde blokken dy't net langer fysyk moatte wurde opslein). Yn earste ynstânsje waarden DISCARD-operaasjes synchroon útfierd, wat koe liede ta prestaasjesdegradaasje troch de driuwfearren dy't wachtsje op de oerienkommende kommando's om te foltôgjen. Asynchronous ymplemintaasje lit jo net wachtsje op it stasjon om DISCARD te foltôgjen en dizze operaasje op 'e eftergrûn út te fieren.
    • Yn XFS útfierd Skjinmeitsjen fan koade dy't âlde 32-bit tiidtellers brûkten (it type time_t waard ferfongen troch time64_t), wat liedt ta it 2038-probleem. Fêste flaters en ûnthâldkorrupsje dy't barde op 32-bit platfoarms. De koade is opnij bewurke om te wurkjen mei útwreide attributen.
    • Nei ext4 bestânsysteem yntrodusearre Prestaasjeoptimalisaasjes yn ferbân mei it behanneljen fan inode-beskoatteljen by lês- en skriuwoperaasjes. Ferbettere werskriuwprestaasjes yn Direct I/O-modus. Om de diagnoaze fan problemen te ferienfâldigjen, wurde de earste en lêste flaterkoades opslein yn it superblok.
    • Op it F2FS-bestânsysteem útfierd mooglikheid om gegevens op te slaan yn komprimearre foarm. Foar in yndividuele triem of map kin kompresje ynskeakele wurde mei it kommando "chattr +c file" of "chattr +c dir; touch dir/triem". Om de folsleine partysje te komprimearjen, kinne jo de opsje "-o compress_extension=ext" brûke yn it mount-hulpprogramma.
    • De kernel omfettet in bestânsysteem ZoneFS, dy't simplifies leech-nivo wurk mei sône opslach apparaten. Zoned driuwfearren betsjutte apparaten op hurde magnetyske skiven as NVMe SSD's, de opslachromte wêryn is ferdield yn sônes dy't groepen fan blokken as sektoaren meitsje, wêryn allinich opfolgjende tafoeging fan gegevens tastien is, it bywurkjen fan de hiele groep blokken. FS ZoneFS waard ûntwikkele troch Western Digital en assosjearret elke sône yn it stasjon mei in aparte triem dat kin brûkt wurde om te bewarjen gegevens yn rau modus sûnder manipulaasje op de sektor en blok nivo, d.w.s. Stelt applikaasjes ta om de triem API te brûken ynstee fan direkt tagong te krijen ta it blokapparaat mei in ioctl.
    • Yn NFS is mounting partysjes oer UDP standert útskeakele. Stipe tafoege foar de mooglikheid om bestannen direkt te kopiearjen tusken servers, definieare yn 'e NFS 4.2-spesifikaasje. In nije mount-opsje tafoege "softreval", wêrtroch cached attribútwearden kinne wurde brûkt yn gefal fan tsjinnerfal. Bygelyks, as jo dizze opsje oantsjutte, nei't de tsjinner net beskikber is, bliuwt it mooglik om te bewegen lâns de paden yn 'e NFS-partysje en tagong te krijen ta ynformaasje dy't yn 'e cache fêstige is.
    • Útfierd optimisaasje fan 'e prestaasjes fan it fs-verity-meganisme, brûkt om de yntegriteit en autentikaasje fan yndividuele bestannen te kontrolearjen. Ferhege sekwinsjele lêssnelheid troch it brûken fan in Merkle-hashbeam. De prestaasjes fan FS_IOC_ENABLE_VERITY binne optimalisearre as d'r gjin gegevens yn 'e cache binne (preemptive lêzing fan siden mei gegevens is tapast).
  • Virtualisaasje en feiligens
    • De mooglikheid om de SELinux-module út te skeakeljen by it rinnen is ôfkard, en it laden fan in al aktivearre SELinux sil yn 'e takomst ferbean wurde. Om SELinux út te skeakeljen moatte jo de parameter "selinux=0" trochjaan op 'e kernel kommandorigel.
    • Added stipe foar nammeromten foar tiid (tiidnammeromten), wêrtroch jo de steat fan 'e systeemklok kinne bine oan 'e kontener (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), brûk jo eigen tiid yn 'e kontener en, by it migrearjen fan de kontener nei in oare host, soargje derfoar dat de CLOCK_MONOTONIC- en CLOCK_BOOTTIME-lêzingen net feroare bliuwe (hâld rekken mei de tiid nei it laden, mei of sûnder rekken te hâlden yn sliepmodus ).

    • De /dev/willekeurige blokkearjende pool is fuortsmiten. It gedrach fan /dev/random is fergelykber mei /dev/urandom yn termen fan it foarkommen fan blokkearjen fan entropy nei poolinitialisaasje.
    • De kearnkern omfettet in stjoerprogramma wêrmei gastsystemen mei VirtualBox draaie om mappen te mounten dy't eksportearre binne troch de hostomjouwing (VirtualBox Shared Folder).
    • In set patches is tafoege oan it BPF-subsysteem (BPF dispatcher), by it brûken fan it Retpoline-meganisme om te beskermjen tsjin oanfallen fan 'e Spectre V2-klasse, lit it jo de effisjinsje ferheegje fan it oproppen fan BPF-programma's as eveneminten dy't dêrmei ferbûn binne foarkomme (it makket it bygelyks mooglik om it oproppen fan XDP-behannelers te rapperjen as in netwurkpakket komt).
    • Bestjoerder tafoege om TEE (Trusted Execution Environment) te stypjen ynboud yn AMD APU's.
  • Unthâld en systeem tsjinsten
    • BPF hat stipe tafoege foar globale funksjes. Untwikkeling wurdt útfierd as ûnderdiel fan in inisjatyf om stipe ta te foegjen foar biblioteken fan funksjes dy't kinne wurde opnommen yn BPF-programma's. De folgjende stap sil wêze om dynamyske útwreidingen te stypjen wêrtroch globale funksjes kinne wurde laden, ynklusyf it ferfangen fan besteande globale funksjes wylst se yn gebrûk binne. It BPF-subsysteem foeget ek stipe ta foar in fariant fan 'e kaartoperaasje (brûkt om persistente gegevens op te slaan), dy't útfiering yn batchmodus stipet.
    • Tafoege It apparaat "cpu_cooling" lit jo in oververhitte CPU koelje troch it foar koarte perioaden yn 'e idle steat te pleatsen.
    • Systeemoprop tafoege iepen 2().
    • Foar heterogene systemen basearre op de big.LITTLE-arsjitektuer, kombinearjen fan krêftige en minder effisjinte enerzjysunige CPU-kearnen yn ien chip, wurdt de parameter uclamp_min ynsteld by it útfieren fan real-time taken (ûntstien yn kernel 5.3 is d'r in meganisme foar it befeiligjen fan de lading). Dizze parameter soarget derfoar dat de taak wurdt pleatst troch de planner op in CPU kearn dat hat genôch prestaasjes.
    • De kernel is befrijd fan problemen fan 2038. Ferfange de lêste oerbleaune handlers, dy't it 32-bit (ûndertekene int) type time_t brûkten foar de epochale tiidteller, dy't, rekken hâldend mei it rapport fan 1970, yn 2038 oerstreame moat.
    • Trochgean ferbettering fan de asynchronous I / O ynterface io_uring, wêrby befeilige stipe foar nije operaasjes: IORING_OP_FALLOCATE (reservearje fan lege gebieten), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (bestân iepenje en slute),
      IORING_OP_FILES_UPDATE (bestannen tafoegje en fuortsmite fan 'e list mei rappe tagong),
      IORING_OP_STATX (fersyk foar triemynformaasje),
      IORING_OP_READ,
      IORING_OP_WRITE (ferfâldige analogen fan IORING_OP_READV en IORING_OP_WRITEV),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (asynchrone farianten fan oproppen posix_fadvise en madvise), IORING_OP_SEND,
      IORING_OP_RECV (netwurkgegevens ferstjoere en ûntfange),
      IORING_OP_EPOLL_CTL (fiere operaasjes op epoll-beskriuwers).

    • Systeemoprop tafoege pidfd_getfd(), wêrtroch in proses in triembeskriuwer foar in iepen bestân kin ophelje fan in oar proses.
    • Implementearre it meganisme "bootconfig", wêrtroch, neist opsjes foar kommandorigel, de parameters fan 'e kernel kinne bepale fia in ynstellingsbestân. Om sokke bestannen ta te foegjen oan it initramfs-ôfbylding, wurdt it programma bootconfig foarsteld. Dizze funksje kin bygelyks brûkt wurde om kprobes te konfigurearjen by it opstarten.
    • Redesigned in meganisme foar it wachtsjen op skriuwen en lêzen fan gegevens yn net neamde pipes. De feroaring makke it mooglik om taken te fersnellen lykas parallelle gearstalling fan grutte projekten. Optimalisaasje kin lykwols liede ta in racebetingsten yn GNU meitsje fanwege in brek yn 'e 4.2.1-release, dy't yn ferzje 4.3 reparearre is.
    • Tafoege de PR_SET_IO_FLUSHER flagge oan prctl (), dat kin brûkt wurde om te markearjen ûnthâld-frije prosessen dy't moatte net ûnderwurpen wurde oan grinzen as it systeem is leech op ûnthâld.
    • Op grûn fan it ION-ûnthâldferdielingssysteem brûkt yn Android, is in subsysteem ymplementearre dma-buf heaps, wêrmei jo de tawizing fan DMA-buffers kinne kontrolearje foar it dielen fan ûnthâldgebieten tusken bestjoerders, applikaasjes en ferskate subsystemen.
  • Hardware arsjitektuer
    • Stipe tafoege foar de E0PD-útwreiding, dy't ferskynde yn ARMv8.5 en soarget foar beskerming tsjin oanfallen yn ferbân mei spekulative útfiering fan ynstruksjes op 'e CPU. E0PD-basearre beskerming resultearret yn legere overhead dan KPTI (Kernel Page Table Isolation) beskerming.
    • Foar systemen basearre op de ARMv8.5-arsjitektuer is stipe foar de RNG-ynstruksje tafoege, dy't tagong jout ta in hardware pseudo-willekeurige nûmergenerator. Yn 'e kearn wurdt de RNG-ynstruksje brûkt om entropy te generearjen by it inisjalisearjen fan de kernel-levere pseudo-willekeurige nûmergenerator.
    • Fuortsmite stipe foar MPX (Memory Protection Extensions) tafoege yn 'e kearn 3.19 en kinne jo organisearje kontrôle fan pointers om te soargjen dat de grinzen fan ûnthâld gebieten wurde respektearre. Dizze technology waard net in soad brûkt yn gearstallers en waard fuorthelle út GCC.
    • Foar de RISC-V-arsjitektuer is stipe foar it KASan (Kernel-adres sanitizer) debuggen-ark ymplementearre, wat helpt by it identifisearjen fan flaters by it wurkjen mei ûnthâld.
  • Wetter - Agrarwetter
    • Spesifikaasjestipe ymplementearre USB 4.0, dy't basearre is op it Thunderbolt 3-protokol en leveret trochput oant 40 Gbps, wylst efterútkompatibiliteit behâldt mei USB 2.0 en USB 3.2. Troch analogy mei thunderbolt USB 4.0-ynterface kinne jo ferskate protokollen tunnel oer ien kabel mei in ferbining Type-C, ynklusyf PCIe, Display Port en USB 3.x, likegoed as software ymplemintaasjes fan protokollen, Bygelyks, foar it organisearjen fan netwurk keppelings tusken hosts. De ymplemintaasje bout op 'e Thunderbolt-bestjoerder dy't al opnommen is yn' e Linux-kernel en past it oan om te wurkjen mei USB4-kompatibele hosts en apparaten. De wizigingen foegje ek stipe ta foar Thunderbolt 3-apparaten oan 'e software-ymplemintaasje fan' e Connection Manager, dy't ferantwurdlik is foar it meitsjen fan tunnels foar it ferbinen fan meardere apparaten fia ien ferbining.
    • Yn amdgpu bestjoerder tafoege initial stipe foar HDCP 2.x (High-bânbreedte Digital Content Protection) copy beskerming technology. Stipe tafoege foar de AMD Pollock ASIC-chip basearre op Raven 2. Implementearre de mooglikheid om de GPU foar de Renoir- en Navi-famyljes werom te setten.
    • DRM-bestjoerder foar Intel-fideokaarten tafoege DSI VDSC-stipe foar chips basearre op Ice Lake en Tiger Lake mikroarsjitektuer, LMEM mmap (apparaat lokaal ûnthâld) is ymplementearre, VBT (Video BIOS Table) parsing is ferbettere, HDCP 2.2-stipe is ymplementearre foar Coffee Lake-chips.
    • It wurk gie troch oan it ferienigjen fan de amdkfd-bestjoerderkoade (foar diskrete GPU's, lykas Fiji, Tonga, Polaris) mei de amdgpu-bestjoerder.
    • De k10temp-bestjoerder is opnij bewurke, it tafoegjen fan stipe foar it werjaan fan spanning en aktuele parameters foar AMD Zen CPU's, lykas ek útwreide ynformaasje fan temperatuersensors brûkt yn Zen en Zen 2 CPU's.
    • Yn de nouveau sjauffeur tafoege stipe foar ferifiearre firmware laden modus foar NVIDIA GPUs basearre op de Turing microarchitecture (GeForce RTX 2000), dy't makke it mooglik om te skeakeljen stipe foar 3D fersnelling foar dizze kaarten (downloade offisjele firmware mei in NVIDIA digitale hantekening is nedich). Stipe tafoege foar de TU10x-grafykmotor. Problemen mei HD Audio binne oplost.
    • Stipe tafoege foar gegevenskompresje by oerdracht fia DisplayPort MST (Multi-Stream Transport).
    • Nije bestjoerder tafoege"oan 11k» foar Qualcomm draadloze chips dy't 802.11ax stypje.
      De bestjoerder is basearre op de mac80211-stapel en stipet tagongspunt, wurkstasjons en mesh-netwurkknooppunten.

    • Troch sysfs wurdt tagong ta lêsbere temperatuersensorlêzingen brûkt op moderne hurde skiven en SSD's.
    • Yntsjinne wichtige feroarings oan de ALSA lûd systeem, rjochte op ridding de koade fan problemen fan 2038 (om it gebrûk fan it 32-bit time_t-type te foarkommen yn 'e snd_pcm_mmap_status en snd_pcm_mmap_control ynterfaces). Stipe tafoege foar nije audio-codecs
      Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.

    • Added drivers foar LCD-panielen 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.

    • Added stipe foar ARM-boards en Gen1-platfoarms Amazon Echo (OMAP3630-basearre), 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-lêzer,
      Embedded Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX en 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. Stipe tafoege foar de PCIe-controller brûkt yn Raspberry Pi XNUMX.

Tagelyk, de Latin American Free Software Foundation foarme
opsje folslein fergese kernel 5.6 - Linux-libre 5.6-gnu, wiske fan firmware- en stjoerprogramma-eleminten dy't net-frije komponinten as koade-seksjes befetsje, wêrfan de omfang wurdt beheind troch de fabrikant. De nije release skeakelet blobladen yn drivers foar AMD TEE, ATH11K en Mediatek SCP út. Bywurke blob skjinmeitsjen koade yn AMD PSP, amdgpu en nouveau bestjoerders en subsystemen.

Boarne: opennet.ru

Add a comment