Linux 5.12 kodola laidiens

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

Pievieno komentāru