Pēc diviem mēnešiem izstrādes Linuss Torvalds prezentēja Linux 6.0 kodola izlaidumu. Versijas numura būtiska izmaiņa veikta estētisku apsvērumu dēļ un ir formāls solis, kas novērš diskomfortu, kas radies lielā izlaidumu skaita dēļ sērijā (Linuss jokoja, ka iemesls versijas maiņai galvenokārt ir tas, ka viņam beidzas pirksti uz rokām un kājām, lai saskaitītu versijas numurus). Starp visredzamākajām izmaiņām ir: atbalsts asynchronai buferizētai rakstīšanai XFS, bloku draiveris ublk, uzdevumu plānotāja optimizācija, kodola darbības pareizības pārbaudes mehānisms, atbalsts blokam šifrēšanas algoritmam ARIA.
Galvenās inovācijas kodolā 6.0:
- Disku apakšsistēma, I/O un failu sistēmas
- XFS failu sistēmā pievienots atbalsts asynchronai buferizētai rakstīšanai, izmantojot io_uring mehānismu. Veiktspējas testi, ko veica ar fio rīku (1 plūsma, bloka izmērs 4kB, 600 sekundes, sakārtota rakstīšana), rāda ievērojamu ievades/izvades operāciju skaita (IOPS) pieaugumu no 77k līdz 209k, datu pārraides ātruma pieaugumu no 314MB/s līdz 854MB/s, un aiztures samazināšanos no 9600ns līdz 120ns (80 reizes).
- Btrfs failu sistēmā ieviesta otrā versija komandas «send» protokolam, kas nodrošina papildu metadatu atbalstu, datu nosūtīšanu lielākos blokos (virs 64K) un ekstentsu pārsūtīšanu saspiežamā formātā. Ievērojami (līdz 3 reizēm) palielinājusies tiešās lasīšanas (direct read) operāciju veiktspēja, vienlaikus lasa līdz 256 sektoriem. Samazinātas bloķēšanas konflikti un paātrināta metadatu pārbaude, samazinot rezervēto metadatu apjomu atliktajiem elementiem.
- Ext4 failu sistēmā pievienoti jauni ioctl darbības EXT4_IOC_GETFSUUID un EXT4_IC_SETFSUUID, lai iegūtu vai iestatītu UUID identifikatoru, kas saglabāts superbloks.
- F2FS failu sistēmā piedāvāts zema atmiņas patēriņa režīms, kas optimizē darbu uz ierīcēm ar mazu RAM apjomu un samazina atmiņas patēriņu, samazinot veiktspēju.
- Pievienots NVMe disku autentifikācijas atbalsts.
- No serveri NFSv4 realizēts ierobežojums aktīvo klientu skaitam, kas noteikts kā 1024 pieļaujami klienti uz katru gigabaitu operatīvās atmiņas sistēmā.
- CIFS klienta realizācijā paaugstināta veiktspēja daudzkanālu pārsūtīšanas režīmā.
- FANotify apakšsistēmā pievienota jauna flaģa FAN_MARK_IGNORE, lai ignorētu specifiskus notikumus.
- Overlayfs failu sistēmā pievienota pareiza atbalsta nodrošināšana POSIX saderīgiem piekļuves kontroles sarakstiem, kad tiek uzstādīta virs failu sistēmas ar lietotāju identifikatoru kartēšanu.
- Pievienots bloku draiveris ublk, kas pārvieto specifisko loģiku uz fona procesa pusi lietotāja telpā un izmanto io_uring apakšsistēmu.
- Atmiņa un sistēmas pakalpojumi
- DAMON (Data Access MONitor) apakšsistēmā pievienotas jaunas iespējas, kas ļauj ne tikai sekot procesu piekļuvei operatīvajai atmiņai no lietotāja telpas, bet arī ietekmēt atmiņas pārvaldību. Piemēram, piedāvāts jauns modulis «LRU_SORT», kas nodrošina LRU (Least Recently Used) sarakstu pārsagrupēšanu, lai palielinātu noteiktu atmiņas lapu prioritāti.
- Iespējama jaunu atmiņas reģionu izveide, izmantojot CXL (Compute Express Link) autobusa iespējas, kas tiek izmantotas, lai nodrošinātu ātrgaitas savienojumus starp CPU un atmiņas ierīcēm. CXL ļauj pievienot jaunus atmiņas reģionus, ko nodrošina ārējās atmiņas ierīces, un izmantot tos kā papildu resursus fiziskā adresēšanas telpā, lai paplašinātu sistēmas operatīvo atmiņu (DDR) vai pastāvīgo atmiņu (PMEM).
- Atrisinātas veiktspējas problēmas AMD Zen procesoru sistēmās, ko izraisīja pirms 20 gadiem pievienots kods, lai apietu aparatūras problēmu dažos čipsetos (tika pievienota papildu instrukcija WAIT, kas palēnināja procesoru, lai čipsets varētu pāriet stāvoklī bez darbības). Izmaiņas noveda pie veiktspējas samazināšanās slodzēs, kurās bieži mijas stāvokļi (idle) un aktivitāte (busy). Piemēram, pēc apvedceļa izslēgšanas vidējie tbench testa rādītāji pieauga no 32191 MB/s līdz 33805 MB/s.
- No uzdevumu plānotāja ir noņemts kods ar heuristiku, kas nodrošināja procesu migrāciju uz mazāk noslogotiem CPU, ņemot vērā prognozējamos ieguvumus enerģijas patēriņā. Izstrādātāji secināja, ka heuristika nenodrošina pienācīgu labumu un to ir vieglāk izdzēst, pārvietojot procesus bez papildu novērtējumiem katru reizi, kad tāds pārvietojums potenciāli var samazināt enerģijas patēriņu (piemēram, kad mērķis CPU ir zemāka enerģijas patēriņa līmenī). Heuristikas atslēgšana ir novērsusi enerģijas patēriņa samazinājumu intensīvu uzdevumu izpildē, piemēram, testā ar video dekodēšanu enerģijas patēriņš samazinājās par 5.6%.
- Ir veikta uzdevumu sadales optimizācija pa CPU kodoliem lielās sistēmās, kas ļāva palielināt veiktspēju noteiktos slodzes veidos.
- Asinhronā I/O interfeisā io_uring ir piedāvāts jauns karogs IORING_RECV_MULTISHOT, ļaujot izmantot 'multi-shot' režīmu ar sistēmas izsaukumu recv() vairākām lasīšanas operācijām no viena tīkla soketa. io_uring ir arī ieviesta atbalsts tīkla pārraidei bez starpliktuvju buferizācijas (zero-copy).
- Ir īstenota iespēja pārvērst BPF programmas, kas piesaistītas uprobe, miega stāvoklī. BPF ir pievienots arī jauns iterators ksym, lai strādātu ar kodola simbolu tabulām.
- Ir izņemta novecojusī saskarne 'efivars' sysfs, kas paredzēta UEFI starta mainīgo piekļuvei (tagad, lai piekļūtu EFI datiem, visur tiek izmantota virtuālā FS efivarfs).
- Perf utilītē ir ieviesti jauni ziņojumi bloķēšanas konfliktu analīzei un laika analīzei, ko procesors pavada kodola komponentu izpildei.
- Ir izņemta iestatījums CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3, kas ļāva kodola kompilēšanu optimizācijas režīmā '-O3'. Tiek norādīts, ka eksperimentus ar optimizācijas režīmiem var veikt, nododot karogus kompilēšanas laikā ('make KCFLAGS=-O3'), un, lai pievienotu iestatījumu Kconfig, jāsasniedz atkārtojama veiktspējas profilēšana, kas parāda, ka '-O3' izlādes ciklu izmantošana sniedz ieguvumu salīdzinājumā ar optimizācijas līmeni '-O2'.
- Pievienots debugfs interfeiss, lai iegūtu informāciju par konkrētu «memory shrinker» darbību (apstrādātāji, kas tiek izsaukti nepietiekamas atmiņas gadījumā un paku veido datu struktūras kodolā, lai samazinātu to atmiņas patēriņu).
- OpenRISC un LoongArch arhitektūrām ir ieviesta PCI autobusa atbalsts.
- RISC-V arhitektūrai ir īstenots «Zicbom» paplašinājums, lai kontrolētu ierīces ar DMA, kas nav saskaņotas ar kešatmiņu (non-cache-coherent).
- Virtualizācija un drošība
- Pievienots RV (Runtime Verification) verifikācijas mehānisms, lai pārbaudītu pareizu darbību augsta uzticamības līmeņa sistēmās, kas garantē kļūdu neesamību. Pārbaude notiek izpildes laikā, piesaistot apstrādātājus izsekošanas punktiem, kas salīdzina faktisko izpildes gaitu ar iepriekš noteiktu etalona deterministisko automāta modeli, kas nosaka paredzamo sistēmas uzvedību. Salīdzināšana ar modeli izpildes laikā tiek pozicionēta kā vieglāks un praktiskāk realizējams veids, kā apstiprināt izpildes pareizību kritiski svarīgās sistēmās, papildinot klasiskās metodes uzticamības apstiprināšanai. RV ieguvumi ietver iespēju nodrošināt stingru verifikāciju bez nepieciešamības veidot visu sistēmu modelēšanas valodā, kā arī elastīgu reaģēšanu uz neparedzētiem notikumiem.
- Ir integrēti kodola komponenti, lai pārvaldītu enkla situācijas, izmantojot Intel SGX2 (Software Guard eXtensions) tehnoloģiju, kas ļauj lietojumprogrammām izpildīt kodu izolētās šifrētās atmiņas jomās, uz kurām pārējai sistēmai piekļuve ir ierobežota. Intel SGX2 tehnoloģija tiek atbalstīta Intel Ice Lake un Gemini Lake čipos un atšķiras no Intel SGX1 ar papildu instrukcijām dinamiskai enkla atmiņas pārvaldībai.
- x86 arhitektūrai ir ieviesta iespēja pārsūtīt sēklas pseidoizlases ģeneratoram caur ielādes iestatījumiem.
- LSM modulis SafeSetID ir pievienojusi iespēju pārvaldīt izmaiņas, kas veiktas, izmantojot setgroups() izsaukumu. SafeSetID ļauj sistēmas pakalpojumiem droši pārvaldīt lietotājus bez privilēģiju paaugstināšanas (CAP_SETUID) un bez piekļuves root lietotājam.
- Ieviešta atbalsts blokšifram ARIA.
- Drošības vadības modulī, kas balstīts uz BPF, ir pievienota iespēja piesaistīt apstrādātājus konkrētiem procesiem un procesu grupām (cgroup).
- Pievienots watchdog mehānisms, lai noteiktu viesu sistēmu iesaldēšanās, pamatojoties uz vCPU aktivitātes uzraudzību.
- Tīkla subsistēma
- BPF apakšsistēmā pievienoti apstrādātāji, lai ģenerētu un pārbaudītu SYN sīkfailus. Tāpat pievienots funkciju kopums (kfunc), lai piekļūtu un mainītu savienojumu stāvokli.
- Bezvadu stekā pievienota MLO (Multi-Link Operation) mehānisma atbalsts, kas noteikts WiFi 7 specifikācijā un ļauj ierīcēm vienlaicīgi saņemt un sūtīt datus, izmantojot dažādus frekvenču diapazonus un kanālus, piemēram, lai vienlaicīgi izveidotu vairākas sakaru kanālus starp piekļuves punktu un klientu ierīci.
- Uzlabota iebūvētā TLS protokola realizācijas veiktspēja kodolā.
- Pievienots komandrindas parametrs kodolam 'hostname=', ļaujot iestatīt hosta nosaukumu agrīnajā palaišanas posmā, pirms tiek palaisti lietojumprogrammu komponenti.
- Aprīkojums
- i915 (Intel) draiverī nodrošināta atbalsta iespēja diskontētu Intel Arc (DG2/Alchemist) A750 un A770 videokartēm. Paredzēta sākotnējā atbalsta realizācija Intel Ponte Vecchio (Xe-HPC) un Meteor Lake GPU. Turpināta darba veikšana Intel Raptor Lake platformas atbalstam.
- amdgpu draiverī turpināta darba veikšana AMD RDNA3 (RX 7000) un CDNA (Instinct) platformu atbalstam.
- Nouveau draiverī pārstrādāta NVIDIA nv50 GPU displeju dzinēju atbalsta kods.
- Pievienots jauns DRM draiveris logicvc LogiCVC ekrāniem.
- v3d draiverī (Broadcom Video Core GPU) nodrošināts atbalsts Raspberry Pi 4 platformām.
- msm draiverī pievienots Qualcomm Adreno 619 GPU atbalsts.
- Panfrost draiverī pievienots ARM Mali Valhall GPU atbalsts.
- 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 ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530 un Google Chameleon v3 atbalsts.
Vienlaicīgi Latīņamerikas Brīvās programmatūras fonds ir izveidojis pilnībā brīva kodola versiju 6.0 — Linux-libre 6.0-gnu, kas attīrīta no elementiem, kas satur slēgtus komponentus vai koda fragmentus, kuru izmantošanu ierobežo ražotājs. Jaunajā versijā ir atslēgta blobu izmantošana CS35L41 HD-audio draiverī un UCSI saskarnes draiverī STM32G0 mikrocontrolleriem. Ir veikta dts-failu attīrīšana Qualcomm un MediaTek čipiem. Pārveidota blobu atslēgšana MediaTek MT76 draiverī. Atjaunināts blobu attīrīšanas kods AMDGPU, Adreno, Tegra VIC, Netronome NFP un Habanalabs Gaudi2 draiveros un apakšsistēmās. Ir pārtraukta VXGE draivera attīrīšana, kas ir izņemta no koda.
Avots: opennet.lv
