Kernel-útjefte Linux 6.8

Nei twa moannen fan ûntwikkeling hat Linus Torvalds de kernel frijjûn. Linux 6.8. Under de meast opmerklike feroarings: Xe-stjoerprogramma foar Intel GPU's, beskermingsmodus foar blokapparaten mei monteare bestânssystemen, Deadline-tsjinner taakplannermeganisme, automatyske optimalisaasje fan it gearfoegjen fan identike ûnthâldpagina's, de earste stjoerprogramma yn 'e Rust-taal, listmount- en statmount-systeemopropen, fuortheljen fan bpfilter en SLAB, guest_memfd-meganisme yn KVM, gegevenstagongsprofilering.

De nije ferzje omfettet 15641 fixes fan 2018-ûntwikkelders, de patchgrutte is 44 MB (de wizigingen beynfloede 12212 bestannen, 663864 rigels koade waarden tafoege, 339094 rigels waarden wiske). De lêste release hie 18405 fixes fan 2066 ûntwikkelders, en de patchgrutte wie 72 MB. Ungefear 42% fan alle wizigingen yntrodusearre yn 6.8 binne relatearre oan apparaatbestjoerders, sawat 15% fan feroaringen binne relatearre oan it bywurkjen fan koade spesifyk foar hardware-arsjitektuer, 14% binne relatearre oan de netwurkstapel, 6% binne relatearre oan triemsystemen, en 3% binne relatearre oan ynterne kernel-subsystemen.

D'r binne 6.8 miljoen objekten yn it Git-repository mei kernel 9.996, wat oanjout dat de folgjende kernel 6.9 de mylpeal fan 10 miljoen Git-objekten brekke sil. Earder korrelearre de feroaring yn branchnûmers 3.x en 4.x goed mei it oantal git-objekten yn 'e repository - kernel 3.0 waard frijjûn doe't d'r sawat 2 miljoen objekten yn 'e repository wiene, en kernel 4.0 - 4 miljoen objekten. Tagelyk, yn 2019, bruts release 5.0 dizze logyske keatling, sûnt doe't it waard foarme, it repository omfette sawat 6.5 miljoen git-objekten.

