Release van de Linux-kernel 5.11

Na twee maanden ontwikkeling heeft Linus Torvalds de release van de Linux-kernel 5.11 gepresenteerd. Onder de meest opvallende veranderingen zijn: ondersteuning voor Intel SGX-enclaves, een nieuw mechanisme voor het onderscheppen van systeemoproepen, een virtuele auxilliary-bus, een verbod op het bouwen van modules zonder MODULE_LICENSE(), een modus voor snelle filtering van systeemoproepen in seccomp, het stopzetten van de ondersteuning voor de ia64-architectuur, de verplaatsing van de WiMAX-technologie naar de 'staging'-tak en de mogelijkheid om SCTP in UDP te encapsuleren.

In de nieuwe versie zijn 15480 correcties door 1991 ontwikkelaars opgenomen, de patchgrootte bedraagt 72 MB (de wijzigingen hebben invloed op 12090 bestanden, 868025 regels code zijn toegevoegd en 261456 regels verwijderd). Ongeveer 46% van alle wijzigingen in 5.11 heeft betrekking op apparaatdrivers, ongeveer 16% van de wijzigingen heeft betrekking op het bijwerken van code die specifiek is voor hardware-architecturen, 13% heeft betrekking op de netwerkstack, 3% op bestandssystemen en 4% op interne subsystemen van de kernel.

