Linux 5.17 kodola laidiens

Pēc divu mēneÅ”u izstrādes Linuss Torvalds iepazÄ«stināja ar Linux kodola 5.17 izlaiÅ”anu. Starp ievērojamākajām izmaiņām: jauna AMD procesoru veiktspējas pārvaldÄ«bas sistēma, iespēja rekursÄ«vi kartēt lietotāju ID failu sistēmās, atbalsts pārnēsājamām kompilētām BPF programmām, pseidogadÄ«juma skaitļu Ä£eneratora pāreja uz BLAKE2s algoritmu, RTLA utilÄ«ta. reāllaika izpildes analÄ«zei, jauna fscache aizmugure tÄ«kla failu sistēmu keÅ”atmiņai saglabāŔanai, iespēja pievienot nosaukumus anonÄ«mām mmap darbÄ«bām.

Jaunajā versijā ir iekļauti 14203 1995 labojumi no 37 11366 izstrādātājiem, ielāpa izmērs ir 506043 MB (izmaiņas skāra 250954 44 failus, tika pievienotas 5.17 16 koda rindas, 15 4 rindiņas tika izdzēstas). Aptuveni 4% no visām XNUMX ieviestajām izmaiņām 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.17:

  • Diska apakÅ”sistēma, I/O un failu sistēmas
    • Ieviesta iespēja ligzdotu kartÄ“Å”anu uzstādÄ«to failu sistēmu lietotāju ID, ko izmanto, lai salÄ«dzinātu konkrēta lietotāja failus uzstādÄ«tā sveŔā nodalÄ«jumā ar citu lietotāju paÅ”reizējā sistēmā. Pievienotā funkcija ļauj rekursÄ«vi izmantot kartÄ“Å”anu virs failu sistēmām, kurām kartÄ“Å”ana jau ir lietota.
    • ApakÅ”sistēma fscache, ko izmanto, lai organizētu keÅ”atmiņu lokālajā failu sistēmā datu pārraidei caur tÄ«kla failu sistēmām, ir pilnÄ«bā pārrakstÄ«ta. Jaunā ievieÅ”ana izceļas ar bÅ«tisku koda vienkārÅ”oÅ”anu un sarežģītu plānoÅ”anas un objektu stāvokļu izsekoÅ”anas operāciju aizstāŔanu ar vienkārŔākiem mehānismiem. Jaunās fscache atbalsts ir ieviests CIFS failu sistēmā.
    • Notikumu izsekoÅ”anas apakÅ”sistēma fanotify FS ievieÅ” jaunu notikumu veidu FAN_RENAME, kas ļauj nekavējoties pārtvert failu vai direktoriju pārdēvÄ“Å”anas darbÄ«bu (iepriekÅ” pārdēvÄ“Å”anas apstrādei tika izmantoti divi atseviŔķi notikumi FAN_MOVED_FROM un FAN_MOVED_TO).
    • Btrfs failu sistēma ir optimizējusi reÄ£istrÄ“Å”anas un fsync darbÄ«bas lieliem direktorijiem, kas ieviesta, kopējot tikai indeksa atslēgas un samazinot reÄ£istrēto metadatu daudzumu. Ir nodroÅ”ināts atbalsts indeksÄ“Å”anai un meklÄ“Å”anai pēc brÄ«vas vietas ierakstu lieluma, kas ir samazinājis latentumu par aptuveni 30% un samazinājis meklÄ“Å”anas laiku. Atļauts pārtraukt defragmentÄ“Å”anas darbÄ«bas. Iespēja pievienot ierÄ«ces, balansējot starp diskdziņiem, ir atspējota, t.i. uzstādot failu sistēmu ar opciju skip_balance.
    • Ir ierosināta jauna sintakse Ceph failu sistēmas montāžai, atrisinot esoŔās problēmas, kas saistÄ«tas ar saistÄ«Å”anu ar IP adresēm. Papildus IP adresēm tagad varat izmantot klastera identifikatoru (FSID), lai identificētu serveri: mount -t ceph [e-pasts aizsargāts]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Ext4 failu sistēma ir pārvietota uz jaunu montāžas API, kas atdala stiprinājuma opciju parsÄ“Å”anas un superbloka konfigurācijas darbÄ«bas. Mēs esam atteikuÅ”ies no atbalsta lazytime un nolazytime pievienoÅ”anas opcijām, kas tika pievienotas kā pagaidu izmaiņas, lai atvieglotu util-linux pāreju uz karoga MS_LAZYTIME izmantoÅ”anu. Pievienots atbalsts etiÄ·eÅ”u iestatÄ«Å”anai un lasÄ«Å”anai FS (ioctl FS_IOC_GETFSLABEL un FS_IOC_SETFSLABEL).
    • NFSv4 pievienoja atbalstu darbam reÄ£istrjutÄ«gās failu sistēmās failu un direktoriju nosaukumos. NFSv4.1+ pievieno atbalstu apkopoto sesiju (maÄ£istrāles) definÄ“Å”anai.
  • Atmiņas un sistēmas pakalpojumi
    • Pievienots amd-pstate draiveris, lai nodroÅ”inātu dinamisku frekvences kontroli optimālai veiktspējai. Draiveris atbalsta AMD CPU un APU, sākot no Zen 2 paaudzes, kas izstrādāti kopÄ«gi ar Valve un ir paredzēti enerÄ£ijas pārvaldÄ«bas efektivitātes uzlaboÅ”anai. AdaptÄ«vām frekvences izmaiņām tiek izmantots CPPC (Collaborative Processor Performance Control) mehānisms, kas ļauj precÄ«zāk mainÄ«t rādÄ«tājus (ne tikai trÄ«s veiktspējas lÄ«meņos) un ātrāk reaģēt uz stāvokļa izmaiņām nekā iepriekÅ” izmantotais uz ACPI balstÄ«tais P-stāvoklis. draiveri (CPUFreq).
    • eBPF apakÅ”sistēma piedāvā bpf_loop() apdarinātāju, kas nodroÅ”ina alternatÄ«vu veidu, kā organizēt cilpas eBPF programmās, kas ir ātrāka un vienkārŔāka verificētājam.
    • Kodola lÄ«menÄ« ir ieviests CO-RE (Compile Once - Run Everywhere) mehānisms, kas ļauj tikai vienu reizi sastādÄ«t eBPF programmu kodu un izmantot speciālu universālu ielādētāju, kas pielāgo ielādēto programmu esoÅ”ajiem kodola un BTF veidiem. (BPF tipa formāts).
    • Ir iespējams pieŔķirt nosaukumus privātās anonÄ«mās (pieŔķirtas, izmantojot malloc) atmiņas apgabaliem, kas var vienkārÅ”ot atkļūdoÅ”anu un atmiņas patēriņa optimizāciju lietojumprogrammās. Vārdi tiek pieŔķirti, izmantojot prctl ar karodziņu PR_SET_VMA_ANON_NAME, un tiek parādÄ«ti mapē /proc/pid/maps un /proc/pid/smaps formā "[anon: ]".
    • Uzdevumu plānotājs nodroÅ”ina izsekoÅ”anu un parādÄ«Å”anu /proc/PID/sched laikā, kas pavadÄ«ts procesiem piespiedu dÄ«kstāves stāvoklÄ«, ko izmanto, piemēram, lai samazinātu slodzi, kad procesors pārkarst.
    • Pievienots gpio-sim modulis, kas paredzēts GPIO mikroshēmu simulÄ“Å”anai testÄ“Å”anai.
    • Komandai "perf ftrace" ir pievienota apakÅ”komanda "latency", lai Ä£enerētu histogrammas ar latentuma informāciju.
    • Pievienots ā€œRTLAā€ utilÄ«tu komplekts darba analÄ«zei reāllaikā. Tas ietver tādas utilÄ«tas kā osnoise (nosaka operētājsistēmas ietekmi uz uzdevuma izpildi) un timerlat (maina ar taimeri saistÄ«tās aizkaves).
    • Otrā ielāpu sērija ir integrēta, ievieÅ”ot lapu foliju koncepciju, kas atgādina saliktas lapas, bet kurām ir uzlabota semantika un skaidrāka darba organizācija. Tomes izmantoÅ”ana ļauj paātrināt atmiņas pārvaldÄ«bu dažās kodola apakÅ”sistēmās. Ierosinātie ielāpi pabeidza lapas keÅ”atmiņas konvertÄ“Å”anu uz tomu izmantoÅ”anu un pievienoja sākotnējo atbalstu tomiem XFS failu sistēmā.
    • Pievienots ā€œmake mod2noconfigā€ veidoÅ”anas režīms, kas Ä£enerē konfigurāciju, kas apkopo visas atspējotās apakÅ”sistēmas kodola moduļu veidā.
    • Ir paaugstinātas prasÄ«bas LLVM/Clang versijai, kuru var izmantot kodola izveidei. Lai izveidotu tagad, ir nepiecieÅ”ams vismaz LLVM 11 laidiens.
  • Virtualizācija un droŔība
    • Tiek piedāvāta atjaunināta pseidogadÄ«juma skaitļu Ä£eneratora RDRAND ievieÅ”ana, kas ir atbildÄ«ga par /dev/random un /dev/urandom ierīču darbÄ«bu, kas ir ievērojama ar pāreju uz BLAKE2s jaucējfunkcijas izmantoÅ”anu SHA1 vietā entropijas sajaukÅ”anas operācijām. Izmaiņas uzlaboja pseidogadÄ«juma skaitļu Ä£eneratora droŔību, novērÅ”ot problemātisko SHA1 algoritmu un novērÅ”ot RNG inicializācijas vektora pārrakstÄ«Å”anu. Tā kā BLAKE2s algoritms veiktspējas ziņā ir pārāks par SHA1, tā izmantoÅ”ana arÄ« pozitÄ«vi ietekmēja veiktspēju.
    • Pievienota aizsardzÄ«ba pret procesoru ievainojamÄ«bām, ko izraisa spekulatÄ«va instrukciju izpilde pēc beznosacÄ«juma pārlēkÅ”anas uz priekÅ”u operācijām. Problēma rodas, apsteidzot instrukcijas, kas tiek apstrādātas tÅ«lÄ«t pēc atzarojuma instrukcijas atmiņā (SLS, Straight Line Speculation). Lai iespējotu aizsardzÄ«bu, ir jāveido, izmantojot paÅ”laik testējamo GCC 12 laidienu.
    • Pievienots atsauču skaitÄ«Å”anas (pārskaitÄ«Å”anas, atsauces skaita) izsekoÅ”anas mehānisms, kura mērÄ·is ir samazināt atsauču skaitÄ«Å”anas kļūdu skaitu, kas noved pie piekļuves atmiņai pēc tās atbrÄ«voÅ”anas. PaÅ”laik mehānisms ir ierobežots ar tÄ«kla apakÅ”sistēmu, bet nākotnē to var pielāgot citām kodola daļām.
    • Ir ieviestas paplaÅ”inātas jaunu ierakstu pārbaudes procesu atmiņas lapu tabulā, kas ļauj atklāt noteikta veida bojājumus un apturēt sistēmu, bloķējot uzbrukumus agrÄ«nā stadijā.
    • Pievienota iespēja izpakot kodola moduļus tieÅ”i paÅ”am kodolam, nevis lietotāja vietas apdarinātājam, kas ļauj izmantot LoadPin LSM moduli, lai nodroÅ”inātu kodola moduļu ielādi atmiņā no verificētas atmiņas ierÄ«ces.
    • NodroÅ”ināta komplektācija ar karogu "-Wcast-function-type", kas nodroÅ”ina brÄ«dinājumus par funkciju rādÄ«tāju apraidi uz nesaderÄ«gu tipu.
    • Pievienots virtuālā resursdatora draiveris pvUSB Xen hipervizoram, nodroÅ”inot piekļuvi USB ierÄ«cēm, kas pārsÅ«tÄ«tas uz viesu sistēmām (ļauj viesu sistēmām piekļūt fiziskajām USB ierÄ«cēm, kas pieŔķirtas viesu sistēmai).
    • Ir pievienots modulis, kas ļauj mijiedarboties, izmantojot Wi-Fi, ar IME (Intel Management Engine) apakÅ”sistēmu, kas ir pieejama lielākajā daļā mÅ«sdienu mātesplatēm ar Intel procesoriem un tiek realizēta kā atseviŔķs mikroprocesors, kas darbojas neatkarÄ«gi no CPU.
    • ARM64 arhitektÅ«rai ir ieviests atbalsts KCSAN (Kernel Concurrency Sanitizer) atkļūdoÅ”anas rÄ«kam, kas paredzēts, lai dinamiski noteiktu sacensÄ«bu apstākļus kodolā.
    • 32 bitu ARM sistēmām ir pievienota iespēja izmantot KFENCE mehānismu kļūdu noteikÅ”anai darbā ar atmiņu.
    • KVM hipervizors pievieno atbalstu AMX (Advanced Matrix Extensions) instrukcijām, kas ieviestas gaidāmajos Intel Xeon Scalable serveru procesoros.
  • TÄ«kla apakÅ”sistēma
    • Pievienots atbalsts ar satiksmes pārvaldÄ«bu saistÄ«to darbÄ«bu izkrauÅ”anai tÄ«kla ierīču pusē.
    • Pievienota iespēja izmantot MCTP (Management Component Transport Protocol) pār seriālajām ierÄ«cēm. MCTP var izmantot, lai sazinātos starp pārvaldÄ«bas kontrolieriem un ar tiem saistÄ«tajām ierÄ«cēm (resursdatora procesoriem, perifērijas ierÄ«cēm utt.).
    • TCP kaudze ir optimizēta, piemēram, lai uzlabotu recvmsg zvanu veiktspēju, ir ieviesta ligzdas buferu aizkavēta atbrÄ«voÅ”ana.
    • CAP_NET_RAW autoritātes lÄ«menÄ« ir atļauts iestatÄ«t režīmus SO_PRIORITY un SO_MARK, izmantojot setsockopt funkciju.
    • IPv4 neapstrādātās ligzdas ir atļauts saistÄ«t ar nelokālām IP adresēm, izmantojot opcijas IP_FREEBIND un IP_TRANSPARENT.
    • Pievienots sysctl arp_missed_max, lai konfigurētu kļūmju sliekŔņa skaitu ARP monitora pārbaudes laikā, pēc kura tÄ«kla interfeiss tiek novietots atspējotā stāvoklÄ«.
    • NodroÅ”ina iespēju tÄ«kla nosaukumvietām konfigurēt atseviŔķas sysctl min_pmtu un mtu_expires vērtÄ«bas.
    • Pievienota ethtool API iespēja iestatÄ«t un noteikt buferu lielumu ienākoÅ”ajām un izejoÅ”ajām paketēm.
    • Netfilter ir pievienojis atbalstu tranzÄ«ta pppoe trafika filtrÄ“Å”anai tÄ«kla tiltā.
    • Modulis ksmbd, kas ievieÅ” failu serveri, izmantojot SMB3 protokolu, ir pievienojis atbalstu atslēgu apmaiņai, iespējojis tÄ«kla portu 445 smbdirect un pievienojis atbalstu parametram ā€œsmb2 max creditā€.
  • ŠžŠ±Š¾Ń€ŃƒŠ“Š¾Š²Š°Š½ŠøŠµ
    • Drm (Direct Rendering Manager) apakÅ”sistēmai un i915 draiverim ir pievienots atbalsts ekrāniem konfidenciālas informācijas parādÄ«Å”anai, piemēram, daži klēpjdatori ir aprÄ«koti ar ekrāniem ar iebÅ«vētu konfidenciālās skatÄ«Å”anās režīmu, kas apgrÅ«tina skatÄ«Å”anu no ārpuses. . Pievienotās izmaiņas ļauj pieslēgt specializētus draiverus Ŕādiem ekrāniem un kontrolēt konfidenciālus pārlÅ«koÅ”anas režīmus, iestatot rekvizÄ«tus parastajos KMS draiveros.
    • Amdgpu draiveris ietver atbalstu STB (Smart Trace Buffer) atkļūdoÅ”anas tehnoloÄ£ijai visiem AMD GPU, kas to atbalsta. STB atvieglo kļūmju analÄ«zi un problēmu avota identificÄ“Å”anu, speciālā buferÄ« glabājot informāciju par veiktajām funkcijām pirms pēdējās kļūmes.
    • I915 draiveris pievieno atbalstu Intel Raptor Lake S mikroshēmām un nodroÅ”ina Intel Alder Lake P mikroshēmu grafiskās apakÅ”sistēmas atbalstu pēc noklusējuma. Ekrāna fona apgaismojumu iespējams kontrolēt, izmantojot VESA DPCD interfeisu.
    • Fbcon/fbdev draiveros ir atgriezts atbalsts aparatÅ«ras ritināŔanas paātrinājumam konsolē.
    • Turpināta izmaiņu integrācija, lai atbalstÄ«tu Apple M1 mikroshēmas. Ieviesta iespēja izmantot simpledrm draiveri sistēmās ar Apple M1 mikroshēmu, lai izvadÄ«tu, izmantojot programmaparatÅ«ras nodroÅ”ināto kadru buferi.
    • Pievienots atbalsts ARM SoŠ”, ierÄ«cēm un platēm Snapdragon 7c, 845 un 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek (MT8183) Acer Chromebook 314), Mediatek MT7986a/b (izmanto Wi-Fi marÅ”rutētājos), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEArXP320i, NMX8 ULP8. , Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, JOZ piekļuves punkts, Y Soft IOTA Crux/Crux+, t6000/t6001 MacBook Pro 14/16.
    • Pievienots atbalsts ARM Cortex-M55 un Cortex-M33 procesoriem.
    • Pievienots atbalsts ierÄ«cēm, kuru pamatā ir CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Pievienots StarFive JH7100 SoC atbalsts, kura pamatā ir RISC-V arhitektÅ«ra.
    • Pievienots lenovo-yogabook-wmi draiveris, lai kontrolētu tastatÅ«ras fona apgaismojumu un piekļūtu dažādiem sensoriem Lenovo Yoga Book.
    • Pievienots asus_wmi_sensors draiveris, lai piekļūtu sensoriem, kas tiek izmantoti Asus X370, X470, B450, B550 un X399 mātesplatēs, kuru pamatā ir AMD Ryzen procesori.
    • Pievienots x86-android-tablets draiveris x86 bāzes planÅ”etdatoriem, kas piegādāti kopā ar Android platformu.
    • Pievienots atbalsts TrekStor SurfTab duo W1 skārienekrāniem un elektroniskajai pildspalvai Chuwi Hi10 Plus un Pro planÅ”etdatoriem.
    • SoC Tegra 20/30 draiveriem ir pievienots jaudas un sprieguma pārvaldÄ«bas atbalsts. Iespējo sāknÄ“Å”anu vecākām 32 bitu Tegra SoC ierÄ«cēm, piemēram, ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 un Pad TF300TG.
    • Pievienoti draiveri Siemens rÅ«pnieciskajiem datoriem.
    • Pievienots atbalsts Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA un Team Source043015 displejiemXNUMX TCMXNUMXX TCMXNUMX.
    • Pievienots atbalsts skaņas sistēmām un kodekiem AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel sistēmām, kurās izmanto NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320x3ADC. Problēmas ar Tegra194 HD-audio ir atrisinātas. Pievienots HDA atbalsts CS35L41 kodekiem. Uzlabots atbalsts skaņas sistēmām Lenovo un HP klēpjdatoriem, kā arÄ« Gigabyte mātesplatēm.

Avots: opennet.ru

Pievieno komentāru