Linux 5.6 çekirdek sürümü yayınlandı

İki aylıq inkişafdan sonra Linus Torvalds təqdim etdi nüvənin buraxılışı Linux 5.6. Ən diqqətçəkən dəyişikliklər arasında: WireGuard VPN interfeysinin inteqrasiyası, USB4 dəstəyi, zaman üçün adlandırma məkanları, BPF istifadə etməklə TCP aşırı yük protokolarının yaradılması imkanı, MultiPath TCP-nin ilkin dəstəyi, 2038 il problemi ilə nüvənin azad edilməsi, «bootconfig» mexanizmi, ZoneFS fayl sistemi.

Yeni versiyaya 1810 inkişafçıdan 13702 düzəliş daxil edilib,
patch ölçüsü – 40 MB (dəyişikliklər 11577 faylı əhatə etdi, 610012 sətir kod əlavə edildi,
294828 sətir silindi). 5.6-da təqdim olunan bütün dəyişikliklərin təxminən 45%-i
cihaz sürücüləri ilə bağlıdır, təxminən 15% dəyişikliklər
avadanlıq arxitekturalarına spesifik kodun yenilənməsi ilə bağlıdır, 12%
şəbəkə yığını ilə, 4% – fayl sistemləri ilə, 3% – daxili
nüvə alt sistemləri ilə bağlıdır.

