Linux 5.6 çekirdek sürümü

İki aylık geliştirme sürecinin ardından Linus Torvalds gönderilen çekirdek sürümü Linux 5.6. En dikkate değer değişiklikler arasında: WireGuard VPN arayüzünün entegrasyonu, USB4 desteği, zaman için ad alanları, BPF kullanarak TCP tıkanıklık işleyicileri oluşturma yeteneği, MultiPath TCP için ilk destek, 2038 sorununun çekirdeğini ortadan kaldırma, "bootconfig" mekanizması , ZoneFS.

Yeni sürüm, 13702 geliştiriciden gelen 1810 düzeltmeyi içeriyor.
yama boyutu - 40 MB (değişiklikler 11577 dosyayı etkiledi, 610012 satır kod eklendi,
294828 satır kaldırıldı). 45'de sunulanların yaklaşık %5.6'i
değişiklikler aygıt sürücüleriyle ilgilidir; değişikliklerin yaklaşık %15'i
donanım mimarilerine özel kod güncellemeye yönelik tutum, %12
ağ yığınıyla, %4'ü dosya sistemleriyle ve %3'ü dahili
çekirdek alt sistemleri.

Ana yenilikler:

  • Ağ alt sistemi
    • Katma VPN arayüzünün uygulanması WireGuardModern şifreleme yöntemleri (ChaCha20, Poly1305, Curve25519, BLAKE2s) temel alınarak uygulanan, kullanımı kolay, komplikasyon içermeyen, birçok büyük uygulamada kendini kanıtlamış ve çok yüksek performans sağlayan (OpenVPN'den 3,9 kat daha hızlı) verim). WireGuard, her ağ arayüzüne özel bir anahtar eklemeyi ve bunu genel anahtarları bağlamak için kullanmayı içeren şifreleme anahtarı yönlendirme konseptini kullanır. Ortak anahtarlar, SSH'ye benzer şekilde bir bağlantı kurmak için değiştirilir. WireGuard'ın çalışması için gerekli şifreleme temelleri edildi taşınan kütüphaneden çinko standart Kripto API'sinin bir parçası olarak ve dahil çekirdeğe 5.5.
    • Başlatan MPTCP'yi (MultiPath TCP) desteklemek için gerekli bileşenlerin entegrasyonu, TCP bağlantısının çalışmasını, paketlerin farklı IP adresleriyle ilişkili farklı ağ arayüzleri aracılığıyla birkaç rota boyunca eşzamanlı olarak teslim edilmesiyle organize etmek için kullanılan TCP protokolünün bir uzantısı. Ağ uygulamaları için böyle bir toplu bağlantı, normal bir TCP bağlantısına benzer ve tüm akış ayırma mantığı MPTCP tarafından gerçekleştirilir. Çok yollu TCP, hem verimi artırmak hem de güvenilirliği artırmak için kullanılabilir. Örneğin, MPTCP, WiFi ve 4G bağlantılarını aynı anda kullanarak bir akıllı telefondaki veri aktarımını düzenlemek veya bir sunucuyu pahalı bir bağlantı yerine birkaç ucuz bağlantı kullanarak bağlayarak maliyetleri azaltmak için kullanılabilir.
    • Katma ağ kuyruğu işleme disiplini için destek sch_ets (Gelişmiş Şanzıman Seçimi, IEEE 802.1Qaz), bant genişliğini farklı trafik sınıfları arasında dağıtma yeteneği sağlar. Belirli bir trafik sınıfındaki yük tahsis edilen bant genişliğinin altındaysa, ETS diğer trafik sınıflarının mevcut (kullanılmayan) bant genişliğini kullanmasına izin verir. Qdisc sch_ets, bir PRIO disiplini olarak yapılandırılmıştır ve katı ve paylaşılan bant genişliği sınırlarını tanımlamak için trafik sınıflarını kullanır. ETS disiplinlerin birleşimi olarak çalışır ÖZEL и DRR — Kesinlikle sınırlı trafik sınıfları varsa PRIO kullanılır, ancak kuyrukta trafik yoksa DRR gibi çalışır.
    • Yeni bir tür BPF programı eklendi BPF_PROG_TYPE_STRUCT_OPSBPF aracılığıyla çekirdek işlev işleyicilerini uygulamanıza olanak tanır. Şu anda bu özellik, TCP tıkanıklık kontrol algoritmalarını BPF programları biçiminde uygulamak için zaten kullanılabilir. Örnek olarak önerilen Algoritma uygulamalı BPF programı DCTCP.
    • Çekirdeğe kabul edildi değişiklikler, çeviri araçları ettool ioctl() ile kullanılacak ağ bağlantısı arayüzü. Yeni arayüz, uzantı eklemeyi kolaylaştırır, hata yönetimini iyileştirir, durum değiştiğinde bildirim gönderilmesine olanak tanır, çekirdek ile kullanıcı alanı arasındaki etkileşimi basitleştirir ve senkronize edilmesi gereken adlandırılmış listelerin sayısını azaltır.
    • Ara paket ara belleğe alma işleminin uç ağ ekipmanı (bufferbloat) üzerindeki olumsuz etkisini azaltmayı amaçlayan FQ-PIE (Akış Kuyruğu PIE) ağ kuyruğu yönetimi algoritmasının uygulanması eklendi. FQ-PIE, kablolu modemli sistemlerde kullanıldığında yüksek verimlilik gösterir.
  • Disk Alt Sistemi, G/Ç ve Dosya Sistemleri
    • Btrfs dosya sistemi için katma DISCARD işleminin eşzamansız uygulanması (artık fiziksel olarak saklanması gerekmeyen serbest bırakılmış blokların işaretlenmesi). Başlangıçta, DISCARD işlemleri eşzamanlı olarak gerçekleştirildi; bu durum, sürücülerin karşılık gelen komutların tamamlanmasını beklemesi nedeniyle performansın düşmesine yol açabilir. Eşzamansız uygulama, sürücünün DISCARD işlemini tamamlamasını beklememenizi ve bu işlemi arka planda gerçekleştirmenizi sağlar.
    • XFS'de yürütülen Eski 32 bitlik zaman sayaçlarını kullanan kodun temizlenmesi (time_t türü time64_t ile değiştirildi), bu da 2038 sorununa yol açtı. 32 bit platformlarda meydana gelen hatalar ve bellek bozulmaları düzeltildi. Kod, genişletilmiş özelliklerle çalışacak şekilde yeniden düzenlendi.
    • Ext4 dosya sistemine tanıtıldı Okuma ve yazma işlemleri sırasında inode kilitlemenin ele alınmasıyla ilgili performans optimizasyonları. Doğrudan G/Ç modunda geliştirilmiş yeniden yazma performansı. Sorunların teşhisini kolaylaştırmak için ilk ve son hata kodları süper blokta saklanır.
    • F2FS dosya sisteminde uygulandı verileri sıkıştırılmış biçimde saklama yeteneği. Tek bir dosya veya dizin için sıkıştırma "chattr +c file" veya "chattr +c dir;" komutu kullanılarak etkinleştirilebilir. dizin/dosyaya dokunun". Bölümün tamamını sıkıştırmak için mount yardımcı programında “-ocompress_extension=ext” seçeneğini kullanabilirsiniz.
    • Çekirdek bir dosya sistemi içerir BölgeFSBölgelere ayrılmış depolama aygıtlarıyla düşük düzeyli çalışmayı basitleştiren. Bölgeli sürücüler, sabit manyetik disklerdeki veya NVMe SSD'lerdeki cihazlar anlamına gelir; depolama alanı, blok veya sektör gruplarını oluşturan bölgelere bölünmüş olup, içine yalnızca sıralı veri eklenmesine izin verilerek tüm blok grubunun güncellenmesine izin verilir. FS ZoneFS, Western Digital tarafından geliştirilmiştir ve sürücüdeki her bölgeyi, verileri sektör ve blok düzeyinde manipülasyon olmadan ham modda depolamak için kullanılabilecek ayrı bir dosyayla ilişkilendirir; Uygulamaların, bir ioctl kullanarak blok cihazına doğrudan erişmek yerine dosya API'sini kullanmasına izin verir.
    • NFS'de, bölümlerin UDP üzerinden montajı varsayılan olarak devre dışıdır. NFS 4.2 spesifikasyonunda tanımlanan, dosyaları sunucular arasında doğrudan kopyalama yeteneği için destek eklendi. Sunucu arızası durumunda önbelleğe alınmış öznitelik değerlerinin kullanılmasına olanak tanıyan yeni bir bağlama seçeneği olan "softreval" eklendi. Örneğin, bu seçeneği belirlerken, sunucu kullanım dışı kaldıktan sonra NFS bölümündeki yollar boyunca hareket etmek ve önbelleğe yerleşmiş bilgilere erişmek mümkün kalır.
    • Gerçekleştirillen Bireysel dosyaların bütünlüğünü ve kimlik doğrulamasını izlemek için kullanılan fs-verity mekanizmasının performansının optimizasyonu. Merkle hash ağacının kullanılması sayesinde artan sıralı okuma hızı. FS_IOC_ENABLE_VERITY'nin performansı, önbellekte veri olmadığında optimize edilmiştir (veri içeren sayfaların önleyici okunması uygulanmıştır).
  • Sanallaştırma ve Güvenlik
    • SELinux modülünü çalışırken devre dışı bırakma özelliği kullanımdan kaldırıldı ve halihazırda etkinleştirilmiş bir SELinux'un kaldırılması gelecekte yasaklanacak. SELinux'u devre dışı bırakmak için çekirdek komut satırına "selinux=0" parametresini aktarmanız gerekecektir.
    • Katma sistem saatinin durumunu konteynere (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), konteynerdeki kendi zamanınızı kullanın ve konteyneri başka bir ana bilgisayara taşırken, CLOCK_MONOTONIC ve CLOCK_BOOTTIME okumalarının değişmeden kaldığından emin olun (uyku modunda olmayı hesaba katarak veya dikkate almadan yüklemeden sonraki süreyi hesaba katın) ).

    • /dev/random engelleme havuzu kaldırıldı. /dev/random'un davranışı, havuz başlatıldıktan sonra entropi engellemesini önleme açısından /dev/urandom'a benzer.
    • Çekirdek çekirdek, VirtualBox çalıştıran konuk sistemlerin ana bilgisayar ortamı (VirtualBox Paylaşımlı Klasör) tarafından dışa aktarılan dizinleri bağlamasına olanak tanıyan bir sürücü içerir.
    • BPF alt sistemine bir dizi yama eklendi (BPF dağıtıcısı), Spectre V2 sınıfı saldırılara karşı koruma sağlamak için Retpoline mekanizmasını kullanırken, bunlarla ilişkili olaylar meydana geldiğinde BPF programlarını çağırma verimliliğini artırmanıza olanak tanır (örneğin, bir saldırı gerçekleştiğinde XDP işleyicilerinin çağrılmasını hızlandırmayı mümkün kılar). ağ paketi geldiğinde).
    • AMD APU'larda yerleşik TEE'yi (Güvenilir Yürütme Ortamı) desteklemek için sürücü eklendi.
  • Bellek ve sistem hizmetleri
    • BPF, küresel işlevler için destek ekledi. Geliştirme, BPF programlarına dahil edilebilecek işlev kitaplıklarına destek ekleme girişiminin bir parçası olarak yürütülmektedir. Bir sonraki adım, mevcut global fonksiyonların kullanımdayken değiştirilmesi de dahil olmak üzere, global fonksiyonların yüklenmesine izin veren dinamik uzantıları desteklemek olacaktır. BPF alt sistemi ayrıca toplu modda yürütmeyi destekleyen harita işleminin (kalıcı verileri depolamak için kullanılan) bir çeşidi için destek ekler.
    • Katma “Cpu_cooling” cihazı, aşırı ısınmış bir CPU'yu kısa süreliğine boşta tutarak soğutmanıza olanak tanır.
    • Sistem çağrısı eklendi openat2()dosya yolu çözünürlüğünü sınırlamak için bir dizi ek işaret sunan (bağlama noktalarının, sembolik bağlantıların, sihirli bağlantıların (/proc/PID/fd), “../” bileşenlerinin geçilmesi yasağı).
    • Güçlü ve daha az verimli, enerji açısından verimli CPU çekirdeklerini tek bir çipte birleştiren big.LITTLE mimarisini temel alan heterojen sistemler için, gerçek zamanlı görevleri yürütürken uclamp_min parametresi ayarlanır (появившийся çekirdek 5.3'te yükün sabitlenmesi için bir mekanizma vardır). Bu parametre, görevin zamanlayıcı tarafından yeterli performansa sahip bir CPU çekirdeğine yerleştirilmesini sağlar.
    • Çekirdek serbest bırakıldı 2038'in sorunları. Çığır açan zaman sayacı için 32 bitlik (işaretli int) time_t türünü kullanan kalan son işleyiciler değiştirildi; 1970'teki rapor dikkate alındığında bu sayının 2038'de taşması gerekir.
    • Eşzamansız G/Ç arayüzünün sürekli iyileştirilmesi io_uringiçinde sağlanan yeni işlemler için destek: IORING_OP_FALLOCATE (boş alanların rezervasyonu), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (dosyaları açma ve kapatma),
      IORING_OP_FILES_UPDATE (hızlı erişim listesine dosya ekleme ve listeden dosya kaldırma),
      IORING_OP_STATX (dosya bilgisi talebi),
      IORING_OP_READ,
      IORING_OP_WRITE (IORING_OP_READV ve IORING_OP_WRITV'nin basitleştirilmiş analogları),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (posix_fadvise ve madvise çağrılarının eşzamansız çeşitleri), IORING_OP_SEND,
      IORING_OP_RECV (ağ verilerini gönderme ve alma),
      IORING_OP_EPOLL_CTL (epoll dosya tanımlayıcıları üzerinde işlemler gerçekleştirin).

    • Sistem çağrısı eklendi pidfd_getfd(), bir işlemin başka bir işlemden açık bir dosya için dosya tanımlayıcısını almasına izin verir.
    • uygulandı Komut satırı seçeneklerine ek olarak, çekirdek parametrelerinin bir ayarlar dosyası aracılığıyla belirlenmesine olanak tanıyan “bootconfig” mekanizması. Bu tür dosyaları initramfs görüntüsüne eklemek için bootconfig yardımcı programı önerilmektedir. Bu özellik örneğin kprobe'ları önyükleme sırasında yapılandırmak için kullanılabilir.
    • Yeniden tasarlandı isimsiz kanallara veri yazmayı ve okumayı beklemeye yönelik bir mekanizma. Değişiklik, büyük projelerin paralel montajı gibi görevlerin hızlandırılmasını mümkün kıldı. Ancak optimizasyon, 4.2.1 sürümündeki ve 4.3 sürümünde düzeltilen bir hata nedeniyle GNU yapısında bir yarış durumuna yol açabilir.
    • Sistemin belleği azaldığında sınırlara tabi olmaması gereken belleksiz işlemleri işaretlemek için kullanılabilecek prctl() işlevine PR_SET_IO_FLUSHER bayrağı eklendi.
    • Android'de kullanılan ION bellek dağıtım sistemini temel alan bir alt sistem uygulandı dma-buf yığınlarısürücüler, uygulamalar ve çeşitli alt sistemler arasında bellek alanlarını paylaşmak için DMA arabelleklerinin tahsisini kontrol etmenize olanak tanır.
  • Donanım mimarileri
    • ARMv0'te görünen ve CPU üzerinde talimatların spekülatif olarak yürütülmesiyle ilgili saldırılara karşı koruma sağlayan E8.5PD uzantısı için destek eklendi. E0PD tabanlı koruma, KPTI (Çekirdek Sayfa Tablosu Yalıtımı) korumasından daha düşük ek yük sağlar.
    • ARMv8.5 mimarisini temel alan sistemler için, donanımsal sözde rastgele sayı üretecine erişim sağlayan RNG talimatı desteği eklenmiştir. Çekirdekte, RNG talimatı, çekirdek tarafından sağlanan sözde rastgele sayı üretecini başlatırken entropi üretmek için kullanılır.
    • Çekirdeğe eklenen MPX (Bellek Koruma Uzantıları) desteği kaldırıldı 3.19 ve bellek alanlarının sınırlarına uyulduğundan emin olmak için işaretçilerin kontrolünü organize etmenize olanak tanır. Bu teknoloji derleyicilerde yaygın olarak kullanılmıyordu ve GCC'den kaldırıldı.
    • RISC-V mimarisi için, bellekle çalışırken hataların belirlenmesine yardımcı olan KASan (Çekirdek adresi temizleme) hata ayıklama aracı desteği uygulanmıştır.
  • Оборудование
    • Şartname desteği uygulandı USB 4.0Thunderbolt 3 protokolünü temel alan ve 40 Gbps'ye kadar aktarım hızı sağlarken, USB 2.0 ve USB 3.2 ile geriye dönük uyumluluğu da korur. Benzetme yoluyla Yıldırım USB 4.0 arayüzü, bir konektörle tek bir kablo üzerinden farklı protokolleri tünellemenize olanak tanır C TipiPCIe, Display Port ve USB 3.x'in yanı sıra, örneğin ana bilgisayarlar arasındaki ağ bağlantılarını düzenlemek için protokollerin yazılım uygulamaları da dahil. Uygulama, halihazırda Linux çekirdeğinde bulunan Thunderbolt sürücüsünü temel alır ve onu USB4 uyumlu ana bilgisayarlar ve cihazlarla çalışacak şekilde uyarlar. Değişiklikler aynı zamanda birden fazla cihazı tek bir konektör aracılığıyla bağlamak için tüneller oluşturmaktan sorumlu olan Bağlantı Yöneticisinin yazılım uygulamasına Thunderbolt 3 cihazları için destek de ekliyor.
    • Amdgpu sürücüsünde katma HDCP 2.x (Yüksek Bant Genişlikli Dijital İçerik Koruması) kopya koruma teknolojisi için ilk destek. Raven 2'yi temel alan AMD Pollock ASIC çipi için destek eklendi. Renoir ve Navi aileleri için GPU'yu sıfırlama özelliği uygulandı.
    • Intel video kartları için DRM sürücüsü katma Ice Lake ve Tiger Lake mikro mimarisini temel alan yongalar için DSI VDSC desteği, LMEM mmap (cihaz yerel belleği) uygulandı, VBT (Video BIOS Tablosu) ayrıştırması iyileştirildi, Coffee Lake yongaları için HDCP 2.2 desteği uygulandı.
    • amdkfd sürücü kodunun (Fiji, Tonga, Polaris gibi ayrı GPU'lar için) amdgpu sürücüsüyle birleştirilmesine yönelik çalışmalar devam etti.
    • K10temp sürücüsü yeniden düzenlendi ve AMD Zen CPU'lar için voltaj ve akım parametrelerinin görüntülenmesine yönelik desteğin yanı sıra Zen ve Zen 2 CPU'larda kullanılan sıcaklık sensörlerinden gelen genişletilmiş bilgiler eklendi.
    • Yeni sürücüde katma Turing mikro mimarisini (GeForce RTX 2000) temel alan NVIDIA GPU'lar için doğrulanmış ürün yazılımı yükleme modu desteği, bu kartlar için 3D hızlandırma desteğini etkinleştirmeyi mümkün kıldı (NVIDIA dijital imzalı resmi ürün yazılımının indirilmesi gerekir). TU10x grafik motoru için destek eklendi. HD Ses ile ilgili sorunlar çözüldü.
    • DisplayPort MST (Multi-Stream Transport) aracılığıyla aktarıldığında veri sıkıştırma desteği eklendi.
    • Yeni sürücü eklendi"ath11k» 802.11ax'ı destekleyen Qualcomm kablosuz yongaları için.
      Sürücü, mac80211 yığınını temel alır ve erişim noktası, iş istasyonu ve ağ düğümü modlarını destekler.

    • Sysfs aracılığıyla modern sabit disklerde ve SSD'lerde kullanılan okunabilir sıcaklık sensörü okumalarına erişim sağlanır.
    • Gönderilen ALSA ses sisteminde, kodlardan kurtulmayı amaçlayan önemli değişiklikler 2038'in sorunları (snd_pcm_mmap_status ve snd_pcm_mmap_control arayüzlerinde 32 bit time_t türünün kullanılmasından kaçınılarak). Yeni ses codec bileşenleri için destek eklendi
      Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.

    • Katma LCD paneller için sürücüler Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Keskin LS020B1DD01D.

    • Katma ARM panoları ve Gen1 platformları için destek Amazon Echo (OMAP3630 tabanlı), 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 e-Kitap okuyucu,
      Gömülü Sanatçılar COM (i.MX7ULP), SolidRun Clearfog CX/ITX ve HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
      Rockchip Radxa Dalang Taşıyıcı, 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. Raspberry Pi 4'te kullanılan PCIe denetleyicisi için destek eklendi.

Aynı zamanda Latin Amerika Özgür Yazılım Vakfı oluşturulan
seçenek tamamen ücretsiz çekirdek 5.6 - Linux-libre 5.6-gnu, kapsamı üretici tarafından sınırlandırılmış, özgür olmayan bileşenler veya kod bölümleri içeren ürün yazılımı ve sürücü öğelerinden temizlenmiş. Yeni sürüm, AMD TEE, ATH11K ve Mediatek SCP sürücülerine blob yüklemeyi devre dışı bırakıyor. AMD PSP, amdgpu ve nouveau sürücüleri ve alt sistemlerindeki blob temizleme kodu güncellendi.

Kaynak: opennet.ru

Yorum ekle