Release of Linux Kernel 5.19

After two months of development, Linus Torvalds has announced the release of Linux Kernel 5.19. Among the most notable changes are: support for the LoongArch processor architecture, integration of 'BIG TCP' patches, an 'on-demand' mode in fscache, removal of code for a.out format support, the ability to apply ZSTD for firmware compression, an interface for managing memory eviction from user space, improved reliability and performance of the random number generator, support for Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions), and ARM SME (Scalable Matrix Extension).

In the announcement, Linus stated that the next kernel release will likely be assigned the number 6.0, as the 5.x branch has accumulated enough releases to change the first digit in the version number. The renumbering is done for aesthetic reasons and is a formal step to alleviate discomfort from the accumulation of a large number of releases in the series.

Linus also mentioned that he used an Apple notebook based on ARM64 architecture (Apple Silicon) with a Linux environment from the Asahi Linux distribution to form the release. This is not Linus' main workstation, but he used this platform to verify its suitability for working on the kernel and to ensure he could produce kernel releases while traveling, with a lightweight laptop in hand. Many years ago, Linus had experience using Apple hardware for development — he once used a computer based on CPU ppc970 and a MacBook Air.

The new version includes 16,401 fixes from 2,190 developers (the previous release had 16,206 fixes from 2,127 developers), with a patch size of 90 MB (the changes affected 13,847 files, added 1,149,456 lines of code, and removed 349,177 lines). About 39% of all changes in 5.19 are related to device drivers, approximately 21% pertain to updating architecture-specific code, 11% relates to the network stack, 4% to file systems, and 3% to internal kernel subsystems.

