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

İki aylıq inkişafdan sonra Linus Torvalds təqdim etdi kernel buraxılışı Linux 5.6. Ən diqqətəlayiq dəyişikliklər arasında: WireGuard VPN interfeysinin inteqrasiyası, USB4 dəstəyi, vaxt üçün ad boşluqları, BPF istifadə edərək TCP tıxanıqlığı idarəçiləri yaratmaq imkanı, MultiPath TCP üçün ilkin dəstək, 2038 probleminin nüvəsini aradan qaldırmaq, “bootconfig” mexanizmi , ZoneFS.

Yeni versiyaya 13702 tərtibatçıdan 1810 düzəliş daxildir,
yamaq ölçüsü - 40 MB (dəyişikliklər 11577 fayla təsir etdi, 610012 sətir kod əlavə edildi,
294828 sıra silindi). 45-də təqdim olunanların təxminən 5.6% -i
Dəyişikliklərin təxminən 15%-i cihaz sürücüləri ilə bağlıdır
hardware arxitekturasına xas kodun yenilənməsinə münasibət, 12%
şəbəkə yığını ilə, 4% fayl sistemləri ilə və 3% daxili ilə əlaqələndirilir
nüvə alt sistemləri.

Əsas yeniliklər:

  • Şəbəkə alt sistemi
    • Əlavə edilib VPN interfeysinin həyata keçirilməsi WireGuard, müasir şifrələmə üsulları (ChaCha20, Poly1305, Curve25519, BLAKE2s) əsasında həyata keçirilən , istifadəsi asandır, fəsadsızdır, bir sıra böyük tətbiqlərdə özünü sübut edib və çox yüksək performans təmin edir (OpenVPN-dən 3,9 dəfə daha sürətli. ötürmə qabiliyyəti). WireGuard, hər bir şəbəkə interfeysinə şəxsi açarın əlavə edilməsini və açıq açarları birləşdirmək üçün istifadə etməyi nəzərdə tutan şifrələmə açarının marşrutlaşdırma konsepsiyasından istifadə edir. Açıq açarlar SSH ilə oxşar şəkildə əlaqə yaratmaq üçün mübadilə edilir. WireGuard-ın işləməsi üçün kriptoqrafik primitivlər tələb olunur idi keçirdi kitabxanadan sink standart Crypto API-nin bir hissəsi kimi və daxil edilmişdir nüvəyə 5.5.
    • Started müxtəlif IP ünvanları ilə əlaqəli müxtəlif şəbəkə interfeysləri vasitəsilə eyni vaxtda bir neçə marşrut üzrə paketlərin çatdırılması ilə TCP bağlantısının işini təşkil etmək üçün TCP protokolunun genişləndirilməsi olan MPTCP (MultiPath TCP) dəstəyi üçün zəruri komponentlərin inteqrasiyası. Şəbəkə proqramları üçün belə birləşdirilmiş əlaqə adi TCP bağlantısı kimi görünür və bütün axını ayırma məntiqi MPTCP tərəfindən həyata keçirilir. Çoxyollu TCP həm ötürmə qabiliyyətini artırmaq, həm də etibarlılığı artırmaq üçün istifadə edilə bilər. Məsələn, MPTCP eyni vaxtda WiFi və 4G bağlantılarından istifadə edərək smartfonda məlumat ötürülməsini təşkil etmək və ya bir bahalı link əvəzinə bir neçə ucuz linkdən istifadə edərək serveri birləşdirərək xərcləri azaltmaq üçün istifadə edilə bilər.
    • Əlavə edilib şəbəkə növbəsinin emal intizamına dəstək sch_ets (Təkmil Transmissiya Seçimi, IEEE 802.1Qaz), müxtəlif trafik sinifləri arasında bant genişliyini bölüşdürmə qabiliyyətini təmin edir. Müəyyən bir trafik sinfinin yükü ayrılmış bant genişliyindən aşağı olarsa, ETS digər trafik siniflərinə mövcud (istifadə olunmamış) bant genişliyindən istifadə etməyə icazə verir. Qdisc sch_ets PRIO intizamı kimi konfiqurasiya edilib və ciddi və paylaşılan bant genişliyi məhdudiyyətlərini müəyyən etmək üçün trafik siniflərindən istifadə edir. ETS fənlərin birləşməsi kimi işləyir ƏVVƏL и DRR — ciddi şəkildə məhdud trafik sinifləri varsa, PRIO istifadə olunur, lakin növbədə trafik yoxdursa, DRR kimi işləyir.
    • BPF proqramlarının yeni növü əlavə edildi BPF_PROG_TYPE_STRUCT_OPS, BPF vasitəsilə kernel funksiyası işləyicilərini həyata keçirməyə imkan verir. Hal-hazırda, bu xüsusiyyət artıq BPF proqramları şəklində TCP sıxlığına nəzarət alqoritmlərini həyata keçirmək üçün istifadə edilə bilər. Nümunə olaraq təklif etdi Alqoritmin icrası ilə BPF proqramı DCTCP.
    • Nüvəyə qəbul edildi dəyişikliklər, tərcümə alətləri ettool istifadə etmək üçün ioctl() ilə netlink interfeysi. Yeni interfeys genişləndirmələrin əlavə edilməsini asanlaşdırır, xətaların idarə olunmasını yaxşılaşdırır, vəziyyət dəyişdikdə bildirişlərin göndərilməsinə imkan verir, nüvə ilə istifadəçi sahəsi arasında qarşılıqlı əlaqəni asanlaşdırır və sinxronizasiya edilməli olan adlanmış siyahıların sayını azaldır.
    • FQ-PIE (Flow Queue PIE) şəbəkə növbəsinin idarə edilməsi alqoritminin əlavə tətbiqi, aralıq paket tamponlamasının kənar şəbəkə avadanlığına (bufferbloat) mənfi təsirini azaltmaq məqsədi daşıyır. FQ-PIE kabel modemləri olan sistemlərdə istifadə edildikdə yüksək effektivlik nümayiş etdirir.
  • Disk alt sistemi, giriş/çıxış və fayl sistemləri
    • Btrfs fayl sistemi üçün əlavə etdi DISCARD əməliyyatının asinxron həyata keçirilməsi (artıq fiziki olaraq saxlanmağa ehtiyacı olmayan azad blokların işarələnməsi). Başlanğıcda, DISCARD əməliyyatları sinxron şəkildə həyata keçirilirdi ki, bu da müvafiq əmrlərin tamamlanmasını gözləyən sürücülər səbəbindən performansın aşağı düşməsinə səbəb ola bilər. Asinxron həyata keçirmə sürücünün DISCARD-ı tamamlamasını gözləməməyə və bu əməliyyatı fonda yerinə yetirməyə imkan verir.
    • XFS-də keçirilmişdir Köhnə 32 bitlik vaxt sayğaclarından istifadə edən kodun təmizlənməsi (time_t növü time64_t ilə əvəz olundu), 2038 probleminə səbəb oldu. 32-bit platformalarda baş verən sabit səhvlər və yaddaş pozğunluğu. Kod genişləndirilmiş atributlarla işləmək üçün yenidən işlənmişdir.
    • Ext4 fayl sisteminə təqdim etdi Oxuma və yazma əməliyyatları zamanı inode kilidinin idarə edilməsi ilə bağlı performans optimallaşdırmaları. Birbaşa I/O rejimində təkmilləşdirilmiş yenidən yazma performansı. Problemlərin diaqnostikasını asanlaşdırmaq üçün birinci və son xəta kodları superblokda saxlanılır.
    • F2FS fayl sistemində həyata keçirilən məlumatları sıxılmış formada saxlamaq imkanı. Fərdi fayl və ya qovluq üçün sıxılma "chattr +c file" və ya "chattr +c dir; dir / fayla toxunun". Bütün bölməni sıxışdırmaq üçün montaj yardım proqramında “-o compress_extension=ext” seçimindən istifadə edə bilərsiniz.
    • Kernelə fayl sistemi daxildir ZoneFS, zonalı saxlama cihazları ilə aşağı səviyyəli işi asanlaşdırır. Zonalı sürücülər sabit maqnit disklərində və ya NVMe SSD-lərdə olan qurğular deməkdir, saxlama sahəsi bloklar və ya sektorlar qruplarını təşkil edən zonalara bölünür, yalnız ardıcıl olaraq məlumatların əlavə edilməsinə icazə verilir, bütün bloklar qrupunu yeniləyir. FS ZoneFS Western Digital tərəfindən hazırlanmışdır və sürücüdəki hər bir zonanı sektor və blok səviyyəsində manipulyasiya olmadan xam rejimdə məlumat saxlamaq üçün istifadə edilə bilən ayrıca fayl ilə əlaqələndirir, yəni. Tətbiqlərə ioctl istifadə edərək blok cihazına birbaşa daxil olmaq əvəzinə fayl API-dən istifadə etməyə icazə verir.
    • NFS-də arakəsmələrin UDP üzərində montajı defolt olaraq qeyri-aktivdir. NFS 4.2 spesifikasiyasında müəyyən edilmiş serverlər arasında faylları birbaşa kopyalamaq imkanı üçün əlavə dəstək. Server nasazlığı halında keşlənmiş atribut dəyərlərindən istifadə etməyə imkan verən yeni "softreval" quraşdırma seçimi əlavə edildi. Məsələn, bu seçimi təyin edərkən, server əlçatmaz olduqdan sonra NFS bölməsindəki yollar boyunca hərəkət etmək və keşdə yerləşmiş məlumatlara daxil olmaq mümkün qalır.
    • Həyata keçirilən fərdi faylların bütövlüyünə və autentifikasiyasına nəzarət etmək üçün istifadə edilən fs-verity mexanizminin işinin optimallaşdırılması. Merkle hash ağacının istifadəsi sayəsində artan ardıcıl oxu sürəti. FS_IOC_ENABLE_VERITY performansı keşdə heç bir məlumat olmadıqda optimallaşdırılmışdır (məlumatlı səhifələrin qabaqcadan oxunması tətbiq edilmişdir).
  • Virtuallaşdırma və Təhlükəsizlik
    • SELinux modulunu işləyərkən söndürmək imkanı köhnəlib və artıq aktivləşdirilmiş SELinux-un boşaldılması gələcəkdə qadağan ediləcək. SELinux-u söndürmək üçün kernel əmr satırında "selinux=0" parametrini keçirməlisiniz.
    • Əlavə edilib sistem saatının vəziyyətini konteynerə bağlamağa imkan verən zaman üçün ad boşluqlarına dəstək (zaman adları boşluqları) (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), konteynerdə öz vaxtınızdan istifadə edin və konteyneri başqa hosta köçürərkən CLOCK_MONOTONIC və CLOCK_BOOTTIME oxunuşlarının dəyişməz qalmasına əmin olun (yuxu rejimində olmaqla və ya nəzərə almadan yükləmədən sonrakı vaxtı nəzərə alın ).

    • /dev/random bloklama hovuzu silindi. Hovuzun işə salınmasından sonra entropiyanın bloklanmasının qarşısını almaq baxımından /dev/random davranışı /dev/urandom-a bənzəyir.
    • Əsas nüvəyə VirtualBox ilə işləyən qonaq sistemlərinə host mühiti (VirtualBox Paylaşılan Qovluq) tərəfindən ixrac edilən qovluqları quraşdırmaq imkanı verən bir sürücü daxildir.
    • BPF altsisteminə yamaqlar dəsti əlavə edildi (BPF dispetçeri), Spectre V2 sinif hücumlarından qorunmaq üçün Retpoline mexanizmindən istifadə edərkən, bu, BPF proqramlarına onlarla əlaqəli hadisələr baş verən zaman zəng vurmağın səmərəliliyini artırmağa imkan verir (məsələn, XDP işləyicilərinin çağırışını sürətləndirməyə imkan verir. şəbəkə paketi gəlir).
    • AMD APU-larına quraşdırılmış TEE (Trusted Execution Environment) dəstəyi üçün əlavə edilmiş sürücü.
  • Yaddaş və sistem xidmətləri
    • BPF qlobal funksiyalar üçün dəstək əlavə etdi. İnkişaf, BPF proqramlarına daxil edilə bilən funksiyaların kitabxanalarına dəstək əlavə etmək təşəbbüsünün bir hissəsi kimi həyata keçirilir. Növbəti addım qlobal funksiyaların yüklənməsinə imkan verən dinamik genişləndirmələri dəstəkləmək olacaq, o cümlədən istifadə zamanı mövcud qlobal funksiyaları əvəz etmək. BPF alt sistemi, həmçinin toplu rejimdə icranı dəstəkləyən xəritə əməliyyatının bir variantına (davamlı məlumatları saxlamaq üçün istifadə olunur) dəstək əlavə edir.
    • Əlavə edildi “Cpu_cooling” cihazı həddən artıq qızmış CPU-nu qısa müddət ərzində boş vəziyyətdə qoymaqla onu soyutmağa imkan verir.
    • Sistem zəngi əlavə edildi openat2(), fayl yolunun həllini məhdudlaşdırmaq üçün əlavə bayraqlar dəsti təklif edir (kəsişmə nöqtələri, simvolik bağlantılar, sehrli bağlantılar (/proc/PID/fd), “../” komponentləri).
    • Güclü və daha az səmərəli enerjiyə qənaət edən CPU nüvələrini bir çipdə birləşdirən big.LITTLE arxitekturasına əsaslanan heterojen sistemlər üçün uclamp_min parametri real vaxt tapşırıqlarını yerinə yetirərkən təyin edilir (ortaya çıxdı kernel 5.3-də yükü təmin etmək üçün bir mexanizm var). Bu parametr, tapşırığın planlaşdırıcı tərəfindən kifayət qədər performansa malik olan CPU nüvəsinə yerləşdirilməsini təmin edir.
    • Kernel azad edilir 2038-ci ilin problemləri. 32-ci ildəki hesabatı nəzərə alaraq 1970-ci ildə daşmalı olan epoxal vaxt sayğacı üçün 2038 bitlik (imzalanmış int) time_t tipindən istifadə edən sonuncu qalan işləyiciləri əvəz etdi.
    • Asinxron I/O interfeysinin davamlı təkmilləşdirilməsi io_uring, burada təmin olunub yeni əməliyyatlar üçün dəstək: IORING_OP_FALLOCATE (boş ərazilərin rezervasiyası), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (faylların açılması və bağlanması),
      IORING_OP_FILES_UPDATE (sürətli giriş siyahısından faylların əlavə edilməsi və silinməsi),
      IORING_OP_STATX (fayl məlumatı sorğusu),
      IORING_OP_READ,
      IORING_OP_WRITE (IORING_OP_READV və IORING_OP_WRITEV-in sadələşdirilmiş analoqları),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (posix_fadvise və madvise zənglərinin asinxron variantları), IORING_OP_SEND,
      IORING_OP_RECV (şəbəkə məlumatlarının göndərilməsi və qəbulu),
      IORING_OP_EPOLL_CTL (epoll fayl deskriptorları üzərində əməliyyatları yerinə yetirmək).

    • Sistem zəngi əlavə edildi pidfd_getfd(), prosesə başqa bir prosesdən açıq fayl üçün fayl deskriptorunu əldə etməyə imkan verir.
    • Həyata keçirilən əmr satırı seçimlərinə əlavə olaraq, parametrlər faylı vasitəsilə nüvənin parametrlərini təyin etməyə imkan verən "bootconfig" mexanizmi. Belə faylları initramfs şəklinə əlavə etmək üçün bootconfig yardım proqramı təklif olunur. Bu xüsusiyyət, məsələn, yükləmə zamanı kprobları konfiqurasiya etmək üçün istifadə edilə bilər.
    • Yenidən dizayn edilmişdir adsız borularda məlumatların yazılmasını və oxunmasını gözləmək mexanizmi. Dəyişiklik iri layihələrin paralel yığılması kimi vəzifələri sürətləndirməyə imkan verib. Bununla belə, optimallaşdırma 4.2.1 versiyasında düzəldilmiş 4.3 buraxılışındakı səhvə görə GNU make-də yarış vəziyyətinə gətirib çıxara bilər.
    • PR_SET_IO_FLUSHER bayrağı prctl()-a əlavə edildi və bu, sistem yaddaşda az olduqda məhdudiyyətlərə məruz qalmamalı olan yaddaşsız prosesləri qeyd etmək üçün istifadə edilə bilər.
    • Android-də istifadə olunan ION yaddaş paylama sisteminə əsaslanaraq, alt sistem tətbiq edilmişdir dma-buf yığınları, bu, sürücülər, proqramlar və müxtəlif alt sistemlər arasında yaddaş sahələrini bölüşmək üçün DMA buferlərinin ayrılmasına nəzarət etməyə imkan verir.
  • Aparat arxitekturaları
    • ARMv0-də ortaya çıxan və CPU-da təlimatların spekulyativ icrası ilə bağlı hücumlardan qorunmağa imkan verən E8.5PD genişləndirilməsi üçün əlavə dəstək. E0PD əsaslı qoruma, KPTI (Kernel Page Cədvəl İzolyasiyası) mühafizəsindən daha aşağı yüklə nəticələnir.
    • ARMv8.5 arxitekturasına əsaslanan sistemlər üçün hardware psevdo-təsadüfi nömrə generatoruna çıxışı təmin edən RNG təlimatı üçün dəstək əlavə edilmişdir. Nüvədə RNG təlimatı nüvə tərəfindən təmin edilən psevdo-təsadüfi ədəd generatorunu işə salarkən entropiya yaratmaq üçün istifadə olunur.
    • Nüvəyə əlavə edilmiş MPX (Yaddaş Mühafizəsi Uzantıları) üçün dəstək silindi 3.19 və yaddaş sahələrinin sərhədlərinə riayət olunmasını təmin etmək üçün göstəricilərin yoxlanılmasını təşkil etməyə imkan verir. Bu texnologiya kompilyatorlarda geniş istifadə edilmədi və GCC-dən çıxarıldı.
    • RISC-V arxitekturası üçün yaddaşla işləyərkən səhvləri müəyyən etməyə kömək edən KASan (Kernel address sanitizer) sazlama alətinə dəstək tətbiq edilmişdir.
  • Оборудование
    • Spesifikasiya dəstəyi həyata keçirilir USB 4.0, Thunderbolt 3 protokoluna əsaslanır və USB 40 və USB 2.0 ilə geriyə uyğunluğu qoruyaraq 3.2 Gbps-ə qədər ötürmə qabiliyyətini təmin edir. ilə bənzətmə ilə Thunderbolt USB 4.0 interfeysi konnektoru olan bir kabel üzərindən müxtəlif protokolları tunel etməyə imkan verir Tip-C, o cümlədən PCIe, Display Port və USB 3.x, eləcə də protokolların proqram təminatı tətbiqləri, məsələn, hostlar arasında şəbəkə əlaqələrinin təşkili üçün. Tətbiq artıq Linux nüvəsinə daxil edilmiş Thunderbolt sürücüsü üzərində qurulur və onu USB4 uyğun hostlar və cihazlarla işləməyə uyğunlaşdırır. Dəyişikliklər, həmçinin bir konnektor vasitəsilə birdən çox cihazı birləşdirmək üçün tunellərin yaradılmasına cavabdeh olan Bağlantı Menecerinin proqram təminatının tətbiqinə Thunderbolt 3 cihazları üçün dəstək əlavə edir.
    • Amdgpu sürücüdə əlavə etdi HDCP 2.x (High-bandwidth Digital Content Protection) surətinin qorunması texnologiyası üçün ilkin dəstək. Raven 2 əsasında AMD Pollock ASIC çipi üçün əlavə dəstək. Renoir və Navi ailələri üçün GPU-nu sıfırlamaq imkanı həyata keçirilib.
    • Intel video kartları üçün DRM sürücüsü əlavə etdi Ice Lake və Tiger Lake mikroarxitekturasına əsaslanan çiplər üçün DSİ VDSC dəstəyi, LMEM mmap (cihazın yerli yaddaşı) həyata keçirilib, VBT (Video BIOS Cədvəli) təhlili təkmilləşdirilib, Qəhvə Gölü çipləri üçün HDCP 2.2 dəstəyi həyata keçirilib.
    • Amdkfd sürücü kodunun (Fiji, Tonqa, Polaris kimi diskret GPU-lar üçün) amdgpu sürücüsü ilə birləşdirilməsi üzərində iş davam etdirildi.
    • K10temp drayveri yenidən işlənib, AMD Zen CPU-ları üçün gərginlik və cərəyan parametrlərini, həmçinin Zen və Zen 2 CPU-larında istifadə olunan temperatur sensorlarından genişlənmiş məlumatları göstərmək üçün dəstək əlavə edilib.
    • Nouveau sürücüdə əlavə etdi Turing mikroarxitekturasına (GeForce RTX 2000) əsaslanan NVIDIA GPU-lar üçün təsdiqlənmiş proqram təminatı yükləmə rejiminə dəstək, bu kartlar üçün 3D sürətləndirmə dəstəyini aktivləşdirməyə imkan verdi (NVIDIA rəqəmsal imzası ilə rəsmi proqram təminatının yüklənməsi tələb olunur). TU10x qrafik mühərriki üçün əlavə dəstək. HD Audio ilə bağlı problemlər həll edildi.
    • DisplayPort MST (Multi-Stream Transport) vasitəsilə ötürülən zaman məlumatların sıxılması üçün əlavə dəstək.
    • Yeni sürücü əlavə edildi "at11k» 802.11ax dəstəkləyən Qualcomm simsiz çipləri üçün.
      Sürücü mac80211 yığınına əsaslanır və giriş nöqtəsi, iş stansiyası və şəbəkə qovşağı rejimlərini dəstəkləyir.

    • Sysfs vasitəsilə müasir sərt disklərdə və SSD-lərdə istifadə olunan oxuna bilən temperatur sensoru oxunuşlarına giriş təmin edilir.
    • Təqdim edildi ALSA səs sistemindəki əhəmiyyətli dəyişikliklər, kodunu silməyi hədəfləyir 2038-ci ilin problemləri (snd_pcm_mmap_status və snd_pcm_mmap_control interfeyslərində 32-bit time_t növünün istifadəsindən qaçınmaqla). Yeni audio kodeklər üçün əlavə dəstək
      Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.

    • Əlavə edilib LCD panellər üçün driverlər Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940,
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Sharp LS020B1DD01D.

    • Əlavə edilib ARM lövhələri və Gen1 platformaları üçün dəstək Amazon Echo (OMAP3630 əsaslı), Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
      Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
      Tolino Shine 3 elektron kitab oxuyucusu,
      Daxili Rəssamlar COM (i.MX7ULP), SolidRun Clearfog CX/ITX və HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
      Rockchip Radxa Dalang daşıyıcısı, Radxa Rock Pi N10, VMARC RK3399Pro SOM
      ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Uni9863SCaloc. Raspberry Pi 7180-də istifadə olunan PCIe nəzarətçisi üçün əlavə dəstək.

Eyni zamanda Latın Amerikası Azad Proqram Təminatı Fondu formalaşmışdır
seçimi tamamilə pulsuz kernel 5.6 - Linux pulsuz 5.6-gnu, əhatə dairəsi istehsalçı tərəfindən məhdudlaşdırılan, sərbəst olmayan komponentləri və ya kod bölmələrini ehtiva edən proqram təminatı və sürücü elementlərindən təmizlənmişdir. Yeni buraxılış AMD TEE, ATH11K və Mediatek SCP üçün drayverlərdə blob yüklənməsini söndürür. AMD PSP, amdgpu və nouveau sürücüləri və alt sistemlərində yenilənmiş blob təmizləmə kodu.

Mənbə: opennet.ru

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