13 puan yazan GN⁺ 2024-09-20 | 4 yorum | WhatsApp'ta paylaş
  • Realtime Linux resmen çekirdeğin bir parçası haline geldi; artık gerçek zamanlı işletim sistemi (RTOS) olmadan da "gerçek zamanlı Linux" kullanmak mümkün olacak
  • Ses ekipmanları, endüstriyel kaynak lazerleri, Mars keşif araçları gibi sistemlerde "gerçek zamanlı Linux" kullanmak isteyenler için bu seçenek zaten uzun zamandır vardı (QNX gibi alternatiflerin kullanılmadığı varsayımıyla)
  • Üniversiteler 1990'ların sonlarından itibaren kendi gerçek zamanlı çekirdeklerini geliştirmeye başlamıştı
  • PREEMPT_RT adlı yama seti en az 2005'ten beri varlığını sürdürüyor
  • NO_HZ gibi gerçek zamanlı çalışmanın bazı yönleri uzun zaman önce ana çekirdek dalına taşındı ve veri merkezleri, bulut bilişim ya da çok sayıda CPU içeren her türlü sistemde kullanılabilir hale geldi

PREEMPT_RT'nin ana çekirdek dalına birleştirilmesi

  • PREEMPT_RT'nin 6.12 çekirdeğinde ana çekirdek dalına birleştirilme olasılığı yüksek
  • Son onay, Linus Torvalds Open Source Summit Europe'a katıldığı sırada verildi
  • Torvalds, süreçlerin çakıştığı tam anı tespit edebilen ancak gerçek zamanlı hesaplamaya aykırı gecikmeler getiren bir hata ayıklama aracı olan printk için ilk kodu yazdı
  • Phoronix blogu, gerçek zamanlı ana hat entegrasyonu için kritik olan iş parçacığı/atomik konsol desteğine yönelik printk değişiklikleriyle birlikte PREEMPT_RT'nin çekirdeğe ilerleyişini takip ediyordu

Masaüstü Linux'a etkisi? Pek yok

  • İleri seviye ses üretimi veya mastering'in ötesinde (hatta bunun bile tartışmalı olduğu söylenebilir), gerçek zamanlı çekirdek Windows'u daha hızlı ya da programları daha performanslı hale getirmeyecek
  • Buna karşın, gerçek zamanlı Linux'un sunduğu garantili yürütme ve en kötü durum gecikmesi; otomobil frenlerini izleyen, CNC makinelerini yöneten ve karmaşık çoklu CPU sistemlerini düzenleyen sistemler için çok yararlı
  • PREEMPT-RT'nin ana çekirdek dalına dahil edilmesi, gerçek zamanlı sistemlerin bakımını kolaylaştıracak ve ağaç dışı yamaları yönetme ihtiyacını ortadan kaldıracak

Profesyonel gerçek zamanlı OS çözüm sağlayıcılarına etkisi

  • Ubuntu, 2023'te dağıtımının gerçek zamanlı bir sürümünü sunmaya başlamıştı, ancak bunun için Ubuntu Pro aboneliği gerekiyordu
  • Ubuntu bu gerçek zamanlı sürümü; robotik, otomasyon, gömülü Linux ve diğer gerçek zamanlı ihtiyaçlar için düzeltmeler, yamalar, modül entegrasyonu ve testlerle birlikte sunuyordu
  • Bundan sonra görev açısından kritik sistemlere yönelik profesyonel gerçek zamanlı OS çözüm sağlayıcıları için tablo farklı olabilir

Linus Torvalds'un görüşü

  • 2006 Kernel Summit'te Torvalds, "Linux ile lazer kontrol etmek delilik ama bu odadaki herkes kendi tarzında deli" demişti
  • Ayrıca, "Linux kullanarak endüstriyel bir kaynak lazerini kontrol etmek istiyorsanız PREEMPT_RT kullanmanızda bir sorun yok" demişti
  • Yaklaşık 18 yıl sonra Torvalds, çekirdek ekibi ve gerçek zamanlı tarafın uzun süreli bakımcısı ve savunucusu Steven Rostedt, bu tür işleri daha kolay hale getirdi