Əsas yeni xüsusiyyətlər:

  • Şəbəkə alt sistemi
  • Disk alt sistemi, giriş/çıxış və fayl sistemləri
    • asenkron DISCARD işlemini (artık fiziksel olarak saklanmaması gereken serbest blokların işaretlenmesi) eklenmiştir. Başlangıçta DISCARD işlemleri senkron olarak gerçekleştiriliyordu ki bu da depolama birimlerinin ilgili komutlarının tamamlanmasını beklemek zorunda kalmasından dolayı performans düşüşüne neden oluyordu. Asenkron uygulama, depolama biriminin DISCARD'ı tamamlamasını beklemek zorunda kalmamayı ve bu işlemi arka planda gerçekleştirmeyi sağlar. XFS'te kod temizliği gerçekleştirildi; eski 32 bit zaman sayaçlarını (time_t türü time64_t ile değiştirildi) kullanan kod sorunlarına 2038 yılı problemi neden oluyordu. 32 bit platformlarda ortaya çıkan bellek hataları ve bozulmalar giderildi. Genişletilmiş nitelikler ile çalışacak kod yeniden düzenlendi.
    • ext4 dosya sistemine performans optimizasyonları yapıldı ve inode kilitlerinin işleme alınmasında iyileştirmeler sağlandı. Doğrudan girdi/çıktı (Direct I/O) modunda yeniden yazma performansı artırıldı. Sorunların teşhisini kolaylaştırmak amacıyla, süper blokta ilk ve son hata kodlarının kaydedilmesi sağlandı. F2FS dosya sistemi için
    • made optimized performance improvements related to inode locking during read and write operations have been made. Direct I/O mode write performance has been enhanced. To simplify problem diagnosis, retention of the first and last error codes in the superblock has been ensured.
    • F2FS dosya sistemi için reallaşdırılıb məlumatları sıxışdırılmış formada saxlama imkanı. Ayrı bir fayl və ya kataloq üçün sıxılma, «chattr +c file» və ya «chattr +c dir; touch dir/file» əmrindən istifadə edilərək aktivləşdirilə bilər. Bütün hissənin sıxılması üçün mount vasitəsində «-o compress_extension=ext» seçimi istifadə oluna bilər.
    • Çatı sistemi " ZoneFS", zonalanmış saxlama cihazları ilə aşağı səviyyəli işləri asanlaşdıran bir fayl sistemidir. Zonalanmış saxlama cihazları, hər biri bloklar və ya sektorlar qruplarına bölünmüş, yalnız ardıcıl məlumat əlavə edilməsinə icazə verilən sərt disk və ya NVMe SSD-lərin saxlama məkanını ifadə edir. ZoneFS fayl sistemi Western Digital şirkəti tərəfindən hazırlanmışdır və hər zonanı cihazda ayrı bir fayl ilə əlaqələndirir ki, bu da sektorlar və blok səviyyəsində müdaxilə etmədən xam rejimdə məlumat saxlama imkanı verir, yəni tətbiqlərin birbaşa blok cihazına müraciət etmək yerinə fayl API-sindən istifadə etməsinə imkan tanıyır.
    • NFS-də UDP üzərində bölmələri montaj etmək standart olaraq deaktivdir. Serverlər arasında faylların birbaşa köçürülməsi üçün NFS 4.2 spesifikasiyasında müəyyən edilmiş dəstək əlavə edilmişdir. Serverin uğursuzluq halında saxlanmış atribut dəyərlərini istifadə etməyə icazə verən yeni "softreval" montaj seçimi əlavə edilmişdir. Məsələn, bu seçimi təqdim etdikdə, serverin mövcud olmadığı halda NFS bölməsində yollar arasında hərəkət etmək və kechdə qalan məlumatlara müraciət etmək imkanı saxlanılır.
    • aparılıb fs-verity mexanizminin performansının optimizasiyası, fərdi faylların bütövlüyünü və həqiqiliyini yoxlamaq üçün istifadə olunur. Merkle ağacının tətbiqi sayəsində ardıcıl oxuma sürəti artırılıb. Keçmiş məlumatların olmadıqda FS_IOC_ENABLE_VERITY-nin performansı optimallaşdırılıb (veri səhifələrinin ön oxunuşu tətbiq edilmişdir).
  • Virtualizasiya və təhlükəsizlik
    • SELinux modulunun iş zamanı deaktiv edilmə imkanı köhnə hesab olunmuşdur və gələcəkdə aktivləşdirilmiş SELinux-un boşaldılması qadağan ediləcəkdir. SELinux-u deaktiv etmək üçün "selinux=0" parametrini kernel əmrlərinə ötürmək tələb olunur.
    • Əlavə edilmişdir zaman (time namespaces) üçün nizamların dəstəyi, sistem saatlarının vəziyyətini (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME) konteynerə bağlamağa, konteynerdə öz zamanını istifadə etməyə və konteyneri başqa bir hosta köçürdükdə CLOCK_MONOTONIC və CLOCK_BOOTTIME göstəricilərinin dəyişməzliyini təmin etməyə imkan tanıyır (yuxuda qaldıqda və ya qalmadıqda yüklənmə sonrası zamanı nəzərə alır).
    • /dev/random daxilində bloklanan pul silinmişdir. /dev/random-ın davranışı, pulun təsis edilməsindən sonra entropiyanın bloklanmasının qarşısını almaq baxımından /dev/urandom-a yaxınlaşdırılmışdır.
    • Körün əsas hissəsinə VirtualBox-da işləyən qonaq sistemlərin host mühitindən ixrac olunan qovluqları montaj etməyə imkan verən bir sürücü əlavə edilib (VirtualBox Shared Folder).
    • BPF alt sisteminə bir sıra patçlar əlavə edilib (BPF dispatcher), Retpoline mexanizmi tətbiq edildiyi halda Spectre V2 hücumlarından müdafiə üçün BPF proqramlarının çağırılmasının effektivliyini artırmağa imkan verir, məsələn, şəbəkə paketi daxil olduqda XDP emalçılarını sürətləndirməyə imkan tanıyır.
    • AMD APU-larına inteqrasiya olunmuş TEE (Trusted Execution Environment) mühitlərinin dəstəklənməsi üçün sürücü əlavə edilib.
  • Yaddaş və sistem xidmətləri
    • BPF-yə qlobal funksiyaların dəstəyi əlavə edilib. İnkişaf BPF proqramlarında qoşula bilən funksiyalar kitabxanalarının dəstəklənməsi üzrə təşəbbüs çərçivəsində aparılır. Növbəti addım, hazırda istifadə zamanı mövcud qlobal funksiyaların yerini dəyişdirməyə imkan verən dinamik genişləndirmələrin dəstəklənməsi olacaq. BPF alt sistemində, həmçinin daimi məlumatların saxlanması üçün istifadə olunan mapa əməliyyatının variantının dəstəyi əlavə edilib, bu da partiya rejimində icra oluna bilər.
    • Əlavə edilib «cpu_cooling» cihazı, istilənmiş CPU-nu qısa müddət ərzində yuxu (idle) vəziyyətinə gətirərək soyutmağa imkan tanıyır.
    • Sistem çağırışı əlavə edilib openat2(), fayl yolunun icazəsini məhdudlaşdırmaq üçün bir sıra əlavə flaq əlavə edir (montaj nöqtələrinin, simvolların linklərinin, magic linklərin (\/proc\/PID\/fd), «..\/» komponentlərinin kəsişməsini qadağan edir).
    • big.LITTLE arxitekturasına əsaslanan müxtəlif sistemlər üçün, bir çipdə güclü və daha az istehsal gücünə malik enerji səmərəli CPU nüvələri birləşdirərək, reaksiya vaxtı olan vəzifələr yerinə yetirilərkən uclamp_min parametrinin tətbiqi təmin edilib (5.3 mərhələsində meydana çıxdı yüklərin möhkəmlənməsini təmin edən mexanizm). Göstərilən parametr, tapşırığın planlaşdırıcı tərəfindən kifayət qədər performansa malik CPU nüvəsində yerləşdiriləcəyini təmin edir.
    • Kör artıq 2038 il problemiilə bağlı məsələlərdən azaddır. 1970-ci ildən hesaba alındığı üçün 32 bit (signed int) time_t tipinin epox zamanı sayğacında istifadə edildiyi son qalan emalçılar dəyişdirilmişdir, bu da 2038-ci ildə baş verməlidir.
    • Asinxron giriş/çıxış interfeysinin io_uringtəkmilləşdirilməsi davam etdirilir, burada dəstək təqdim edilmişdir yeni əməliyyatların: IORING_OP_FALLOCATE (boş sahələrin ayrılması), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (faylların açılması və bağlanması),
      IORING_OP_FILES_UPDATE (tez-tez daxil edilən faylların əlavə edilməsi və silinməsi),
      IORING_OP_STATX (fayl məlumatlarını sorğulama),
      IORING_OP_READ,
      IORING_OP_WRITE (IORING_OP_READV və IORING_OP_WRITEV əməliyyatlarının sadələşdirilmiş versiyaları),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (posix_fadvise və madvise çağırışlarının asinxron variantları), IORING_OP_SEND,
      IORING_OP_RECV (şəbəkə məlumatlarının göndərilməsi və alınması) əlavə edilmişdir.
      IORING_OP_EPOLL_CTL (epoll fayl təsvirçiləri ilə əməliyyatlar).
    • Sistem çağırışı əlavə edilib pidfd_getfd(), bir prosesi digər prosessdən açıq fayl təsvirçisini çıxarmağa imkan verərək.
    • Tətbiq edilib «bootconfig» mexanizmi, komanda sətiri seçimləri ilə yanaşı, nüvənin iş parametrlərini tənzimləmə faylı vasitəsilə təyin etməyə imkan tanıyır. Belə faylların initramfs görüntüsünə əlavə edilməsi üçün bootconfig faydalı proqramı təklif edilmişdir. Bu imkan, məsələn, yükləmə zamanı kprobes tənzimləmələri üçün istifadə oluna bilər.
    • Yenidən işlənilib adlandırılmamış kanallarda (pipe) verilənlərin oxunması və yazılması üçün gözləmə mexanizmi. Dəyişiklik, böyük layihələrin paralel toplanması kimi vəzifələrin yerinə yetirilməsini sürətləndirdi. Bununla yanaşı, optimallaşdırma, 4.2.1 buraxılışında olan xətalar səbəbiylə GNU make-da yarış vəziyyətinə səbəb ola bilər; bu problem 4.3 versiyasında aradan qaldırılıb.
    • prctl() funksiyasına PR_SET_IO_FLUSHER bayrağı əlavə edilib, bu da aşağıdakı durumlarda yaddaş liberasiya edən prosesləri işarələmək üçün tətbiq oluna bilər: sistemdə yaddaş çatışmazlığı zamanı məhdudiyyətlərin tətbiq olunmaması.
    • Android-da tətbiq edilən yaddaş paylanma sistemi ION əsasında yaradılmış sistem dma-buf heaps, sürücülər, tətbiqlər və müxtəlif alt sistemlər tərəfindən yaddaş sahələrinin paylaşılmasını idarə etməyə imkan verən DMA-buffersin ayrılmasını tənzimləyir.
  • Avadanlıq arxitekturaları
    • ARMv8.5-də meydana çıxan E0PD genişləndirməsinin dəstəyi əlavə edilib, bu da CPU-da spekulyativ icra ilə əlaqəli hücumlardan müdafiəni təmin edir. E0PD əsaslı müdafiə, KPTI (Kernel Page Table Isolation) müdafiəsindən daha az xərclərə səbəb olur.
    • ARMv8.5 arxitekturası üçün RNG əmrinin dəstəyi əlavə edilmişdir, bu da avadanlıq tərəfindən yaradılan saxta təsadüfi ədədlərə giriş imkanı verir. Nüvədə RNG əmri, nüvə tərəfindən təqdim edilən saxta təsadüfi ədədlər yaradan generatorun başlanğıcında entropiyanı formalaşdırmaq üçün istifadə olunur.
    • MPX (Memory Protection Extensions) genişləndirmələrinin dəstəyi ləğv edilib, bu da nüvədə 3.19 və yaddaş bölgələrinin hədlərinə riayət edilməsini yoxlamağa imkan verirdi. Bu texnologiya kompilyatorlarda geniş yayılmadı və GCC-dən çıxarıldı.
    • RISC-V arxitekturası üçün KASan (Kernel address sanitizer) debuq alətinin dəstəyi təmin edilib, bu da yaddaş istifadəsi zamanı xətaların aşkar edilməsini təmin edir.
  • Avadanlıq
    • specification-nin dəstəyi tətbiq edilib USB 4.0, bu, Thunderbolt 3 protokoluna əsaslanır və 40 Gbit/s-ə qədər bant genişliyini təmin edir, USB 2.0 və USB 3.2 ilə geri uyğunluğunu qoruyur. Thunderbolt USB 4.0 interfeysi, bir Type-C konnektoruna sahib olan bir kabelin üzərində müxtəlif protokolları tunelləməyə imkan tanıyır. Type-C, daxil olmaqla PCIe, Display Port və USB 3.x, eləcə də proqram təminatı reallaşdırmaları protokolların, məsələn, hostlar arasında şəbəkə bağlantıları qurma üçün. Reallaşdırma artıq Linux nüvəsinə daxil olan Thunderbolt sürücüsünə əsaslanır və onu USB4-ə uyğun hostlar və cihazlarla işləmək üçün uyğunlaşdırır. Dəyişikliklər eyni zamanda Thunderbolt 3 cihazlarının dəstəklənməsini əlavə edir, bu da bir port vasitəsilə bir neçə cihazı bağlamaq üçün tunellərin yaradılmasına cavabdeh olan əlaqə menecerinin (Connection Manager) proqram təminatına daxil edilməsini təmin edir.
    • amdgpu sürücüsündə XFS'te HDCP 2.x (Yüksək genişlikdə Digital Məzmun Qoruma) texnologiyasının ilkin dəstəyi. Raven 2-ə əsaslanan AMD Pollock ASIC çipinin dəstəyi əlavə edilmişdir. Renoir və Navi ailələri üçün GPU-nun sıfırlanması imkanı reallaşdırılmışdır.
    • Intel qrafik kartları üçün DRM sürücüsündə XFS'te Ice Lake və Tiger Lake mikroarxitekturasına əsaslanan çiplər üçün DSI VDSC dəstəyi, LMEM mmap (cihazın yerli yaddaşı) reallaşdırılması, VBT (Video BIOS Cədvəli) parserinin yaxşılaşdırılması, Coffee Lake çipləri üçün HDCP 2.2 dəstəyi reallaşdırılmışdır.
    • amdkfd sürücüsünün (Fiji, Tonga, Polaris kimi ayrılmış GPU-lar üçün) kodunun birləşdirilməsi işləri davam etdirilmişdir.
    • k10temp sürücüsü yenidən işləndilmişdir, burada AMD Zen CPU-ları üçün gərginlik və cərəyan göstərmə parametrlərinin nümayişi, eləcə də Zen və Zen 2 CPU-larında istifadə olunan temperatur sensorlarından geniş məlumatların təmin edilməsi əlavə edilmişdir.
    • nouveau sürücüsündə XFS'te Turing mikroarxitekturasına əsaslanan NVIDIA GPU-ları üçün təsdiqlənmiş firmware yüklənməsi rejimi dəstəyi əlavə edilmişdir (GeForce RTX 2000), bu da bu kartlar üçün 3D sürətləndirmənin dəstəklənməsi üçün (NVIDIA-nın rəqəmli imzası olan rəsmi firmware yüklənməsini tələb edir) imkan vermişdir. TU10x qrafik mühərrikinin dəstəyi əlavə edilmişdir. HD Audio ilə bağlı problemlər həll edilmişdir.
    • DisplayPort MST (Multi-Stream Transport) vasitəsilə məlumatların sıxılmasının dəstəyi əlavə edilmişdir.
    • Yeni «ath11k» sürücüsü, 802.11ax ilə dəstək təmin edən Qualcomm simsiz çipləri üçün yaradılmışdır.
      Sürücü mac80211 liqasında əsasa dayanır və доступа, iş stansiyası və Mesh şəbəkəsinin düyün modlarını dəstəkləyir.
    • Müasir sərt disklərdə və SSD-lərdə istifadə olunan temperatur sensorlarının oxuna bilən göstəricilərinə sysfs vasitəsilə daxil olmaq imkanı təmin edilmişdir.
    • ALSA səs sistemində əhəmiyyətli dəyişikliklər edilib, kodun əksikliyindən qurtulmaq məqsədilə 2038 il problemi (snd_pcm_mmap_status və snd_pcm_mmap_control interfeyslərində 32-bit tipli time_t istifadəsindən qaçmaq). Yeni səs kodeklərini dəstəkləyir.
      Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.
    • LCD panelləri üçün Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Sharp LS020B1DD01D.
    • Əlavə edilmişdir ARM platformaları və Gen1 Amazon Echo platformalarının dəstəyi (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 eBook oxuyucusu,
      Embedded Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX və HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
      Rockchip Radxa Dalang Carrier, 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, Unisoc SC9863A, Qualcomm SC7180. PCIe-контроллер, используемый в Raspberry Pi 4, теперь поддерживается.

Одновременно латиноамериканский Фонд свободного ПО сформировал
вариант полностью свободного ядра 5.6Linux-libre 5.6-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске отключена загрузка блобов в драйверах для AMD TEE, ATH11K и Mediatek SCP. Обновлён код чистки блобов в драйверах и подсистемах AMD PSP, amdgpu и nouveau.

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster