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

İki aylıq inkişafdan sonra Linus Torvalds Linux 6.1 nüvəsinin buraxılışını təqdim etdi. Ən diqqətəlayiq dəyişikliklər arasında: Rust dilində drayverlərin və modulların inkişafına dəstək, istifadə olunan yaddaş səhifələrinin müəyyən edilməsi mexanizminin modernləşdirilməsi, BPF proqramları üçün xüsusi yaddaş meneceri, yaddaş problemlərinin diaqnostikası sistemi KMSAN, KCFI (Kernelk Control) -Flow Integrity) qoruma mexanizmi, Maple struktur ağacının tətbiqi.

Yeni versiyaya 15115 tərtibatçıdan 2139 düzəliş daxildir, yamağın ölçüsü 51 MB-dır ki, bu da 2 və 6.0 nüvələrindən olan yamaqların ölçüsündən təxminən 5.19 dəfə kiçikdir. Dəyişikliklər 13165 716247 fayla təsir edib, 304560 45 sətir kod əlavə edilib, 6.1 14 sətir silinib. 14-də təqdim edilən bütün dəyişikliklərin təxminən 3%-i qurğu drayverləri, dəyişikliklərin təxminən 3%-i hardware arxitekturasına xas kodun yenilənməsi, XNUMX%-i şəbəkə yığını, XNUMX%-i fayl sistemləri və XNUMX%-i ilə əlaqədardır. daxili nüvə alt sistemləri ilə əlaqədardır.

