PÄc divu mÄneÅ”u izstrÄdes Linuss Torvalds iepazÄ«stinÄja ar Linux kodola 5.12 izlaiÅ”anu. Starp visievÄrojamÄkajÄm izmaiÅÄm: atbalsts zonÄtajÄm bloku ierÄ«cÄm Btrfs, iespÄja kartÄt failu sistÄmas lietotÄju ID, mantoto ARM arhitektÅ«ru tÄ«rÄ«Å”ana, ādedzÄ«gsā rakstÄ«Å”anas režīms NFS, LOOKUP_CACHED mehÄnisms failu ceļu noteikÅ”anai no keÅ”atmiÅas. , atbalsts atomu instrukcijÄm BPF, atkļūdoÅ”anas sistÄma KFENCE kļūdu identificÄÅ”anai, strÄdÄjot ar atmiÅu, NAPI aptaujas režīms, kas darbojas atseviÅ”Ä·Ä kodola pavedienÄ tÄ«kla skurstenÄ«, ACRN hipervizors, iespÄja uzdevumÄ lidojumÄ mainÄ«t preempt modeli. plÄnotÄjs un atbalsts LTO optimizÄcijai, veidojot Clang.
JaunajÄ versijÄ ir iekļauti 14170 (iepriekÅ”ÄjÄ laidienÄ 15480) labojumi no 1946 (1991) izstrÄdÄtÄjiem, ielÄpa izmÄrs ir 38 MB (izmaiÅas skÄra 12102 (12090) failus, tika pievienotas 538599 (868025) koda rindas, 333377 (261456) rindas tika dzÄstas). ApmÄram 43% no visÄm 5.12 ieviestajÄm izmaiÅÄm ir saistÄ«tas ar ierÄ«Äu draiveriem, aptuveni 17% izmaiÅu ir saistÄ«tas ar aparatÅ«ras arhitektÅ«rÄm raksturÄ«gÄ koda atjauninÄÅ”anu, 12% ir saistÄ«tas ar tÄ«kla steku, 5% ir saistÄ«tas ar failu sistÄmÄm un 4% ir saistÄ«ti ar iekÅ”ÄjÄm kodola apakÅ”sistÄmÄm.
Galvenie jauninÄjumi:
- Diska apakÅ”sistÄma, I/O un failu sistÄmas
- Ir ieviesta iespÄja kartÄt uzstÄdÄ«to failu sistÄmu lietotÄju ID (jÅ«s varat kartÄt viena lietotÄja failus uzstÄdÄ«tajÄ sveÅ”ajÄ nodalÄ«jumÄ ar citu lietotÄju paÅ”reizÄjÄ sistÄmÄ). KartÄÅ”ana tiek atbalstÄ«ta FAT, ext4 un XFS failu sistÄmÄm. PiedÄvÄtÄ funkcionalitÄte atvieglo failu koplietoÅ”anu starp dažÄdiem lietotÄjiem un dažÄdos datoros, tostarp kartÄÅ”ana tiks izmantota systemd-homed portatÄ«vo mÄjas direktoriju mehÄnismÄ, ļaujot lietotÄjiem pÄrvietot savus mÄjas direktorijus uz ÄrÄjiem datu nesÄjiem un izmantot tos dažÄdos datoros, kartÄjot lietotÄju ID, kas neatbilst. VÄl viena noderÄ«ga lietojumprogramma ir koplietotas piekļuves nodroÅ”inÄÅ”ana failiem no ÄrÄjÄ resursdatora, faktiski nemainot datus par failu Ä«paÅ”niekiem failu sistÄmÄ.
- KodolÄ ir pieÅemti ielÄpi LOOKUP_CACHED, kas ļauj operÄcijÄm noteikt faila ceļu no lietotÄja vietas bez bloÄ·ÄÅ”anas, tikai pamatojoties uz keÅ”atmiÅÄ pieejamajiem datiem. LOOKUP_CACHED režīms tiek aktivizÄts openat2() izsaukumÄ, nododot karogu RESOLVE_CACHED, kurÄ dati tiek apkalpoti tikai no keÅ”atmiÅas, un, ja ceļa noteikÅ”anai nepiecieÅ”ama piekļuve diskam, tiek atgriezta kļūda EAGAIN.
- Btrfs failu sistÄma ir pievienojusi sÄkotnÄjo atbalstu zonÄtajÄm bloku ierÄ«cÄm (ierÄ«ces cietajos magnÄtiskajos diskos vai NVMe SSD, kuru uzglabÄÅ”anas vieta ir sadalÄ«ta zonÄs, kas veido bloku vai sektoru grupas, kurÄm ir atļauta tikai secÄ«ga datu pievienoÅ”ana, visas bloku grupas atjauninÄÅ”ana). Tikai lasÄ«Å”anas režīmÄ tiek Ä«stenots atbalsts blokiem ar metadatiem un datiem, kas ir mazÄki par lapu (apakÅ”lapu).
- F2FS failu sistÄmÄ ir pievienota iespÄja izvÄlÄties algoritmu un saspieÅ”anas lÄ«meni. Pievienots LZ4 algoritma augsta lÄ«meÅa saspieÅ”anas atbalsts. Ieviesta checkpoint_merge montÄžas opcija.
- Ir ieviesta jauna ioctl komanda FS_IOC_READ_VERITY_METADATA, lai nolasÄ«tu metadatus no failiem, kas aizsargÄti ar fs-verity.
- NFS klients ievieÅ” āeagerā rakstÄ«Å”anas režīmu (writes=eager), kad tas ir iespÄjots, ierakstÄ«Å”anas darbÄ«bas failÄ tiek nekavÄjoties pÄrsÅ«tÄ«tas uz serveri, apejot lapas keÅ”atmiÅu. Å is režīms ļauj samazinÄt atmiÅas patÄriÅu, nodroÅ”ina tÅ«lÄ«tÄju informÄcijas saÅemÅ”anu par brÄ«vas vietas beigÄm failu sistÄmÄ un dažÄs situÄcijÄs ļauj sasniegt lielÄku veiktspÄju.
- CIFS (SMB) ir pievienotas jaunas stiprinÄjuma opcijas: acregmax, lai kontrolÄtu failu keÅ”atmiÅu, un acdirmax, lai kontrolÄtu direktoriju metadatu saglabÄÅ”anu.
- SistÄmÄ XFS ir iespÄjots vairÄku pavedienu kvotu pÄrbaudes režīms, paÄtrinÄta fsync izpilde un sagatavots growfs kods, lai Ä«stenotu failu sistÄmas lieluma samazinÄÅ”anas funkciju.
- AtmiÅas un sistÄmas pakalpojumi
- Ir pievienota DTMP (Dynamic Thermal Power Management) apakÅ”sistÄma, kas ļauj dinamiski regulÄt dažÄdu ierÄ«Äu enerÄ£ijas patÄriÅu, pamatojoties uz iestatÄ«tajiem vispÄrÄ«gajiem temperatÅ«ras ierobežojumiem.
- Ir ieviesta iespÄja izveidot kodolu, izmantojot Clang kompilatoru, iekļaujot optimizÄcijas savienoÅ”anas posmÄ (LTO, Link Time Optimization). LTO optimizÄcijas atŔķiras, Åemot vÄrÄ visu veidoÅ”anas procesÄ iesaistÄ«to failu stÄvokli, savukÄrt tradicionÄlie optimizÄcijas režīmi optimizÄ katru failu atseviŔķi un neÅem vÄrÄ citos failos definÄtos funkciju izsaukÅ”anas nosacÄ«jumus. PiemÄram, ar LTO ir iespÄjama funkciju iekļauta izvietoÅ”ana no citiem failiem, neizmantotais kods netiek iekļauts izpildÄmajÄ failÄ, tipa pÄrbaude un vispÄrÄjÄ optimizÄcija tiek veikta projekta lÄ«menÄ« kopumÄ. LTO atbalsts paÅ”laik ir ierobežots lÄ«dz x86 un ARM64 arhitektÅ«rÄm.
- Uzdevumu plÄnotÄjÄ sÄknÄÅ”anas stadijÄ (preempt=none/voluntary/full) vai strÄdÄjot ar debugfs (/debug/sched_debug) ir iespÄjams atlasÄ«t priekÅ”izmaksas režīmus (PREMPT), ja, veidojot kodolu, tika norÄdÄ«ts iestatÄ«jums PREEMPT_DYNAMIC. IepriekÅ” ekstrÅ«zijas režīmu varÄja iestatÄ«t tikai montÄžas parametru lÄ«menÄ«. IzmaiÅas ļauj izplatÄ«tÄjiem nosÅ«tÄ«t kodolus ar iespÄjotu PREEMPT režīmu, kas nodroÅ”ina minimÄlu latentumu galddatoriem par nelielu caurlaides sodu, un, ja nepiecieÅ”ams, atgriežas uz PREEMPT_VOLUNTARY (starprežīms galddatoriem) vai PREEMPT_NONE (nodroÅ”ina maksimÄlo caurlaidspÄju serveriem). .
- BPF apakÅ”sistÄmai ir pievienots atbalsts atomu operÄcijÄm BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG un BPF_CMPXCHG.
- BPF programmÄm ir dota iespÄja piekļūt steka datiem, izmantojot norÄdes ar mainÄ«gÄm nobÄ«dÄm. PiemÄram, ja iepriekÅ” varÄjÄt izmantot tikai nemainÄ«gu elementu indeksu, lai piekļūtu masÄ«vam stekÄ, tagad varat izmantot mainÄ«gu. Piekļuves kontroli tikai esoÅ”ajÄs robežÄs veic BPF verificÄtÄjs. Å Ä« funkcija ir pieejama tikai priviliÄ£ÄtÄm programmÄm, jo āāpastÄv bažas par spekulatÄ«vas koda izpildes ievainojamÄ«bu izmantoÅ”anu.
- Pievienota iespÄja pievienot BPF programmas tukÅ”iem trasÄÅ”anas punktiem, kas nav saistÄ«ti ar lietotÄja telpÄ redzamiem izsekoÅ”anas notikumiem (Å”Ädiem trasÄÅ”anas punktiem netiek garantÄta ABI saglabÄÅ”ana).
- Ir ieviests atbalsts CXL 2.0 (Compute Express Link) kopnei, kas tiek izmantota, lai organizÄtu Ätrgaitas mijiedarbÄ«bu starp CPU un atmiÅas ierÄ«cÄm (ļauj izmantot ÄrÄjÄs atmiÅas ierÄ«ces kÄ daļu no RAM vai pastÄvÄ«gÄs atmiÅas, it kÄ Å”Ä« atmiÅa tika savienoti, izmantojot standarta atmiÅas kontrolieri CPU).
- Pievienots nvmem draiveris, lai izgÅ«tu datus no programmaparatÅ«ras rezervÄtajÄm atmiÅas zonÄm, kas nav tieÅ”i pieejamas operÄtÄjsistÄmai Linux (piemÄram, EEPROM atmiÅa, kas ir fiziski pieejama tikai programmaparatÅ«rai, vai dati, kas ir pieejami tikai agrÄ«nÄ sÄknÄÅ”anas fÄzÄ).
- Ir noÅemts atbalsts profilÄÅ”anas sistÄmai āoprofilsā, kas netika plaÅ”i izmantota un aizstÄta ar modernÄku perf mehÄnismu.
- io_uring asinhronÄ I/O saskarne nodroÅ”ina integrÄciju ar cgrupÄm, kas kontrolÄ atmiÅas lietojumu.
- RISC-V arhitektÅ«ra atbalsta NUMA sistÄmas, kÄ arÄ« kprobes un uprobes mehÄnismus.
- Pievienota iespÄja izmantot sistÄmas izsaukumu kcmp() neatkarÄ«gi no procesa stÄvokļa momentuzÅÄmumu funkcionalitÄtes (pÄrbaudes punkts/atjaunoÅ”ana).
- Makro EXPORT_UNUSED_SYMBOL() un EXPORT_SYMBOL_GPL_FUTURE(), kas praksÄ nav izmantoti daudzus gadus, ir noÅemti.
- VirtualizÄcija un droŔība
- Pievienots KFence (Kernel Electric Fence) aizsardzÄ«bas mehÄnisms, kas fiksÄ kļūdas, strÄdÄjot ar atmiÅu, piemÄram, bufera pÄrtÄriÅu un piekļuvi pÄc atmiÅas atbrÄ«voÅ”anas. AtŔķirÄ«bÄ no KASAN atkļūdoÅ”anas mehÄnisma, KFence apakÅ”sistÄmai ir raksturÄ«gs liels darbÄ«bas Ätrums un zemas pieskaitÄmÄs izmaksas, kas ļauj noÄ·ert atmiÅas kļūdas, kas parÄdÄs tikai darba sistÄmÄs vai ilgstoÅ”as āādarbÄ«bas laikÄ.
- Pievienots atbalsts ACRN hipervizoram, kas rakstÄ«ts, Åemot vÄrÄ gatavÄ«bu reÄllaika uzdevumiem un piemÄrotÄ«bu lietoÅ”anai kritiskÄs sistÄmÄs. ACRN nodroÅ”ina minimÄlas pieskaitÄmÄs izmaksas, garantÄ zemu latentumu un adekvÄtu atsaucÄ«bu, mijiedarbojoties ar aprÄ«kojumu. Atbalsta CPU resursu, I/O, tÄ«kla apakÅ”sistÄmas, grafikas un skaÅas operÄciju virtualizÄciju. ACRN var izmantot, lai darbinÄtu vairÄkas izolÄtas virtuÄlÄs maŔīnas elektroniskÄs vadÄ«bas blokos, instrumentu paneļos, automobiļu informÄcijas sistÄmÄs, patÄrÄtÄju IoT ierÄ«cÄs un citÄs iegultÄs tehnoloÄ£ijÄs. ACRN atbalsta divu veidu viesu sistÄmas ā priviliÄ£ÄtÄs pakalpojumu virtuÄlÄs maŔīnas, kuras izmanto, lai pÄrvaldÄ«tu sistÄmas resursus (CPU, atmiÅu, I/O utt.), un pielÄgotas lietotÄja virtuÄlÄs maŔīnas, kurÄs var palaist Linux, Android un Windows izplatÄ«Å”anu.
- ApakÅ”sistÄmÄ IMA (Integrity Measurement Architecture), kas uztur jaukÅ”anas datu bÄzi failu un saistÄ«to metadatu integritÄtes pÄrbaudei, tagad kļūst iespÄjams pÄrbaudÄ«t paÅ”a kodola datu integritÄti, piemÄram, lai izsekotu SELinux noteikumu izmaiÅÄm. .
- KVM hipervizoram ir pievienota iespÄja pÄrtvert Xen hiperzvanus un pÄrsÅ«tÄ«t tos uz emulatoru, kas darbojas lietotÄja telpÄ.
- Pievienota iespÄja izmantot Linux kÄ Hyper-V hipervizora saknes vidi. Saknes videi ir tieÅ”a piekļuve aparatÅ«rai, un tÄ tiek izmantota viesu sistÄmu palaiÅ”anai (analogs Dom0 Xen). LÄ«dz Å”im Hyper-V (Microsoft Hypervisor) atbalstÄ«ja Linux tikai viesu vidÄ, bet pats hipervizors tika vadÄ«ts no Windows bÄzes vides.
- Pievienots atbalsts iekļautajai eMMC karÅ”u Å”ifrÄÅ”anai, ļaujot izmantot diskdziÅa kontrollerÄ« iebÅ«vÄtus Å”ifrÄÅ”anas mehÄnismus, kas pÄrredzami Å”ifrÄ un atÅ”ifrÄ I/O.
- No programmas ir noÅemts atbalsts RIPE-MD 128/256/320 un Tiger 128/160/192 jaucÄjkodiem, kas netiek izmantoti kodolÄ, kÄ arÄ« Salsa20 straumes Å”ifrs, kas tika aizstÄts ar ChaCha20 algoritmu. kriptovalÅ«tu apakÅ”sistÄma. Blake2 algoritms ir atjauninÄts, lai ieviestu blake2s.
- TÄ«kla apakÅ”sistÄma
- Pievienota iespÄja pÄrvietot NAPI aptauju apdarinÄtÄju tÄ«kla ierÄ«cÄm uz atseviŔķu kodola pavedienu, kas ļauj uzlabot veiktspÄju dažiem darba slodzes veidiem. IepriekÅ” aptauja tika veikta softirq kontekstÄ, un uzdevumu plÄnotÄjs to neaptvÄra, kas apgrÅ«tinÄja precÄ«zas optimizÄcijas veikÅ”anu, lai sasniegtu maksimÄlu veiktspÄju. Izpilde atseviÅ”Ä·Ä kodola pavedienÄ Ä¼auj novÄrot aptaujas apstrÄdÄtÄju no lietotÄja vietas, pievienot to atseviŔķiem CPU kodoliem un Åemt vÄrÄ, plÄnojot uzdevumu pÄrslÄgÅ”anu. Lai iespÄjotu jauno režīmu sistÄmÄ sysf, tiek piedÄvÄts parametrs /sys/class/net//threaded.
- IntegrÄcija MPTCP (MultiPath TCP) kodolÄ, TCP protokola paplaÅ”inÄjums TCP savienojuma darbÄ«bas organizÄÅ”anai ar pakeÅ”u piegÄdi vienlaicÄ«gi pa vairÄkiem marÅ”rutiem caur dažÄdÄm tÄ«kla saskarnÄm, kas saistÄ«tas ar dažÄdÄm IP adresÄm. JaunajÄ laidienÄ ir pievienota iespÄja pieŔķirt prioritÄti noteiktiem pavedieniem, kas ļauj, piemÄram, organizÄt rezerves pavedienu darbu, kas ieslÄdzas tikai tad, ja rodas problÄmas ar primÄro pavedienu.
- IGMPv3 pievieno atbalstu EHT (Explicit Host Tracking) mehÄnismam.
- Netfilter pakeÅ”u filtrÄÅ”anas programma nodroÅ”ina iespÄju iegÅ«t Ä«paÅ”umÄ noteiktas tabulas, lai iegÅ«tu ekskluzÄ«vu kontroli (piemÄram, fona ugunsmÅ«ra process var pÄrÅemt Ä«paÅ”umtiesÄ«bas uz noteiktÄm tabulÄm, neļaujot nevienam citam tÄs iejaukties).
- ŠŠ±Š¾ŃŃŠ“Š¾Š²Š°Š½ŠøŠµ
- IztÄ«rÄ«jÄm novecojuÅ”as un neapkoptas ARM platformas. Kods platformÄm efm32, picoxcell, prima2, tango, u300, zx un c6x, kÄ arÄ« ar tiem saistÄ«tajiem draiveriem ir noÅemts.
- Amdgpu draiveris nodroÅ”ina iespÄju overclock (OverDrive) kartes, kuru pamatÄ ir Sienna Cichlid GPU (Navi 22, Radeon RX 6xxx). Pievienots atbalsts FP16 pikseļu formÄtam DCE (displeja kontrollera dzinÄjam) no 8. lÄ«dz 11. paaudzei. GPU Navy Flounder (Navi 21) un APU Van Gogh ir ieviesta iespÄja atiestatÄ«t GPU.
- Intel grafisko karÅ”u i915 draiveris ievieÅ” parametru i915.mitigations, lai atspÄjotu izolÄcijas un aizsardzÄ«bas mehÄnismus, lai uzlabotu veiktspÄju. MikroshÄmÄm, kas sÄkas no Tiger Lake, ir iekļauts atbalsts VRR (Variable Rate Refresh) mehÄnismam, kas ļauj adaptÄ«vi mainÄ«t monitora atsvaidzes intensitÄti, lai nodroÅ”inÄtu vienmÄrÄ«gumu un bez spraugÄm spÄļu laikÄ. Lai uzlabotu krÄsu precizitÄti, ir iekļauts Intel Clear Color tehnoloÄ£ijas atbalsts. Pievienots DP-HDMI 2.1 atbalsts. Ir ieviesta iespÄja kontrolÄt eDP paneļu fona apgaismojumu. Gen9 GPU ar LSPCON (lÄ«meÅa maiÅas un protokola pÄrveidotÄja) atbalstu ir iespÄjots HDR atbalsts.
- Nouveau draiveris pievieno sÄkotnÄjo atbalstu NVIDIA GPU, pamatojoties uz GA100 (Ampere) arhitektÅ«ru.
- Msm draiveris pievieno atbalstu Adreno 508, 509 un 512 GPU, kas tiek izmantoti SDM (Snapdragon) 630, 636 un 660 mikroshÄmÄs.
- Pievienots atbalsts Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s un Pioneer DJM-750 skaÅas kartÄm. Pievienots atbalsts Intel Alder Lake PCH-P audio apakÅ”sistÄmai. Audio savienotÄja pievienoÅ”anas un atvienoÅ”anas programmatÅ«ras simulÄcijas atbalsts ir ieviests atkļūdoÅ”anas apstrÄdÄtÄjiem lietotÄja telpÄ.
- Pievienots atbalsts Nintendo 64 spÄļu konsolÄm, kas ražotas no 1996. lÄ«dz 2003. gadam (iepriekÅ”Äjie mÄÄ£inÄjumi portÄt Linux uz Nintendo 64 netika pabeigti un tika klasificÄti kÄ Vaporware). MotivÄcija izveidot jaunu portu novecojuÅ”ai platformai, kas nav izlaista gandrÄ«z divdesmit gadus, ir vÄlme stimulÄt emulatoru attÄ«stÄ«bu un vienkÄrÅ”ot spÄļu pÄrneÅ”anu.
- Pievienots draiveris Sony PlayStation 5 DualSense spÄļu kontrollerim.
- Pievienots atbalsts ARM platÄm, ierÄ«cÄm un platformÄm: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4B.
- Pievienots Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070 viedtÄlruÅu atbalsts.
- Pievienots bcm-vk draiveris Broadcom VK akseleratora platÄm (piemÄram, Valkyrie un Viper PCIe platÄm), ko var izmantot audio, video un attÄlu apstrÄdes operÄciju, kÄ arÄ« ar Å”ifrÄÅ”anu saistÄ«tÄs operÄciju izkrauÅ”anai atseviÅ”Ä·Ä ierÄ«cÄ.
- Pievienots Lenovo IdeaPad platformas atbalsts ar iespÄju kontrolÄt pastÄvÄ«gu uzlÄdi un tastatÅ«ras fona apgaismojumu. Tiek nodroÅ”inÄts arÄ« atbalsts ThinkPad platformas ACPI profilam ar iespÄju kontrolÄt enerÄ£ijas patÄriÅa režīmus. Pievienots Lenovo ThinkPad X1 Tablet Gen 2 HID apakÅ”sistÄmas draiveris.
- Pievienots ov5647 draiveris ar Raspberry Pi kameras moduļa atbalstu.
- Pievienots atbalsts RISC-V SoC FU740 un HiFive Unleashed plates. Ir pievienots arÄ« jauns draiveris Kendryte K210 mikroshÄmai.
Avots: opennet.ru