Wichtichste ynnovaasjes yn kernel 6.8:

  • Skiif subsysteem, I / O en triem systemen
    • In modus tafoege foar it blokkearjen fan direkte skriuwen om apparaten te blokkearjen dy't bestânssystemen hawwe monteard (nei't de modus ynskeakele is, sil de root-brûker gjin wizigingen oan 'e FS kinne meitsje troch manipulaasjes op it blokapparaatnivo). Standert is de modus útskeakele en fereasket dat de parameter BLK_DEV_WRITE_MOUNTED wurdt oantsjutte by it bouwen. Foar partysjes mei Btrfs wurket blokkearjen noch net, om't de nedige wizigingen noch net makke binne oan 'e Btrfs-koade.
    • Added listmount () en statmount () systeem calls, wêrtroch't detaillearre ynformaasje oer mounted triem systemen wurde krigen fan brûkersromte.
    • Yn it XFS-bestânsysteem bliuwt it wurk om de mooglikheid te ymplementearjen om it fsck-hulpprogramma te brûken om identifisearre problemen online te kontrolearjen en te korrigearjen, sûnder it bestânsysteem te ûntsluten.
    • Ext4 brûkt de dioread_nolock-oprop foar blokken lytser as in ûnthâldside, wat de prestaasjes ferbettert troch ûnnedige slûzen te eliminearjen. Guon funksjes binne omboud ta it brûken fan sidefolio's.
    • Btrfs tafoege stipe foar de "nospace_cache" mount flagge om de frije blokcache út te skeakeljen. Guon funksjes binne omboud ta it brûken fan sidefolio's.
    • It EROFS (Extendable Read-Only File System) bestânsysteem, ûntworpen foar gebrûk op allinich lêzen partysjes, hat stipe tafoege foar subside-kompresje en ferbettere prestaasjes yn situaasjes mei leech ûnthâld.
    • It F2FS-bestânsysteem hat ferbettere stipe foar sône opslachapparaten (diele groepen fan blokken of sektoaren yn sônes, wêryn allinich opfolgjende tafoeging fan gegevens tastien is mei it bywurkjen fan de hiele groep blokken).
    • Foar it SMB-bestânsysteem is de mooglikheid om blok- en symboalyske apparaatbestannen te meitsjen ymplementearre.
    • Diellike stipe foar it kontrolearjen en herstellen fan de yntegriteit fan monteare bestânsystemen is tafoege oan Bcachefs.
    • It apparaat-mapper-subsysteem stipet net langer MD_LINEAR-, MD_MULTIPATH- en MD_FAULTY-hannelers, dy't yn 2021 ôfkard waarden.
  • Unthâld en systeem tsjinsten
    • It Zswap-subsysteem is oanfolle mei de mooglikheid om "kâlde" ûnthâldsiden te twingen dy't net tagong binne en nei alle gedachten net opeaske bliuwe, aktivearre as d'r in gebrek oan RAM is. Zswap caches siden dy't wurde ferdreaun nei de swap-partysje, bewarje se yn RAM yn in komprimearre foarm as it mooglik is sûnder se te spoelen nei de eigentlike net-komprimeare swap-partysje op skiif. Feroarings makke as ûnthâld is leech kinne jo ferminderje de grutte fan de Zswap pool opslein yn RAM en frijmeitsje ûnthâld foar it systeem.
    • Zswap biedt in nije modus dy't it skriuwen fan 'e echte ruilferdieling folslein útskeakelje as de skriuwpoging net slagge is, en siden dy't al yn' e zswap-pool binne net spoele nei de ruilferdieling.
    • It SCHED_DEADLINE-tsjinnermeganisme is tafoege oan 'e taakplanner, dy't it probleem oplost fan underutilization fan CPU-boarnen troch gewoane taken as de CPU wurdt monopolisearre troch taken mei hege prioriteit (realtime). Om CPU-monopolisaasje te foarkommen, brûkte de kearn earder it Realtime-throttling-meganisme, dy't besocht 5% te reservearjen foar taken mei lege prioriteit, wêrtroch 95% fan 'e tiid foar realtime taken oerbleaun. Dit meganisme liet in protte te winskjen oer, om't gewoane taken yn in protte situaasjes net genôch prosessortiid krigen. SCHED_DEADLINE tsjinner ymplemintearret in effisjinter boarne reservearring meganisme.
    • It DAMON (Data Access MONitor) subsysteem, wêrmei jo de tagong fan in proses ta gegevens yn RAM kinne kontrolearje (jo kinne bygelyks útfine hokker ûnthâldgebieten it proses tagong hat en hokker ûnthâldgebieten net opeaske bleaunen), hat in meganisme tafoege foar it automatysk oanpassen de agressiviteit fan ûnthâld konsumpsje basearre op oantsjutte kwotas.
    • Tafoege stipe foar multi-size grutte ûnthâld siden (mTHP - multi-size Transparent Huge Pages), wêrtroch jo ûnthâld kinne tawize yn blokken grutter dan de basisside, mar lytser dan in tradisjonele THP-side.
    • Tafoege stipe foar grutte folios (side folios, kombinearre ûnthâld siden) foar anonime ûnthâld (net bûn oan de FS, bygelyks, tawiisd fia malloc). De feroaring is rjochte op it ferbetterjen fan prestaasjes troch it tawizen fan grutte stikken ûnthâld by tagong ta net-allokearre ûnthâldsiden (sidefouten). Bygelyks, it brûken fan grutte folumes makke it mooglik om te ferminderjen de kearn reassembly tiid troch 5% (wylst it ferminderjen fan de tiid bestege oan de kearn nivo troch 40%).
    • De TRANSPARENT_HUGEPAGE_NEVER parameter is tafoege oan it kernel konfiguraasjetriem, wêrtroch it mooglik is om it gebrûk fan Transparent Huge Pages út te skeakeljen.
    • De userfaultfd()-systeemoprop, dy't it mooglik makket om handlers te meitsjen foar tagong ta net-allokearre ûnthâldsiden (sidefouten) yn brûkersromte, hat de operaasje UFFDIO_MOVE tafoege, wêrtroch't, tidens heapkomprimearjen, ûnthâldsiden yn 'e firtuele adresromte kinne ferpleatse sûnder it útfieren fan in ûnthâld side tawizing operaasje. Yn 'e útfierde testen liet it gebrûk fan UFFDIO_MOVE ús de ferpakkingstiid mei 40% ferminderje yn ferliking mei it brûken fan de UFFDIO_COPY-operaasje.
    • In "KSM-adviseur"-meganisme is tafoege, wêrtroch jo de parameters fan it subsysteem automatysk kinne optimalisearje foar it gearfoegjen fan identike ûnthâldsiden (KSM - Kernel Samepage Merging).
    • Trochgeande migraasje fan feroarings fan 'e Rust-foar-tûkeLinux, relatearre oan it gebrûk fan Rust as twadde taal foar it ûntwikkeljen fan stjoerprogramma's en kernelmodules (Rust-stipe is standert net aktyf en resultearret net yn Rust dy't opnommen wurdt yn 'e fereaske bouôfhinklikheden fan' e kernel). De nije ferzje befettet feroarings dy't in Rust-wrapper tafoegje boppe de phylib-abstraksjelaach en de ax88796b_rust-stjoerprogramma dy't dizze wrapper brûkt, wêrtroch stipe wurdt levere foar de PHY-ynterface fan 'e Asix AX88772A (100MBit) Ethernet-controller. Wat funksjonaliteit oanbelanget, is de Rust-stjoerprogramma folslein lykweardich oan 'e âlde ax88796b-stjoerprogramma, skreaun yn C, en kin brûkt wurde mei X-Surf 100-netwurkkaarten dy't foarsjoen binne fan 'e AX88796B-chip. Foar de LoongArch-arsjitektuer wurdt de mooglikheid levere om modules yn Rust te skriuwen. Der is in oergong makke nei it gebrûk fan 'e Rust 1.74.1-release.
    • In BPF-tokenmeganisme is tafoege wêrmei jo de ferwurking fan bepaalde BPF-mooglikheden selektyf delegearje kinne, lykas it laden fan in BPF-programma of it meitsjen fan in BPF-kaart, oan unprivilegearre prosessen yn brûkersromte, wêrfan de jildigens wurdt befêstige troch in spesjale token.
    • De funksjonaliteit fan 'e BPF-programmaverifier is útwreide.
    • It perf-hulpprogramma hat stipe tafoege foar gegevensprofilearring, wêrtroch jo it lêzen en skriuwen nei gegevensstruktueren kinne folgje, bygelyks om de meast aktyf wizige fjilden yn 'e struktueren te identifisearjen. Op systemen mei processors dy't it sammeljen fan ynformaasje oer ûnthâldoperaasjes stypje (Intel, AMD, ARM), moatte jo it kommando "perf mem record" brûke om statistyk te sammeljen, en "perf annotate -data-type" om in rapport te sjen oer tagong ta gegevens struktueren.
    • De prestaasjes fan systeemopropferwurking op 'e s390 (IBM Z) arsjitektuer waard optimalisearre, wat yn tests late ta in fersnelling fan systeemopropyngong mei sawat 11%.
    • De mooglikheid om de grutte fan spoarbuffers te feroarjen dy't brûkt wurde om ynformaasje te bufferen oer spoareveneminten dy't nei brûkersromte oerbrocht binne, is levere.
    • It earder ferâldere SLAB-ûnthâldallokaasjemeganisme is fuortsmiten, ferfanging wêrfan de kernel no allinich SLUB brûkt. De oanhelle redenen binne ûnderhâldsproblemen, problemen yn 'e koade, en duplikaasje fan funksjonaliteit mei de mear avansearre SLUB-allokator.
    • By it bouwen fan de kearn is de flagge "-Wmissing-prototypes" ynskeakele, wat warskôgings genereart foar oproppen nei globale funksjes dy't gjin prototype-definysje hawwe.
    • Foar de RISC-V-arsjitektuer op systemen dy't de SUSP SBI-útwreiding stypje, is stipe foar it yngean fan standby-modus mei steatbesparring yn RAM ymplementearre. Foarsjoen fan de mooglikheid om te brûken de riscv_hwprobe () systeem oprop te krijen ynformaasje oer stipe tafoegings oan de RISC-V ynstruksje set arsjitektuer.
  • Virtualisaasje en feiligens
    • Nije systeemopropen tafoege lsm_list_modules(), lsm_get_self_attr() en lsm_set_self_attr() om laden LSM-modules te listjen (Linux Feiligensmodules) en it krijen/ynstellen fan LSM-moduleattributen. In nije lsm_ctx-struktuer is tafoege foar kommunikaasje yn 'e LSM-kontekst tusken brûkersromte en de kernel.
    • It AppArmor-subsysteem is oerskeakele op it brûken fan it SHA-256-algoritme foar ferifikaasje fan regels, ynstee fan SHA-1-hashes.
    • De ymplemintaasje fan de strlcpy() funksje, dy't yn 'e simmer yn' e Glibc 3.38 C-bibleteek opnommen is, is út 'e kearn fuortsmiten. Strlcpy is in alternatyf foar de strncpy () funksje, dy't befettet buffer oerlêst beskerming en stelt altyd de slepende null byte.
    • Yn de hypervisor KVM Stipe is tafoege foar it subsysteem guest_memfd (gast-first memory), dat ûnthâldbehearfunksjes leveret dy't funksjes en optimalisaasjes mooglik meitsje dy't net te berikken binne mei it algemiene ûnthâldbehearsubsysteem. Bygelyks, guest_memfd makket de tawizing en mapping mooglik fan ûnthâld dat net tagonklik is foar it gastsysteem, dat brûkt wurde kin foar fertroulike kompjûtergebrûk.
    • Foar gastsystemen dy't de KVM-hypervisor útfiere, is stipe opnommen foar de LAM-modus (Linear Address Masking) dy't yn Intel-processors oanbean wurdt, wêrtroch in diel fan 'e bits fan 64-bit-oanwizers (fan 57 oant 62 bits) kinne wurde brûkt om metadata te bewarjen dy't net relatearre binne oan adressen.
    • De KVM-hypervisor foar systemen basearre op de ARM64-arsjitektuer hat stipe tafoege foar 52-bit (LPA2) fysike adressen. Foar systemen mei x86-arsjitektuer is it mooglik om te bouwen sûnder Hyper-V-hypercalls te emulearjen, wêrtroch it ferminderjen fan de grutte fan 'e kearn mooglik is.
    • De iaa (IAA Compression Accelerator)-bestjoerder is tafoege om de wurking fan gegevenskompresje en dekompresje te rapperjen mei de DEFLATE-metoade, mei de mooglikheden fan 'e Intel Analytics Accelerator (IAA) kryptografyske accelerators.
    • Oan 'e hostkant is stipe foar it Intel TDX (Trusted Domain Extensions) meganisme ymplementearre, wêrtroch feilige gastomjouwings kinne wurde makke dy't gebrûk meitsje fan ûnthâldfersifering by it brûken fan 'e KVM-hypervisor. firtuele masines.
    • Yn it SELinux De "init" SID is tafoege om jo prosessen te identifisearjen dy't lansearre binne by de earste opstartfaze dy't lansearre binne foardat SE-belied tapast waard.LinuxDe /sys/fs/selinux-ynterface foar SE-behear is ferbettere.Linux.
  • Netwurk subsysteem
    • In reorganisaasje op leech nivo fan 'e ûnderlizzende netwurkgegevensstruktueren waard útfierd om caching-effisjinsje te ferbetterjen. Earder waarden fjilden yn 'e netwurkstackstruktueren sokken, netdev, netns en mibs regele as se waarden tafoege, wat it gebrûk fan' e prosessor-cache beheine. De revyzje fan 'e pleatsing fan fariabelen yn struktueren late ta in merkbere ferheging fan TCP-snelheid, troch it minimalisearjen fan it brûken fan cache-rigels yn' e gegevensferfierstadium en it optimalisearjen fan tagong ta fariabelen. Yn gefallen fan ferwurkjen fan meardere parallelle TCP-ferbiningen kin de fersnelling 40% berikke.
    • It bpfilter-subsysteem, dat BPF brûkt om pakketten te filterjen, is fuortsmiten. Bpfilter is ferstjoerd sûnt release 4.18, mar is nea ûntwikkele ta in nivo geskikt foar wiidferspraat gebrûk. Yn 'e ôfrûne jierren is de bpfilterkoade net ûntwikkele yn' e kearn, en ûntwikkeling is troch Facebook yn in hotelrepository trochgien.
  • Wetter - Agrarwetter
    • It pakket omfettet in nije drm-bestjoerder (Direct Rendering Manager) Xe foar GPU's basearre op de Intel Xe-arsjitektuer, dy't wurdt brûkt yn Intel Arc-famyljefideokaarten en yntegreare grafiken, begjinnend mei Tiger Lake-processors. De Xe-bestjoerder is gepositioneerd as basis foar it meitsjen fan nije chips wurkje, sûnder te wêzen bûn oan 'e koade om âldere platfoarms te stypjen. De bestjoerder is boud mei in nije arsjitektuer dy't grutter gebrûk makket fan besteande DRM-subsysteemkomponinten, lykas generike i915-bestjoerderkomponinten dy't net bûn binne oan spesifike GPU's, lykas skermynteraksjekoade, ûnthâldmodel en útfiering fan execbuf. Yn Mesa wurdt it útfieren fan OpenGL en Vulkan boppe op 'e Xe-bestjoerder ymplementearre troch wizigingen makke oan' e besteande Mesa Iris- en ANV-bestjoerders.
    • Yn 'e i915-bestjoerder bliuwt it wurk om stipe foar Intel LunarLake (Xe 2)-chips te ymplementearjen. Ferbettere stipe foar Intel Meteor Lake-chips.
    • De Nouveau-bestjoerder is konfigureare om standert GSP-firmware-funksjes te brûken om te wurkjen mei NVIDIA GPU's basearre op Turing- en Ampere-mikroarsjitektueren, wêryn GPU-initialisearring en kontrôle operaasjes wurde útfierd troch in aparte GSP-mikrocontroller (GPU System Processor). As de ynstelling is ynskeakele, sil de bestjoerder wurkje troch tagong te krijen ta de firmware, ynstee fan direkte programmearring operaasjes om te ynteraksje mei de apparatuer.
    • De AMDGPU-bestjoerder stipet no ACPI WBRF en VPE DPM, feroaret de ferwurking fan PCIe-kanaalsnelheid, brûkt 64-bit sekwinsjenûmers yn 'e wachtrijen dy't brûkt wurde foar syngronisaasje, foeget stipe ta foar AMD-spesifike kleurbehearmeganismen, en lost it probleem op mei it wikseljen nei sliepen wize.
    • Inisjele ymplemintaasje tafoege fan stjoerprogramma foar Broadcom VideoCore 7.1 GPU brûkt yn Raspberry Pi 5-boerden.
    • Tafoege stjoerprogramma foar PowerVR 6 rige GPUs basearre op Rogue microarchitecture út Imagination Technologies.
    • Stipe tafoege foar Thunderbolt / USB4-controllers yntegreare yn chips basearre op Intel Lunar Lake-mikroarsjitektuer.
    • Bestjoerders tafoege foar kamera's brûkt yn SoC Starfive, GalaxyCore GC2145/GC0308, Chips & Media Wave en THine THP7312.
    • Stipe tafoege foar NSO (Nintendo Switch Online) game controllers - farianten fan âlde controllers fan SNES (Super Nintendo), Genesis en N64 (Nintendo 64), oanpast foar Nintendo Switch. Bestjoerder tafoege foar Adafruit Seesaw-gamepads. Stipe foar Lenovo Legion Go-controllers is tafoege oan de xpad-bestjoerder.
    • De dts-bestjoerder stipet no Powkiddy RK2023, Powkiddy X55 en Anbernic RG351V-gamingapparaten.
    • Stipe tafoege foar lûdsystemen brûkt yn NXP i.MX8m MICFIL, Qualcomm SM8250, AMD ACP5x, Intel Arrow Lake, SM8550, SM8650 en X1E80100 chips.
    • AMD hat wizigingen makke yn ferbân mei stipe foar de takomstige searje fan processors basearre op de nije Zen 5 mikroarsjitektuer.
    • Stipe tafoege foar ARM64 SoC: Qualcomm SM8650 (Snapdragon 8 Gen 3), Qualcomm X1E80100 (Snapdragon X Elite), Samsung Exynos Auto v920, Google GS101 (Tensor G1), MediaTek MT8188 en Unisoc UMSanggula9620 (TManggula7).
    • Stipe tafoege foar ARM-boards en apparaten: Huashan Pi, Microsoft Lumia, HTC One Mini 2, Motorola MotoG 4G, Huawei Honor 5X/GR5, Anbernic RG351V, Powkiddy RK2023, Powkiddy X55, ComXpress basearre op Marvell CN913x, Lenovo Ac Chromebook, As basearre op Mediatek MT8183, Toradex Verdin AM62, boards basearre op Allwinner H616 / H618.
    • Stipe foar ARM11 ARMv6K SMP-processors is stopset.

Tagelyk makke de Latynsk-Amerikaanske Free Software Foundation in ferzje fan 'e folslein fergese kernel 6.8 - Linux-libre 6.8-gnu, skjinmakke fan firmware- en stjoerprogramma-eleminten dy't net-frije komponinten of koadeseksjes befetsje mei beheinde omfang troch de fabrikant. Release 6.8 befettet bywurke blob-skjinmakkingskoade yn ferskate stjoerprogramma's en subsystemen. Stjoerprogramma's foar Intel qat_420xx, Imagination PowerVR, Intel Xe, Chips&Media Wave5, Intel VSC, Aquantia PHY, en Realtek rtw8922a binne skjinmakke. Stjoerprogrammaskjinmeitsjen foar atmel, hermes, orinoco_usb, libertas_cs, en zd1201 is stopset fanwegen har ferwidering út 'e kernel. Blobnammen yn devicetree (dts)-bestannen foar ARM- en Aarch64-arsjitektueren binne skjinmakke. Problemen mei it skjinmeitsjen fan i915-stjoerprogramma's binne oplost.

Boarne: opennet.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster