Linux 5.19 kodola laidiens

Pēc divu mēneÅ”u izstrādes Linuss Torvalds iepazÄ«stināja ar Linux kodola 5.19 izlaiÅ”anu. Starp ievērojamākajām izmaiņām: atbalsts LoongArch procesora arhitektÅ«rai, "BIG TCP" ielāpu integrācija, fscache režīms pēc pieprasÄ«juma, koda noņemÅ”ana, lai atbalstÄ«tu a.out formātu, iespēja izmantot ZSTD programmaparatÅ«ras saspieÅ”anai, saskarne atmiņas izņemÅ”anas pārvaldÄ«ba no lietotāja vietas, pseidogadÄ«juma skaitļu Ä£eneratora uzticamÄ«bas un veiktspējas palielināŔana, Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Peidžeru), Intel TDX (uzticamo domēnu paplaÅ”inājumu) un ARM atbalsts. MVU (Scalable Matrix Extension) paplaÅ”inājumi.

Paziņojumā Linus teica, ka, visticamāk, nākamā kodola laidiena numurs bÅ«s 6.0, jo 5.x filiāle ir uzkrājusi pietiekami daudz izlaidumu, lai mainÄ«tu versijas numura pirmo numuru. Numerācijas maiņa tiek veikta estētisku apsvērumu dēļ, un tā ir formāla darbÄ«ba, kas mazina diskomfortu, ko rada daudzu sēriju problēmu uzkrāŔanās.

Linuss arÄ« minēja, ka, lai izveidotu laidienu, viņŔ izmantoja Apple klēpjdatoru, kura pamatā ir ARM64 arhitektÅ«ra (Apple Silicon), ar Linux vidi, kuras pamatā ir Asahi Linux izplatÄ«Å”ana. Tā nav Linusa galvenā darbstacija, taču viņŔ izmantoja platformu, lai pārbaudÄ«tu tās piemērotÄ«bu darbam ar kodolu un nodroÅ”inātu kodola izlaidumus, ceļojot ar vieglu klēpjdatoru. IepriekÅ” pirms daudziem gadiem Linusam bija pieredze Apple aprÄ«kojuma izmantoÅ”anā izstrādei ā€“ viņŔ savulaik izmantoja datoru, kura pamatā ir ppc970 CPU, un Macbook Air klēpjdatoru.

Jaunajā versijā ir iekļauts 16401 2190 labojums no 16206 2127 izstrādātājiem (pēdējā laidienā bija 90 13847 labojumi no 1149456 349177 izstrādātājiem), ielāpa izmērs ir 39 MB (izmaiņas skāra 5.19 21 failus, tika pievienotas 11 4 3 koda rindas, dzēstas XNUMX, XNUMX rindiņas). Aptuveni XNUMX% no visām izmaiņām, kas ieviestas XNUMX versijā, ir saistÄ«tas ar ierīču draiveriem, aptuveni XNUMX% izmaiņu ir saistÄ«tas ar aparatÅ«ras arhitektÅ«rām raksturÄ«gā koda atjaunināŔanu, XNUMX% ir saistÄ«tas ar tÄ«kla steku, XNUMX% ir saistÄ«tas ar failu sistēmām un XNUMX% ir saistÄ«ti ar iekŔējām kodola apakÅ”sistēmām.

