Linux kodola 6.10 izlaidums

Pēc diviem mēnešiem izstrādes Linuss Torvalds prezentēja Linux 6.10 kodola izlaišanu. Starp ievērojamākajām izmaiņām: ntsync draiveris ar Windows NT sinhronizācijas primitīvām, DRM Panic komponenti „zilā nāves ekrāna” analogam, veco Alpha CPU atbalsta pārtraukšana, integritātes verifikācijas iespēja FUSE bāzētā FS, piekļuves ierobežojums ioctl caur Landlock mehānismu, atmiņas pieprasījumu profilēšanas apakšsistēma, sistēmas izsaukums mseal(), šifrētas datu apmaiņas iespēja ar TPM ierīcēm, atbalsts augstas prioritātes darba rindām dm-crypt, panthor draiveris desmitajai paaudzei Mali GPU.

Jaunajā versijā ir 14564 labojumi no 1989 izstrādātājiem, ielāpa izmērs ir 41 MB (izmaiņas skāra 12509 failus, pievienotas 547663 koda rindas, dzēstas 312464 rindas). Iepriekšējā izlaidumā bija 15680 labojumu no 2106 izstrādātājiem, ielāpa izmērs bija 54 MB. Aptuveni 41% no visām 6.10 izmaiņām ir saistītas ar ierīču draiveriem, apmēram 15% izmaiņu attiecas uz kodu, kas ir specifisks aparatūras arhitektūrām, 13% ir saistītas ar tīkla kaudzi, 5% – ar failu sistēmām un 4% – ar iekšējām kodola apakšsistēmām.

