Linux kernvrystelling 6.7

Na twee maande se ontwikkeling het Linus Torvalds die vrystelling van die Linux-kern 6.7 aangebied. Van die mees noemenswaardige veranderinge: integrasie van die Bcachefs-lêerstelsel, staking van ondersteuning vir die Itanium-argitektuur, die vermoë van Nouvea om met GSP-R-firmware te werk, ondersteuning vir TLS-enkripsie in NVMe-TCP, die vermoë om uitsonderings in BPF te gebruik, ondersteuning vir futex in io_uring, optimalisering van fq (Fair Queuing) skeduleerderprestasie ), ondersteuning vir die TCP-AO-uitbreiding (TCP Authentication Option) en die vermoë om netwerkverbindings in die Landlock-sekuriteitsmeganisme te beperk, bygevoeg toegangsbeheer tot gebruikernaamruimte en io_uring via AppArmor.

Die nuwe weergawe bevat 18405 2066 regstellings van 72 13467 ontwikkelaars, die pleistergrootte is 906147 MB (die veranderinge het 341048 15291 lêers geraak, 2058 39 reëls kode is bygevoeg, 45 6.7 reëls is uitgevee). Die laaste weergawe het 14 regstellings van 13 ontwikkelaars gehad, die pleistergrootte was 5 MB. Ongeveer 3% van alle veranderinge wat in XNUMX aangebring is, hou verband met toestelbestuurders, ongeveer XNUMX% van veranderinge hou verband met die opdatering van kode spesifiek vir hardeware-argitekture, XNUMX% hou verband met die netwerkstapel, XNUMX% hou verband met lêerstelsels en XNUMX% hou verband met interne kernsubstelsels.

