Linux 6.8 kodola izlaidums

Pēc divu mēnešu izstrādes Linuss Torvalds prezentēja Linux 6.8 kodola izlaišanu. Starp nozīmīgākajiem uzlabojumiem ir: Xe draiveris Intel GPU, aizsardzības režīms bloķējošiem ierīču ierakstiem ar montētām FS, uzdevumu plānotāja Deadline servera mehānisms, automātiskā optimizācija identisku atmiņas lapu apvienošanai, pirmais draiveris Rust valodā, sistēmas izsaukumi listmount un statmount, bpfilter un SLAB dzēšana, mehānisms guest_memfd KVM, datu piekļuves profilēšana.

Jaunajā versijā ir pieņemti 15641 labojumi no 2018 izstrādātājiem, plākšņu izmērs — 44 MB (izmaiņas skāra 12212 failus, pievienoti 663864 koda rindiņas, dzēstas 339094 rindiņas). Iepriekšējā laidiena ietvaros bija 18405 labojumi no 2066 izstrādātājiem, plākšņu izmērs — 72 MB. Aptuveni 42% no visiem 6.8 izmaiņām ir saistīti ar ierīču draivernotiekumiem, aptuveni 15% izmaiņu attiecas uz aparatūras arhitektūram speciālu koda atjauninājumiem, 14% ir saistīti ar tīkla kaudžu, 6% — ar failu sistēmām un 3% ar kodola iekšējām apakšsistēmām.

Git repozitorijā ar kodolu 6.8 ir 9.996 miljoni objektu, kas norāda, ka nākamā kodola 6.9 pārsniegs simbolisko 10 miljonu git objektu robežu. Iepriekš, mainot 3.x un 4.x zari, labi korelēja ar git objektu skaitu repozitorijā — kodolu 3.0 izlaida, kad repozitorijā bija apmēram 2 miljoni objektu, bet kodolu 4.0 — 4 miljoni objektu. Tajā pašā laikā 2019. gadā 5.0 laidiena iznākums pārtrauca šo loģisko ķēdi, jo veidojot to repozitorijā bija aptuveni 6.5 miljoni git objektu.

Galvenie jaunumi kodolā 6.8:

  • Disku apakšsistēma, I/O un failu sistēmas
    • Pievienots tiešās rakstīšanas bloķēšanas režīms bloķējošām ierīcēm, kurām ir montētas failu sistēmas (pēc režīma aktivizēšanas, root lietotājs nespēs veikt izmaiņas FS, manipulējot ar bloķējošās ierīces līmeni). Noklusējumā režīms ir izslēgts, un tā aktivizēšanai ir nepieciešams norādīt parametrus BLK_DEV_WRITE_MOUNTED, veidojot kodolu. Btrfs daļām šī bloķēšana pagaidām nedarbojas, jo Btrfs kodā vēl nav pieņemti nepieciešamie grozījumi.
    • Pievienoti sistēmas izsaukumi listmount() un statmount(), kas ļauj no lietotāja telpas iegūt detalizētu informāciju par montētajām failu sistēmām.
    • XFS failu sistēmā turpinās darbs pie iespējas izmantot utilītu fsck, lai pārbaudītu un labotu atklātās problēmas tiešsaistes režīmā, neatslēdzot failu sistēmu.
    • Ext4, izmantojot izsaukumu dioread_nolock, kas ļauj paaugstināt veiktspēju, izslēdzot liekās bloķēšanas, ir iesaistīti blokiem, kuru izmērs ir mazāks par atmiņas lapu. Dažas funkcijas ir pārceltas uz lapu fojeriem (page folios).
    • Btrfs ir pievienota atbalsts montēšanas karogam «nospace_cache», lai atspējotu brīvo bloku kešatmiņu. Dažas funkcijas ir pārceltas uz lapu fojeriem (page folios).
    • EROFS (Extendable Read-Only File System) failu sistēmā, kas paredzēta lietošanai sadaļās, kas pieejamas tikai lasīšanas režīmā, ir pievienots atbalsts apakšlapu saspiešanai un uzlabota darbība atmiņas trūkuma situācijās.
    • F2FS failu sistēmā uzlabota zonētu glabāšanas ierīču atbalsts (grupu bloku vai sektoru sadalījumu, kuros ir atļauta tikai secīga datu pievienošana, atjauninot visu grupu bloku).
    • SMB failu sistēmai ir īstenota iespēja izveidot blokveida un simboliskos ierīču failus.
    • Bcachefs ir pievienots daļējs atbalsts pārbaudēm un pieturēšanai pievienoto failu sistēmu integritātes pārbaudei un atjaunošanai.
    • Device-mapper subsistēmā ir pārtraukta atbalsta sniegšana MD_LINEAR, MD_MULTIPATH un MD_FAULTY apstrādātājiem, kas tika pasludināti par novecojušiem 2021. gadā.
  • Atmiņa un sistēmas pakalpojumi
    • Zswap subsistēmā ir pievienota aktivizējama funkcija, kas tiek aktivizēta atmiņas trūkuma gadījumā, lai piespiedu kārtā izkrautu fiziskajā swap sadaļā «aukstās» atmiņas lapas, uz kurām nav bijusi piekļuve un kuras, visticamāk, paliks neizmantotas. Zswap kešē atmiņā izraidītās lapas, uzglabājot tās operatīvajā atmiņā saspiestā veidā, cik vien iespējams, neizmetot tās fiziskajā nesaspiestajā swap sadaļā diskā. Veiktās izmaiņas atmiņas trūkuma gadījumā ļauj samazināt Zswap saglabāto lapu izmēru un atbrīvot atmiņu sistēmai.
    • Zswap ir piedāvāts jauns režīms, kas pilnīgi izslēdz atlikto rakstīšanu (writeback) fiziskajā swap sadaļā, ja rakstīšanas mēģinājums nav izdevies, un neslauka jau esošās zswap lapas uz swap sadaļu.
    • Uzdevumu plānotājā ir pievienots SCHED_DEADLINE servera mehānisms, kas risina problēmu ar CPU resursu nepietiekamu piešķiršanu parastajiem uzdevumiem, piesātinātā CPU apstākļos ar augsta prioritātes (realtime) uzdevumiem. Lai novērstu CPU monopolizāciju, kodolā iepriekš tika izmantots Realtime throttling mehānisms, kas centās rezervēt 5% zemas prioritātes uzdevumiem, atstājot 95% laika realtime uzdevumiem. Šis mehānisms mēdz būt neefektīvs, jo parastie uzdevumi daudzās situācijās nesaņēma pietiekamu procesora laiku. SCHED_DEADLINE serveris realizē efektīvāku resursu rezervēšanas mehānismu.
    • DAMON (Data Access MONitor) apakšsistēmā, kas ļauj uzraudzīt procesa piekļuvi datiem operatīvajā atmiņā (piemēram, var uzzināt, kurām atmiņas zonām process piekļuva un kuras palika neizmantotas), ir pievienots mehānisms automātiskai atmiņas patēriņa agresivitātes pielāgošanai, balstoties uz noteiktajām kvotām.
    • Ir pievienota atbalsta multiizmēra lieliem atmiņas lapu (mTHP — multi-size Transparent Huge Pages) izmantošanai, kas ļauj piešķirt atmiņu blokos, kas ir lielāki par pamatlapu, bet mazāki par tradicionālo THP lapu.
    • Ir pievienots atbalsts lielajiem folijam (page folios, apvienotām atmiņas lapām) anonīmajai atmiņai (nav piesaistītai FS, piemēram, piešķirta caur malloc). Šī izmaiņa ir orientēta uz veiktspējas uzlabošanu, piešķirot lielākus atmiņas gabalus, piekļūstot neizmantotām atmiņas lapām (page faults). Piemēram, liela folija izmantošana ļāva par 5% samazināt kodola atkārtotas kompilācijas laiku (samazinot laiku, kas pavadīts kodola līmenī par 40%).
    • Kodolkonfigurācijas failā ir pievienots parametrs TRANSPARENT_HUGEPAGE_NEVER, kas ļauj atslēgt lielo atmiņas lapu (Transparent Huge Pages) izmantošanu.
    • Lietotāju izsaukumā userfaultfd(), kas ļauj izveidot apstrādātājus piekļuvei neizmantotām atmiņas lapām (page faults) lietotāja telpā, ir pievienota operācija UFFDIO_MOVE, kas ļauj, iepakaujot kaudzi (heap compaction), pārvietot atmiņas lapas virtuālajā adreses telpā bez lapas atmiņas piešķiršanas operācijas veikšanas. Veiktajos testos UFFDIO_MOVE izmantošana ļāva par 40% samazināt iepakošanas laiku, salīdzinot ar UFFDIO_COPY operāciju.
    • Ieviesots mehānisms «KSM advisor», kas automātiski optimizē identisku atmiņas lapu apakšsistēmas parametrus (KSM — Kernel Samepage Merging).
    • Turpinās izmaiņu pārsūtīšana no Rust-for-Linux nozares, kas saistīta ar Rust valodas izmantošanu kā otro valodu draiveru un kodola moduļu izstrādē (Rust atbalsts pēc noklusējuma nav aktīvs un neietver Rust elementu kā obligāti konstruktīvās atkarības no kodola). Jaunajā versijā iekļautas izmaiņas, kas pievieno Rust apvalku virs phylib abstrakcijas līmeņa un izmanto šo apvalku draiveris ax88796b_rust, kas nodrošina atbalstu PHY interfeisam Ethernet kontrolierim Asix AX88772A (100MBit). Funkcionāli draiveris, kas rakstīts Rust, ir pilnīgi ekvivalents vecajam draiverim ax88796b, kas rakstīts C valodā, un to var izmantot ar X-Surf 100 tīkla kartēm, kurās ir AX88796B čips. LoongArch arhitektūrai ir pieejama iespēja moduļu rakstīšanai Rust valodā. Veikta pāreja uz Rust versijas 1.74.1 lietošanu.
    • Ieviesots BPF token mehānisms, kas ļauj selektīvi deleģēt BPF iespēju, piemēram, BPF programmu ielādes vai BPF kartes izveides, apstrādi nepilnvarotajām lietojumprogrammas procesiem, kuru ticamību apstiprina speciāls tokens.
    • Paplašināta BPF programmu verifikatora funkcionalitāte.
    • Uzņēmumam perf pievienota atbalsta datu profilēšanai, ļaujot sekot datu struktūru lasīšanai un rakstīšanai, piemēram, lai noskaidrotu visaktīvāk modificētos laukus struktūrās. Sistēmās ar procesoriem, kas atbalsta informācijas par operācijām ar atmiņu apkopošanu (Intel, AMD, ARM), statistikas apkopošanai jāizmanto komanda «perf mem record», bet informācijas par datu struktūru piekļuves pārskata iznākšanai — «perf annotate —data-type».
    • Veikta veiktspējas optimizācija sistēmas izsaukumu apstrādē s390 (IBM Z) arhitektūrā, kas testos noveda pie izsaukuma ieejas paātrinājuma aptuveni par 11%.
    • Ieviešta iespēja mainīt izsekošanas buferu izmēru, ko izmanto, lai buferizētu informāciju par izsekošanas notikumiem, kas tiek pārsūtīta lietojumprogrammas telpā.
    • Iepriekš atceltais novecojis atmiņas sadalīšanas mehānisms SLAB ir aizvietots ar vienīgi SLUB kodolā. Iemesli tam ir atbalsta problēmas, problēmas kodā un funkcionalitātes dublēšana ar modernāku alokatoru SLUB.
    • Kodolam ir iekļauta flag «-Wmissing-prototypes», kas ģenerē brīdinājumus par globālo funkciju izsaukumiem, kuriem nav prototipa definīcijas.
    • RISC-V arhitektūrai, kas atbalsta SUSP SBI paplašinājumu, tiek ieviesta gaidīšanas režīma atbalsts ar stāvokļa saglabāšanu RAM atmiņā. Tiek nodrošināta iespēja izmantot sistēmas izsaukumu riscv_hwprobe() informācijas iegūšanai par atbalstītajām RISC-V komandu kopas paplašinājumiem.
  • Virtualizācija un drošība
    • Tiek pievienoti jauni sistēmas izsaukumi lsm_list_modules(), lsm_get_self_attr() un lsm_set_self_attr() iekļauto LSM moduļu (Linux Security Modules) saraksta izvadīšanai un LSM moduļa atribūtu iegūšanai/iestatīšanai. Tiek ieviesta jauna struktūra lsm_ctx saziņai LSM kontekstā starp lietotāju telpu un kodolu.
    • AppArmor apakšsistēma ir pārgājusi uz SHA-256 algoritmu, lai pārbaudītu noteikumus, tā vietā, lai izmantotu SHA-1 hash.
    • No kodola ir noņemta strlcpy() funkcijas īstenošana, kas vasarā tika iekļauta C bibliotēkā Glibc 3.38. Strlcpy ir alternatīva funkcijai strncpy(), kas nodrošina aizsardzību pret bufera pārpildīšanu un obligāti pievieno nulles bajtu kā virziena slēgu.
    • Hiper-vizorā KVM Tiek pievienots atbalsts apakšsistēmai guest_memfd (guest-first memory), kas nodrošina atmiņas pārvaldības funkcijas, kas ļauj ieviest iespējas un optimizācijas, ko nevar sasniegt, izmantojot kopējo atmiņas pārvaldības apakšsistēmu. Piemēram, guest_memfd ļauj rezervēt un atspoguļot viesu sistēmā tādu atmiņas apgabalu, kurš nav pieejams hosta vidē, ko var izmantot konfidenciālu aprēķinu organizēšanai.
    • Kā viesu sistēmām, kas darbojas zem KVM hipervizora, tiek ieviests atbalsts Intel procesoros nodrošinātajam LAM (Lineārās adreses maskēšana) režīmam, kas ļauj izmantot daļu no 64 bitu adresātu (no 57. līdz 62. bitam) neadresējošu metadatu glabāšanai.
    • KVM hipervizors atbalsta 52 bitu (LPA2) fiziskās adreses ARM64 arhitektūras sistēmām. x86 arhitektūras sistēmām ir iespēja veidot kodolu bez Hyper-V hipervizoru emulācijas, kas ļauj samazināt kodola izmēru.
    • Pievienots iaa (IAA Compression Accelerator) draiveris, lai paātrinātu datu saspiešanas un izsaiņošanas operācijas, izmantojot DEFLATE metodi, izmantojot Intel Analytics Accelerator (IAA) kriptogrāfisko paātrinātāju iespējas.
    • Hosta vidē ir ieviesta Intel TDX (Trusted Domain Extensions) mehānisma atbalsts, ļaujot, izmantojot KVM hipervizoru, veidot aizsargātas viesu vidēs, kurās tiek izmantota atmiņas šifrēšana. virtuālo mašīnu.
    • SELinux ir pievienots SID identifikators «init», kas ļauj izcelt procesus, kas tiek palaisti ielādes sākumposmā pirms SELinux politiku piemērošanas. Uzlabota /sys/fs/selinux interfeisa pārvaldība.
  • Tīkla subsistēma
    • Veikta zema līmeņa pamata tīkla datu struktūru reorganizācija, lai uzlabotu kešatmiņas efektivitāti. Agrāk lauki tīkla stēka socks, netdev, netns un mibs struktūrās atradās pievienošanas secībā, kas ierobežoja procesora kešatmiņas izmantošanu. Pārskatot mainīgo novietojumu struktūrās, tika panākts ievērojams TCP veiktspējas pieaugums, samazinot kešatmiņas rindu izmantošanu datu pārsūtīšanas posmā un optimizējot piekļuvi mainīgajiem. Apstrādājot daudzas paralēlas TCP savienojumus, paātrinājums var sasniegt 40%.
    • Tika noņemta bpfilter apakšsistēma, kas izmanto BPF pakotņu filtrēšanai. Bpfilter tika ieviests kopš 4.18 versijas, bet tā arī netika attīstīta līdz lietošanai derīgai līmenim. Pēdējos gados bpfilter kods kodolā netika attīstīts un izstrāde turpinājās Facebook atsevišķā repozitorijā.
  • Aprīkojums
    • Tiek iekļauts jauns drm vadītājs (Direct Rendering Manager) Xe GPU, kas balstīts uz Intel Xe arhitektūras, ko izmanto Intel Arc ģimenes videokartēs un integrētajā grafikā, sākot ar Tiger Lake procesoriem. Xe vadītājs tiek pozicionēts kā pamats jauno mikroshēmu darbībai, kas nav saistīta ar veco platformu atbalsta kodu. Vadītājs izveidots, izmantojot jaunu arhitektūru, kurā aktīvāk tiek izmantoti jau esošie DRM apakšsistēmas komponenti, kā arī tipiskie i915 vadītāja komponenti, kas nav saistīti ar konkrētiem GPU, piemēram, kods ekrānu mijiedarbībai, atmiņas modelis un execbuf realizācija. Mesa OpenGL un Vulkan darbība virs Xe vadītāja tiek īstenota izmaiņu līmenī, kas ieviestas esošajos Mesa vadītājos Iris un ANV.
    • i915 vadītājā turpināta darbu pie Intel LunarLake (Xe 2) mikroshēmu atbalsta īstenošanas. Uzlabots Intel Meteor Lake mikroshēmu atbalsts.
    • Nouveau vadītājā īstenota noklusējuma iestatījumu izmantošana funkcijām GSP apstiprināšanai NVIDIA GPU, kas balstīti uz Turing un Ampere mikroarhitektūrām, kurā GPU inicializācijas un vadības operācijas veic atsevišķs GSP (GPU System Processor) mikroprocesors. Ieslēdzot iestatījumu, vadītājs darbosies, sazinoties ar apstiprinājumu, nevis tieši programmējot aparatūras mijiedarbības operācijas.
    • AMDGPU vadītājā īstenota ACPI WBRF un VPE DPM atbalsts, mainīta PCIe kanāla ātruma apstrāde, izmantojot 64 bitu rindas numurus sinhronizācijas rindās, pievienots AMD specifisks krāsu vadības mehānismu atbalsts, novērsta problēma ar ieejas režīmu.
    • Pievienota pamata vadītāja realizācija Broadcom VideoCore 7.1 GPU, kas tiek izmantots Raspberry Pi 5 plātņu plātnēs.
    • Pievienots vadītājs PowerVR 6 sērijas GPU, kas balstīts uz Imagination Technologies Rogue mikroarhitektūru.
    • Pievienota Thunderbolt/USB4 kontrolieru atbalsts, kas ieintegrēti mikroshēmās, kas balstītas uz Intel Lunar Lake mikroarhitektūru.
    • Pievienoti vadītāji kamerām, ko izmanto Starfive SoC, GalaxyCore GC2145/GC0308, Chips&Media Wave un THine THP7312.
    • Pievienots atbalsts NSO (Nintendo Switch Online) spēļu kontrolieriem — veco SNES (Super Nintendo), Genesis un N64 (Nintendo 64) kontrolieru varianti, pielāgoti Nintendo Switch. Pievienots vadītājs Adafruit Seesaw spēļu kontrolieriem. xpad vadītājā pievienots Lenovo Legion Go kontrolieru atbalsts.
    • DTS draiverī pievienota atbalsts spēļu ierīcēm Powkiddy RK2023, Powkiddy X55 un Anbernic RG351V.
    • Pievienots atbalsts skaņas sistēmām, kas izmantotas NXP i.MX8m MICFIL, Qualcomm SM8250, AMD ACP5x, Intel Arrow Lake, SM8550, SM8650 un X1E80100 mikroshēmās.
    • Uzņēmums AMD ir veicis izmaiņas, kas saistītas ar nākamās procesoru sērijas atbalstu, kas balstīta uz jauno mikroarhitektūru Zen 5.
    • Pievienots atbalsts ARM64 SoC: Qualcomm SM8650 (Snapdragon 8 Gen 3), Qualcomm X1E80100 (Snapdragon X Elite), Samsung Exynos Auto v920, Google GS101 (Tensor G1), MediaTek MT8188 un Unisoc UMS9620 (Tanggula 7).
    • Pievienots atbalsts ARM platformām un ierīcēm: Huashan Pi, Microsoft Lumia, HTC One Mini 2, Motorola MotoG 4G, Huawei Honor 5X/GR5, Anbernic RG351V, Powkiddy RK2023, Powkiddy X55, ComXpress balstīts uz Marvell CN913x, Chromebook Lenovo, Asus un Acer balstīts uz Mediatek MT8183, Toradex Verdin AM62, plates balstītas uz Allwinner H616/H618.
    • Atbalsts ARM11 ARMv6K SMP procesoriem ir pārtraukts.

Tajā pašā laikā Latinoamerikas Brīvā programmatūras fonds izveidoja pilnīgi brīvas Linux-libre 6.8 kodola variantu, kas attīrīts no cietā programmatūras un draiveru elementiem, kas satur nesabiedrisko komponentu vai koda fragmentus, kuru pielietojums ir ierobežots ražotāja. 6.8 laidienā ir atjaunināts tīrīšanas kods blobu attīrīšanai dažādos draiveros un apakšsistēmās. Tīrīšana notikusi Intel qat_420xx, Imagination PowerVR, Intel Xe, Chips&Media Wave5, Intel VSC, Aquantia PHY un Realtek rtw8922a draiveros. Saistībā ar dzēšanu no kodola ir pārtraukta draiveru atkritumu tīrīšana atmel, hermes, orinoco_usb, libertas_cs un zd1201. Tīrīšana tika veikta bloku nosaukumu attīrīšanai dts-failos (ierīces koks) ARM un Aarch64 arhitektūrām. Tika novērstas problēmas ar i915 draivera tīrīšanu.

Avots: opennet.lv

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster