Linus Torvalds, Pazar'ı Pazartesi'ye bağlayan gece bir sonraki Linux çekirdeğini yayınladı. Çoğu zaman olduğu gibi, Linux 6.12'de yapılan değişikliklerin yarısından fazlası yeni, uyarlanmış ve genişletilmiş sürücülerle ilgilidir. Yeniliklerin yaklaşık onda biri performans ve kendi kendine testin yanı sıra çekirdek ve gelişimiyle ilgili diğer araç kutusu yardımcı programları ile ilgilidir. Ayrıca dosya sistemleriyle ilgili iyileştirmeler ve optimizasyonlar için de bazı çalışmalar yapılmıştır. Torvalds, iki ay önce ilk sürüm adayı sırasında bunu “her şeyden biraz” olarak tanımlamıştı.
Duyuru
Yeni Linux çekirdeği sıkıcı olmaktan başka bir şey değil. Nihayet bagajında uzun süredir ertelenen bazı eşyalar var. Bu, “genişletilebilir zamanlayıcıyı” (sched_ext) çevreleyen sürtünmeyi giderir. eBPF aracılığıyla genişletilebilen zamanlayıcı artık Linux çekirdeğinin bir parçası. Ek olarak, PREEMPT_RT gerçek zamanlı zamanlayıcı artık ana çekirdeğe ulaştı. Artık Linux çekirdeğini yapılandırırken uzman modu yapılandırma seçeneği aracılığıyla etkinleştirilebilir.
Çekirdeğe gerçek zaman geldi
Linux'un aynı zamanda gerçek zamanı işleyebildiği yeni bir haber değil. 2005 yılında Thomas Gleixner, Linux için bir yama seti olarak PREEMPT_RT'yi piyasaya sürdü. O zamandan bu yana, büyüyen bir ekip yirmi yılı aşkın süredir gerçek zamanlı yeteneği (gerçek zamanlı destek) sürekli olarak geliştirmektedir. Setin ilgili çekirdek versiyonlarına uyarlanmasıyla “gerçek zaman” Linux'a yerleştirilebilir. Geliştirme, resmi çekirdek kaynağının (ana hat) dışında gerçekleşti.
Sayısız teknik ve politik engelin aşılmasının ardından törensel ve alışılmadık devir teslimi bu yıl 19 Eylül'de gerçekleşti. Gleixner, git sürüm yönetim sistemi aracılığıyla PREEMPT_RT'yi ana çekirdeğe dahil etmek için “çekme isteğini” yalnızca elektronik olarak göndermekle kalmadı. Ayrıca çekme talebini basılı olarak Linus Torvalds'a altın varakla sarılmış ve kırmızı kurdele ve fiyonkla bağlanmış olarak bizzat teslim etti. Tıpkı Torvalds'ın yıllar önce şaka yollu dilediği gibi.
Ana çekirdekteki PREEMPT_RT ile Linux resmi olarak gerçek zamanlı bir işletim sistemidir. Gerçek zamanlı kıdemli OS-9, diğer şeylerin yanı sıra araba yapımında kullanılan QNX ve Mars gezgini Spirit, Opportunity, Curiosity ve Perseverance'a güç veren VxWorks gibi çoğunlukla tescilli rakiplerin saflarına katılıyor. Yarışma zaten çizim tahtasında gerçek zamanlı operasyon için tasarlanmış olsa da, Linux tasarım açısından evrensel bir işletim sistemidir ve gerçek zamanlı operasyon ancak daha sonra başarılı bir şekilde uyarlanmıştır. Uzun bir süre boyunca araştırmalarda bunun neredeyse “imkansız” olduğu düşünülüyordu.
Gerçek zamanlı çalışmayı sağlayan nedir?
Gerçek zamanlı çalışma, belirli bir süre içerisinde gelen bilgi, sinyal veya veriyi işleyebilmek anlamına gelir. Hiçbir gecikme olmamalıdır. Hiçbir donanım veya yazılım, kararlaştırılan sürenin artık karşılanamayacağı ölçüde müdahale edemez. Genel amaçlı işletim sistemleri genellikle bu gereksinimi karşılamamaktadır.
Açık bir örnek: Klavye girişinin işlenmesi gereken bilgi olduğunu varsayalım. On parmak sistemiyle hızlı ve hızlı bir şekilde yazı yazan herkes, evrensel bir işletim sisteminde normal çalışma sırasında akıcı bir şekilde yazabilir. Karakterler durdukları anda ekranda beliriyor. Sistem şu anda güncellemeleri yüklediği, GPU desteği olmadan yapay zeka kullanarak görüntü oluşturduğu ve ardından pil azaldığı için güç tasarrufu moduna geçtiği için performans sınırlarına ulaşıyor. Sonra birdenbire yazmak 80'lerden kalma eski bir teletip gibi oluyor. Artık yazmıyorsunuz bile ama harfler hala ekranda görünüyor.
Ancak gerçek zamanlı çalışmada, basılan tuşlar önceden tanımlanmış bir zamanda ekranda kalacaktır. Bu da sistemde bazı değişiklikler anlamına geliyor. Zamanlayıcının, gerçek zamanlı işlemeye öncelik verecek ve veri veya olayın belirtilen süre içinde işlenmesini sağlayacak şekilde değiştirilmesi gerekir. Genel amaçlı işletim sisteminin aksine, önceliklendirilmeyen şeylerin arka planda kalması ve gerçek zamanlı işlemenin geride bıraktığı sistem kaynaklarıyla yetinmesi gerekir. 6.8.1 çekirdek mesajındaki “Gerçek Zamanlı Kısma” bölümü bunun nasıl sorunlara yol açabileceğini açıklıyor. Bir sistem artık güvenlik önlemleri olmadan gerçek zamanlı olarak yönetilemez.
Gerçek zamanlı çalışmada performans ve güç yönetimi büyük ölçüde istenmeyen bir durumdur. CPU frekansını ayarlamak veya geleneksel uyku moduna girmek, gerçek zamanlı çalışmaya zarar verebilir. Bu noktada genel amaçlı ve gerçek zamanlı işletim sistemlerinin neden var olduğu açıklığa kavuşuyor. Hiç kimse ofis bilgisayarı veya dizüstü bilgisayarı gibi sürekli açık olan ve enerji tüketen bir bilgisayara sahip olmak istemez.
Linux entegrasyonu
Bu, Linux'un gerçek zamanlı bir işletim sistemine dönüştürülmesinin ne kadar karmaşık olduğunu ve tam entegrasyonun neden yirmi yıl sürdüğünü gösteriyor. Siyasi belirsizliklerin yanı sıra aşılması gereken birçok teknik engel de vardı.
Linux 6.12, x86_64, x86, ARM64 ve RISC-V için gerçek zamanlı işlemleri içerir. Etkinleştirme seçenek aracılığıyla gerçekleşir CONFIG_PREEMPT_RT içinde make menuconfig. Bu, Linux 5.10'dan bu yana PREEMPT_RT'ye dahil edilen PREEMPT_RT parçalarının artık ana çekirdekte etkinleştirilebileceği anlamına geliyor.
Dosya sistemleri
Şimdiye kadar altında bir dosya sistemi oluşturmak mümkündü. /proc eklemek. Tipik bir örnek /proc/PID/fdburada PID, işlem kimliğini temsil eder. Linux 6.12 tüm bunlara son veriyor. Şu andan itibaren dosya sistemleri artık oraya monte edilemeyecek. Bir yandan, dosya sistemlerini bu kadar “geçici” bir konuma monte etmek zaten pek mantıklı değil. Öte yandan bu aynı zamanda bir güvenlik riskidir.
Kullanıcı alanı (FUSE) dosya sistemleri artık “ID eşlemeli bağlamaları” da desteklemektedir. Bu temel destektir; gelecekteki çekirdek sürümleri daha fazlasını ekleyecektir. NTFS3, sıkıştırılmış dosyalara yönelik desteği genişletir. XFS, çok taneli ve ince taneli zaman damgalarını desteklemek için yeni ioctl'lerle birlikte gelir.
“Aygıt Belleği TCP” yamalarıyla yeni çekirdek, TCP veri aktarımını optimize eder. Bunu yapmak için, CPU'dan geçmeden ağ ile çevre birimleri arasında veri alışverişi yapmak için DMA arabellek mekanizmasını kullanır.
Pas devam ediyor
Rust entegrasyonu üzerindeki çalışmalar ilerleme kaydediyor. Özellikle Rust artık bir dizi çekirdek geliştirme ve güvenlik özelliğini yönetebiliyor. Burada “Çekirdek Adres Temizleyici” (KASAN) ile bağlantı, spektrum azaltma ve çekirdek kontrol akış bütünlüğünden bahsetmekte fayda var.
Çoğu gcc eklentisi artık Rust tarafından da kullanılabiliyor. Çift bağlantılı listeler ve kırmızı-siyah ağaçlar için yeni Rust modülleri de mevcut.
Özetle
Linux 6.12 daha çok bir bakım sürümüdür. Yerleşik genişletilebilir zamanlayıcı ve gerçek zamanlı yama emilimi ile temel yeni özellikler artık standarttır. Özellikle gerçek zamanlı çekirdeklerin dağıtımlara entegre edilmesi ve sürdürülmesi bunu kolaylaştırır.
Bu “bitlerin” dışında bile Linux 6.12 bir dizi yeni sürücü ve optimizasyon sunuyor. Bu yıl için olumlu bir sonuç, çünkü bir sonraki çekirdeğin 2025'ten önce çıkması beklenmiyor. Geleneksel olarak yılın son sürümü olan Linux 6.12, aynı zamanda uzun vadeli desteğe sahip bir sonraki LTS sürümü olacak.
Linux 6.12'nin kaynak kodu her zamanki gibi kernel.org adresinden indirilebilir. Tüm değişiklikler ve yenilikler, çekirdek değişiklik günlüğünde kapsamlı bir şekilde listelenmiş olarak bulunabilir.
(Bilmiyorum)

Bir yanıt yazın