Galvenie jauninājumi kodolā 5.19:

  • Diska apakÅ”sistēma, I/O un failu sistēmas
    • EROFS (Enhanced Read-Only File System) failu sistēma, kas paredzēta lietoÅ”anai tikai lasāmos nodalÄ«jumos, ir pārveidota, lai izmantotu fscache apakÅ”sistēmu, kas nodroÅ”ina datu saglabāŔanu keÅ”atmiņā. Izmaiņas bÅ«tiski uzlaboja to sistēmu veiktspēju, kurās liels skaits konteineru tiek palaists no EROFS balstÄ«ta attēla.
    • Fscache apakÅ”sistēmai ir pievienots lasÄ«Å”anas režīms pēc pieprasÄ«juma, kas tiek izmantots EROFS optimizÄ“Å”anai. Jaunais režīms ļauj organizēt lasÄ«Å”anas keÅ”atmiņu no FS attēliem, kas atrodas lokālajā sistēmā. AtŔķirÄ«bā no sākotnēji pieejamā darbÄ«bas režīma, kas ir vērsts uz keÅ”atmiņu lokālajā failu sistēmā, kas tiek pārsÅ«tÄ«ti caur tÄ«kla failu sistēmām, režīms ā€œpēc pieprasÄ«jumaā€ deleģē datu izgÅ«Å”anas un ierakstÄ«Å”anas keÅ”atmiņā funkcijas atseviŔķai funkcijai. fona process, kas darbojas lietotāja telpā.
    • XFS nodroÅ”ina iespēju i-node saglabāt miljardiem paplaÅ”inātu atribÅ«tu. Viena faila maksimālais apjomu skaits ir palielināts no 4 miljardiem lÄ«dz 247. Ir ieviests režīms vairāku paplaÅ”ināto failu atribÅ«tu atomiskai atjaunināŔanai vienlaikus.
    • Btrfs failu sistēma ir optimizējusi darbu ar slēdzenēm, kas ļāva par aptuveni 7% palielināt veiktspēju, rakstot tieÅ”i nowait režīmā. DarbÄ«bu veiktspēja NOCOW režīmā (bez kopÄ“Å”anas un rakstÄ«Å”anas) tiek palielināta par aptuveni 3%. Lapas keÅ”atmiņas slodze, palaižot komandu ā€œsÅ«tÄ«tā€, ir samazināta. ApakÅ”lapu minimālais izmērs ir samazināts no 64K uz 4K (var izmantot apakÅ”lapas, kas ir mazākas par kodola lapām). Ir veikta pāreja no radix koka izmantoÅ”anas uz XArrays algoritmu.
    • NFS serverim ir pievienots režīms, lai pagarinātu klienta iestatÄ«tā bloÄ·Ä“Å”anas stāvokļa saglabāŔanu, kas pārtraucis atbildēt uz pieprasÄ«jumiem. Jaunais režīms ļauj aizkavēt slēdzenes notÄ«rÄ«Å”anu lÄ«dz pat dienai, ja vien cits klients nepieprasa konkurējoÅ”u slēdzeni. Normālā režīmā bloÄ·Ä“Å”ana tiek dzēsta 90 sekundes pēc tam, kad klients pārstāj reaģēt.
    • Notikumu izsekoÅ”anas apakÅ”sistēma fanotify FS ievieÅ” karogu FAN_MARK_EVICTABLE, ar kuru var atspējot mērÄ·a i-mezglu piesprauÅ”anu keÅ”atmiņā, piemēram, lai ignorētu apakÅ”nozares, nepiespraužot to daļas keÅ”atmiņā.
    • Failu sistēmas FAT32 draiveris ir pievienojis atbalstu informācijas iegÅ«Å”anai par faila izveides laiku, izmantojot statx sistēmas izsaukumu, ievieÅ”ot efektÄ«vāku un funkcionālāku stat(), kas atgriež paplaÅ”inātu informāciju par failu.
    • ExFAT draiverim ir veiktas ievērojamas optimizācijas, lai nodroÅ”inātu vienlaicÄ«gu sektoru grupas notÄ«rÄ«Å”anu, kad ir aktÄ«vs ā€œdirsyncā€ režīms, nevis secÄ«ga tÄ«rÄ«ba pa sektoriem. Samazinot bloku pieprasÄ«jumu skaitu pēc optimizācijas, liela skaita direktoriju izveides veiktspēja SD kartē palielinājās par vairāk nekā 73-85%, atkarÄ«bā no klastera lieluma.
    • Kodolā ir iekļauts pirmais koriģējoÅ”ais ntfs3 draivera atjauninājums. KopÅ” pagājuŔā gada oktobrÄ« ntfs3 tika iekļauts 5.15 kodolā, draiveris nav atjaunināts un saziņa ar izstrādātājiem ir zudusi, taču tagad izstrādātāji ir atsākuÅ”i izmaiņu publicÄ“Å”anu. Ierosinātie ielāpi novērsa kļūdas, kas izraisÄ«ja atmiņas noplÅ«des un avārijas, atrisināja problēmas ar xfstests izpildi, notÄ«rÄ«ja neizmantoto kodu un izlaboja drukas kļūdas.
    • OverlayFS ir ieviesta iespēja kartēt uzstādÄ«to failu sistēmu lietotāju ID, kas tiek izmantota, lai saskaņotu konkrēta lietotāja failus uzstādÄ«tajā sveÅ”ajā nodalÄ«jumā ar citu lietotāju paÅ”reizējā sistēmā.
  • Atmiņas un sistēmas pakalpojumi
    • Pievienots sākotnējais atbalsts LoongArch instrukciju kopas arhitektÅ«rai, ko izmanto Loongson 3 5000 procesoros, kas ievieÅ” jauno RISC ISA, lÄ«dzÄ«gi kā MIPS un RISC-V. LoongArch arhitektÅ«ra ir pieejama trÄ«s versijās: novājināta 32 bitu (LA32R), parastā 32 bitu (LA32S) un 64 bitu (LA64).
    • Noņemts kods, lai atbalstÄ«tu a.out izpildāmā faila formātu, kas tika novecojis 5.1. laidumā. A.out formāts Linux sistēmās jau sen ir novecojis, un mÅ«sdienu rÄ«ki noklusējuma Linux konfigurācijās neatbalsta a.out failu Ä£enerÄ“Å”anu. A.out failu ielādētāju var pilnÄ«bā ieviest lietotāja telpā.
    • Ir pārtraukts x86 specifisko sāknÄ“Å”anas opciju atbalsts: nosp, nosmap, nosmep, noexec un noclflush).
    • Ir pārtraukts atbalsts novecojuÅ”ajai CPU h8300 arhitektÅ«rai (Renesas H8/300), kas ilgstoÅ”i palikusi bez atbalsta.
    • PaplaÅ”inātas iespējas, kas saistÄ«tas ar reaģēŔanu uz dalÄ«tu slēdzeņu (ā€œsadalÄ«tu slēdzeņuā€) noteikÅ”anu, kas rodas, piekļūstot nesaskaņotiem datiem atmiņā, jo, izpildot atomu instrukciju, dati Ŕķērso divas CPU keÅ”atmiņas lÄ«nijas. Šādi aizsprostojumi izraisa ievērojamu veiktspējas samazināŔanos. Ja iepriekÅ” pēc noklusējuma kodols izteica brÄ«dinājumu ar informāciju par procesu, kas izraisÄ«ja bloÄ·Ä“Å”anu, tagad problemātiskais process tiks vēl vairāk palēnināts, lai saglabātu pārējās sistēmas veiktspēju.
    • Pievienots atbalsts Intel procesoros ieviestajam IFS (In-Field Scan) mehānismam, kas ļauj palaist zema lÄ«meņa CPU diagnostikas testus, kas var identificēt problēmas, kuras neatklāj standarta rÄ«ki, pamatojoties uz kļūdu laboÅ”anas kodiem (ECC) vai paritātes bitiem. . Veiktie testi ir lejupielādējamas programmaparatÅ«ras veidā, kas izstrādāta lÄ«dzÄ«gi mikrokoda atjauninājumiem. Testa rezultāti ir pieejami, izmantojot sysfs.
    • Pievienota iespēja kodolā iegult bootconfig failu, kas ļauj papildus komandrindas opcijām noteikt kodola parametrus, izmantojot iestatÄ«jumu failu. IegulÅ”ana tiek veikta, izmantojot montāžas opciju 'CONFIG_BOOT_CONFIG_EMBED_FILE="/PATH/TO/BOOTCONFIG/FILE"'. IepriekÅ” bootconfig tika noteikts, pievienojot initrd attēlam. Integrācija kodolā ļauj bootconfig izmantot konfigurācijās bez initrd.
    • Ir ieviesta iespēja lejupielādēt programmaparatÅ«ru, kas saspiesta, izmantojot Zstandard algoritmu. Sistēmai sysf ir pievienots vadÄ«bas failu kopums /sys/class/firmware/*, kas ļauj sākt programmaparatÅ«ras ielādi no lietotāja vietas.
    • io_uring asinhronā I/O saskarne piedāvā jaunu karogu IORING_RECVSEND_POLL_FIRST, kas, kad tas ir iestatÄ«ts, vispirms nosÅ«tÄ«s tÄ«kla darbÄ«bu, kas jāapstrādā, izmantojot aptauju, kas var ietaupÄ«t resursus situācijās, kad operācijas apstrāde ar zināmu aizkavi ir pieņemama. io_uring arÄ« pievienoja atbalstu socket() sistēmas izsaukumam, piedāvāja jaunus karogus, lai vienkārÅ”otu failu deskriptoru pārvaldÄ«bu, pievienoja "vairāku kadru" režīmu vairāku savienojumu akceptÄ“Å”anai vienlaikus akcept() izsaukumā un pievienoja darbÄ«bas NVMe pārsÅ«tÄ«Å”anai. komandas tieÅ”i ierÄ«cē.
    • Xtensa arhitektÅ«ra nodroÅ”ina atbalstu KCSAN (Kernel Concurrency Sanitizer) atkļūdoÅ”anas rÄ«kam, kas paredzēts, lai dinamiski noteiktu sacensÄ«bu apstākļus kodolā. Pievienots arÄ« miega režīma un kopprocesoru atbalsts.
    • M68k arhitektÅ«rai (Motorola 68000) ir ieviesta virtuālā maŔīna (platformas simulators), kuras pamatā ir Android Goldfish emulators.
    • AArch64 arhitektÅ«rai ir ieviests Armv9-A SME (Scalable Matrix Extension) paplaÅ”inājumu atbalsts.
    • eBPF apakÅ”sistēma ļauj saglabāt drukātus rādÄ«tājus karÅ”u struktÅ«rās, kā arÄ« pievieno atbalstu dinamiskiem rādÄ«tājiem.
    • Tiek piedāvāts jauns proaktÄ«vs atmiņas atjaunoÅ”anas mehānisms, kas atbalsta lietotāja vietas kontroli, izmantojot failu memory.reclaim. Ierakstot numuru norādÄ«tajā failā, tiks mēģināts izlikt atbilstoÅ”o baitu skaitu no kopas, kas saistÄ«ta ar cgroup.
    • Uzlabota atmiņas lietojuma precizitāte, saspiežot datus mijmaiņas nodalÄ«jumā, izmantojot zswap mehānismu.
    • RISC-V arhitektÅ«rai tiek nodroÅ”ināts atbalsts 32 bitu izpildāmo failu palaiÅ”anai 64 bitu sistēmās, ir pievienots režīms ierobežojoÅ”u atribÅ«tu saistÄ«Å”anai ar atmiņas lapām (piemēram, lai atspējotu keÅ”atmiņu), un ir ieviesta funkcija kexec_file_load() .
    • 32 bitu Armv4T un Armv5 sistēmu atbalsta ievieÅ”ana ir pielāgota izmantoÅ”anai universālos daudzplatformu kodolu veidojumos, kas piemēroti dažādām ARM sistēmām.
  • Virtualizācija un droŔība
    • EFI apakÅ”sistēma ievieÅ” iespēju konfidenciāli pārsÅ«tÄ«t slepeno informāciju viesu sistēmām, neizpaužot to saimnieksistēmai. Dati tiek nodroÅ”ināti, izmantojot droŔības / kokosa direktoriju droŔības fs.
    • BloÄ·Ä“Å”anas aizsardzÄ«bas režīms, kas ierobežo root lietotāja piekļuvi kodolam un bloķē UEFI Secure Boot apieÅ”anas ceļus, ir novērsis nepilnÄ«bu, kas ļāva apiet aizsardzÄ«bu, manipulējot ar kodola atkļūdotāju.
    • Iekļauti ielāpi, kuru mērÄ·is ir uzlabot pseidogadÄ«juma skaitļu Ä£eneratora uzticamÄ«bu un veiktspēju.
    • Veidojot, izmantojot Clang 15, tiek Ä«stenots kodola struktÅ«ru nejauÅ”ināŔanas mehānisma atbalsts.
    • Landlock mehānisms, kas ļauj ierobežot procesu grupas mijiedarbÄ«bu ar ārējo vidi, nodroÅ”ina atbalstu noteikumiem, kas ļauj kontrolēt failu pārdēvÄ“Å”anas darbÄ«bu izpildi.
    • IMA (Integrity Measurement Architecture) apakÅ”sistēma, kas paredzēta operētājsistēmas komponentu integritātes pārbaudei, izmantojot ciparparakstus un jaucējus, ir pārslēgta uz fs-verity moduļa izmantoÅ”anu failu pārbaudei.
    • Ir mainÄ«ta darbÄ«bu loÄ£ika, atspējojot priviliģēto piekļuvi eBPF apakÅ”sistēmai - iepriekÅ” visas komandas, kas saistÄ«tas ar bpf() sistēmas izsaukumu, tika atspējotas, un, sākot ar versiju 5.19, tiek atstāta pieeja komandām, kas neizraisa objektu izveidi. . Šādai darbÄ«bai ir nepiecieÅ”ams priviliģēts process, lai ielādētu BPF programmu, taču tad nepieŔķirtie procesi var mijiedarboties ar programmu.
    • Pievienots atbalsts AMD SEV-SNP (Secure Nested Peidžeru) paplaÅ”inājumam, kas nodroÅ”ina droÅ”u darbu ar ligzdotu atmiņas lapu tabulām un aizsargā pret ā€œundeSErVedā€ un ā€œSEVerityā€ uzbrukumiem AMD EPYC procesoriem, kas ļauj apiet AMD SEV (Secure Encrypted Virtualization). ) aizsardzÄ«bas mehānisms.
    • Pievienots Intel TDX (Trusted Domain Extensions) mehānisma atbalsts, kas ļauj bloķēt treÅ”o puÅ”u mēģinājumus piekļūt virtuālo maŔīnu Å”ifrētajai atmiņai.
    • Virto-blk draiveris, ko izmanto bloÄ·Ä“Å”anas ierīču atdarināŔanai, ir pievienojis atbalstu I/O, izmantojot aptauju, kas saskaņā ar testiem ir samazinājis latentumu par aptuveni 10%.
  • TÄ«kla apakÅ”sistēma
    • Paketē ir iekļauta virkne BIG TCP ielāpu, kas ļauj palielināt TCP paketes maksimālo pakeÅ”u izmēru lÄ«dz 4 GB, lai optimizētu ātrdarbÄ«gu iekŔējo datu centru tÄ«klu darbÄ«bu. LÄ«dzÄ«gs pakeÅ”u lieluma palielinājums ar 16 bitu galvenes lauka lielumu tiek panākts, ievieÅ”ot ā€œjumboā€ paketes, kuru IP galvenē izmērs ir iestatÄ«ts uz 0 un faktiskais lielums tiek pārsÅ«tÄ«ts atseviŔķā 32 bitu formātā. atseviŔķā pievienotā galvenē. Veiktspējas pārbaudē, iestatot paketes lielumu uz 185 KB, caurlaidspēja palielinājās par 50% un ievērojami samazināja datu pārsÅ«tÄ«Å”anas latentumu.
    • Turpinājās darbs pie rÄ«ku integrÄ“Å”anas tÄ«kla kaudzē, lai izsekotu pakeÅ”u nomeÅ”anas iemesliem (iemesla kodiem). Iemesla kods tiek nosÅ«tÄ«ts, kad tiek atbrÄ«vota ar paketi saistÄ«tā atmiņa, un tas pieļauj tādas situācijas kā pakeÅ”u atmeÅ”ana galvenes kļūdu dēļ, rp_filter viltoÅ”anas noteikÅ”ana, nederÄ«ga kontrolsumma, trÅ«kst atmiņas, tiek aktivizēti IPSec XFRM noteikumi, nederÄ«gs kārtas numurs TCP utt.
    • Pievienots atbalsts MPTCP (MultiPath TCP) savienojumu atgrieÅ”anai, lai izmantotu parasto TCP situācijās, kad nevar izmantot noteiktas MPTCP funkcijas. MPTCP ir TCP protokola paplaÅ”inājums, lai organizētu TCP savienojuma darbÄ«bu 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. Pievienots API, lai kontrolētu MPTCP straumes no lietotāja vietas.
  • ŠžŠ±Š¾Ń€ŃƒŠ“Š¾Š²Š°Š½ŠøŠµ
    • Pievienotas vairāk nekā 420 400 koda rindu, kas saistÄ«tas ar amdgpu draiveri, no kurām aptuveni 22.5 21 rindiņu ir automātiski Ä£enerēti galvenes faili ASIC reÄ£istra datiem AMD GPU draiverÄ«, un vēl 4 21 rindiņas nodroÅ”ina sākotnējo AMD SoC13 atbalsta ievieÅ”anu. Kopējais draivera izmērs AMD GPU pārsniedza 3 miljonus koda rindu. Papildus SoC7000, AMD draiveris ietver atbalstu SMU XNUMX.x (System Management Unit), atjauninātu atbalstu USB-C un GPUVM, kā arÄ« ir gatavs atbalstÄ«t nākamās paaudzes RDNAXNUMX (RX XNUMX) un CDNA (AMD Instinct). platformas.
    • I915 draiverim (Intel) ir paplaÅ”inātas ar jaudas pārvaldÄ«bu saistÄ«tās iespējas. Pievienoti identifikatori Intel DG2 (Arc Alchemist) GPU, ko izmanto klēpjdatoros, nodroÅ”ināts sākotnējais atbalsts Intel Raptor Lake-P (RPL-P) platformai, pievienota informācija par Arctic Sound-M grafiskajām kartēm), ieviests ABI skaitļoÅ”anas dzinējiem, pievienots DG2 karÅ”u atbalsts Tile4 formātam; sistēmām, kuru pamatā ir Haswell mikroarhitektÅ«ra, ir ieviests DisplayPort HDR atbalsts.
    • Nouveau draiveris ir pārgājis uz drm_gem_plane_helper_prepare_fb apstrādātāja izmantoÅ”anu; dažām struktÅ«rām un mainÄ«gajiem ir lietota statiskā atmiņas pieŔķirÅ”ana. Kas attiecas uz NVIDIA atvērtā pirmkoda kodola moduļu izmantoÅ”anu Nouveau, tad lÄ«dz Å”im darbs ir saistÄ«ts ar kļūdu identificÄ“Å”anu un novērÅ”anu. Nākotnē publicēto programmaparatÅ«ru plānots izmantot, lai uzlabotu draiveru veiktspēju.
    • Pievienots draiveris NVMe kontrollerim, ko izmanto Apple datoros, pamatojoties uz M1 mikroshēmu.

Tajā paŔā laikā Latīņamerikas BrÄ«vās programmatÅ«ras fonds izveidoja pilnÄ«gi bezmaksas kodola 5.19 versiju - Linux-libre 5.19-gnu, kas ir atbrÄ«vota no programmaparatÅ«ras elementiem un draiveriem, kas satur nebrÄ«vus komponentus vai koda sadaļas, kuru darbÄ«bas joma ir ierobežo ražotājs. Jaunais laidiens notÄ«ra pureLiFi X/XL/XC un TI AMx3 Wkup-M3 IPC draiverus. Atjaunināts lāse tÄ«rÄ«Å”anas kods Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu draiveros un apakÅ”sistēmās. Ir ieviesta Qualcomm AArch64 devicetree failu apstrāde. Pievienots atbalsts jaunajai Sound Open Firmware komponentu nosaukumu shēmai. Pārtrauca ATM Ambassador draivera tÄ«rÄ«Å”anu, kas tika noņemts no kodola. Blobu tÄ«rÄ«Å”anas pārvaldÄ«ba HDCP un Mellanox Core ir pārvietota uz atseviŔķiem kconfig tagiem.

Avots: opennet.ru

Pievieno komentāru