GN⁺'un görüşü

  • Gerçek zamanlı Linux'un ana çekirdek dalına birleştirilmesinin, Linux'un kullanım alanını daha da genişletmesi ve farklı sektörlerde kullanılmasını sağlaması bekleniyor
  • Özellikle gerçek zamanlılığın kritik olduğu endüstriyel sahalar, gömülü sistemler ve robotik gibi alanlarda Linux'un daha yaygın kullanılacağı düşünülüyor
  • Ancak gerçek zamanlı Linux'u devreye alırken donanım uyumluluğu, sistem kararlılığı ve geliştirme zorluğu gibi unsurların dikkate alınması gerekecek
  • QNX, VxWorks, INTEGRITY gibi mevcut gerçek zamanlı işletim sistemleri de kendi alanlarında hâlâ rekabet gücünü koruyor; bu yüzden duruma uygun seçim yapmak gerekecek
  • Önümüzdeki dönemde gerçek zamanlı Linux ana çekirdek dalına dahil oldukça geliştirme ekosisteminin daha da canlanması ve farklı donanım ile yazılımlara verilen desteğin genişlemesi bekleniyor

4 yorum

 
ilotoki0804 2024-09-23

Gerçek zamanlı işletim sisteminin ne olduğu, PREEMPT_RT'nin ne olduğu ve gerçek zamanlı işletim sistemiyle nasıl bir ilişkisi bulunduğuna dair kısa da olsa bir açıklama olsaydı iyi olurdu; ancak ayrıntı neredeyse hiç verilmemiş, bu yüzden biraz hayal kırıklığı yarattı T_T

 
tongji 2024-09-23

Linux ile Real-Time Operating System (RTOS) arasındaki temel fark, gerçek zamanlılık ve deterministik çalışma davranışındadır. Bu fark, sistemin yanıt vermesi gereken zaman kısıtları ile doğruluk üzerinde büyük etki yaratır ve her bir işletim sisteminin hangi durumlarda uygun olduğunu anlamaya yardımcı olur.

  1. Linux ve RTOS'a genel bakış
    Linux: Genellikle değiştirilmiş Linux çekirdeğini temel alan ve çeşitli gömülü donanımlarda kullanılan bir işletim sistemidir. Kullanıcı dostudur; ağ, dosya sistemi, sürücüler gibi çeşitli özellikler sunar ve bu nedenle karmaşık uygulamalar için uygundur.

RTOS (Real-Time Operating System): İşlerin belirli bir süre içinde işlenmesini gerektiren yanıt verebilirliği garanti eden bir işletim sistemidir. RTOS çoğunlukla endüstriyel otomasyon, tıbbi cihazlar, otomotiv kontrol sistemleri gibi gerçek zamanlı tepkinin kritik olduğu alanlarda kullanılır.

  1. Gerçek zamanlılık ve deterministik çalışma farkları
    Linux'un özellikleri
    Deterministik olmayan yanıt süresi: Linux çekirdeği esas olarak throughput ve verimliliğe odaklanacak şekilde tasarlandığından, bir işin tam olarak ne zaman çalıştırılacağını öngörmek mümkün değildir. Bunun nedeni, scheduler'ın farklı önceliklerdeki işleri yönetmesi ve I/O işlemleri, bellek yönetimi gibi karmaşık süreçlerin etkili olmasıdır.

Preemption (kesme/ön alma) sınırlamaları: Genel Linux çekirdeği bazı gerçek zamanlı özellikler sunsa da, tüm çekirdek işleri anında kesilemez. Özellikle çekirdek uzun süre interrupt'lara yanıt vermeyebilir ya da kritik bir işi yürüttüğü için diğer task'ler gecikebilir.

Latency (gecikme) değişkenliği: Çeşitli sistem işleri ve multitasking ortamlarında gecikme süresi düzensiz biçimde değişebilir. Bu durum network stack işleme, disk I/O gibi çeşitli unsurlardan etkilenebilir.

Gerçek zamanlı patch (PREEMPT-RT): Gerçek zamanlı yanıtı iyileştirmek için PREEMPT-RT patch'i uygulanarak çekirdeğin gerçek zamanlılık yeteneği artırılabilir. Ancak yine de RTOS gibi tamamen öngörülebilir bir yanıtı garanti etmez.

RTOS'un özellikleri
Deterministik yanıt süresi: RTOS, tasarım gereği belirli bir süre içinde işlerin tamamlanmasını garanti eder. Verilen süre içinde işi mutlaka yerine getirdiği için yanıtlar son derece tutarlı ve öngörülebilirdir.

Yüksek hızlı interrupt işleme: RTOS, interrupt işlemeyi hızlı ve öncelikli biçimde yürütür; çoğu durumda kritik task'lerin hızla işlenebilmesi için interrupt'lara öncelik verir. Bu da hard real-time kısıtlarını karşılar.

Küçük ve hafifletilmiş çekirdek: RTOS yalnızca gerekli minimum işlevleri içerdiğinden oldukça hafiftir ve iş zamanlaması çok verimlidir. Bu sayede sistem yükü düşüktür ve işler tam olarak tasarlanmış zamanlamaya göre çalıştırılabilir.

Öncelik tabanlı scheduling: Task öncelikleri açık biçimde belirlenir ve yüksek öncelikli işler anında işlenebilir. Bu da mission-critical ortamlarda kullanımını mümkün kılar.

Low Latency: RTOS, gerçek zamanlı işleri çok düşük gecikmeyle işler. Donanım seviyesinde hızlı yanıt gerektiğinde uygundur.

  1. Gerçek zamanlılık açısından temel farkların özeti
    Özellik || Linux RTOS
    ============================================================
    Yanıt süresi || Deterministik değil, değişkenlik var Deterministik, sabit yanıt süresi garantisi
    Öncelik işleme || Öncelik vardır ancak gerçek zaman garantisi yok Öncelikler nettir ve
    || yüksek öncelikli işler önce işlenir
    Çekirdek boyutu || Büyük ve çok özellikli Küçük ve hafif
    Gecikme || Ağ, disk I/O vb. nedeniyle Çok düşük, neredeyse sabit
    gecikme olabilir
    Sistem karmaşıklığı || Karmaşık uygulamaları çalıştırmak için uygun Basit gerçek zamanlı işleri yürütmek için uygun
    Kullanım alanları || Multimedya, ağ vb. Endüstriyel kontrol, robotik, tıbbi cihazlar vb.
    || karmaşık kullanıcı arayüzleri
    Sonuç
    Embedded Linux, ağ işleme, multimedya uygulamaları ve karmaşık kullanıcı arayüzleri gerektiren gömülü sistemler için uygundur. Gerçek zamanlı patch uygulandığında gerçek zamanlı performans bir ölçüde iyileşse de RTOS kadar deterministik olmaz.

RTOS, zamanın kritik olduğu mission-critical uygulamalar için vazgeçilmezdir. Sabit yanıt süresinin gerekli olduğu durumlarda, özellikle donanım kontrolü, endüstriyel robotlar, havacılık-uzay ve tıbbi cihazlar gibi gerçek zaman kısıtları bulunan ortamlarda RTOS kullanılır.

 
helloppfm 2024-09-22