Kernel 6.1-də əsas yeniliklər:

  • Yaddaş və sistem xidmətləri
    • Rust dilini drayverləri və nüvə modullarını inkişaf etdirmək üçün ikinci dil kimi istifadə etmək imkanı əlavə edildi. Rust-u dəstəkləməyin əsas səbəbi yaddaşla işləyərkən səhv etmək ehtimalını azaltmaqla təhlükəsiz və yüksək keyfiyyətli cihaz drayverlərinin yazılmasını asanlaşdırmaqdır. Pas dəstəyi defolt olaraq qeyri-aktivdir və Rust-un lazımi nüvə qurma asılılığı kimi daxil edilməsi ilə nəticələnmir. Kernel indiyə qədər yamaqların 40 min sətirdən 13 min kod sətirinə endirilmiş və Rust dilində yazılmış sadə kernel modulunun qurulması üçün kifayət qədər lazım olan minimumu təmin edən minimal, sökülmüş versiyasını qəbul etmişdir. Gələcəkdə Rust-for-Linux filialından digər dəyişiklikləri köçürməklə, mövcud funksionallığın tədricən artırılması planlaşdırılır. Paralel olaraq, NVMe diskləri, 9p şəbəkə protokolu və Rust dilində Apple M1 GPU üçün drayverlərin hazırlanması üçün təklif olunan infrastrukturdan istifadə etmək üçün layihələr hazırlanır.
    • EFI ilə AArch64, RISC-V və LoongArch arxitekturalarına əsaslanan sistemlər üçün sıxılmış nüvə şəkillərini birbaşa yükləmək imkanı tətbiq edilmişdir. EFI zboot-dan birbaşa çağırılan kernel şəkillərinin yüklənməsi, işlədilməsi və boşaldılması üçün işləyicilər əlavə edildi. EFI protokol verilənlər bazasından protokolların quraşdırılması və silinməsi üçün işləyicilər də əlavə edilmişdir. Əvvəllər paketin açılması ayrıca yükləyici tərəfindən həyata keçirilirdi, indi isə bu, nüvənin özündə olan işləyici tərəfindən həyata keçirilə bilər - kernel şəkli EFI tətbiqi kimi formalaşır.
    • Kompozisiyaya müxtəlif performans xüsusiyyətləri ilə yaddaş banklarını ayırmağa imkan verən çox səviyyəli yaddaş idarəetmə modelinin həyata keçirilməsi ilə yamaqların bir hissəsi daxildir. Məsələn, ən çox istifadə edilən səhifələr ən sürətli yaddaşda, ən nadir istifadə olunan səhifələr isə nisbətən yavaş yaddaşda saxlanıla bilər. Kernel 6.1 çox istifadə olunan səhifələrin yavaş yaddaşda harada yerləşdiyini müəyyənləşdirmək üçün mexanizm təqdim edir ki, onlar sürətli yaddaşa yüksəlsinlər, həmçinin yaddaş səviyyələri və onların nisbi performansı haqqında ümumi konsepsiya təqdim edir.
    • Buraya MGLRU (Çox nəsil LRU) mexanizmi daxildir ki, bu da köhnə LRU (Ən az istifadə olunan) tətbiqini iki növbəyə əsaslanan çoxmərhələli strukturla əvəz edir, hansı yaddaş səhifələrinin əslində istifadə olunduğunu və hansının kənara çıxarıla biləcəyini daha yaxşı müəyyən edir. dəyişdirmə bölməsi.
    • Oracle mühəndisləri tərəfindən təklif olunan, “qırmızı-qara ağac” strukturunu daha effektiv əvəz edən “ağcaqayın ağacı” məlumat strukturu üçün əlavə dəstək. Ağcaqayın ağacı, diapazonun indeksləşdirilməsini dəstəkləyən və müasir prosessorların keş yaddaşından səmərəli istifadə etmək üçün nəzərdə tutulmuş B-ağacının bir variantıdır. Bəzi yaddaş idarəetmə alt sistemləri artıq ağcaqayın ağacına köçürülüb ki, bu da onların işinə müsbət təsir edib. Gələcəkdə, ağcaqayın ağacı diapazonun kilidlənməsini həyata keçirmək üçün istifadə edilə bilər.
    • BPF altsisteminə crash_kexec() zəngi vasitəsilə fövqəladə söndürməyə başlamaq üçün xüsusi hazırlanmış “dağıdıcı” BPF proqramları yaratmaq imkanı əlavə edilmişdir. Bu cür BPF proqramları müəyyən vaxtda qəza zibilinin yaradılmasına başlamaq üçün sazlama məqsədləri üçün tələb oluna bilər. BPF proqramını yükləyərkən dağıdıcı əməliyyatlara daxil olmaq üçün BPF_F_DESTRUCTIVE bayrağını təyin etməli, sysctl kernel.destructive_bpf_enabled aktivləşdirməli və CAP_SYS_BOOT hüquqlarına malik olmalısınız.
    • BPF proqramları üçün cgroup elementlərini sadalamaq, həmçinin müəyyən bir mövzunun və ya tapşırığın resurslarını (fayllar, vma, proseslər və s.) sadalamaq mümkündür. İstifadəçi ring buferləri yaratmaq üçün yeni xəritə növü tətbiq edilmişdir.
    • Standart kmalloc() ilə müqayisədə BPF kontekstində daha təhlükəsiz yaddaş ayrılmasını təmin edən BPF proqramlarında (yaddaş ayırıcısı) yaddaşın ayrılması üçün xüsusi çağırış əlavə edildi.
    • Dəyişikliklərin birinci hissəsi BPF proqramları şəklində həyata keçirilən HID (İnsan İnterfeys Cihazı) interfeysi ilə daxiletmə qurğuları üçün drayverlərin yaradılması imkanını təmin edən inteqrasiya olunub.
    • Kernel 5.1 buraxılışında köhnəlmiş və 5.18 və 5.19 versiyalarından bəri əsas arxitekturalar üçün deaktiv edilmiş a.out icra edilə bilən fayl formatını dəstəkləmək üçün kodu tamamilə sildi. a.out formatı Linux sistemlərində çoxdan köhnəlib və a.out fayllarının yaradılması standart Linux konfiqurasiyalarında müasir alətlər tərəfindən dəstəklənmir. a.out faylları üçün yükləyici tamamilə istifadəçi məkanında həyata keçirilə bilər.
    • Loongson 3 5000 prosessorlarında istifadə edilən və MIPS və RISC-V kimi yeni RISC ISA tətbiq edən LoongArch təlimat dəsti arxitekturasına əsaslanan sistemlər üçün performansın ölçülməsi hadisələri (perf hadisələr), kexec, kdump və BPF JIT kompilyasiyası üçün dəstək həyata keçirilir. .
    • io_uring asinxron I/O interfeysi yeni IORING_SETUP_DEFER_TASKRUN rejimi təklif edir ki, bu da proqram sorğusu edilənə qədər ring buferi ilə bağlı işi müvəqqəti olaraq təxirə salmağa imkan verir ki, bu da toplu iş üçün istifadə edilə bilər və qabaqcadan seçmə ilə bağlı gecikmə problemlərindən qaçınmaq üçün istifadə edilə bilər. səhv vaxt.
    • İstifadəçi məkanındakı proseslərə bir sıra normal yaddaş səhifələrinin böyük yaddaş səhifələri dəstinə (Şəffaf Böyük Səhifələr) çevrilməsinə başlamaq imkanı verilir.
    • FS-də giriş hüquqlarından istifadə edərək userfaultfd() sistem çağırışının funksionallığına giriş imkanı verən /dev/userfaultfd cihazının tətbiqi əlavə edildi. userfaultfd funksionallığı istifadəçi məkanında bölüşdürülməmiş yaddaş səhifələrinə (səhifə xətaları) daxil olmaq üçün işləyicilər yaratmağa imkan verir.
    • GNU Make yardım proqramının versiyasına tələblər artırılıb - nüvənin qurulması üçün indi ən azı 3.82 versiyası tələb olunur.
  • Disk alt sistemi, giriş/çıxış və fayl sistemləri
    • Btrfs fayl sistemində əhəmiyyətli performans optimallaşdırmaları edildi; digər şeylər arasında, FIEMAP ioctl çağırışının performansı böyüklük əmrləri ilə artırıldı. io_uring istifadə edən tətbiqlər üçün asinxron tamponlu yazılar üçün əlavə dəstək. “Göndər” əməliyyatına fs-verity ilə qorunan fayllar üçün dəstək əlavə edildi.
    • Ext4 fayl sistemi jurnalın saxlanması və yalnız oxunmaq üçün işləmə ilə bağlı performans optimallaşdırmalarını əlavə etdi.
    • Yalnız oxumaq rejimində əlçatan arakəsmələrdə istifadə üçün nəzərdə tutulmuş EROFS (Enhanced Read-Only File System) fayl sistemi müxtəlif fayl sistemlərində təkrarlanan məlumatların paylaşılması imkanını həyata keçirir.
    • statx() sistem çağırışı fayla birbaşa I/O-nun tətbiq oluna biləcəyi barədə məlumatı göstərmək üçün əlavə edilmişdir.
    • O_TMPFILE bayrağı ilə müvəqqəti faylların yaradılması dəstəyi FUSE (İstifadəçi Məkanında Fayl Sistemləri) altsisteminə əlavə edilmişdir.
  • Virtuallaşdırma və Təhlükəsizlik
    • CFI (Control Flow Integrity) mühafizə mexanizminin tətbiqi dəyişdirildi, hər dolayı çağırışdan əvvəl normal icra qaydasının (nəzarət axınının) pozulmasına səbəb ola biləcək müəyyən edilməmiş davranışın bəzi formalarını aşkar etmək üçün yoxlamalar əlavə edildi. yaddaşda saxlanılan funksiyalara göstəriciləri dəyişdirən istismarlardan istifadə. LLVM layihəsindən CFI-nin standart tətbiqi Clang-ın istifadəsinə əsaslanan, lakin aşağı səviyyəli alt sistemləri və əməliyyat sistemi nüvələrini qorumaq üçün xüsusi olaraq uyğunlaşdırılmış seçimlə əvəz edilmişdir. LLVM-də Clang 16 buraxılışında yeni bir tətbiq təklif ediləcək və "-fsanitize=kcfi" seçimi ilə aktivləşdiriləcək. Yeni tətbiqdən əsas fərq ondan ibarətdir ki, o, keçid vaxtının optimallaşdırılmasına (LTO) bağlı deyil və funksiya göstəricilərinin keçid cədvəlindəki keçidlərlə əvəzlənməsi ilə nəticələnmir.
    • LSM modulları (Linux Təhlükəsizlik Modulu) üçün ad boşluqları yaratmaq üçün əməliyyatları kəsən işləyicilər yaratmaq mümkündür.
    • BPF proqramlarında PKCS#7 rəqəmsal imzaları yoxlamaq üçün alətlər təmin edilmişdir.
    • kernel 5.6-da təsadüfən silinmiş bloklanmayan rejimdə (O_NONBLOCK) açmaq imkanı /dev/random-a qaytarıldı.
    • X86 arxitekturalı sistemlərdə yaddaş səhifələrinin eyni vaxtda icraya və yazmağa imkan verən kernel alt sistemləri tərəfindən xəritələşdirilməsi halında xəbərdarlıq əlavə edilmişdir. Gələcəkdə bu cür yaddaş xəritələrinin tamamilə qadağan edilməsinin mümkünlüyü nəzərdən keçirilir.
    • Nüvədə başlamamış yaddaş istifadəsini, həmçinin istifadəçi sahəsi və qurğular arasında başlatılmamış yaddaş sızmalarını aşkar etmək üçün KMSAN (Kernel Memory Sanitizer) sazlama mexanizmi əlavə edildi.
    • Getrandom zəngində istifadə edilən kripto-təhlükəsiz CRNG psevdo-təsadüfi nömrə generatorunda təkmilləşdirmələr edildi. Dəyişikliklər VPN WireGuard-ın müəllifi Ceyson A. Donenfeld tərəfindən hazırlanıb və psevdo-təsadüfi tam ədədlərin çıxarılmasının təhlükəsizliyini təkmilləşdirməyə yönəlib.
  • Şəbəkə alt sistemi
    • TCP yığını hər bir ad sahəsi üçün soket hash cədvəllərindən ayrıca istifadə etmək imkanı verir (defolt olaraq qeyri-aktivdir), bu da çox sayda ad sahəsi olan sistemlərdə performansı yaxşılaşdırır.
    • Köhnə DECnet protokolunu dəstəkləmək üçün kod silindi. DECnet-dən istifadə edən proqramların tərtib edilməsinə icazə vermək üçün istifadəçi sahəsi API stubları yerində qalıb, lakin bu proqramlar şəbəkəyə qoşula bilməyəcək.
    • Netlink protokolu sənədləşdirilmişdir.
  • Оборудование
    • Amdgpu sürücüsü çox yüksək qətnamələri dəstəkləyən ekranlarla məlumat mübadiləsi zamanı məlumatların itkisiz sıxılması üçün DSC (Display Stream Compression) yönləndirilməsi üçün dəstək əlavə etdi. AMD RDNA3 (RX 7000) və CDNA (Instinct) platformalarına dəstək vermək üçün işlər davam edir. DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x və GMC 11.x IP komponentləri üçün əlavə dəstək. Amdkfd sürücüsü (Polaris kimi diskret AMD GPU-ları üçün) GFX 11.0.3 üçün dəstək verir.
    • i915 (Intel) sürücüsünə Meteor Lake GPU dəstəyi daxildir. Meteor Lake və daha yeni GPU-lar DP 2.0 (DisplayPort) interfeysini dəstəkləyir. Alder Lake S mikroarxitekturasına əsaslanan video kartlar üçün identifikatorlar əlavə edildi.
    • Apple Silicon, Intel SkyLake və Intel KabyLake prosessorlarında tətbiq edilən audio alt sistemləri üçün əlavə dəstək. CS35L41 HDA audio sürücüsü yuxu rejimini dəstəkləyir. Apple Silicon, AMD Rembrant DSP-lər, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake və Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSPs, Qualcomm i.MX8280ULP DSPs, Qualcomm i.MX8250ULP, Qualcomm 8450XP4392, AMD Pink Sardine ACP XNUMX, AMD Rembrant DSP-lər, inteqrasiya olunmuş audio çipləri üçün ASoC (ALSA System on Chip) dəstəyi əlavə edildi. SMXNUMX və Texas Instruments SRCXNUMX
    • Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120XAN1, B116XAN01.6, B116XAN21 LCD panelləri üçün əlavə dəstək 116WH M-N2, INX N116BCA- EA1 , INX N0800BCN-EA9, Multi-Inno Texnologiyası MIXNUMXFT-XNUMX.
    • Baikal-T1 SoC-də istifadə olunan AHCI SATA nəzarətçiləri üçün əlavə dəstək.
    • Bluetooth çipləri MediaTek MT7921, Intel Magnetor (CNVi, İnteqrasiya edilmiş Bağlantı), Realtek RTL8852C, RTW8852AE və RTL8761BUV (Edimax BT-8500) üçün əlavə dəstək.
    • Qualcomm simsiz modulları üçün ath11k drayveri 160 MHz diapazonunda spektral skan üçün dəstək əlavə etdi, çox yivli NAPI tətbiq etdi və Qualcomm WCN6750 Wi-Fi çipləri üçün təkmilləşdirilmiş dəstəyi təmin etdi.
    • PinePhone klaviaturası, InterTouch sensor panelləri (ThinkPad P1 G3), X-Box Adaptiv Nəzarətçisi, PhoenixRC Uçuş Nəzarətçisi, VRC-2 Avtomobil Nəzarətçisi, DualSense Edge Controller, IBM Əməliyyat Paneli, XBOX One Elite pultu, XP-PEN Deco Pro S planşetləri üçün əlavə edilmiş drayverlər və Intuos Pro Small (PTH-460).
    • Aspeed HACE (Hash və Crypto Engine) kriptoqrafik sürətləndiriciləri üçün əlavə sürücü.
    • İnteqrasiya edilmiş Thunderbolt/USB4 Intel Meteor Lake nəzarətçiləri üçün əlavə dəstək.
    • Sony Xperia 1 IV, Samsung Galaxy E5, E7 və Grand Max, Pine64 Pinephone Pro smartfonları üçün əlavə dəstək.
    • ARM SoC və lövhələr üçün əlavə dəstək: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 və RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ Kontr 8065 BL i.MX8MM OSM-S, MT8195 (Acer Tomato), Radxa ROCK 4C+, NanoPi R4S Enterprise Edition, JetHome JetHub D1p. SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom və NXP üçün yenilənmiş drayverlər.

Eyni zamanda, Latın Amerikası Azad Proqram Təminatı Fondu tamamilə pulsuz nüvənin 6.1 - Linux-libre 6.1-gnu versiyasını yaratdı, proqram təminatının elementlərindən və qeyri-azad komponentləri və ya kod bölmələrini ehtiva edən drayverlərdən təmizləndi. istehsalçı tərəfindən məhdudlaşdırılır. Yeni buraxılış AArch8852 arxitekturasına əsaslanan prosessorları olan müxtəlif Qualcomm və MediaTek SoC-lər üçün yeni rtw64b sürücüsünü və DTS fayllarını təmizləyir. Amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI sürücüləri və alt sistemlərində yenilənmiş blob təmizləmə kodu. Köhnəlmiş sürücülərin təmizlənməsi tm6000 TV kartları, cpia2 v4l, sp8870, av7110 düzəldildi.

Mənbə: opennet.ru

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