Galvenās jaunās funkcijas kodolā 6.10:

  • Disku apakšsistēma, I/O un failu sistēmas
    • Tika pievienota jauna fcntl operācija F_DUPFD_QUERY, ar kuras palīdzību process var noteikt, ka divi dažādi failu deskriptori atsaucas uz vienu un to pašu failu. Atšķirībā no līdzīgām iespējām, ko nodrošina sistēmas izsaukums kcmp(), F_DUPFD_QUERY nenodrošina papildu informācijas atklāšanu un darbojas sistēmās ar atslēgtu kcmp().
    • FUSE apakšsistēmā, ko izmanto failu sistēmu izstrādei lietotāja telpā, ir ieviesta iespēja izmantot fs-verity mehānismu, lai pārbaudītu failu integritāti un autentiskumu.
    • dm-crypt modulī, kas tiek izmantots blokierīču šifrēšanai, ir pievienota opcija „high_priority”, kas ļauj izmantot augstas prioritātes darba rindas, lai uzlabotu veiktspēju jaudīgos. serveriemNoklusējuma režīms ir izslēgts, jo tas var izraisīt paaugstinātu aizturi parastajos datoros, veicot darbus, kas nav saistīti ar šifrēšanu, piemēram, audio apstrādi.
    • Pievienots netlink protokols NFS serveru pārvaldībai kodolā. Lietotāja telpā, balstoties uz šo protokolu, ir izstrādāta utilīta nfsdctl. NFS v2 montēšanas atbalsts ir izslēgts pēc noklusējuma (utilītē mount.nfs NFS v2 atbalsts tika pārtraukts jau 2021. gadā).
    • XFS failu sistēmā turpināts darbs pie fsck utilītas realizācijas, lai pārbaudītu un labotu problēmas online režīmā, neizjaucot failu sistēmu. Pievienots ioctl XFS_IOC_EXCHANGE_RANGE, lai atomārā režīmā apmainītu baitus starp diviem failiem.
    • Btrfs ir ieviesta atbalsta samazināšanai (shrinker) neizmantotām ekstenziju kartēm, kas var būt noderīgi, lai samazinātu atmiņas patēriņu, kad sistēmā trūkst atmiņas. Datu saspiešanas kods un funkcija put_file_data() ir pārveidotas, lai izmantotu atmiņas lapu folijus (page folios). Pārstrādāts ekstenziju bloķēšanas mehānisms, veicot reverse write operācijas.
    • Ext4 failu sistēmā pievienots ioctl FS_IOC_GETFSSYSFSPATH atbalsts, lai noteiktu norādītās pievienotās failu sistēmas atrašanās vietu hierarhijā /sys/fs.
    • Failu sistēmas OPENPROMFS, ISOFS, QNX6, NILFS2, MINIX un FREEVXFS ir pārgājušas uz jaunu nodalījumu montēšanas API.
    • EROFS (Extendable Read-Only File System) failu sistēmā, kas paredzēta izmantošanai tikai lasāmajās nodalījumos, pievienots Zstandard saspiešanas algoritma atbalsts.
    • Bcachefs ir sagatavots fsck veikšanai bez nodalījuma izjaukšanas (online pārbaude). Pievienoti uzlabojumi un labojumi, lai palielinātu uzticamību. Ieviesta iespēja atjaunināt un atgriezt failu sistēmas formātu režīmā 'nochanges', kas izslēdz ierakstīšanu un saglabā metadatus tikai atmiņā.
    • OverlayFS failu sistēmā pievienots atbalsts pagaidu failu izveidei, izmantojot O_TMPFILE opciju.
    • Pārtraukta bloku ierīču caurlaides ierobežošanas mehānisma 'CONFIG_BLK_DEV_THROTTLING_LOW' atbalsts, kas kopš 2017. gada saglabāja eksperimentālu statusu, neiegūstot plašāku pielietojumu praksē un apgrūtinot bloku ierīču apakšsistēmas atbalstu.
  • Atmiņa un sistēmas pakalpojumi
    • Pievienots, bet atslēgts kompilēšanas laikā, ntsync vadītājs, kas realizē simbolisko ierīci /dev/ntsync un sinhronizācijas primitīvu kopumu, ko izmanto Windows NT kodolā. Šādu primītu realizācija kodola līmenī būtiski paaugstina Windows spēļu veiktspēju, kas tiek palaižotas ar Wine palīdzību. Veiktspējas pieaugums tiek sasniegts, izskaidrojot administratora slogu, kas saistīts ar RPC izmantošanu lietotāja telpā. Atsevišķa vadītāja izveide Linux kodolam izskaidrojas ar NT sinhronizācijas API korektu realizāciju virs esošajiem primītiem kodolā.
    • Pievienota apakšsistēma atmiņas piešķiršanas operāciju profilēšanai Linux kodolā, kas ļauj identificēt atmiņas noplūdes kodolā un atvieglo optimizācijas veikšanu atmiņas patēriņā. Apakšsistēma nodrošina zemu slogu, kas ļauj to izmantot ne tikai kompilēšanas testēšanai, bet arī darba sistēmās.
    • Pievienota sākotnējā avārijas apstrādātāja realizācija kodolā - DRM Panic, kas izmanto DRM (Direct Rendering Manager) apakšsistēmu, lai attēlotu krāsainu ziņojuma ziņojumu „zilā ekrāna nāvē”. Nākamajā laidienā plānots pievienot iespēju parādīt logo un QR kodu ekrānā notikuma gadījumā.
    • Turpināta izmaiņu pārvietošana no Rust-for-Linux filiāles, kas saistītas ar Rust valodas izmantošanu kā otro valodu vadītāju un moduļu izstrādei kodolā (Rust atbalsts pēc noklusējuma nav aktivizēts un neietekmē Rust kā obligātu kompilēšanas atkarību kodolam). Veikta pāreja uz Rust 1.78 versijas izmantošanu, kas ļāva pieslēgties oficiālajai bibliotēkai alloc, nevis savai versijai. Pievienotas abstrakcijas laika apstrādei kodolā (apvalks virs ktime_t struktūras). Pievienots atbalsts kodola komponentu izmantošanai Rust valodā RISC-V arhitektūras sistēmās.
    • BPF programmās ir ieviesta iespēja izmantot gaidīšanas rindas (wait queue) kodolā. Tika pievienotas funkcijas bpf_preempt_disable un bpf_preempt_enable, kas ļauj izveidot nepretraucamas plānošanas sekcijas ar kodu. Ir nodrošināta piekļuve BPF programmām kodola kriptogrāfiskajām funkcijām (crypto). Ir ieviesta JIT kompilācijas atbalsts BPF programmām sistēmās ar 32 bitu procesoriem ARCv2.
    • 32 bitu ARM sistēmām ir ieviests atbalsts kodola būvēšanai ar Clang kompilatoru, ieslēdzot CFI (Control Flow Integrity) aizsardzības režīmu, kas bloķē normāla izpildes secības (control flow) pārkāpumus, kas rodas, pielietojot eksploitus, kas maina funkciju rādītājus, kas tiek glabāti atmiņā.
    • Ir pievienota iespēja tieši atspoguļot caur mmap() ātras buferu izsekošanas saturu lietotāja telpā bez papildu kopēšanas.
    • Ieviesa sistēmas izsaukumu 'mseal', kas ļauj procesiem izveidot bloķēšanu izmaiņām noteiktās sava adreses telpas daļās. Praksē šo jauno sistēmas izsaukumu plāno izmantot Chrome pārlūkā, lai uzlabotu sandbox izolāciju.
    • X32 subarkitektūrai, kas nodrošina hibrīdo x86_64 ABI, ļaujot 64 bitu sistēmās izmantot 32 bitu atmiņas adresācijas modeli (procesors darbojas 64 bitu režīmā, bet izmanto 32 bitu rādītājus un aritmētiskās operācijas), ir pievienots Shadow Stack mehānisma atbalsts, kas ļauj bloķēt daudzu eksploitēšanu darbības, izmantojot Intel procesoru aparatūras iespējas, lai aizsargātu pret atgriešanas adreses pārrakstīšanu funkcijas izsaukumā, kad ir noticis buferu pārpildījums stekā.
    • ARM64 arhitektūras sistēmās ir ieviestas iespējas, saistītas ar rakstīšanas aizsardzību atmiņas apgabaliem un lapu tabulas elementiem sistemātiskajā izsaukumā userfaultfd(), kas dod iespēju izveidot apstrādātājus atsauču gadījumos uz neizdalītām atmiņas lapām (page faults) lietotāja telpā.
    • Tika kodu atbalsts 1995. gadā laistajiem Alpha 21164 (EV5) procesoriem un agrākām sērijām. Atbalsta kods šiem procesoriem bija sarežģīts, jo tiem trūka piekļuves atmiņai pa individualitāti bajtiem. Alpha bija pirmā arhitektūra, uz kuru tika portēts Linux kodols, sākotnēji pieejams tikai x86 sistēmām.
  • Virtualizācija un drošība
    • Pievienots atbalsts šifrētai datu apmaiņai ar TPM (Trusted Platform Module) ierīcēm un transakciju integritātes pārbaudei.
    • LSM modulī Landlock, kas ļauj ierobežot grupas procesu mijiedarbību ar ārējo vidi, pievienota iespēja piemērot noteikumus, lai ierobežotu piekļuvi ioctl() izsaukumiem.
    • Ieteikta ielādes laikā iestatāma opcija init_mlocked_on_free, kas nodrošina atmiņas satura nullēšanu atkārtotājiem neiznīcināmiem rajoniem, izmantojot mlock() izsaukumu, ja šī atmiņa tiek atbrīvota bez atbloķēšanas ar munlock() izsaukumu. Šīs opcijas izmantošana ļauj novērst kriptogrāfisko atslēgu apglabāšanu atmiļā kritiena gadījumā, kad tās izmanto programma.
    • Crypto apakšsistēmā paātrināta diska šifrēšanas operāciju izpilde, izmantojot AES-XTS algoritmu x86_64 sistēmās ar Intel un AMD procesoriem, kas atbalsta VAES, AVX2, VPCLMULQDQ, AVX10 vai AVX512 paplašinājumus.
    • Iespēja vākšanai statistikas par kodola kriptosistēmas izmantošanu (CONFIG_CRYPTO_STATS) ir noņemta. Šī funkcionalitāte netika praktiski izmantota un izraisa ievērojamu veiktspējas samazinājumu, kā arī radīja jūtamu papildu slodzi uz uzturētājiem.
  • Tīkla subsistēma
    • Ievērojami palielināta datu nosūtīšanas veiktspēja zero-copy režīmā, izmantojot io_uring apakšsistēmu. Pievienota iespēja apvienot ("bundle") vairākus buferus datu nosūtīšanai un saņemšanai.
    • Pārstrādāta atkārtojošā atmiņas tīrīšanas kodi, ko izmanto, nosūtot failu deskriptatori caur Unix citātēm, izmantojot SCM_RIGHTS ziņojumus. Izmaiņa ļauj atrisināt pašu atkārtotāju skaitītāju uzkrāšanās problēmu.
    • Pievienota iespēja uzstādīt filtrus PFCP (Packet Forwarding Control Protocol), kas tiek izmantots 4G un 5G tīklos.
    • Pievienota SO_PEEK_OFF tīkla soketu opcijas atbalsts, kas līdzīgi kā Unix soketiem ļauj noteikt datu nobīdi rindā, ko izmanto sistēmas izsaukumā recv, kad norādīts MSG_PEEK flags (atzīmē datus kā neizlasītus, un tie atkal tiks izsniegti nākamajā recv izsaukumā).
    • Ievadīta io_uring apakšsistēmā IORING_CQE_F_SOCK_NONEMPTY operācijas atbalsts, kas ļauj noteikt, vai tīkla soketā ir pieprasījumi par savienojumu, kas gaida apstrādi.
    • Tiek piedāvāta PoE (Power over Ethernet) tehnoloģijas realizācija, pamatojoties uz iepriekš pieejamo kodu PoDL (Power over Data Line) atbalstam un saderīgu ar PoE kontrolieriem Microchip PD692x0 un TI TPS23881.
    • TCP, DCCP un MPTC protokoliem pievienots rstreason mehānisma atbalsts, kas ļauj noteikt RST paketu nosūtīšanas iemeslu (piemēram, NO_SOCKET).
  • Aprīkojums
    • Pievienots panthor draiveris desmitajai GPU Mali paaudzei (G310, G510, G710), kas izmanto CSF (Command Stream Frontend) tehnoloģiju, novirzot dažas draivera funkcijas uz firmware pusi, lai mazinātu CPSl slodzi un piedāvātu jaunu darba izpildes organizēšanas modeli uz GPU. Izmaiņas jaunā draivera atbalstam ir pieņemtas arī Mesa un iekļautas Gallium panfrost GPU Mali draiverī.
    • i915 draiverī pievienoti jauno Intel Arc (DG2/Alchemist) diskreto videokartes PCI identifikatori.
    • Turpināta drm draivera (Direct Rendering Manager) Xe izstrāde Intel Xe arhitektūras GPU, kas tiek izmantoti Intel Arc videokartēs un integrētajā grafikā, sākot ar Tiger Lake procesoriem. Pievienots Arrow Lake H CPU atbalsts. Turpināta Lunar Lake procesoru atbalsta ieviešana. Pievienots sākotnējais SR-IOV (Single Root I/O Virtualization) mehānisma atbalsts.
    • AMDGPU draiverī pievienots SMU 14.0 (System Management Unit) atbalsts. Pievienota jauno AMD GPU izmantošanas iespēja RISC-V arhitektūras sistēmās.
    • Pievienots draiveris Tegra Security Engine криптографisko operāciju paātrinātājam, ko var izmantot AES un dažādu haša algoritmu paātrināšanai.
    • Pievienots atbalsts ekrāna paneļiem LG SW43408, Innolux G121XCE-L01 LVDS, RK3326 GameForce Chi, Crystal Clear CMT430B19N00, POWERTIP PH128800T006-ZHC01, Startek KD050HDFIA020-C020A, Pixel 3a, Khadas TS050 V2, Raydium RM69380, BOE NT116WHM-N44, CMN N116BCA-EA1 un AUO B120XAN01.0.
    • Pievienota atbalsts Lenovo Thinkbook 13x Gen 4, Lenovo Thinkbook 16P Gen 5, Lenovo Thinkbook 13X un ASUS Zenbook 2024 HN7306 klēpjdatoru skaņas sistēmām. Pievienots atbalsts ārējām skaņas kartēm Vocaster One un Vocaster Two. Pievienots draiveris NAU8325 pastiprinātājiem no Nuvoton Technology.
    • HID-Steam draiverī pievienots atbalsts IMU (Inertial Measurement Unit) Steam Deck spēļu kontrolierim, kas ļauj izmantot atsevišķu evdev mezglu piekļuvei žiroskopa un akselerometra datiem.
    • Iekļautas izmaiņas ARM SoC Snapdragon X Elite atbalstam, kurā ir iebūvēts 12 kodolu Qualcomm Oryon CPU un Qualcomm Adreno GPU. Čips ir paredzēts izmantošanai klēpjdatoros un personālajos datoros un pārsniedz Apple M3 un Intel Core Ultra 155H jaudas testējumā.
    • Pievienots atbalsts ARM platformām, SoC un ierīcēm: PocketBook 614 Plus, Sony Xperia Z3, Xperia 1 V, Samsung Galaxy S5 China, Motorola Moto G, RK3326 GameForce Chi, Anbernic RG35XX (Plus/H/2024), Airoha EN7581, Radxa ROCK 3C, ArmSom Sige7, Tanix TX1, Toradex Colibri iMX8DX, Renesas RZ/V2H, Forlinx OK3588-C, Protonic MECSBC, Emcraft Systems NavQ+, NXP S32G3, Wolfvision pf5, Amlogic A4/A5, ASUS RT-AC3200, ASUS RT-AC5300, ASrock E3C256D4I, IBM system1 BMC, Meta Harma BMC(AST2600), ASRock X570D4U BMC, Au-Zone Maivin AI Vision Starter Kit.
    • Pievienots atbalsts Milk-V Mars platēm, kas izmanto RISC-V arhitektūras SoC Starfive JH7110.

Tajā pašā laikā Latinoamerikas Brīvā programmatūras fonds izveidoja variantu pilnībā brīvas Linux 6.10 kodola — Linux-libre 6.10-gnu, kas attīrīts no ražotāja ierobežotiem komponentiem vai koda fragmentiem saturošām programmām un draiveriem. Versijā 6.10 atjaunināta bloķēšanas tīrīšanas kods Intel i915, rtl8xxxu, qla2xxx un QCAI sahara draiveros. Tīrīti bloķētie nosaukumi dts failos (devicetree) Aarch64 arhitektūrai. Tīrīti no bloķētiem jaunie faili, kas pievienoti Adreno, Intel IPU3 un PRUEth draiveros. Veikta jauno draiveru Panthor, Intel IPU6, PRUEth SR1, rtw8703b, tps23881, air_en8811h, Intel ISH HID un pcm6240 tīrīšana. Tīrīšana USB draiverim Prism2.5/3 USB tika apturēta, jo tas tika noņemts no kodola.

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