Belangrijkste vernieuwingen:

  • Opslagsubsystemen, invoer/uitvoer en bestandssystemen
    • In Btrfs zijn verschillende montageopties toegevoegd voor gebruik bij gegevensherstel van een beschadigd bestandssysteem: 'rescue=ignorebadroots' voor montage ondanks beschadigingen van enkele rootbomen (extent, uuid, data reloc, device, csum, vrije ruimte), 'rescue=ignoredatacsums' voor het uitschakelen van de controle van checksum voor gegevens en 'rescue=all' voor het tegelijkertijd inschakelen van de modi 'ignorebadroots', 'ignoredatacsums' en 'nologreplay'. De ondersteuning voor de montageoptie 'inode_cache', die eerder als verouderd was verklaard, is stopgezet. De code is voorbereid op de implementatie van ondersteuning voor blokken met metadata en gegevens, kleiner dan een pagina (PAGE_SIZE), evenals ondersteuning voor de modus van zonering van ruimte. Directe IO-verzoeken zijn overgezet naar de iomap-infrastructuur. De prestaties van verschillende bewerkingen zijn geoptimaliseerd; in sommige gevallen kan de versnelling tientallen procenten bereiken.
    • In XFS is de vlag 'needsrepair' geïntroduceerd, die aangeeft dat herstel noodzakelijk is. Wanneer deze vlag is ingesteld, kan het bestandssysteem niet worden gemonteerd totdat de vlag door het hulpprogramma xfs_repair is gereset.
    • In Ext4 zijn alleen bugfixes en optimalisaties voorgesteld, evenals een opschoning van de code.
    • Herhaald exporteren van bestandssystemen die zijn gemonteerd via NFS is toegestaan (d.w.z. een via NFS gemonteerde partitie kan nu weer via NFS worden geëxporteerd en worden gebruikt als tussenliggende cache).
    • In de systeemaanroep close_range() is een optie CLOSE_RANGE_CLOEXEC toegevoegd om file descriptors in de close-on-exec modus te sluiten, waardoor een proces in één keer een volledig bereik van geopende file descriptors kan sluiten.
    • In het F2FS-bestandssysteem zijn nieuwe ioctl() aanroepen toegevoegd, waarmee het mogelijk is vanuit de gebruikersruimte te beheren welke bestanden in gecomprimeerde vorm worden opgeslagen. Een montagemodus "compress_mode=" is toegevoegd voor de keuze van de locatie van de compressiebeheershandler, hetzij aan de kernelzijde of in de gebruikersruimte.
    • Het is nu mogelijk om Overlayfs te monteren voor niet-geprivilegieerde processen, met gebruik van een aparte gebruikersidentiteit (user namespace). Voor de verificatie van de implementatie van het beveiligingsmodel is er een volledige code-audit uitgevoerd. In Overlayfs is de mogelijkheid toegevoegd om te starten met behulp van kopieën van filesystem-images via een optionele uitschakeling van de UUID-controle.
    • In het Ceph-bestandssysteem is ondersteuning voor het msgr2.1-protocol toegevoegd, dat het mogelijk maakt om het AES-GCM-algoritme te gebruiken voor het verzenden van gegevens in versleutelde vorm.
    • In de dm-multipath-module is de mogelijkheid geïmplementeerd om de CPU-affiniteit ('IO affinity') in overweging te nemen bij het kiezen van het pad voor invoer/uitvoer verzoeken.
  • Geheugen en systeemdiensten
    • Er is een nieuw mechanisme voor het onderscheppen van systeemaanroepen toegevoegd, gebaseerd op prctl(), waarmee vanuit de gebruikersruimte uitzonderingen kunnen worden gegenereerd bij het aanroepen van bepaalde systeemaanroepen, en het uitvoeren ervan kan worden geëmitteerd. Deze functionaliteit is gewild in Wine en Proton voor het emuleren van systeemaanroepen van Windows, wat nodig is voor de compatibiliteit met games en programma's die systeemaanroepen direct uitvoeren, om zo ongeoorloofd gebruik te voorkomen.
    • In de systeemaanroep userfaultfd(), bedoeld voor het verwerken van page faults (toegang tot niet-toegewezen geheugensystemen) in de gebruikersruimte, is er nu de mogelijkheid om het verwerken van uitzonderingen, die op kernel-niveau optreden, uit te schakelen, om het misbruiken van bepaalde kwetsbaarheden te bemoeilijken.
    • In het BPF-subsysteem is ondersteuning voor lokale taak-gegevensopslag (task-local storage) toegevoegd, waarmee gegevens aan een specifieke BPF-handler kunnen worden gekoppeld.
    • Het gebruik van geheugen door BPF-programma's is volledig herzien — in plaats van memlock rlimit is een cgroup-controller geïntroduceerd voor het beheer van geheugen in BPF-objecten.
    • In het BTF-mechanisme (BPF Type Format), dat informatie biedt voor typecontrole in BPF-pseudocode, is ondersteuning voor kernmodules geïmplementeerd.
    • In de interface voor asynchrone invoer/uitvoer io_uring is ondersteuning toegevoegd voor systeemaanroepen shutdown(), renameat2() en unlinkat(). Bij het aanroepen van io_uring_enter() is de mogelijkheid toegevoegd om een time-out op te geven (de ondersteuning van het argument voor het opgeven van de time-out kan worden gecontroleerd met de vlag IORING_FEAT_EXT_ARG).
    • De ia64-architectuur, gebruikt in Intel Itanium-processoren, is geclassificeerd als 'orphaned', wat betekent dat het testen is gestopt. Hewlett Packard Enterprise heeft de acceptatie van bestellingen voor nieuwe Itanium-apparatuur stopgezet, en Intel heeft dit vorig jaar al gedaan.
    • De ondersteuning voor systemen op basis van de MicroBlaze-architectuur zonder geheugenbeheerder (MMU) is stopgezet. Dergelijke systemen komen al geruime tijd niet meer voor.
    • Voor de MIPS-architectuur is ondersteuning toegevoegd voor codecoverage-testing met behulp van de tool gcov.
    • Ondersteuning voor de auxiliary bus is toegevoegd om te communiceren met multifunctionele apparaten die functionaliteiten vereisen met verschillende stuurprogramma's (bijvoorbeeld netwerkkaarten met ondersteuning voor Ethernet en RDMA). De bus kan worden gebruikt om een primaire en secundaire stuurprogramma voor een apparaat aan te wijzen wanneer het moeilijk is om het MFD (Multi-Function Devices) subsysteem te gebruiken.
    • Voor de RISC-V-architectuur is ondersteuning toegevoegd voor het CMA (Contiguous Memory Allocator) geheugenverdelingssysteem, dat is geoptimaliseerd voor het toewijzen van grote aaneengeschakelde geheugenblokken met behulp van pagina-verplaatsingstechnieken. Voor RISC-V zijn ook middelen geïmplementeerd om de toegang tot /dev/mem te beperken en om de verwerkingstijd van onderbrekingen bij te houden.
    • Voor 32-bits ARM-systemen is ondersteuning toegevoegd voor de KASan (Kernel Address Sanitizer) debugtool, die helpt bij het detecteren van geheugenfouten. Voor 64-bits ARM is de implementatie van KASan overgeschakeld naar het gebruik van MTE (MemTag) tags.
    • Een systeemaanroep epoll_pwait2() is toegevoegd, waarmee time-outs met nanoseconde-nauwkeurigheid kunnen worden gebruikt (de aanroep epoll_wait manipuleert met milliseconden).
    • In het buildsysteem is een foutmelding toegevoegd bij het bouwen van laadmmodules van de kernel waarbij de licentie voor de code niet is gedefinieerd met behulp van de MODULE_LICENSE()-macro. Een fout tijdens het bouwen zal voortaan ook worden getriggerd door het gebruik van de EXPORT_SYMBOL()-macro voor statische functies.
    • Ondersteuning voor het mappen van GEM-objecten uit geheugen dat is gebruikt voor in- en uitvoer is toegevoegd, wat de werking met de framebuffer op sommige architecturen heeft versneld.
    • In Kconfig is de ondersteuning voor Qt4 beëindigd (ondersteuning voor Qt5, GTK en Ncurses blijft bestaan).
  • Virtualisatie en beveiliging
    • In de systeemaanroep seccomp() is ondersteuning voor een snelle reactiemodus toegevoegd, waarmee zeer snel kan worden bepaald of een bepaalde systeemaanroep is toegestaan of verboden op basis van de bij het proces gekoppelde rechtenlijst (constant-action bitmap), die geen BPF-handler vereist.
    • De kerncomponenten zijn geïntegreerd voor het creëren en beheren van enclaves op basis van Intel SGX (Software Guard eXtensions) technologie, waarmee applicaties code kunnen uitvoeren in geïsoleerde, versleutelde geheugengebieden, waarvan de toegang voor de rest van het systeem is beperkt.
    • In het kader van de initiële beperking van de toegang vanuit de gebruikersruimte tot de MSR-registers (model-specific registers) is het verboden om te schrijven naar het register MSR_IA32_ENERGY_PERF_BIAS, dat het mogelijk maakt om de energie-efficiëntiemodus van de processor te wijzigen (‘normal’, ‘performance’, ‘powersave’).
    • Uit de kernel-rt tak voor real-time systemen is de mogelijkheid om migratie van hooggeprioriteerde taken tussen CPU's uit te schakelen overgebracht.
    • Voor ARM64-systemen is de mogelijkheid toegevoegd om MTE-tags (MemTag, Memory Tagging Extension) toe te passen op geheugenadressen van signaalhandlers. Het gebruik van MTE kan worden ingeschakeld door de optie SA_EXPOSE_TAGBITS op te geven in sigaction() en maakt het mogelijk om de juistheid van het gebruik van pointers te controleren om exploitatie van kwetsbaarheden, veroorzaakt door toegang tot al vrijgegeven geheugengebieden, buffer-overflow, toegang vóór initialisatie en gebruik buiten de huidige context, te blokkeren.
    • De parameter ‘DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING’ is toegevoegd, waarmee de dm-verity-subsystemen de hash-handtekeningen van certificaten die in de secundaire sleutelopslag (keyring) zijn geplaatst, kunnen verifiëren. In de praktijk maakt deze instelling het mogelijk om niet alleen de in de kernel ingebedde certificaten te verifiëren, maar ook certificaten die tijdens de uitvoering zijn geladen, wat de mogelijkheid biedt om certificaten bij te werken zonder de volledige kernel bij te werken.
    • In User-mode Linux is added support for suspend-to-idle mode, allowing the environment to be frozen and the SIGUSR1 signal to be used for waking up from sleep mode.
    • In the virtio-mem mechanism, which enables hot-plugging and unplugging memory to virtual machines, support for Big Block Mode (BBM) has been added, allowing memory to be transferred or retrieved in blocks larger than the kernel's block size, which is necessary for optimizing VFIO in QEMU.
    • Support for the CHACHA20-POLY1305 cipher has been added to the kernel-level implementation of TLS.
  • Netwerk subsysteem
    • For 802.1Q (VLAN), a connectivity fault management (CFM) mechanism has been implemented, allowing identification, verification, and isolation of failures in networks with virtual bridges. For example, CFM can be used to localize issues in networks covering multiple independent organizations, whose employees have access only to their own equipment.
    • Support for encapsulating SCTP packets in UDP packets (RFC 6951) has been added, allowing SCTP to be used in networks with legacy address translators that do not directly support SCTP, as well as implementing SCTP on systems that do not provide direct access to the IP layer.
    • The WiMAX technology has been moved to staging and is planned for removal unless users who need WiMAX can be found. WiMAX is no longer used in public networks, and the only driver available in the kernel to use WiMAX remains the outdated Intel 2400m driver. Support for WiMAX in the NetworkManager network configurator was discontinued in 2015. Currently, WiMAX has been almost completely replaced by technologies such as LTE, HSPA+, and Wi-Fi 802.11n.
    • Work has been done to optimize the performance of incoming TCP traffic processing in zerocopy mode, i.e., without additional copying into new buffers. For medium-sized traffic covering tens or several hundred kilobytes of data, using zerocopy instead of recvmsg() has proven to be significantly more efficient. For example, the implemented changes allowed an increase in the efficiency of processing RPC-style traffic with 32 KB messages by 60-70% when using zerocopy.
    • Er zijn nieuwe ioctl()-oproepen toegevoegd voor het creëren van netwerkmappen die meerdere PPP-kanalen omvatten. De voorgestelde functionaliteit maakt het mogelijk om frames van het ene kanaal naar het andere te verplaatsen, bijvoorbeeld van PPPoE naar een PPPoL2TP-sessie.
    • De integratie met de MPTCP-kernel (MultiPath TCP) is voortgezet, een uitbreiding van het TCP-protocol voor het mogelijk maken van TCP-verbindingen waarbij pakketten gelijktijdig via meerdere routes over verschillende netwerkinterfaces met verschillende IP-adressen worden verzonden. In deze nieuwe release is ondersteuning voor de ADD_ADDR-optie geïmplementeerd om beschikbare verbindingen aan te kondigen. IP-adressen waarmee verbinding kan worden gemaakt bij het toevoegen van nieuwe stromen aan een bestaande MPTCP-verbinding.
    • Er is een nieuwe mogelijkheid toegevoegd om acties in te stellen bij het overschrijden van het pollingbudget voor verbindingen (busy-polling). De eerder beschikbare modus SO_BUSY_POLL hield in dat er werd overgeschakeld naar softirq wanneer het budget was opgebruikt. Voor applicaties die polling moeten blijven gebruiken, is er een nieuwe optie SO_PREFER_BUSY_POLL geïntroduceerd.
    • In IPv6 is ondersteuning voor de modi SRv6 End.DT4 en End.DT6 geïmplementeerd, die worden gebruikt voor het creëren van multi-tenant IPv4 L3. VPN en VRF (Virtual Routing and Forwarding)-apparaten.
    • In Netfilter is de implementatie van set-expressies verenigd, waardoor het mogelijk is om meerdere expressies voor elk element van set-lijsten aan te geven.
    • In de draadloze 802.11-stack zijn API's toegevoegd voor het instellen van SAR-vermogenbeperkingen, evenals parameters voor AE PWE en HE MCS. In de Intel iwlwifi-driver is ondersteuning toegevoegd voor het 6GHz-bereik (Ultra High Band). In de Qualcomm Ath11k-driver is ondersteuning toegevoegd voor de technologie voor snelle verbindingseinstelling FILS (Fast Initial Link Setup, gestandaardiseerd als IEEE 802.11ai), die vertragingen bij roaming tijdens migratie van het ene toegangspunt naar het andere helpt te elimineren.
  • Apparatuur
    • In de amdgpu-driver is ondersteuning geïmplementeerd voor de AMD APU 'Green Sardine' (Ryzen 5000) en GPU 'Dimgrey Cavefish' (Navi 2), evenals initiële ondersteuning voor de AMD Van Gogh APU met Zen 2-kern en RDNA 2 GPU (Navi 2). Ondersteuning voor nieuwe APU-identificaties van Renoir (gebaseerd op CPU Zen 2 en GPU Vega) is ook toegevoegd.
    • In de i915-driver voor Intel grafische kaarten is ondersteuning voor de IS-technologie (Integer scaling) geïmplementeerd, met een filter voor schaalvergroting rekening houdend met de toestand van aangrenzende pixels (Nearest-neighbor interpolatie) om de kleur van ontbrekende pixels te bepalen. De ondersteuning voor discrete Intel DG1-kaarten is uitgebreid. De technologie 'Big Joiner', aanwezig vanaf de Ice Lake / Gen11-chips, stelt in staat om één transcoder te gebruiken voor het verwerken van twee streams, bijvoorbeeld voor output naar een 8K-scherm via één DisplayPort. Een modus voor asynchrone omschakeling tussen twee buffers in videogeheugen is toegevoegd (async flip).
    • In de nouveau-driver is de eerste ondersteuning voor NVIDIA GPU's op basis van de 'Ampere'-microarchitectuur (GA100, GeForce RTX 30xx) toegevoegd, momenteel beperkt tot middelen voor het beheren van videomodi.
    • Ondersteuning voor het 3WIRE-protocol dat wordt gebruikt in LCD-panelen is toegevoegd. Ondersteuning voor de novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 en ABT Y030XX067A 3.0-panelen is toegevoegd. Bijzonder is de ondersteuning voor het paneel van de OnePlus 6 en 6T smartphones, wat het mogelijk maakte om te booten op apparaten met een ongewijzigde kernel.
    • Ondersteuning voor de eerste discrete USB4 hostcontroller Intel Maple Ridge is toegevoegd.
    • Ondersteuning voor geluidscoderingen Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI en XCVR, Realtek RT715 en Qualcomm SM8250 is toegevoegd.
    • Ondersteuning voor ARM-boards, apparaten en platforms is toegevoegd: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinity2M, Nuvoton NPCM730, Marvell Armada 382, Mikrotik op basis van Marvell Prestera 98DX3236, servers met Nuvoton NPCM750 BMC, Kontron i.MX8M Mini, Espressobin Ultra, 'Trogdor' Chromebook, Kobol Helios64, Engicam PX30.Core.
    • Ondersteuning voor de gamingconsole Ouya met NVIDIA Tegra 3 is ingebouwd.

Tegelijkertijd heeft de Latijns-Amerikaanse Vrije Software Stichting een versie van de volledig vrije kernel 5.11 - Linux-libre 5.11-gnu samengesteld, gereinigd van elementen van firmware en drivers die onvrije componenten of code-inzichten bevatten, waarvan het toepassingsgebied beperkt is door de fabrikant. In deze nieuwe uitgave is het reinigen van drivers voor qat_4xxx (crypto), lt9611uxcm (dsi/hdmi bridge), ccs/smia++ (sensor), ath11k_pci, nxp audio transceiver en mhi pci controller uitgevoerd. De code voor het reinigen van blobs in drivers en subsystemen als amdgpu, btqca, btrtl, btusb, i915 csr is bijgewerkt. Nieuwe blobs in m3 rproc, idt82p33 ptp clock en qualcomm arm64 zijn uitgeschakeld.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster