Udgivelsen af Linux-kernen 5.13

Efter to måneders udvikling præsenterede Linus Torvalds udgivelsen af Linux-kernen 5.13. Blandt de mest markante ændringer er: filsystemet EROFS, indledende support til Apple M1-chips, cgroup-controller 'misc', ophør af understøttelsen af /dev/kmem, støtte til nye GPU'er fra Intel og AMD, mulighed for direkte kald af kernen funktioner fra BPF-programmer, randomisering af kernen stak for hver systemopkald, mulighed for bygning i Clang med CFI-beskyttelse (Control Flow Integrity), LSM-modul Landlock til ekstra begrænsning af processer, virtuelt lydapparat baseret på virtio, multi-shot tilstand i io_uring.

I den nye version er der accepteret 17189 rettelser fra 2150 udviklere (det største i historien), patchstørrelsen er 60 MB (ændringerne berørte 12996 filer, tilføjet 794705 linjer kode, fjernet 399590 linjer). Omkring 47% af alle ændringerne i 5.13 vedrører enhedsdrivere, cirka 14% af ændringerne relaterer sig til opdatering af kode specifik for hardwarearkitekturer, 13% vedrører netværksstakken, 5% vedrører filsystemerne, og 4% vedrører interne subsystemer af kernen.

Hovednyhederne:

  • DiskSubsystem, input/output og filsystemer
    • Støtte til filsystemet EROFS (Enhanced Read-Only File System), foreslået af Huawei til brug på partitioner, der er tilgængelige i skrivebeskyttet tilstand, er blevet tilføjet. Det nye filsystem understøtter lagring af data i komprimeret form og viser sammenlignet med Ext4 lignende ydeevne under sekventiel læsning, men overgår Ext4 mange gange ved tilfældig dataadgang. For eksempel, ved et komprimeringsniveau på 4 og testning på serveren en hård disk overgik EROFS-filsystemet Ext4 i tilfældig læseoperationer med mere end seks gange, og ved brug af en Android-smartphone med Flash næsten tre gange. Ligesom i andre read-only filsystemer er strukturen af EROFS væsentligt forenklet ved at udelade visse metadatområder i implementeringen, såsom den frie blokbitkort.
    • For SMB3-filsystemet er der implementeret en monteringsmulighed 'rasize', som gør det muligt at bestemme størrelsen på readahead-vinduet for at øge ydeevnen af visse belastningstyper.
    • I ext4-filsystemet er der sikret overskrivning af katalogelementer ved fjernelse af filer. I ext4 er det også tilladt at benytte tilstand for både case-insensitive drift og kryptering samtidig.
    • I exFAT-filsystemet er der tilføjet understøttelse af ioctl-kommandoen FITRIM (discard) for at informere disken om de ubrugte blokke i filsystemet.
    • I XFS-filsystemet er der tilføjet mulighed for at fratrække plads fra den sidste allokeringsgruppe i filsystemet, hvilket er det første skridt i implementeringen af funktionaliteten til at reducere størrelsen af eksisterende partitioner med XFS-filsystemet.
    • Der er tilføjet en ny systemopkald quotactl_path, som adskiller sig fra quotactl ved at muliggøre styring af kvoter ikke gennem en special-enhedsfil, men ved at angive stien til monteringspunktet af filsystemet.
    • I fanotify-mekanismen er mulighederne for ikke-privilegerede brugere blevet udvidet. For eksempel kan man nu, ligesom med inotify, uden SYS_CAP_ADMIN-rettigheder overvåge hændelserne OPEN, ACCESS, MODIFY og CLOSE for filer og mapper.
  • Hukommelse og systemtjenester
    • Der er tilføjet en ny cgroup-controller - "Misc" (CONFIG_CGROUP_MISC), der er beregnet til at begrænse og overvåge skalarressourcer, som kan håndteres med en simpel tæller og begrænses ved at fastsætte maksimalt tilladte værdier. Et eksempel på anvendelsen af den nye cgroup-controller nævnes til håndtering af adresseplads-id'er anvendt i AMD SEV (Secure Encrypted Virtualization) mekanismen.
    • I io_uring-grænsefladen for asynkron input/output er der realiseret en 'multi-shot'-tilstand for POLL-anmodninger, hvor POLL ikke fjernes efter at have genereret en hændelse, men forbliver aktiv og kan generere flere hændelser.
    • Kode, der sikrer behandling af softwaregenererede afbrydelser i kerneltråde, er blevet overført fra realtidskernen, hvilket muliggør, at de kan blive skubbet væk af højere prioriterede processer.
    • Der er tilføjet et internt bibliotek netfs, som har samlet standardfunktionerne, der anvendes i netværksfilsystemer.
    • For PowerPC-arkitekturen er der implementeret understøttelse af tidsrum for navnerum (time namespaces), som muliggør brug af egen tid i containere.
    • For RISC-V-arkitekturen er der implementeret understøttelse af kexec, crash dump, kprobe og udførelse af kerne in-place (execute-in-place, udførelse direkte fra lageret uden at kopiere til RAM).
    • I BPF-programmer til sporing er muligheden for at bruge opbevaring af data lokalt for opgaven (task-local storage) blevet tilføjet, hvilket giver højere ydeevne ved at knytte data til en bestemt BPF-behandler.
    • Der er implementeret en ny mekanisme til direkte kald af kernefunktioner fra BPF-programmer, som allerede er anvendt i realiseringen af TCP-overbelastningsalgoritmer. For at sikre sikkerheden skal de kaldte funktioner være eksplicit defineret i en hvidliste.
    • Der er tilføjet en funktion i ftrace-funktionssporingssystemet kaldet func-no-repeats, som muliggør, at gentagne sekventielle funktionskald afspejles som en tæller.
    • I systemopkaldet userfaultfd(), der er beregnet til at håndtere page faults (adgang til ikke-allokerede hukommelsessider) i brugerens rum, er der tilføjet mulighed for at styre delvise faults, hvor hukommelsessiden er til stede, men der ikke er nogen post i hukommelsestabellen.
    • Støtten til specialfilen /dev/kmem, som giver adgang til hele kernen's adresseområde, er ophørt. Denne fil er blevet anset for forældet og skaber sikkerhedsproblemer.
    • Der er implementeret en ny driver til varmehåndtering for Intel-chips, som muliggør nedsættelse af processorens frekvens ved risiko for overophedning. I modsætning til den eksisterende aktiveringsmekanisme TCC (Thermal Control Circuit), manipulerer den nye driver med relative værdier, dvs. kan sænke frekvensen i begyndelsen af en betydelig temperaturstigning, men uden at vente på at overskride den kritiske tærskel.
  • Virtualisering og sikkerhed
    • LSM-modulet til sikring af applikationsisolering, Landlock, er inkluderet, hvilket tillader at begrænse interaktionen med det eksterne miljø for en gruppe processer. Det er udviklet med henblik på isoleringsmekanismer som XNU Sandbox, FreeBSD Capsicum og OpenBSD Pledge/Unveil. Adgangslogikken bestemmes ved hjælp af en BPF-program, men i modsætning til seccomp-bpf filtrerer Landlock ikke systemopkald og deres argumenter, men muliggør begrænsning af brugen af kædeobjekter såsom filhierarkier. Ved hjælp af Landlock kan enhver proces, herunder en ikke-privilegeret proces, sikkerhedsisolere sig selv og forhindre omgåelse af isoleringen i tilfælde af opdagelse af sårbarheder eller skadelig ændring i applikationen. Landlock tillader en proces at oprette beskyttede isolerede miljøer implementeret som et ekstra lag over eksisterende systemmekanismer til adgangskontrol. For eksempel kan et program forhindre adgang til filer uden for arbejdsbiblioteket.
    • Der er tilføjet mulighed for at randomisere forskydninger i kernestakken under behandling af systemanrop for at vanskeliggøre angreb på stakken. Essensen af det foreslåede forsvar ligger i valget af en tilfældig stakforskydning ved hver systemanrop, hvilket vanskeliggør bestemmelsen af staklayoutet i hukommelsen selv i tilfælde af, at der opnås information om adresser, da den grundlæggende stakadresse ændres ved det næste systemanrop. For at aktivere randomisering er der foreslået kernel-kommandoparameterne "randomize_kstack_offset=on/off" samt indstillingen CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Omkostningerne vurderes til cirka 1% tab af ydelse.
    • Der er tilføjet support til kompilering af kernen med aktivering af CFI (Control Flow Integrity)-beskyttelsesmekanismen i Clang-kompilatoren, som tilføjer en kontrol før hver indirekte funktionsopringning for at identificere visse former for udefineret adfærd, som potentielt kan føre til brud på den normale udførelsesorden (control flow) som følge af brugen af exploits, der ændrer pointere til funktioner gemt i hukommelsen. For at aktivere CFI er der foreslået parameteren CONFIG_CFI_CLANG.
    • I den medfølgende nøglelagringstjeneste (key ring) fra kernen dækker mekanismen til pålidelige nøgler (Trusted Keys) nu ikke kun nøgler fra TPM-moduler, men også fra TEE (Trusted Execution Environment). For at styre kilden til de pålidelige nøgler er der foreslået en bootparameter "trusted.source". Derudover er der tilføjet mulighed for behandling af pålidelige nøgler i ASN.1-format.
    • Der er tilføjet en parameter til forhåndsindlæsning af listen over tilbagekaldte certifikater under opstart af kernen. Problemet (CVE-2020-26541) med at ignorere tilbageholdte certifikater i UEFI Secure Boot sortlister, der leveres i EFI_CERT_X509_GUID-format, hvilket gjorde det muligt at starte systemet med et tilbageholdt certifikat, er blevet løst.
    • Der er tilføjet support til verifikation af digitale signaturer ECDSA baseret på elliptiske kurver i kernekryptosystemet.
    • Muligheden for at verificere SELinux-politikker ved hjælp af IMA (Integrity Measurement Architecture) subsystemet, som sikrer opretholdelse af en hash-database til kontrol af dataintegritet, er blevet implementeret.
  • Netværkssubsystem
    • Understøttelsen af WiMAX-teknologien, som ikke længere anvendes i offentlige netværk, er fjernet, og den eneste driver, der stadig kan anvendes til WiMAX, er den forældede driver Intel 2400m. I netværkskonfiguratoren NetworkManager blev understøttelsen af WiMAX stoppet i 2015. I dag er WiMax praktisk talt helt blevet udkonkurreret af teknologier som LTE, HSPA+ og Wi-Fi 802.11n.
    • Tilføjet driver til netværksadapteren MANA (Microsoft Azure Network Adapter).
    • Driveren ath11k har fået tilføjet understøttelse af de trådløse moduler Qualcomm QCN9074 med understøttelse af 802.11ax.
    • Driveren iwlwifi har implementeret mulighed for passiv scanning af kanaler i 6GHz-båndet. For Ukraine er der tilføjet understøttelse af aktivering/deaktivering af IEEE 802.11ax baseret på BIOS-parametre.
    • Der er udført optimering af XDP (eXpress Data Path) subsystemet, som gør det muligt at manipulere netværkspakker før deres behandling af Linux-kernens netværksstak. Udførte tests viser en stigning i YDP-ydeevne på 4-8%. For virtio-enheder kan gevinsten fra softwarebehandling af AF_XDP nå op på 33%.
    • ICMP understøtter nu udvidede PROBE-meddelelser, som defineret i RFC 8335.
    • Integrationen i MPTCP (MultiPath TCP) kernen er fortsat, en udvidelse af TCP-protokollen, der muliggør drift af TCP-forbindelsen med pakkelevering samtidig over flere ruter gennem forskellige netværksinterface, der er knyttet til forskellige IP-adresser. Den nye version introducerer understøttelse af sockopt til at indstille TCP-typiske indstillinger. Mulighed for at nulstille enkelte understrømme (subflow) er implementeret.
    • Netfilter har fået tilføjet understøttelse af ressourceadministration ved hjælp af en ensartet hierarki af cgroups v2.
    • I ethtool er der implementeret et grænseflade til at læse statistik fra IEEE MIB med understøttelse af mlx5 og bnxt. Netværksdrivere har fået tilladelse til at hente vilkårlige data fra SFP EEPROM ved at manipulere med hukommelsessider snarere end offset+størrelse.
  • Udstyr
    • Initiel understøttelse af ARM-chippen Apple M1 er implementeret, dækkende interrupt-controller, timer, UART, SMP, I/O funktioner og MMIO. Tilbagemapping af GPU er endnu ikke færdiggjort, men der er givet understøttelse til framebuffer og konsol via seriel port.
    • Rydning af kernen for gamle drivere fortsætter, da driverne "gasket" (Google ASIC), "sysace", "umem" og flere gamle drivere til serielle porte er fjernet.
    • Efter 13 år i staging-grenen er driveren "comedi" stabiliseret og flyttet til hovedkomponenten for understøttelse af datainsamlingsenheder.
    • GUD (Generic USB Display) driver is added with the implementation of a basic driver for screens and TV adapters connected via USB interface. The driver provides DRM properties (Direct Rendering Manager) for image rotation, brightness control, access to EDID, configuration of video modes, and TV connection, which can be used as a basis for creating drivers for specific devices.
    • The 'virtio' sound driver has been added, implementing a virtual sound device that can be used in guest systems for audio output and recording without passing access to the sound card and without emulation.
    • The amdgpu driver has added initial support for Aldebaran GPU (gfx90a). Initial support for the FreeSync adaptive sync technology for HDMI is enabled (previously available for DisplayPort), which allows adjusting the refresh rate of the screen. Support for ASSR (Alternate Scrambler Seed Reset) is included. An ioctl has been added to query capabilities related to video encoding and decoding. The CONFIG_DRM_AMD_SECURE_DISPLAY mode is added to detect changes in displays that show critical information. Support for the ASPM power-saving mechanism is added.
    • The i915 driver for Intel graphics cards includes support for Intel Alderlake-S chips. Support for eDP MSO (Embedded DisplayPort Multi-SST Operation) is added.
    • Support for the Luna (Amazon) game controller, as well as touchscreens Hycon HY46XX, ILITEK Lego Series, and MStar MSG2638, has been added.

At the same time, the Latin American Free Software Foundation has formed a version of the fully free 5.11 kernel — Linux-libre 5.11-gnu, cleaned of firmware and driver elements containing non-free components or code sections restricted by the manufacturer. In the new release, the comedi driver has been cleaned. The cleaning of the cyclades, isicom tty, and i2400m wimax drivers has been discontinued, which have been removed from the kernel. The code for cleaning blobs in drivers and subsystems amdgpu, i915 csr, r8152 usb, mhi bus, x86 touchscreen, and qualcomm arm64 has been updated.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster