Linux 6.3 nüvə buraxılışı

İki aylıq inkişafdan sonra Linus Torvalds Linux 6.3 nüvəsini buraxdı. Ən diqqətəlayiq dəyişikliklər arasında: köhnəlmiş ARM platformalarının və qrafik sürücülərinin təmizlənməsi, Rust dil dəstəyinin davamlı inteqrasiyası, hwnoise yardım proqramı, BPF-də qırmızı-qara ağac strukturlarına dəstək, IPv4 üçün BIG TCP rejimi, quraşdırılmış Dhrystone benchmark, söndürmək imkanı memfd-də icra, BPF-dən istifadə edərək HID drayverlərinin yaradılması dəstəyi, blok qruplarının parçalanmasını azaltmaq üçün Btrfs-də dəyişikliklər edilmişdir.

Yeni versiya 15637 tərtibatçıdan 2055 düzəliş qəbul etdi; yamaq ölçüsü - 76 MB (dəyişikliklər 14296 fayla təsir etdi, 1023183 sətir kod əlavə edildi, 883103 sətir silindi). Müqayisə üçün qeyd edək ki, əvvəlki versiyada 16843 tərtibatçıdan 2178 düzəliş təklif edilmişdi; yamaq ölçüsü - 62 MB. 39 nüvəsində təqdim edilən bütün dəyişikliklərin təxminən 6.3%-i qurğu drayverləri ilə, dəyişikliklərin təxminən 15%-i hardware arxitekturasına xas kodun yenilənməsi ilə, 10%-i şəbəkə yığını, 5%-i fayl sistemləri və 3%-i ilə bağlıdır. % daxili nüvə alt sistemlərinə.

