Linux 6.0 kodola laidiens

Pēc divu mēneÅ”u izstrādes Linuss Torvalds iepazÄ«stināja ar Linux 6.0 kodola izlaiÅ”anu. NozÄ«mÄ«gās versijas numura izmaiņas ir estētisku apsvērumu dēļ, un tas ir formāls solis, lai mazinātu diskomfortu, kas rodas, uzkrājoties lielam sērijas problēmu skaitam (Linuss jokoja, ka filiāles numura maiņas iemesls, visticamāk, tāpēc, ka viņam trÅ«ka pirksti un pirkstiem, lai saskaitÄ«tu versiju numurus) . Starp visievērojamākajām izmaiņām: atbalsts asinhronai buferizētai rakstÄ«Å”anai XFS, ublk bloka draiveris, uzdevumu plānotāja optimizācija, kodola pareizas darbÄ«bas pārbaudes mehānisms, ARIA bloka Å”ifra atbalsts.

Galvenie jauninājumi kodolā 6.0:

  • Diska apakÅ”sistēma, I/O un failu sistēmas
    • XFS failu sistēma ir pievienojusi atbalstu asinhronai buferizētai rakstÄ«Å”anai, izmantojot io_uring mehānismu. Veiktspējas testi, kas veikti, izmantojot fio rÄ«kus (1 pavediens, 4kB bloka izmērs, 600 sekundes, secÄ«ga rakstÄ«Å”ana), liecina par ievades/izvades operāciju sekundē (IOPS) pieaugumu no 77k lÄ«dz 209k, datu pārraides ātrumu no 314MB/s lÄ«dz 854MB/s, un latentuma samazināŔanās no 9600ns uz 120ns (80 reizes).
    • Btrfs failu sistēma ievieÅ” otro protokola versiju komandai ā€œsÅ«tÄ«tā€, kas nodroÅ”ina papildu metadatu atbalstu, nosÅ«tot datus lielākos blokos (vairāk nekā 64 K) un pārraidot apjomus saspiestā veidā. TieŔās lasÄ«Å”anas operāciju veiktspēja ir ievērojami palielināta (lÄ«dz 3 reizēm), pateicoties vienlaicÄ«gai nolasÄ«Å”anai lÄ«dz 256 sektoriem. Samazināts strÄ«ds par bloÄ·Ä“Å”anu un paātrināta metadatu pārbaude, samazinot rezervēto metadatu skaitu atliktajiem elementiem.
    • Ext4 failu sistēmai ir pievienotas jaunas ioctl darbÄ«bas EXT4_IOC_GETFSUUID un EXT4_IC_SETFSUUID, lai izgÅ«tu vai iestatÄ«tu superblokā saglabāto UUID.
    • F2FS failu sistēma piedāvā zema atmiņas patēriņa režīmu, kas optimizē darbÄ«bu ierÄ«cēs ar nelielu operatÄ«vās atmiņas apjomu un ļauj samazināt atmiņas patēriņu uz samazinātas veiktspējas rēķina.
    • Pievienots atbalsts NVMe diska autentifikācijai.
    • NFSv4 serveris ievieÅ” aktÄ«vo klientu skaita ierobežojumu, kas ir iestatÄ«ts kā 1024 derÄ«gi klienti katram sistēmas RAM gigabaitam.
    • CIFS klienta ievieÅ”ana ir uzlabojusi veiktspēju daudzkanālu pārraides režīmā.
    • Fanotify FS notikumu izsekoÅ”anas apakÅ”sistēmai ir pievienots jauns karogs FAN_MARK_IGNORE, lai ignorētu konkrētus notikumus.
    • Overlayfs FS, kad tas ir uzstādÄ«ts virs FS ar lietotāja ID kartÄ“Å”anu, tiek nodroÅ”ināts pareizs atbalsts ar POSIX saderÄ«giem piekļuves kontroles sarakstiem.
    • Pievienots ublk bloka draiveris, kas pārvieto Ä«paÅ”u loÄ£iku uz fona procesa pusi lietotāja telpā un izmanto apakÅ”sistēmu io_uring.
  • Atmiņas un sistēmas pakalpojumi
    • DAMON (Data Access MONitor) apakÅ”sistēmai ir pievienotas jaunas funkcijas, kas ļauj ne tikai uzraudzÄ«t procesa piekļuvi RAM no lietotāja vietas, bet arÄ« ietekmēt atmiņas pārvaldÄ«bu. Jo Ä«paÅ”i ir ierosināts jauns modulis ā€œLRU_SORTā€, kas nodroÅ”ina LRU (vismazāk izmantoto) sarakstu pārgrupÄ“Å”anu, lai palielinātu noteiktu atmiņas lapu prioritāti.
    • Iespēja izveidot jaunus atmiņas reÄ£ionus ir ieviesta, izmantojot CXL (Compute Express Link) kopnes iespējas, ko izmanto, lai organizētu ātrgaitas mijiedarbÄ«bu starp CPU un atmiņas ierÄ«cēm. CXL ļauj savienot jaunus atmiņas reÄ£ionus, ko nodroÅ”ina ārējās atmiņas ierÄ«ces, un izmantot tos kā papildu fiziskās adreÅ”u telpas resursus, lai paplaÅ”inātu sistēmas brÄ«vpiekļuves atmiņu (DDR) vai pastāvÄ«go atmiņu (PMEM).
    • Atrisinātas veiktspējas problēmas ar AMD Zen procesoriem, ko izraisÄ«ja kods, kas tika pievienots pirms 20 gadiem, lai novērstu aparatÅ«ras problēmu dažās mikroshēmojumos (tika pievienota papildu WAIT instrukcija, lai palēninātu procesoru, lai mikroshēmojumam bÅ«tu laiks pāriet dÄ«kstāves stāvoklÄ«). Izmaiņu rezultātā tika samazināta veiktspēja darba slodzēs, kas bieži mainās starp dÄ«kstāves un aizņemtÄ«bas stāvokļiem. Piemēram, pēc risinājuma atspējoÅ”anas vidējie bench testa rezultāti palielinājās no 32191 MB/s lÄ«dz 33805 MB/s.
    • Kods ar heiristiku ir noņemts no uzdevumu plānotāja, nodroÅ”inot procesu migrāciju uz vismazāk noslogotajiem CPU, ņemot vērā prognozēto enerÄ£ijas patēriņa pieaugumu. Izstrādātāji secināja, ka heiristika nebija pietiekami noderÄ«ga un ka to ir vieglāk noņemt un migrēt procesus bez papildu novērtējuma ikreiz, kad Ŕāda migrācija varētu izraisÄ«t mazāku enerÄ£ijas patēriņu (piemēram, ja mērÄ·a centrālais procesors atrodas zemākā jaudas lÄ«menÄ«). Heiristikas atspējoÅ”ana izraisÄ«ja enerÄ£ijas patēriņa samazināŔanos, veicot intensÄ«vus uzdevumus, piemēram, video dekodÄ“Å”anas testā enerÄ£ijas patēriņŔ samazinājās par 5.6%.
    • Uzdevumu sadalÄ«jums pa CPU kodoliem lielās sistēmās ir optimizēts, kas ir uzlabojis veiktspēju noteikta veida darba slodzei.
    • io_uring asinhronā I/O saskarne piedāvā jaunu karogu IORING_RECV_MULTISHOT, kas ļauj izmantot vairāku kadru režīmu ar sistēmas izsaukumu recv(), lai vienlaikus veiktu vairākas lasÄ«Å”anas darbÄ«bas no vienas tÄ«kla ligzdas. io_uring atbalsta arÄ« tÄ«kla pārsÅ«tÄ«Å”anu bez starpposma buferizācijas (nulles kopija).
    • Ieviesta iespēja pārslēgt uprobe pievienotās BPF programmas miega stāvoklÄ«. BPF arÄ« pievieno jaunu iteratoru ksym darbam ar kodola simbolu tabulām.
    • NovecojuÅ”ais ā€œefivarsā€ interfeiss sistēmā sysfs, kas paredzēts piekļuvei UEFI sāknÄ“Å”anas mainÄ«gajiem, ir noņemts (efivarfs virtuālā FS tagad tiek plaÅ”i izmantota, lai piekļūtu EFI datiem).
    • Perf utilÄ«tai ir jauni ziņojumi, lai analizētu bloÄ·Ä“Å”anas konfliktus un laiku, ko procesors pavada kodola komponentu izpildei.
    • IestatÄ«jums CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 ir noņemts, kas ļāva izveidot kodolu optimizācijas režīmā "-O3". JāatzÄ«mē, ka eksperimentus ar optimizācijas režīmiem var veikt, montāžas laikā nododot karodziņus (ā€œmake KCFLAGS=-O3ā€), un, lai pievienotu iestatÄ«jumu Kconfig, ir nepiecieÅ”ama atkārtota veiktspējas profilÄ“Å”ana, parādot, ka cilpas atritināŔana, izmantojot ā€œ-O3ā€ režīmu, nodroÅ”ina ieguvums salÄ«dzinājumā ar ā€œ-O2ā€ optimizācijas lÄ«meni.
    • Ir pievienots atkļūdoÅ”anas interfeiss, lai iegÅ«tu informāciju par atseviŔķu ā€œatmiņas samazinātājuā€ darbÄ«bu (apdarinātāji tiek izsaukti, ja nepietiek atmiņas un kodola datu struktÅ«ru pakotnes, lai samazinātu to atmiņas patēriņu).
    • OpenRISC un LoongArch arhitektÅ«rām ir ieviests atbalsts PCI kopnei.
    • RISC-V arhitektÅ«rai paplaÅ”inājums ā€œZicbomā€ ir ieviests, lai pārvaldÄ«tu ierÄ«ces ar DMA, kas nav saskaņota ar keÅ”atmiņu.
  • Virtualizācija un droŔība
    • Ir pievienots RV (Runtime Verification) verifikācijas mehānisms, lai pārbaudÄ«tu pareizu darbÄ«bu ļoti uzticamās sistēmās, kas garantē kļūdu neesamÄ«bu. Verifikācija tiek veikta izpildes laikā, pievienojot apdarinātājus izsekoÅ”anas punktiem, kas pārbauda faktisko izpildes gaitu, salÄ«dzinot ar iepriekÅ” noteiktu iekārtas atsauces deterministisko modeli, kas definē paredzamo sistēmas darbÄ«bu. Verifikācija ar modeli izpildlaikā ir pozicionēta kā vieglāka un vieglāk ievieÅ”ama metode, lai apstiprinātu izpildes pareizÄ«bu kritiskajās sistēmās, papildinot klasiskās uzticamÄ«bas pārbaudes metodes. Starp RV priekÅ”rocÄ«bām ir iespēja nodroÅ”ināt stingru verifikāciju bez atseviŔķas visas sistēmas ievieÅ”anas modelÄ“Å”anas valodā, kā arÄ« elastÄ«ga reakcija uz neparedzētiem notikumiem.
    • Integrēti kodola komponenti anklāvu pārvaldÄ«bai, pamatojoties uz Intel SGX2 (Software Guard eXtensions) tehnoloÄ£iju, kas ļauj lietojumprogrammām izpildÄ«t kodu izolētos Å”ifrētos atmiņas apgabalos, kuriem pārējai sistēmai ir ierobežota piekļuve. Intel SGX2 tehnoloÄ£ija tiek atbalstÄ«ta Intel Ice Lake un Gemini Lake mikroshēmās, un tā atŔķiras no Intel SGX1 ar papildu instrukcijām anklāvu dinamiskai atmiņas pārvaldÄ«bai.
    • x86 arhitektÅ«rai ir ieviesta iespēja pārsÅ«tÄ«t pseidogadÄ«juma skaitļu Ä£eneratora sēklu, izmantojot sāknÄ“Å”anas ielādes iestatÄ«jumus.
    • SafeSetID LSM modulim tagad ir iespēja pārvaldÄ«t izmaiņas, kas veiktas, izmantojot setgroups() izsaukumu. SafeSetID ļauj sistēmas pakalpojumiem droÅ”i pārvaldÄ«t lietotājus, nepalielinot privilēģijas (CAP_SETUID) un neiegÅ«stot root tiesÄ«bas.
    • Pievienots atbalsts ARIA bloka Å”ifram.
    • Uz BPF balstÄ«tais droŔības pārvaldÄ«bas modulis nodroÅ”ina iespēju pievienot apstrādātājus atseviŔķiem procesiem un procesu grupām (cgroups).
    • Ir pievienots mehānisms ar sargsuņa ievieÅ”anu, lai noteiktu viesu sistēmu darbÄ«bas traucējumus, pamatojoties uz vCPU darbÄ«bas uzraudzÄ«bu.
  • TÄ«kla apakÅ”sistēma
    • BPF apakÅ”sistēmai ir pievienoti apstrādātāji SYN sÄ«kfailu Ä£enerÄ“Å”anai un pārbaudei. Pievienots arÄ« funkciju kopums (kfunc), lai piekļūtu un mainÄ«tu savienojumu stāvokli.
    • Bezvadu stekam ir pievienots atbalsts MLO (Multi-Link Operation) mehānismam, kas definēts WiFi 7 specifikācijā un ļauj ierÄ«cēm vienlaicÄ«gi saņemt un sÅ«tÄ«t datus, izmantojot dažādas frekvenču joslas un kanālus, piemēram, lai vienlaikus izveidotu vairākus sakaru kanālus starp piekļuves punkts klienta ierÄ«cei.
    • Ir uzlabota kodolā iebÅ«vētā TLS protokola veiktspēja.
    • Pievienota kodola komandrindas opcija "hostname=", lai ļautu resursdatora nosaukumu iestatÄ«t sāknÄ“Å”anas procesa sākumā pirms lietotāja vietas komponentu palaiÅ”anas.
  • ŠžŠ±Š¾Ń€ŃƒŠ“Š¾Š²Š°Š½ŠøŠµ
    • I915 (Intel) draiveris nodroÅ”ina Intel Arc (DG2/Alchemist) A750 un A770 diskrēto video karÅ”u atbalstu. Ir ierosināta sākotnējā Intel Ponte Vecchio (Xe-HPC) un Meteor Lake GPU atbalsta ievieÅ”ana. Turpinās darbs pie Intel Raptor Lake platformas atbalsta.
    • Amdgpu draiveris turpina nodroÅ”ināt atbalstu AMD RDNA3 (RX 7000) un CDNA (Instinct) platformām.
    • Nouveau draiveris ir pārstrādājis atbalsta kodu NVIDIA nv50 GPU displeja dzinējiem.
    • Pievienots jauns logicvc DRM draiveris LogiCVC ekrāniem.
    • V3d draiveris (Broadcom Video Core GPU) atbalsta Raspberry Pi 4 plates.
    • Msm draiverim ir pievienots Qualcomm Adreno 619 GPU atbalsts.
    • Panfrost draiverim ir pievienots atbalsts ARM Mali Valhall GPU.
    • Pievienots sākotnējais atbalsts Qualcomm Snapdragon 8cx Gen3 procesoriem, kas tiek izmantoti Lenovo ThinkPad X13s klēpjdatoros.
    • Pievienoti skaņas draiveri AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake un Mediatek MT8186 platformām.
    • Pievienots atbalsts Intel Habana Gaudi 2 maŔīnmācÄ«Å”anās paātrinātājiem.
    • Pievienots atbalsts ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Tajā paŔā laikā Latīņamerikas BrÄ«vās programmatÅ«ras fonds izveidoja pilnÄ«gi bezmaksas kodola 6.0 versiju - Linux-libre 6.0-gnu, kas ir atbrÄ«vota no programmaparatÅ«ras elementiem un draiveriem, kas satur patentētus komponentus vai koda sadaļas, kuru darbÄ«bas jomu ierobežo ražotājs. Jaunais laidiens atspējo blobu izmantoÅ”anu CS35L41 HD audio draiverÄ« un UCSI draiverÄ« STM32G0 mikrokontrolleriem. DTS faili Qualcomm un MediaTek mikroshēmām ir iztÄ«rÄ«ti. Blobu atspējoÅ”ana MediaTek MT76 draiverÄ« ir pārveidota. Atjaunināts lāse tÄ«rÄ«Å”anas kods AMDGPU, Adreno, Tegra VIC, Netronome NFP un Habanalabs Gaudi2 draiveros un apakÅ”sistēmās. Tika pārtraukta VXGE draivera tÄ«rÄ«Å”ana, kas tika noņemts no kodola.

Avots: opennet.ru

Pievieno komentāru