Release van Linux-kernel 5.13

Na een periode van twee maanden ontwikkeling heeft Linus Torvalds de release van de Linux-kernel 5.13 gepresenteerd. Enkele van de meest opvallende wijzigingen zijn: het EROFS-bestandssysteem, de eerste ondersteuning voor Apple M1-chips, de cgroup-controller 'misc', het stopzetten van de ondersteuning voor /dev/kmem, ondersteuning voor nieuwe GPU's van Intel en AMD, de mogelijkheid om functies van de kernel rechtstreeks aan te roepen vanuit BPF-programma's, randomisatie van de kernelstack voor elke systeemaanroep, de mogelijkheid om te bouwen met Clang met CFI-beveiliging (Control Flow Integrity), de LSM-module Landlock voor extra procesbeperkingen, een virtueel geluidsapparaat op basis van virtio, en de multi-shot modus in io_uring.

In de nieuwe versie zijn 17189 correcties aangebracht door 2150 ontwikkelaars (het grootste aantal in de geschiedenis), de patchgrootte bedraagt 60 MB (de wijzigingen hebben 12996 bestanden aangetast, 794705 regels code zijn toegevoegd, en 399590 regels zijn verwijderd). Ongeveer 47% van alle wijzigingen in 5.13 is gerelateerd aan stuurprogramma's, ongeveer 14% heeft betrekking op het bijwerken van architectuurspecifieke code, 13% is gerelateerd aan de netstack, 5% aan bestandssystemen, en 4% aan interne subsystemen van de kernel.

Belangrijkste vernieuwingen:

  • Opslagsubsystemen, invoer/uitvoer en bestandssystemen
    • De ondersteuning voor het EROFS-bestandssysteem (Enhanced Read-Only File System), voorgesteld door Huawei voor gebruik op partities die alleen-lezen toegankelijk zijn, is toegevoegd. Het nieuwe bestandssysteem ondersteunt het opslaan van gegevens in gecomprimeerde vorm en toont vergelijkbare prestaties vergeleken met Ext4 bij het uitvoeren van sequentiële leesoperaties, maar overtreft Ext4 bij lange na in willekeurige gegevensaccess. Bijvoorbeeld, bij een compressieniveau van 4 en testen op de server met een harde schijf overtrof het EROFS-bestandssysteem Ext4 meer dan zes keer bij willekeurige leeshardeschrijvingen, terwijl het bij het gebruik van een Android-smartphone met Flash bijna drie keer zo snel was. Net als andere read-only bestandssystemen is de structuur van EROFS aanzienlijk vereenvoudigd door het af te schaffen van bepaalde gebieden van metadata, zoals de bitmap voor vrije blokken.
    • Voor het SMB3-bestandssysteem is de optie 'rasize' voor het monteren geïmplementeerd, waarmee de grootte van het readahead-venster kan worden bepaald om de prestaties van bepaalde soorten workloads te verhogen.
    • In het ext4-bestandssysteem is het herschrijven van directory-elementen bij het verwijderen van bestanden mogelijk gemaakt. In ext4 is het ook toegestaan om gelijktijdig gebruik te maken van de modus zonder hoofdlettergevoeligheid en versleuteling.
    • In het exFAT-bestandssysteem is ondersteuning voor de ioctl-opdracht FITRIM (discard) toegevoegd, waarmee de opslag wordt geïnformeerd over ongebruikte blokken in het bestandssysteem.
    • In het XFS-bestandssysteem is de mogelijkheid toegevoegd om ruimte uit de laatste allocatiegroep te extraheren, wat de eerste stap is in de implementatie van de functie voor het verkleinen van bestaande partities met het XFS-bestandssysteem.
    • Een nieuwe systeemaanroep quotactl_path is toegevoegd, die verschilt van quotactl omdat het beheren van quota's mogelijk maakt zonder gebruik te maken van een speciaal apparaatbestand, maar door de pad naar het mountpunt van het bestandssysteem op te geven.
    • In het fanotify-mechanisme zijn de mogelijkheden voor niet-geprivilegieerde gebruikers uitgebreid. Bijvoorbeeld, op basis van inotify kunnen nu, zonder SYS_CAP_ADMIN-rechten, evenementen zoals OPEN, ACCESS, MODIFY en CLOSE voor bestanden en mappen worden gevolgd.
  • Geheugen en systeemdiensten
    • Er is een nieuwe cgroup-controller toegevoegd - 'Misc' (CONFIG_CGROUP_MISC), bedoeld voor het beperken en volgen van schaalbare middelen, die kunnen worden beheerd met behulp van een eenvoudige teller en beperkt door maximaal toegestane waarden op te geven. Als voorbeeld van het gebruik van de nieuwe cgroup-controller wordt het beheer van adresruimte-identificators genoemd, die in het AMD SEV (Secure Encrypted Virtualization) mechanisme worden toegepast.
    • In de interface voor asynchrone invoer/uitvoer io_uring is een 'multi-shot'-modus geïmplementeerd voor POLL-verzoeken, waarbij POLL niet wordt verwijderd na het genereren van een gebeurtenis, maar actief blijft en meerdere gebeurtenissen kan genereren.
    • Code voor de verwerking van door software gegenereerde onderbrekingen in kernelthreads is overgebracht vanuit de realtime-tak van de kernel, waardoor ze door processen met hogere prioriteit kunnen worden verdrongen.
    • Een interne bibliotheek netfs is toegevoegd, waarin standaardfuncties zijn samengevoegd die worden gebruikt in netwerksystemen.
    • Voor de PowerPC-architectuur is ondersteuning voor tijdruimtes (time namespaces) geïmplementeerd, waarmee een container zijn eigen tijd kan gebruiken.
    • Voor de RISC-V-architectuur is ondersteuning geïmplementeerd voor kexec, crash dump, kprobe en executing in place (uitvoeren vanuit de oorspronkelijke opslag, zonder het naar RAM te kopiëren).
    • In BPF-traceringprogramma's is het mogelijk geworden om taak-lokale opslag (task-local storage) te gebruiken, wat zorgt voor een hogere prestatie door gegevens aan een specifieke BPF-handler te koppelen.
    • Er is een nieuw mechanisme geïmplementeerd voor directe aanroep van kernelfuncties vanuit BPF-programma's, dat al is gebruikt in de implementatie van TCP-overbelastingalgoritmen. Voor de veiligheid moeten de aanroepbare functies expliciet in een whitelist worden gedefinieerd.
    • Aan het ftrace-functietraceersysteem is de optie func-no-repeats toegevoegd, waarmee herhaalde opeenvolgende aanroepen van een functie kunnen worden weergegeven als een teller.
    • De systeemaanroep userfaultfd(), die bedoeld is voor het afhandelen van page faults (toegang tot niet-toegewezen geheugenpagina's) in de gebruikersruimte, heeft de mogelijkheid om gedeeltelijke faults te beheren toegevoegd, waarbij de geheugenpagina aanwezig is, maar er geen vermelding in de paginatabel is.
    • De ondersteuning voor het speciale bestand /dev/kmem is beëindigd, waarmee toegang tot de gehele adresruimte van de kernel mogelijk was. Dit bestand is verouderd verklaard en creëert beveiligingsproblemen.
    • Voor Intel-chips is een nieuwe driver geïmplementeerd voor het beheren van koeling, waarmee de frequentie van de processor kan worden verlaagd bij gevaar voor oververhitting. In tegenstelling tot het bestaande TCC (Thermal Control Circuit) mechanisme, manipuleert de nieuwe driver relatieve waarden, d.w.z. het kan de frequentie verlagen bij het begin van een significante temperatuurstijging, zonder te wachten tot een kritische drempel wordt overschreden.
  • Virtualisatie en beveiliging
    • In de samenstelling is de LSM-module voor het waarborgen van applicatie-isolatie Landlock opgenomen, waarmee de interactie met de externe omgeving van een groep processen kan worden beperkt. Deze module is ontwikkeld met oog voor isolatiemechanismen zoals XNU Sandbox, FreeBSD Capsicum en OpenBSD Pledge/Unveil. De logica voor het verlenen van toegang wordt bepaald met behulp van een BPF-programma, maar in tegenstelling tot seccomp-bpf filtert Landlock geen systeemaanroepen en hun argumenten, maar staat het gebruik van kernelobjecten, zoals bestands hiërarchieën, te beperken. Met Landlock kan elk proces, inclusief een onprivilegeerde, zichzelf betrouwbaar isoleren en het omzeilen van isolatie voorkomen in geval van kwetsbaarheden of schadelijke wijzigingen in de applicatie. Landlock stelt een proces in staat om beschermde geïsoleerde omgevingen te creëren, gerealiseerd als een extra laag bovenop bestaande systeemmechanismen voor toegangbeheer. Een programma kan bijvoorbeeld toegang tot bestanden buiten de werkdirectory verbieden.
    • De mogelijkheid om offset randomisatie in de kernel stack toe te voegen bij het verwerken van systeemaanroepen is geïntroduceerd om aanvallen op de stack te bemoeilijken. De essentie van deze bescherming ligt in het kiezen van een willekeurige stack-offset bij elke systeemaanroep, waardoor het bepalen van de stackindeling in het geheugen moeilijker wordt, zelfs als er informatie over de adressen beschikbaar is, aangezien het basiselement van de stack bij de volgende systeemaanroep zal veranderen. Voor het inschakelen van randomisatie zijn de kernel opstartparameters "randomize_kstack_offset=on/off" en de instelling CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT voorgesteld. De overhead wordt geschat op ongeveer 1% prestatieverlies.
    • Ondersteuning voor het bouwen van de kernel met inschakeling van de CFI (Control Flow Integrity) beveiligingsmechanisme in de Clang-compiler is toegevoegd. Dit voegt voor elke indirecte functieaanroep controles toe om bepaalde vormen van onbepaald gedrag te identificeren, die mogelijk de normale uitvoering (control flow) verstoren als gevolg van exploits die in het geheugen opgeslagen functie pointers wijzigen. Om CFI in te schakelen, is de parameter CONFIG_CFI_CLANG voorgesteld.
    • In de door de kernel verstrekte sleutelverwerkingsservice (key ring) dekt het mechanisme van vertrouwde sleutels (Trusted Keys) nu niet alleen sleutels vanuit TPM-modules, maar ook vanuit TEE-omgevingen (Trusted Execution Environment). Voor het beheren van de bron van vertrouwde sleutels is de opstartparameter "trusted.source" voorgesteld. Daarnaast is de mogelijkheid toegevoegd om vertrouwde sleutels in ASN.1-formaat te verwerken.
    • Een parameter voor het proactief laden van een lijst met ingetrokken certificaten tijdens het opstarten van de kernel is toegevoegd. Een probleem (CVE-2020-26541) met het negeren van in de zwarte lijst opgenomen UEFI Secure Boot-certificaten, geleverd in het EFI_CERT_X509_GUID-formaat, is opgelost, waardoor het systeem met een ingetrokken certificaat kon worden opgestart.
    • Ondersteuning voor het verifiëren van ECDSA digitale handtekeningen op basis van elliptische krommen is toegevoegd aan de cryptosubsystem van de kernel.
    • De mogelijkheid om SELinux-beleid te verifiëren met behulp van de IMA (Integrity Measurement Architecture) subsystem is geïmplementeerd, die hashing-basen voor gegevensintegriteitscontrole onderhoudt.
  • Netwerk subsysteem
    • Ondersteuning voor WiMAX-technologie is verwijderd, aangezien deze niet langer wordt gebruikt in openbare netwerken. In de kern is de enige driver waarmee WiMAX kan worden gebruikt de verouderde Intel 2400m-driver. In de netwerkconfigurator NetworkManager is de ondersteuning voor WiMAX stopgezet in 2015. Tegenwoordig is WiMAX praktisch volledig verdrongen door technologieën zoals LTE, HSPA+ en Wi-Fi 802.11n.
    • Een driver voor de netwerkadapter MANA (Microsoft Azure Network Adapter) is toegevoegd.
    • In de ath11k-driver is ondersteuning toegevoegd voor draadloze modules Qualcomm QCN9074 met ondersteuning voor 802.11ax.
    • In de iwlwifi-driver is de mogelijkheid voor passieve scans van kanalen in het 6GHz-bereik geïmplementeerd. Voor Oekraïne is ondersteuning toegevoegd voor het in- en uitschakelen van IEEE 802.11ax op basis van parameters in de BIOS.
    • De XDP (eXpress Data Path) subsystem is geoptimaliseerd, waarmee netwerkpakketten kunnen worden gemanipuleerd voordat ze door de netwerkstack van de Linux-kernel worden verwerkt. Uitvoerde tests tonen een prestatieverbetering van XDP van 4-8%. Voor virtio-apparaten kan de prestatieverbetering van softwareverwerking met AF_XDP oplopen tot 33%.
    • In ICMP is ondersteuning geïmplementeerd voor uitgebreide PROBE-berichten die zijn gedefinieerd in RFC 8335.
    • De integratie in de MPTCP (MultiPath TCP)-kernel is voortgezet, een protocoluitbreiding van TCP voor het tot stand brengen van TCP-verbindingen met gelijktijdige pakketlevering over meerdere routes via verschillende netwerkinterfaces. IP-adressenIn de nieuwe release is ondersteuning toegevoegd voor sockopt om standaard TCP-opties in te stellen. De mogelijkheid om individuele subflows opnieuw in te stellen is geïmplementeerd.
    • In netfilter is ondersteuning toegevoegd voor resource management met behulp van een uniforme hiërarchie van cgroups v2.
    • In ethtool is een interface geïmplementeerd voor het lezen van statistics van IEEE MIB met ondersteuning voor mlx5 en bnxt. Netwerkdrivers mogen willekeurige gegevens uit SFP EEPROM extraheren, door niet alleen met offset+grootte te werken, maar ook met geheugenpagina's.
  • Apparatuur
    • Initiële ondersteuning voor de ARM-chip Apple M1 is geïmplementeerd, inclusief de interruptcontroller, timer, UART, SMP, functies voor input/output en MMIO. Reverse engineering van de GPU is nog niet voltooid; voor uitvoer is ondersteuning voor framebuffer en console via de seriële poort beschikbaar.
    • De opschoning van de kernel van oude drivers is voortgezet, waarbij de drivers 'gasket' (Google ASIC), 'sysace', 'umem' en verschillende oude drivers voor seriële poorten zijn verwijderd.
    • Na 13 jaar in de staging-tak is de 'comedi'-driver, ter ondersteuning van dataverzamelingsapparaten, gestabiliseerd en overgebracht naar de hoofdmix.
    • De GUD (Generic USB Display) driver is toegevoegd met een basisdriverimplementatie voor schermen en TV-adapters die via USB zijn aangesloten. De driver biedt DRM-eigenschappen (Direct Rendering Manager) voor beeldrotatie, helderheidsregeling, toegang tot EDID, configuratie van videomodi en TV-aansluitingen, die als basis kunnen worden gebruikt voor het maken van drivers voor specifieke apparaten.
    • De 'virtio' geluidsdriver is toegevoegd met een virtuele geluidsapparaatimplementatie die in gastsystemen kan worden gebruikt voor geluidsuitvoer en -opname zonder dat toegang tot de geluidskaart hoeft te worden doorgestuurd en zonder emulatie.
    • In de amdgpu-driver is de eerste ondersteuning voor de GPU Aldebaran (gfx90a) toegevoegd. Er is basissteun voor de FreeSync-technologie voor HDMI toegevoegd (voorheen beschikbaar voor DisplayPort), die het mogelijk maakt om de verversingssnelheid van de informatie op het scherm aan te passen. ASSR (Alternate Scrambler Seed Reset) is ondersteund. Een ioctl is toegevoegd voor het opvragen van functies die verband houden met video-encoding en -decoding. De CONFIG_DRM_AMD_SECURE_DISPLAY-modus is toegevoegd voor het detecteren van wijzigingen in weergave-apparaten die kritieke informatie tonen. Ondersteuning voor de ASPM-energiebesparingsmechanisme is toegevoegd.
    • In de i915-driver voor Intel grafische kaarten is ondersteuning voor Intel Alderlake-S chips toegevoegd. Ondersteuning voor eDP MSO (Embedded DisplayPort Multi-SST Operatie) is toegevoegd.
    • Ondersteuning voor de Luna-controller (Amazon) is toegevoegd, evenals voor de touchscreens Hycon HY46XX, ILITEK Lego Series en MStar MSG2638.

Tegelijkertijd heeft de Latijns-Amerikaanse Vrije Software Stichting een volledig vrij kernel 5.11 — Linux-libre 5.11-gnu gevormd, ontdaan van firmware-elementen en drivers die niet-vrije componenten of code segmenten bevatten, waarvan de toepassing door de fabrikant is beperkt. In deze nieuwe release is de comedi-driver opgeruimd. De opruiming van de drivers cyclades, isicom tty en i2400m wimax is gestopt, die uit de kernel zijn verwijderd. De opruimcode voor blobs in de drivers en subsystemen amdgpu, i915 csr, r8152 usb, mhi bus, x86 touchscreen en qualcomm arm64 is bijgewerkt.

Bron: opennet.ru

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