QNX ve VxWorks yüzünden hep başım ağrıyordu ama artık herkes buna biraz daha kolay erişebilecek gibi görünüyor.

 
GN⁺ 2024-09-20
Hacker News görüşleri
  • Yıllar süren emeğin ardından elde edilmiş büyük bir başarı

    • Çalışmanın büyük kısmı Thomas Gleixner ve ekibi tarafından yapıldı
    • Linutronix'i kurdu; şirket şu anda Intel'in sahibi olduğu bir yapı içinde
    • Son printk parçasına ilişkin pull request bağlantısı paylaşıldı
    • Çekirdek yapılandırmasındaki PREEMPT_RT için pull request bağlantısı paylaşıldı
    • Kernel v6.11 üzerindeki RT patch günlüğü bağlantısı paylaşıldı
    • Yeni printk altyapısının gerçek sürücüler tarafından benimsenmesi gerekiyor
    • RT patch setinin boyutu eskisine göre çok daha küçüldü
    • Bu, Linus'un güven duyduğunu gösteren büyük bir işaret
    • Ekip tebrik ediliyor
  • Gerçek zamanlı çekirdeğin etkisini görmek için cyclictest yardımcı programının derlenip çalıştırılması öneriliyor

    • Her CPU çekirdeğinin interrupt gecikmesini ölçüp gösteriyor
    • Gerçek zamanlı patch olmadan en kötü durumda gecikme çift haneli milisaniyelere çıkabiliyor
    • Gerçek zamanlı patch uygulandığında en kötü durum gecikmesi tek haneli mikrosaniyelere düşüyor
    • Tutarlı düşük gecikme elde etmek için güç tasarrufu durumlarının kapatılması gerekiyor
    • cyclictest, Linux'ta gerçek zamanlı iş yaparken kritik bir araç
    • Yazılım tanımlı radyo (SDR) işleme sırasında sistem performansındaki farkı açıklıyor
    • Gerçek zamanlı çekirdek uygulandığında GNOME ve libreoffice çalışırken bile SDR sorunsuz çalışıyor
  • RT patch seti olmadan 3 ms gecikmeyle bir veya iki enstrüman çalıştırılabiliyor

    • RT patch setiyle 1 ms gecikmede 6 enstrüman çalıştırılabiliyor
    • Onlarca Chrome penceresi açıkken ve 3D shooter oyunu oynarken bile sorun yaşanmıyor
    • Normal düşük gecikmeli zamanlayıcıya kıyasla büyük fark yaratıyor
  • 2000'lerin ortasında Linux'u gerçek zamanlı işler için kullanmaya çalışma deneyimi paylaşılıyor

    • O dönemde gerçek zamanlı Linux çok hacky idi ve ana ağaç dışında tutuluyordu
    • Gerçek zamanlı davranış elde etmek için Linux'u gerçek bir gerçek zamanlı microkernel içinde süreç olarak barındırmak yaygın bir çözümdü
    • Gerçek zamanlı Linux'un pratik olmamasının nedeni, preempt edilemeyen tüm bölümlerin çalışma süresinin garanti edilmesi gerekliliğiydi
    • Bunun nasıl çözüldüğü merak ediliyor
    • Linux'un priority inversion desteği olup olmadığı soruluyor
  • Gerçek zamanlı programlamanın nasıl yapıldığına dair iyi kaynaklar olup olmadığı soruluyor

    • Bir programın gerçekten gerçek zamanlı olduğunu nasıl doğrulamak gerektiği merak ediliyor
    • Gerçek zamanlı kodlamanın normal kodlamadan farklı olup olmadığı soruluyor
    • Modern CPU mimarilerinin gerçek zamanlı programlama üzerindeki etkisi merak ediliyor
  • Torvalds'ın printk'nin özgün kodunu yazdığı yönündeki ifadeye şüpheyle yaklaşılıyor

    • printk hata ayıklama aracına ilişkin açıklamaya katılınmıyor
  • CNC topluluğu için büyük bir yardım olacağı düşünülüyor

    • RT zorunlu ve derlemeyi çok daha kolay hale getiriyor
  • Bunun çok havalı olduğu düşünülüyor

    • Bunun nasıl "açıldığı" merak ediliyor
    • Bunun derleme zamanı/önyükleme zamanı seçeneği mi olduğu, yoksa sistemde çalışan süreçlerin time-slice/gecikme garantisi isteyip istemediği soruluyor
  • Masaüstü kullanıcıları için gerçek zamanlı çekirdek kullanmanın dezavantajlarının ne olduğu merak ediliyor