Sleutel innovasies in kern 6.7:

  • Skyfsubstelsel, I/O en lêerstelsels
    • Die kern neem die Bcachefs-lêerstelselkode aan, wat poog om die werkverrigting, betroubaarheid en skaalbaarheid van XFS te bereik, gekombineer met elemente van die gevorderde funksionaliteit wat in Btrfs en ZFS gevind word. Byvoorbeeld, Bcachefs ondersteun kenmerke soos die insluiting van veelvuldige toestelle in 'n partisie, multi-laag skyf uitlegte (die onderste laag met gereeld gebruikte data gebaseer op vinnige SSD's, en die boonste laag met minder gebruikte data vanaf hardeskywe), replikasie (RAID) 1/10), kasgeheue, deursigtige data-kompressie (LZ4-, gzip- en ZSTD-modusse), toestandskywe (kiekies), integriteitsverifikasie met behulp van kontrolesomme, die vermoë om Reed-Solomon-foutkorreksiekodes te stoor (RAID 5/6), die stoor van inligting in geïnkripteer vorm (ChaCha20 en Poly1305 word gebruik). Wat prestasie betref, is Bcachefs voor Btrfs en ander lêerstelsels gebaseer op die Copy-on-Write-meganisme, en demonstreer werkspoed naby Ext4 en XFS.
    • Die Btrfs-lêerstelsel stel 'n vereenvoudigde kwota-modus bekend wat jou toelaat om hoër werkverrigting te bereik deur omvangs slegs in die subpartisie waarin dit geskep is na te spoor, wat berekeninge aansienlik vereenvoudig en werkverrigting verbeter, maar jou nie toelaat om mate wat in verskeie gedeel word, in ag te neem. subpartisies.
    • Btrfs het 'n nuwe "streepboom"-datastruktuur bygevoeg, wat geskik is vir logiese omvang-kartering in situasies waar fisiese kartering nie ooreenkom op toestelle nie. Die struktuur word tans gebruik in implementering van RAID0 en RAID1 vir gesoneer blok toestelle. In die toekoms beplan hulle om hierdie struktuur in hoërvlak-RAID's te gebruik, wat 'n aantal probleme wat in die huidige implementering bestaan, sal oplos.
    • Die Ceph-lêerstelsel implementeer ondersteuning vir die kartering van gebruiker-ID's van gemonteerde lêerstelsels, wat gebruik word om die lêers van 'n spesifieke gebruiker op 'n gemonteerde vreemde partisie met 'n ander gebruiker op die huidige stelsel te pas.
    • Het die vermoë bygevoeg om uid en gid op mount by efivarfs te spesifiseer om nie-wortelprosesse toe te laat om UEFI-veranderlikes te verander.
    • Het ioctl-oproepe by exFAT bygevoeg vir die lees en verandering van FS-kenmerke. Bygevoeg hantering van nul-grootte dopgehou.
    • F2FS implementeer die vermoë om 16K blokke te gebruik.
    • Die outofas-outomonteermeganisme is oorgeskakel om die nuwe partisiemonteer-API te gebruik.
    • OverlayFS bied "lowerdir+" en "datadir+" bergopsies. Bygevoeg ondersteuning vir geneste montering van OverlayFS met xattrs.
    • XFS het die SVE-lading in die intydse bloktoewysingskode geoptimaliseer. Die vermoë om gelyktydig lees- en FICLONE-bewerkings uit te voer word verskaf.
    • Die EXT2-kode is omgeskakel om bladsyfolio's te gebruik.
  • Geheue en stelseldienste
    • Ondersteuning vir die ia64-argitektuur wat in Intel Itanium-verwerkers gebruik word, wat in 2021 heeltemal gestaak is, is gestaak. Itanium-verwerkers is in 2001 deur Intel bekendgestel, maar die ia64-argitektuur kon nie met AMD64 meeding nie, hoofsaaklik as gevolg van die hoër werkverrigting van AMD64 en die gladder oorgang van 32-bis x86-verwerkers. As gevolg hiervan het Intel se belange ten gunste van x86-64-verwerkers verskuif, en Itanium se lot het HP Integrity-bedieners gebly, waarvoor bestellings drie jaar gelede gestaak is. Kode vir ia64-ondersteuning is hoofsaaklik van die kern verwyder weens die langtermyn-tekort aan ondersteuning vir hierdie platform, terwyl Linus Torvalds sy bereidwilligheid uitgespreek het om ia64-ondersteuning aan die kern terug te gee, maar slegs as daar 'n onderhouer is wat hoë gehalte kan demonstreer ondersteuning vir hierdie platform buite die hoofkern vir ten minste 'n jaar.
    • Het die "ia32_emulation" kernlyn-opdragparameter bygevoeg, wat jou toelaat om ondersteuning vir 32-bis-modus-emulasie te aktiveer of te deaktiveer in pitte wat gebou is vir die x86-64-argitektuur tydens die opstartstadium. Op die praktiese kant laat die nuwe opsie jou toe om die kern te bou met ondersteuning vir verenigbaarheid met 32-bis toepassings, maar deaktiveer hierdie modus by verstek om die aanvalsvektor op die kern te verminder, aangesien die verenigbaarheids-API minder getoets word as die hoofkern koppelvlakke.
    • Voortgesette migrasie van veranderinge vanaf die Rust-vir-Linux-tak wat verband hou met die gebruik van die Rust-taal as 'n tweede taal vir die ontwikkeling van drywers en kernmodules (Rust-ondersteuning is nie by verstek aktief nie, en lei nie tot die insluiting van Rust onder die vereiste samestellingafhanklikhede vir die kern). Die nuwe weergawe maak die oorgang na die gebruik van die Rust 1.73-vrystelling en bied 'n stel bindings om met werkswagte te werk.
    • Dit is moontlik om die binfmt_misc-meganisme te gebruik om ondersteuning by te voeg vir nuwe uitvoerbare lêerformate (byvoorbeeld om saamgestelde Java- of Python-toepassings uit te voer) binne afsonderlike onbevoorregte naamruimtes.
    • Die cgroup-beheerder cpuset, wat jou toelaat om die gebruik van SVE-kerns te beheer wanneer 'n taak uitgevoer word, bied 'n verdeling in plaaslike en afgeleë partisionering, wat verskil of die ouer-cgroup die korrekte wortelafdeling is of nie. Nuwe instellings "cpuset.cpus.exclusive" en "cpuset.cpus.excluisve.effective" is ook by cpuset gevoeg vir eksklusiewe SVE-binding.
    • Die BPF-substelsel implementeer ondersteuning vir uitsonderings, wat as 'n nooduitgang van 'n BPF-program verwerk word met die vermoë om stapelrame veilig af te wikkel. Boonop laat BPF-programme die gebruik van kptr-wysers in verband met die SVE toe.
    • Ondersteuning vir bedrywighede met futex is by die io_uring-substelsel gevoeg, en nuwe bedrywighede is geïmplementeer: IORING_OP_WAITID (asinchroniese weergawe van waitid), SOCKET_URING_OP_GETSOCKOPT (getsockoptand opsie), SOCKET_URING_OP_SETSOCKOPT (setsockopt_OPT-opsie) en REHOTIOAD lees daardie bewerking nie, daar is data of is nie volle buffer nie).
    • Bygevoeg implementering van liggewig enkelgekoppelde EIEU-toue wat slegs 'n spinlock vereis vir ontwagting in 'n proseskonteks en afsien van 'n spinlock vir atoomtoevoegings tot die tou in enige konteks.
    • Bygevoeg 'n ring buffer "objpool" met 'n skaalbare implementering van 'n hoë-prestasie tou vir die toekenning en terugkeer van voorwerpe.
    • Die aanvanklike deel van die veranderinge is bygevoeg om die nuwe futex2 API te implementeer, wat beter werkverrigting op NUMA-stelsels het, ander groottes as 32 bisse ondersteun en gebruik kan word in plaas van die gemultiplekseerde futex()-stelseloproep.
    • Vir ARM32- en S390x-argitekture is ondersteuning vir die huidige stel (cpuv4) BPF-instruksies bygevoeg.
    • Vir die RISC-V-argitektuur is dit moontlik om die Shadow-Call Stack-kontrolemodus te gebruik wat beskikbaar is in Clang 17, wat ontwerp is om te beskerm teen die oorskryf van die terugkeeradres van 'n funksie in die geval van 'n bufferoorloop op die stapel. Die kern van die beskerming is om die terugstuuradres in 'n aparte "skadu"-stapel te stoor nadat beheer na 'n funksie oorgedra is en hierdie adres herwin is voordat die funksie verlaat word.
    • 'n Nuwe slimgeheuebladsyskanderingmodus is bygevoeg by die meganisme om identiese geheuebladsye saam te voeg (KSM: Kernel Samepage Merging), wat onsuksesvol geskandeerde bladsye opspoor en die intensiteit van hul herskandering verminder. Om die nuwe modus te aktiveer, is die /sys/kernel/mm/ksm/smart_scan-instelling bygevoeg.
    • Het 'n nuwe ioctl-opdrag PAGEMAP_SCAN bygevoeg, wat, wanneer dit gebruik word met userfaultfd(), jou toelaat om die feite van skryf na 'n spesifieke geheuereeks te bepaal. Die nuwe kenmerk kan byvoorbeeld in die stelsel gebruik word om die toestand van CRIU-prosesse of in speletjie-teenbedrogstelsels te stoor en te herstel.
    • In die samestellingstelsel, as die Clang-samesteller beskikbaar is, is die samestelling van voorbeelde van die gebruik van die perf-substelsel, geskryf as BPF-programme, by verstek geaktiveer.
    • Die ou videobuf-laag, wat gebruik is om raambuffers in die media-substelsel te bestuur en meer as 10 jaar gelede deur 'n nuwe implementering van videobuf2 vervang is, is verwyder.
  • Virtualisering en sekuriteit
    • Die vermoë om data in blokke kleiner as die blokgrootte in die lêerstelsel te enkripteer, is by die fscrypt-substelsel gevoeg. Dit kan nodig wees om hardeware-enkripsiemeganismes te aktiveer wat slegs klein blokke ondersteun (byvoorbeeld, UV-beheerders wat slegs 'n 4096-blokgrootte ondersteun, kan met 'n lêerstelsel met 'n 16K-blokgrootte gebruik word).
    • Die "iommufd"-substelsel, wat jou toelaat om IOMMU (I/O Memory-Management Unit) geheuebladsytabelle deur lêerbeskrywers vanaf gebruikersruimte te bestuur, het die opsporing van data bygevoeg wat nog nie uit die kas (vuil) vir DMA gespoel is nie. bedrywighede, wat nodig is vir die bepaling van geheue met ongespoelde data tydens prosesmigrasie.
    • Ondersteuning vir die definisie van toegangsbeheerreëls vir TCP-sokke is by die Landlock-meganisme gevoeg, wat jou toelaat om die interaksie van 'n groep prosesse met die eksterne omgewing te beperk. Byvoorbeeld, jy kan 'n reël skep wat slegs toegang tot netwerkpoort 443 toelaat om HTTPS-verbindings te vestig.
    • Die AppArmor-substelsel het die vermoë bygevoeg om toegang tot die io_uring-meganisme te beheer en gebruikersnaamruimtes te skep, wat jou toelaat om selektief toegang tot hierdie vermoëns slegs vir sekere prosesse toe te laat.
    • Bygevoeg virtuele masjien attestasie API om die integriteit van die virtuele masjien selflaaiproses te verifieer.
    • LoongArch-stelsels ondersteun virtualisering met behulp van die KVM-hipervisor.
    • Wanneer die KVM-hypervisor op RISC-V-stelsels gebruik word, het ondersteuning vir die Smstateen-uitbreiding verskyn, wat die virtuele masjien blokkeer om toegang tot SVE-registers te kry wat nie eksplisiet deur die hipervisor ondersteun word nie. Het ook ondersteuning bygevoeg vir die gebruik van die Zicond-uitbreiding in gastestelsels, wat die gebruik van sekere voorwaardelike heelgetalbewerkings moontlik maak.
    • In x86-gebaseerde gasstelsels wat onder KVM loop, word tot 4096 virtuele SVE's toegelaat.
  • Netwerk substelsel
    • Die NVMe-TCP (NVMe over TCP)-bestuurder, wat jou toelaat om toegang tot NVMe-aandrywers oor die netwerk (NVM Express over Fabrics) te gebruik deur die TCP-protokol te gebruik, het ondersteuning bygevoeg vir die enkripteer van die data-oordragkanaal met behulp van TLS (met behulp van KTLS en 'n agtergrondproses in gebruikersruimte tlshd vir verbindingsonderhandeling).
    • Die werkverrigting van die fq (Fair Queuing) pakkieskeduleerder is geoptimaliseer, wat dit moontlik gemaak het om deurset met 5% onder swaar vragte te verhoog in die tcp_rr (TCP Request/Response) toets en met 13% met 'n onbeperkte vloei van UDP-pakkies.
    • TCP voeg 'n opsionele mikrosekonde-presisie-tydstempel (TCP TS)-vermoë (RFC 7323) by, wat meer akkurate latensieskatting en meer gevorderde opeenhopingsbeheermodules moontlik maak. Om dit te aktiveer, kan jy die opdrag "ip route add 10/8 ... features tcp_usec_ts" gebruik.
    • Die TCP-stapel het ondersteuning bygevoeg vir die TCP-AO-uitbreiding (TCP Authentication Option, RFC 5925), wat dit moontlik maak om TCP-opskrifte te verifieer met behulp van MAC-kodes (Message Authentication Code), met behulp van meer moderne algoritmes HMAC-SHA1 en CMAC-AES- 128 eerder beskikbare TCP-MD5 opsie gebaseer op die nalatenskap MD5 algoritme.
    • 'n Nuwe tipe virtuele netwerktoestelle "netkit" is bygevoeg, die data-oordraglogika waarin 'n BPF-program gebruik word.
    • KSMBD, 'n kernvlak-implementering van 'n SMB-bediener, het ondersteuning bygevoeg vir die oplossing van lêername wat surrogaatpare saamgestelde karakters bevat.
    • NFS het die implementering van drade met RPC-dienste verbeter. Bygevoeg ondersteuning vir skryfdelegering (vir NFSv4.1+). NFSD het ondersteuning bygevoeg vir die rpc_status netlink hanteerder. Verbeterde ondersteuning vir NFSv4.x-kliënte wanneer hulle na knfsd heruitvoer.
  • Оборудование
    • Aanvanklike ondersteuning vir GSP-RM-firmware is by die Nouveau-kernmodule gevoeg, wat in die NVIDIA RTX 20+ GPU gebruik word om inisialisering en GPU-beheerbewerkings na die kant van 'n aparte GSP-mikrobeheerder (GPU-stelselverwerker) te skuif. GSP-RM-ondersteuning laat die Nouveau-bestuurder toe om deur firmware-oproepe te werk, eerder as om hardeware-interaksies direk te programmeer, wat dit baie makliker maak om ondersteuning vir nuwe NVIDIA GPU's by te voeg deur voorafgeboude oproepe vir inisialisering en kragbestuur te gebruik.
    • Die AMDGPU-bestuurder ondersteun GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 en DML2. Verbeterde ondersteuning vir naatlose laai (geen flikkering wanneer videomodus verander word nie).
    • Die i915-bestuurder voeg ondersteuning by vir Intel Meteor Lake-skyfies en voeg 'n aanvanklike implementering van Intel LunarLake (Xe 2) by.
    • Bygevoeg ondersteuning vir asimmetriese transmissiekanale bygevoeg tot die USB4 v2 (120/40G) spesifikasie.
    • Bygevoeg ondersteuning vir ARM SoC: Qualcomm Snapdragon 720G (gebruik in Xiaomi-slimfone), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (gebruik in routers en NAS).
    • Bygevoeg ondersteuning vir die Fairphone 5-slimfoon en ARM-borde Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30.
    • Bygevoeg ondersteuning vir RISC-V-borde Milk-V Pioneer en Milk-V Duo.
    • Bygevoeg ondersteuning vir klankkoppelvlakke van HUAWEI-skootrekenaars wat met AMD-SVE's voorsien word. Bygevoeg ondersteuning vir bykomende luidsprekers geïnstalleer op Dell Oasis 13/14/16 skootrekenaars. Bygevoeg ondersteuning vir ingeboude luidsprekers ASUS K6500ZC. Bygevoeg ondersteuning vir die demp aanwyser op HP 255 G8 en G10 skootrekenaars. Bygevoeg ondersteuning vir acp6.3 klank drywers. Bygevoeg ondersteuning vir Focusrite Clarett+ 2Pre en 4Pre professionele opname koppelvlakke.

Terselfdertyd het die Latyns-Amerikaanse Vrye Sagteware-stigting 'n weergawe gevorm van die heeltemal gratis kern 6.7 - Linux-libre 6.7-gnu, skoongemaak van elemente van firmware en drywers wat nie-vrye komponente of kode-afdelings bevat, waarvan die omvang beperk is deur die vervaardiger. In vrystelling 6.7 is die blob-skoonmaakkode in verskeie drywers en substelsels opgedateer, byvoorbeeld in die amdgpu-, nouveau-, adreno-, mwifiex-, mt7988-, ath11k-, avs- en btqca-drywers. Die kode vir die skoonmaak van die localtalk- en rtl8192u-bestuurders is verwyder as gevolg van hul uitsluiting van die kern. Onnodige komponente verwyder om die xhci-pci-, rtl8xxxu- en rtw8822b-bestuurders skoon te maak, wat voorheen per ongeluk bygevoeg is. Blob-name in dts-lêers vir die Aarch64-argitektuur skoongemaak. Blobs verwyder in die nuwe drywers mt7925, tps6598x, aw87390 en aw88399.

Bron: opennet.ru

Voeg 'n opmerking