Kernel 6.3-də əsas yeniliklər:

  • Yaddaş və sistem xidmətləri
    • Köhnə və istifadə olunmamış ARM lövhələri ilə əlaqəli kodun əhəmiyyətli dərəcədə təmizlənməsi həyata keçirilmişdir ki, bu da nüvə mənbələrinin ölçüsünü 150 min sətir azaltmışdır. 40-dan çox köhnə ARM platforması silindi.
    • BPF proqramları şəklində həyata keçirilən HID (İnsan İnterfeys Cihazı) interfeysi ilə daxiletmə qurğuları üçün drayverlər yaratmaq imkanı həyata keçirilib.
    • Rust-for-Linux filialından sürücülər və kernel modullarını inkişaf etdirmək üçün Rustdan ikinci dil kimi istifadə ilə bağlı əlavə funksionallığın daşınması davam etdirildi. Rust dəstəyi defolt olaraq aktiv edilmir və Rust'un nüvə qurma asılılığı kimi məcburi olaraq daxil edilməsi ilə nəticələnmir. Əvvəlki buraxılışlarda təklif olunan funksionallıq Arc növləri (istinad sayı ilə göstəricilərin tətbiqi), ScopeGuard (əhatə dairəsi xaricində həyata keçirildikdə təmizlənir) və ForeignOwnable (C və Rust kodu arasında göstərici hərəkətini təmin edir) dəstəyi ilə genişləndirilib. . 'alloc' paketindən 'borc' modulu silindi ("İnək" yazın və "ToOwned" xüsusiyyəti). Qeyd olunur ki, kerneldə Rust-a dəstək vəziyyəti artıq Rustda yazılan ilk modulları nüvəyə qəbul etməyə başlamağa yaxındır.
    • X86-64 sistemlərində istifadəçi rejimi Linux (kerneli istifadəçi prosesi kimi işlədir) Rust ilə yazılmış kodu dəstəkləyir. Bağlantı vaxtı optimallaşdırması aktivləşdirilmiş (LTO) cingiltidən istifadə edərək İstifadəçi rejimi Linux qurmaq üçün əlavə dəstək.
    • Avadanlıq davranışının səbəb olduğu gecikmələri izləmək üçün hwnoise yardım proqramı əlavə edildi. Əməliyyatların yerinə yetirilməsi müddətindəki sapmalar (jitter) kəsilmə emalı dayandırıldıqda, hesablamaların 10 dəqiqəsində bir mikrosaniyədən çox olduqda müəyyən edilir.
    • İstifadəçi məkanı komponentləri olmayan konfiqurasiyalarda CPU performansını qiymətləndirmək üçün istifadə edilə bilən Dhrystone etalon tətbiqi ilə kernel modulu əlavə edilmişdir (məsələn, yalnız nüvənin yüklənməsini həyata keçirən yeni SoC-lər üçün keçid mərhələsində).
    • BPF proqramları üçün yaddaş istehlakının uçotunu söndürmək üçün "cgroup.memory=nobpf" kernel əmr xətti seçimi əlavə edildi, bu, təcrid olunmuş konteynerləri olan sistemlər üçün faydalı ola bilər.
    • BPF proqramları üçün yeni xəritəçəkmə növü əlavə etmək əvəzinə kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) istifadə edən qırmızı-qara ağac məlumat strukturunun tətbiqi təklif olunur.
    • Yenidən işə salınan ardıcıllıqlar mexanizmində (rseq, yenidən işə salınan ardıcıllıqlar) proseslərə CPU nömrəsi ilə müəyyən edilmiş paralel icra identifikatorlarını (yaddaş xəritəsi paralellik identifikatoru) ötürmək imkanı əlavə edilmişdir. Rseq, başqa bir mövzu ilə kəsildikdə, təmizlənərək yenidən sınaqdan keçirilən əməliyyatları atomik şəkildə tez yerinə yetirmək üçün bir vasitə təqdim edir.
    • ARM prosessorları SME 2 (Scalable Matrix Extension) təlimatlarını dəstəkləyir.
    • s390x və RISC-V RV64 arxitekturaları üçün "BPF trambolin" mexanizminin dəstəyi həyata keçirilir ki, bu da kernel və BPF proqramları arasında zənglərin ötürülməsi zamanı yükü minimuma endirməyə imkan verir.
    • RISC-V arxitekturasına əsaslanan prosessorlu sistemlərdə sətir əməliyyatlarını sürətləndirmək üçün “ZBB” təlimatlarının istifadəsi tətbiq edilmişdir.
    • LoongArch təlimat dəsti arxitekturasına əsaslanan sistemlər üçün (Loongson 3 5000 prosessorlarında istifadə olunur və MIPS və RISC-V-ə bənzər yeni RISC ISA tətbiq olunur), nüvənin ünvan məkanının təsadüfiləşdirilməsinə dəstək (KASLR), yaddaşda nüvənin yerdəyişməsi (yer dəyişdirmə) ), aparat nöqtələrinin dayanması və kprobe mexanizmi.
    • Yaddaşa girişin tezliyinə əsasən yaddaşı boşaltmağa imkan verən DAMOS (Data Access Monitoring-based Operation Schemes) mexanizmi DAMOS-da yaddaşın müəyyən sahələrini emaldan kənarlaşdırmaq üçün filtrləri dəstəkləyir.
    • Minimal standart C kitabxanası Nolibc s390 arxitekturası və Arm Thumb1 təlimat dəsti üçün dəstəyi həyata keçirir (ARM, AArch64, i386, x86_64, RISC-V və MIPS dəstəyinə əlavə olaraq).
    • Objtool kernel qurulmasını sürətləndirmək və qurma zamanı pik yaddaş istehlakını azaltmaq üçün optimallaşdırılmışdır (kerneli "allyesconfig" rejimində qurarkən, 32 GB RAM-a malik sistemlərdə proseslərin məcburi dayandırılması ilə bağlı heç bir problem yoxdur).
    • Intel ICC kompilyatoru tərəfindən nüvənin yığılmasına dəstək dayandırıldı, uzun müddət işləmirdi və heç kim onu ​​düzəltmək arzusunu ifadə etmədi.
  • Disk alt sistemi, giriş/çıxış və fayl sistemləri
    • tmpfs, quraşdırılmış xarici bölmədə xüsusi istifadəçinin fayllarını cari sistemdəki başqa bir istifadəçi ilə əlaqələndirmək üçün istifadə olunan quraşdırılmış fayl sistemi istifadəçi ID-nin xəritələşdirilməsini dəstəkləyir.
    • Btrfs-də, blok qruplarının parçalanmasını azaltmaq üçün, blokları ayırarkən genişliklər ölçüyə bölünür, yəni. hər hansı blok qrupu indi kiçik (128KB-a qədər), orta (8MB-a qədər) və böyük həcmlərlə məhdudlaşır. Raid56 tətbiqi yenidən işlənib. Yoxlama məbləğlərini yoxlamaq üçün yenidən işlənmiş kod. Kataloqlar üçün utime keşləmə və yalnız lazım olduqda əmrləri yerinə yetirməklə göndərmə əməliyyatını 10 dəfəyə qədər sürətləndirmək üçün performans optimallaşdırmaları edilmişdir. Paylaşılan məlumat (anlık görüntülər) üçün geri keçid yoxlamalarını atlayaraq 10x daha sürətli fiemap əməliyyatları. Metadata ilə əməliyyatlar b-ağac strukturlarında açarların axtarışını optimallaşdırmaqla XNUMX% sürətləndirilir.
    • Eksklüziv kilidlər əvəzinə paylaşılan inode kilidlərindən istifadə edərək, birdən çox prosesə eyni vaxtda əvvəlcədən ayrılmış bloklara birbaşa I/O əməliyyatlarını yerinə yetirməyə imkan verməklə ext4 FS-in təkmilləşdirilmiş performansı.
    • F2fs-də kodun oxunuşunu yaxşılaşdırmaq üçün işlər görülüb. Atom yazısı və yeni həcm önbelleği ilə bağlı vacib məsələlər düzəldildi.
    • Yalnız oxunan bölmələr üçün nəzərdə tutulmuş EROFS (Enhanced Only Read-Only File System) verilənlərə giriş gecikməsini azaltmaq üçün sıxılmış faylın dekompressiya əməliyyatlarını CPU-ya bağlamaq qabiliyyətinə malikdir.
    • BFQ I/O planlaşdırıcısı bir neçə ayrıca idarə olunan sürücüdən (Multi Actuator) istifadə edənlər kimi təkmil fırlanan disk sürücüləri üçün dəstək əlavə etdi.
    • NFS müştəri və serverinin həyata keçirilməsinə AES-SHA2 alqoritmindən istifadə edərək məlumatların şifrələnməsi dəstəyi əlavə edilmişdir.
    • FUSE (İstifadəçi Məkanında Fayl Sistemləri) alt sistemi sorğuya əlavə məlumat daxil etməyə imkan verən sorğunun genişləndirilməsi mexanizmi üçün əlavə dəstək verib. Bu xüsusiyyət əsasında FS sorğusuna qrup identifikatorlarının əlavə edilməsi həyata keçirilir ki, bu da FS-də obyektlər yaratarkən (create, mkdir, symlink, mknod) giriş hüquqlarını nəzərə almaq üçün zəruridir.
  • Virtuallaşdırma və Təhlükəsizlik
    • X86 sistemləri üçün KVM hipervizoru genişləndirilmiş Hyper-V hiperzəngləri üçün dəstək əlavə edir və onları istifadəçi məkanı host mühitində işləyən idarəçiyə yönləndirməyi təmin edir. Dəyişiklik Hyper-V hipervizorunun iç içə buraxılması üçün dəstəyi həyata keçirməyə imkan verdi.
    • KVM, performansın ölçülməsi ilə bağlı PMU (Performans Monitoru Vahidi) hadisələrinə qonaq sisteminin girişini məhdudlaşdırmağı asanlaşdırır.
    • Proseslər arasında ötürülən fayl deskriptoru vasitəsilə yaddaş sahəsini müəyyən etməyə imkan verən memfd mexanizminə kodun icrasının qadağan edildiyi (icra olunmayan memfd) sahələri yaratmaq imkanı əlavə edilib və proqramda icra hüquqlarını təyin etmək mümkün deyil. gələcək.
    • Yeni PR_SET_MDWE prctl əməliyyatı eyni zamanda həm yazmağa, həm də icra etməyə imkan verən yaddaşa giriş hüquqlarını daxil etmək cəhdlərini bloklamaq üçün əlavə edilmişdir.
    • AMD Zen 4 prosessorlarında təklif olunan IBRS (Enhanced Indirect Branch Restricted Speculation) avtomatik rejimi əsasında Spectre sinfinin hücumlarına qarşı qorunma defolt olaraq əlavə edilib və işə salınıb ki, bu da fasilələrin işlənməsi zamanı təlimatların spekulyativ icrasını adaptiv şəkildə aktivləşdirməyə və söndürməyə imkan verir. , sistem zəngləri və kontekst açarları. Təklif olunan qorunma Retpoline qorunması ilə müqayisədə daha aşağı yüklə nəticələnir.
    • Sinxron çox iş parçacığı texnologiyasından (SMT və ya Hyper-Threading) istifadə edərkən Spectre v2 hücumundan müdafiəni aşa bilən və IBRS qoruma rejimini seçərkən STIBP-nin (Single Thread Indirect Branch Predictors) söndürülməsi nəticəsində yaranan zəifliyi həll edir.
    • ARM64 əsaslı sistemlər üçün yeni "virtconfig" qurma hədəfi əlavə edilmişdir ki, bu da seçildikdə virtuallaşdırma sistemlərində yükləmək üçün tələb olunan yalnız minimum kernel komponentləri dəstini aktivləşdirir.
    • M68k arxitekturası üçün seccomp mexanizmindən istifadə edərək sistem zənglərinin filtrasiyası üçün əlavə dəstək.
    • Microsoft Pluton texnologiyasına əsaslanan AMD Ryzen prosessorlarının daxili CRB TPM2 (Command Response Buffer) cihazları üçün əlavə dəstək.
  • Şəbəkə alt sistemi
    • IEEE 802.3cg-2019 spesifikasiyasında müəyyən edilmiş və IoT cihazlarını və sənaye sistemlərini birləşdirmək üçün optimallaşdırılmış 802.3cg (10Base-T1S) Ethernet şəbəkələrində istifadə edilən PLCA (Fiziki Layer Collision Avoidance) alt qatını konfiqurasiya etmək üçün netlink interfeysi əlavə edilmişdir. PLCA-nın istifadəsi paylaşılan media Ethernet şəbəkələrində performansı yaxşılaşdırır.
    • WiFi 7 (802.11be) simsiz interfeyslərini idarə etmək üçün "simsiz genişləndirmələr" API-yə dəstək dayandırılıb, çünki bu API bütün lazımi parametrləri əhatə etmir. Təqlid edilmiş qat kimi dəstəklənməyə davam edən "simsiz uzantılar" API-dən istifadə etməyə cəhd edərkən, indi əksər cari cihazlar üçün xəbərdarlıq göstəriləcək.
    • Netlink API üzrə ətraflı sənədlər hazırlanmışdır (kernel tərtibatçıları və istifadəçi məkanı proqramlarının tərtibatçıları üçün). Netlink protokolunun YAML spesifikasiyası əsasında C kodunu yaratmaq üçün ynl-gen-c yardım proqramı tətbiq edilmişdir.
    • IP_LOCAL_PORT_RANGE seçimi üçün dəstək SNAT istifadə etmədən ünvan tərcüməçiləri vasitəsilə gedən bağlantıların konfiqurasiyasını sadələşdirmək üçün şəbəkə rozetkalarına əlavə edilmişdir. Birdən çox hostda eyni IP ünvanından istifadə edərkən, IP_LOCAL_PORT_RANGE hər bir hosta öz çıxış şəbəkə portlarından və şlüzdə port nömrələri əsasında paketləri yönləndirməyə imkan verir.
    • MPTCP (MultiPath TCP) üçün IPv4 və IPv6 protokollarından istifadə edən qarışıq axınları emal etmək imkanı həyata keçirilir. MPTCP, müxtəlif IP ünvanlarına bağlı müxtəlif şəbəkə interfeysləri vasitəsilə bir neçə marşrut üzrə eyni vaxtda paketlərin çatdırılması ilə TCP bağlantısının işini təşkil etmək üçün TCP protokolunun genişləndirilməsidir.
    • IPv4 üçün məlumat mərkəzlərinin yüksək sürətli daxili şəbəkələrinin işini optimallaşdırmaq üçün maksimum TCP paket ölçüsünü 4 GB-a qədər artırmağa imkan verən BIG TCP genişlənməsindən istifadə etmək imkanı həyata keçirilir. 16 bitlik başlıq sahəsi ilə paket ölçüsündə bu artım, IP başlıq ölçüsü 0-a təyin edilmiş və ayrı bir əlavə başlıqda ayrıca 32 bitlik sahədə ötürülən faktiki ölçüsü olan "jumbo" paketlərin tətbiqi ilə əldə edilir.
    • Yeni sysctl default_rps_mask parametri əlavə edildi, onun vasitəsilə siz defolt RPS (Paket Sükanı Alın) konfiqurasiyasını təyin edə bilərsiniz, bu konfiqurasiya daxil olan trafikin emalını kəsmə idarəçisi səviyyəsində CPU nüvələri arasında paylamaqdan məsuldur.
    • CBQ (sinif əsaslı növbə), ATM (ATM virtual sxemləri), dsmark (differensiallaşdırılmış xidmət markeri), tcindex (trafikə nəzarət indeksi) və RSVP (resurs rezervasiya protokolu) trafikini məhdudlaşdırmaq üçün növbə intizamları üçün dəstək dayandırıldı. Bu fənlər uzun müddətdir ki, tərk edilib və heç kim onların dəstəyini davam etdirmək istəmirdi.
  • Оборудование
    • Bütün DRI1 əsaslı qrafik drayverləri silindi: i810 (köhnə Intel 8xx inteqrasiya olunmuş qrafik kartları), mga (Matrox GPU), r128 (Rage Fury, XPERT 128 və XPERT 99 kartları daxil olmaqla ATI Rage 128 GPU), vəhşi (S3 Savage GPU), sis ( 3-cı ildə köhnəlmiş və 2016-ci ildən Mesa-da dəstəklənməyən Crusty SiS GPU), tdfx (2012dfx Voodoo) və via (VIA IGP).
    • Köhnəlmiş framebuffer (fbdev) drayverləri omap1, s3c2410, tmiofb və w100fb silindi.
    • Kompüter görmə və maşın öyrənmə əməliyyatlarını sürətləndirmək üçün nəzərdə tutulmuş Intel Meteor Lake (14-cü nəsil) CPU-larına inteqrasiya olunmuş VPU (Versatile Processing Unit) üçün DRM sürücüsü əlavə edilmişdir. Sürücü həm ayrı-ayrı ASIC-lər şəklində, həm də SoC və GPU daxilində IP blokları kimi təchiz oluna bilən hesablama sürətləndiricilərinə dəstək verməyə yönəlmiş "sürətləndirmək" alt sistemindən istifadə etməklə həyata keçirilir.
    • i915 (Intel) sürücüsü Intel Arc (DG2/Alchemist) diskret qrafik kartları üçün dəstəyi genişləndirir, Meteor Lake GPU-ları üçün ilkin dəstəyi təqdim edir və Intel Xe HP 4tile GPU-lar üçün dəstəyi ehtiva edir.
    • Amdgpu drayveri AdaptiveSync texnologiyasına dəstək və çoxlu displeylərlə Təhlükəsiz Ekrandan istifadə etmək imkanı əlavə edir. DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x və DP 2.1 üçün yenilənmiş dəstək.
    • MSM sürücüsünə (GPU Qualcomm Adreno) SM8350, SM8450 SM8550, SDM845 və SC8280XP platformaları üçün dəstək əlavə edildi.
    • Nouveau sürücüsü köhnə ioctl zəngləri üçün dəstəyi dayandırdı.
    • Etnaviv sürücüsünə NPU VerSilicon (VeriSilicon Neyron Network Processor) üçün eksperimental dəstək əlavə edildi.
    • Paralel port vasitəsilə qoşulmuş IDE sürücüləri üçün pata_parport drayveri tətbiq edilmişdir. Əlavə edilmiş sürücü köhnə PARIDE sürücüsünü nüvədən çıxarmağa və ATA alt sistemini təkmilləşdirməyə imkan verdi. Yeni sürücünün məhdudiyyəti paralel port vasitəsilə printeri və diski eyni vaxtda birləşdirə bilməməsidir.
    • Wi-Fi 12 dəstəyi ilə Qualcomm çiplərinə əsaslanan simsiz kartlar üçün ath7k drayveri əlavə edildi RealTek RTL8188EU çiplərinə əsaslanan simsiz kartlar üçün əlavə dəstək.
    • Samsung Galaxy tab A (46), Samsung Galaxy S64, BananaPi R2015, Debix Model A, EmbedFire LubanCat 5/3, Facebook Greatlakes, Orange Pi R1 Plus, Tesla FSD və həmçinin cihazlar daxil olmaqla ARM2 arxitekturasına əsaslanan 1 lövhə üçün əlavə dəstək SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 və SDM632, Rockchips RK3128 TV qutusu, RV1126 Vision, RK3588, RK3568, RK3566, RK3588/K3328/K3, 642/AM654 / AM68).

Eyni zamanda, Latın Amerikası Azad Proqram Təminatı Fondu tamamilə pulsuz nüvə 6.3 - Linux-libre 6.3-gnu variantını yaratdı, əhatə dairəsi sərbəst olmayan komponentlər və ya kod bölmələri olan proqram təminatı və sürücü elementlərindən təmizləndi. istehsalçı. 6.3 buraxılışında ləkələr yeni ath12k, aw88395 və peb2466 drayverlərində, həmçinin AArch64 əsaslı qcom cihazları üçün yeni cihaz ağacı fayllarında təmizləndi. Amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110 drayverləri və alt sistemlərində, həmçinin proqram təminatının dekodlanması olan DVB kartları üçün sürücülərdə və əvvəlcədən tərtib edilmiş BPF fayllarında yenilənmiş blob təmizləmə kodu. Mga, r128, tm6000, cpia2 və r8188eu sürücülərinin nüvədən çıxarıldığı üçün təmizlənməsi dayandırıldı. Təkmilləşdirilmiş i915 driver blob təmizləmə.

Mənbə: opennet.ru

Добавить комментарий