Key features in Kernel 5.19:

  • Disksubsystem, in- och utmatning och filsystem
    • Filsystemet EROFS (Enhanced Read-Only File System), avsett för anvĂ€ndning pĂ„ partitioner som Ă€r tillgĂ€ngliga i skrivskyddat lĂ€ge, har övergĂ„tt till att anvĂ€nda fscache-subsystemet, vilket möjliggör datacaching. Ändringen har haft en betydande effekt pĂ„ prestandan i system dĂ€r ett stort antal containrar startas frĂ„n en EROFS-baserad avbild.
    • I fscache-subsystemet har en begĂ€ran om lĂ€sning on-demand lagts till, som aktiveras för att optimera EROFS. Det nya lĂ€get möjliggör lĂ€sning frĂ„n cache av filsystembilder som finns i det lokala systemet. Till skillnad frĂ„n det ursprungligen tillgĂ€ngliga arbetssĂ€ttet, som fokuserade pĂ„ caching av data som överfördes via nĂ€tverksfilsystem, delegerar lĂ€get on-demand funktionerna för datautvinning och skriving till cache till en separat bakgrundsprocess som körs i anvĂ€ndarutrymme.
    • I XFS har möjligheten införts för att lagra miljarder avancerade attribut i i-noder. Det maximala antalet extent för en fil har ökat frĂ„n 4 miljarder till 247. En funktion för atomĂ€r uppdatering av flera avancerade filattribut har implementerats.
    • I Btrfs-filsystemet har arbetet med lĂ„sningar optimerats, vilket har resulterat i en ökning av prestandan med cirka 7 % vid direkt skrivning utan vĂ€ntan. Prestandan för operationer i NOCOW-lĂ€ge (utan copy-on-write) har förbĂ€ttrats med cirka 3 %. Belastningen pĂ„ sidcache under kommando «send» har minskat. Den minimi storleken pĂ„ under-sidor har sĂ€nkts frĂ„n 64K till 4K (det Ă€r nu möjligt att anvĂ€nda under-sidor som Ă€r mindre Ă€n kĂ€rnans sidor). ÖvergĂ„ngen frĂ„n att anvĂ€nda ett radix-trĂ€d till algoritmen XArrays har genomförts.
    • I NFS-servern har ett lĂ€ge för att förlĂ€nga kvarhĂ„llande av en lĂ„s som stĂ€llts in av en klient, som har slutat svara pĂ„ förfrĂ„gningar, lagts till. Det nya lĂ€get tillĂ„ter att rensning av lĂ„set fördröjs i upp till ett dygn om en annan klient inte begĂ€r en konkurrerande lĂ„s. I standardlĂ€ge rensas lĂ„set efter 90 sekunder nĂ€r klienten slutat svara.
    • I subsystemet för hĂ€ndelsespĂ„rning i FS fanotify har flaggan FAN_MARK_EVICTABLE implementerats, med vilken det gĂ„r att inaktivera lĂ„sningen av mĂ„linoden i cache, exempelvis för att ignorera grenar utan att lĂ„sa deras delar i cache.
    • I drivrutinen för FAT32 har stöd för att hĂ€mta information om filens skapelsedatum lagts till via systemanropet statx, med en mer effektiv och funktionell version av stat() som returnerar utökad information om filen.
    • Betydande optimeringar har införts i drivrutinen för exFAT, relaterade till samtidig rensning av en grupp sektorer i aktivt 'dirsync'-lĂ€ge, istĂ€llet för sekventiell sektorrensning. Genom att minska antalet blockförfrĂ„gningar efter optimeringen har prestandan vid skapandet av ett stort antal kataloger pĂ„ SD-kort ökat med över 73-85% beroende pĂ„ klustrets storlek.
    • Det första korrigerande uppdateringen av drivrutinen ntfs3 har inkluderats i kĂ€rnan. Sedan ntfs3 infördes i kĂ€rnverson 5.15 i oktober förra Ă„ret har drivrutinen inte uppdaterats, och kontakten med utvecklarna har gĂ„tt förlorad, men nu har utvecklarna Ă„terupptagit publiceringen av Ă€ndringar. I de föreslagna patcharna har fel som leder till minneslĂ€ckor och krascher Ă„tgĂ€rdats, problem med exekveringen av xfstests har lösts, oanvĂ€nd kod har rensats bort och stavfel har rĂ€ttats.
    • För OverlayFS har möjligheten att mappa anvĂ€ndaridentiteter för monterade filsystem implementerats, vilket anvĂ€nds för att koppla filer av en viss anvĂ€ndare pĂ„ ett monterat extern partition med en annan anvĂ€ndare i det aktuella systemet.
  • Minne och systemtjĂ€nster
    • Inledande stöd för kommandosetsarkitekturen LoongArch har lagts till, som anvĂ€nds i Loongson 3 5000-processorer och implementerar en ny RISC ISA som liknar MIPS och RISC-V. Arkitekturen LoongArch finns i tre versioner: nedskalad 32-bitars (LA32R), standard 32-bitars (LA32S) och 64-bitars (LA64).
    • Koden för att stödja formatet för körbara filer a.out har tagits bort, vilket har klassificerats som förĂ„ldrat sedan version 5.1. Formatet a.out anvĂ€nds sĂ€llan pĂ„ Linux-system, och generering av a.out-filer stöds inte av moderna verktyg i standardkonfigurationer för Linux. Laddaren för a.out-filer kan helt implementeras i anvĂ€ndarutrymmet.
    • Stödet för boot-alternativ som Ă€r specifika för x86-arkitekturen (nosep, nosmap, nosmep, noexec och noclflush) har upphört.
    • Stödet för den förĂ„ldrade CPU-arkitekturen h8300 (Renesas H8/300), som lĂ€nge har varit utan underhĂ„ll, har upphört.
    • Möjligheterna för att reagera pĂ„ upptĂ€ckten av split-lĂ„sningar har utvidgats, nĂ„got som uppstĂ„r vid Ă„tkomst till ojusterade data i minnet nĂ€r en atomĂ€r instruktion korsar tvĂ„ CPU-cachelinjer. SĂ„dana lĂ„sningar leder till en betydande prestandaförlust. Tidigare gav kĂ€rnan som standard en varning med information om den process som orsakade lĂ„sningen, men nu kommer den problematiska processen dessutom att saktas ner för att bevara prestandan i resten av systemet.
    • Stöd har lagts till för den implementering av IFS (In-Field Scan) i Intel-processorer, vilket möjliggör körning av lĂ„g nivĂ„ diagnostiska tester av CPU:er som kan identifiera problem som inte upptĂ€ckts av standardmetoder baserade pĂ„ felkorrigeringskoder (ECC) eller paritetsbitar. De genomförda testen presenteras i form av en laddningsbar firmware, liknande uppdateringar av mikrokod. Testresultaten Ă€r tillgĂ€ngliga via sysfs.
    • Möjlighet har lagts till för att integrera bootconfig-filen i kĂ€rnan, vilket gör det möjligt att definiera kĂ€rnans driftparametrar via en instĂ€llningsfil förutom kommandoradsalternativen. Integrationen sker genom byggalternativet 'CONFIG_BOOT_CONFIG_EMBED_FILE="/PATH/TO/BOOTCONFIG/FILE"'. Tidigare definierades bootconfig genom bilaga till initrd-bilden. Integrationen i kĂ€rnan gör det möjligt att anvĂ€nda bootconfig i konfigurationer utan initrd.
    • Möjlighet att ladda firmware komprimerad med Zstandard-algoritmen har implementerats. En uppsĂ€ttning kontrollfiler har lagts till i sysfs under /sys/class/firmware/*, vilket möjliggör initiering av firmware-laddningar frĂ„n anvĂ€ndarutrymme.
    • I grĂ€nssnittet för asynkron in- och utmatning io_uring har en ny flagga IORING_RECVSEND_POLL_FIRST föreslagits, vilket vid aktivering innebĂ€r att nĂ€tverksoperationen först kommer att vidarebefordras för behandling via polling, vilket kan spara resurser i situationer dĂ€r det Ă€r acceptabelt att behandla operationen med viss fördröjning. Stöd för systemanropet socket() har ocksĂ„ lagts till i io_uring, och nya flaggor har föreslagits för att förenkla hanteringen av filbeskrivare, samt en "multi-shot"-lĂ€ge för att ta emot flera anslutningar i accept()-anropet, och operationer för att direkt vidarebefordra NVMe-kommandon till enheten.
    • För Xtensa-arkitekturen har stöd för felsökningsverktyget KCSAN (Kernel Concurrency Sanitizer) lagts till, avsett för dynamisk upptĂ€ckte av racetillstĂ„nd inom kĂ€rnan. SömnlĂ€gesstöd och co-processorer har ocksĂ„ lagts till.
    • För m68k-arkitekturen (Motorola 68000) har implementering genomförts. virtuell maskin (plattformssimulator) baserad pĂ„ Android Goldfish-emulatorn.
    • För AArch64-arkitekturen har stöd för Armv9-A SME (Scalable Matrix Extension) implementerats.
    • I eBPF-undersystemet har typade pekare i map-strukturer gjorts möjliga, och stöd för dynamiska pekare har lagts till.
    • En ny förebyggande mekanism för minnesutdrivning har föreslagits, som stöder hantering frĂ„n anvĂ€ndarutrymmet genom filen memory.reclaim. Att skriva ett tal i den angivna filen kommer att leda till ett försök att driva ut motsvarande antal byte frĂ„n den uppsĂ€ttning som Ă€r kopplad till cgroup.
    • Noggrannheten i minnesanvĂ€ndningens rĂ€knande vid datakomprimering i swap-partitionen har ökat genom mekanismen zswap.
    • För RISC-V-arkitekturen har stöd för körning av 32-bitars körbara filer pĂ„ 64-bitars system tillhandahĂ„llits, en lĂ€ge för att binda begrĂ€nsande attribut till minnessidor (t.ex. för att förhindra caching) har lagts till, och funktionen kexec_file_load() har implementerats.
    • Implementeringen av stöd för 32-bitars Armv4T- och Armv5-system har anpassats för anvĂ€ndning i universella plattformsoberoende kĂ€rnsamlingar som passar olika ARM-system.
  • Virtualisering och sĂ€kerhet
    • I EFI-underdelen har möjligheten för konfidentiell överföring av hemlig information till gĂ€stsystem utan att avslöja den för vĂ€rdsystemet implementerats. Data tillhandahĂ„lls genom katalogen security/coco i securityfs.
    • I Lockdown-skyddslĂ€get, som begrĂ€nsar root-anvĂ€ndarens tillgĂ„ng till kĂ€rnan och blockerar sĂ€tt att kringgĂ„ UEFI Secure Boot, har en lucka stĂ€ngts som tidigare tillĂ€t kringgĂ„ skyddet genom manipulation med kĂ€rnfelsökaren.
    • Patchar som syftar till att öka pĂ„litlighet och prestanda för slumpgeneratorn har inkluderats.
    • Vid byggnation med Clang 15 har stöd för mekanismen för slumptal i kĂ€rnstrukturer implementerats.
    • I Landlock-mekanismen, som begrĂ€nsar en grupp processers interaktion med den externa miljön, har stöd för regler som möjliggör kontroll över filnamnĂ€ndringsoperationer lagts till.
    • IAM (Integrity Measurement Architecture) subsystem, designed to check the integrity of operating system components through digital signatures and hashes, has been transitioned to use the fs-verity module for file verification.
    • The logic of actions has changed when disabling unprivileged access to the eBPF subsystem — previously, all commands related to the bpf() system call were disabled, but starting from version 5.19, access has been retained for commands that do not lead to object creation. With such behavior, a privileged process is required to load a BPF program, but subsequently, unprivileged processes can interact with this program.
    • Support has been added for the AMD SEV-SNP (Secure Nested Paging) extension, which ensures safe operation with nested page tables and protects against 'undeSErVed' and 'SEVerity' attacks on AMD EPYC processors, which can bypass the AMD SEV (Secure Encrypted Virtualization) protection mechanism.
    • Support has been added for Intel TDX (Trusted Domain Extensions) mechanism, which allows blocking attempts of external access to encrypted memory. virtuella maskiner.
    • Support for input/output using polling has been added to the virtio-blk driver, used for emulating block devices, which in tests resulted in a delay reduction of approximately 10%.
  • NĂ€tverkssystemet
    • A series of BIG TCP patches have been included, allowing the maximum TCP packet size to be increased to 4GB to optimize the operation of high-speed internal data center networks. Such an increase in packet size is achieved through the implementation of 'jumbo' packets, where the size in the IP header is set to 0, and the actual size is transmitted in a separate 32-bit field in an additional attached header. Performance testing showed that setting the packet size to 185 KB allowed for a 50% increase in throughput and significantly reduced data transfer delays.
    • Arbetet med att integrera verktyg för att spĂ„ra orsakerna till paketförluster (reason-koder) i nĂ€tverksstacken har fortsatt. Anledningen till förlusten skickas vid frigöring av minnet kopplat till paketet och gör det möjligt att beakta sĂ„dana situationer som paketförlust pĂ„ grund av felaktig fyllning av fĂ€lt i rubriken, upptĂ€ckta spoofing genom rp_filter, ogiltig kontrollsumma, brist pĂ„ minne, aktivering av IPSec XFRM-regler, ogiltigt TCP-sekvensnummer m.m.
    • Stöd för att rulla tillbaka MPTCP (MultiPath TCP) till vanlig TCP har lagts till, i situationer dĂ€r vissa funktioner av MPTCP inte kan anvĂ€ndas. MPTCP Ă€r en förlĂ€ngning av TCP-protokollet som möjliggör att TCP-anslutningar kan leverera paket samtidigt över flera vĂ€gar via olika nĂ€tverksgrĂ€nssnitt kopplade till olika IP-adresser. Ett API för att hantera MPTCP-strömmar frĂ„n anvĂ€ndarutrymmet har lagts till.
  • Utrustning
    • Över 420 000 rader kod relaterade till amdgpu-drivrutinen har lagts till, varav cirka 400 000 rader utgörs av automatiskt genererade headerfiler med registerdata för ASIC i drivrutinen för AMD GPU, och ytterligare 22 500 rader sĂ€kerstĂ€ller den initiala implementeringen av stöd för AMD SoC21. Den totala storleken pĂ„ drivrutinen för AMD GPU har överstigit 4 miljoner rader kod. Förutom SoC21 inkluderar drivrutinen stöd för SMU 13.x (System Management Unit), USB-C-stöd har uppdaterats, GPUVM har förbĂ€ttrats och förberedelser har gjorts för att stödja kommande generationer av plattformar RDNA3 (RX 7000) och CDNA (AMD Instinct).
    • I i915-drivrutinen (Intel) har möjligheterna relaterade till energihantering utökats. Identifierare för Intel DG2 GPU (Arc Alchemist), som anvĂ€nds i bĂ€rbara datorer, har lagts till, den initiala stödet för Intel Raptor Lake-P (RPL-P) har implementerats, information om grafikprocessorer Arctic Sound-M har inkluderats, ABI för berĂ€kningsmotorer har implementerats, stöd för Tile4-formatet har lagts till för DG2-kort, och stöd för DisplayPort HDR har genomförts för system baserade pĂ„ Haswell-mikroarkitekturen.
    • I Nouveau-drivrutinen har övergĂ„ngen till anvĂ€ndning av drm_gem_plane_helper_prepare_fb-hanteraren genomförts, och statisk minnesallokering har tillĂ€mpats för vissa strukturer och variabler. NĂ€r det gĂ€ller anvĂ€ndningen av NVIDIA:s öppna kĂ€llkod för kĂ€rnmoduler i Nouveau, Ă€r arbetet för nĂ€rvarande inriktat pĂ„ att identifiera och Ă„tgĂ€rda fel. I framtiden planeras den publicerade programvaran att anvĂ€ndas för att öka prestandan hos drivrutinen.
    • En drivrutin för NVMe-kontrollern som anvĂ€nds i Apple-datorer med M1-chip har lagts till.

Samtidigt har den latinamerikanska Stiftelsen för fri programvara skapat en helt fri version av kÀrnan 5.19 - Linux-libre 5.19-gnu, som Àr rensad frÄn element av firmware och drivrutiner som innehÄller icke-fria komponenter eller kodavsnitt med begrÀnsad anvÀndning av tillverkaren. I den nya utgÄvan har drivrutinerna för pureLiFi X/XL/XC och TI AMx3 Wkup-M3 IPC rengjorts. Koden för att rensa blobbars i drivrutiner och subsystem frÄn Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu drivrutiner har uppdaterats. Behandling av devicetree-filer för Qualcomm AArch64 har implementerats. Stöd för det nya namnschema för komponenter i Sound Open Firmware har lagts till. Rensningen av ATM Ambassador-drivrutinen, som tagits bort frÄn kÀrnan, har upphört. Hanteringen av rensningen av blobbars i HDCP och Mellanox Core har flyttats till separata kconfig-taggar.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster