13 poin oleh GN⁺ 2024-09-20 | 4 komentar | Bagikan ke WhatsApp
  • Realtime Linux kini resmi menjadi bagian dari kernel, sehingga sekarang dimungkinkan menggunakan "Linux real-time" tanpa RTOS (real-time operating system) terpisah
  • Jika ingin menggunakan "Linux real-time" untuk perangkat audio, laser las industri, atau wahana penjelajah Mars, opsi itu sebenarnya sudah ada sejak lama (dengan asumsi tidak memakai alternatif seperti QNX)
  • Sejak akhir 1990-an, berbagai universitas mulai membuat kernel real-time mereka sendiri
  • Kumpulan patch bernama PREEMPT_RT sudah ada setidaknya sejak 2005
  • Beberapa aspek pekerjaan real-time seperti NO_HZ telah lama dipindahkan ke kernel mainline sehingga bisa digunakan di data center, cloud computing, atau apa pun yang memiliki banyak CPU

Penggabungan PREEMPT_RT ke mainline

  • PREEMPT_RT sangat mungkin akan digabungkan ke mainline pada kernel 6.12
  • Persetujuan akhir diberikan saat Linus Torvalds menghadiri Open Source Summit Europe
  • Torvalds menulis kode asli untuk printk, alat debugging yang dapat menemukan momen tepat ketika proses bertabrakan, tetapi juga menambahkan latensi yang bertentangan dengan komputasi real-time
  • Blog Phoronix telah melacak perkembangan PREEMPT_RT menuju kernel, bersama perubahan printk untuk dukungan thread/atomic console yang penting bagi upaya mainlining real-time

Dampaknya pada Linux desktop? Hampir tidak ada

  • Di luar produksi atau mastering audio tingkat lanjut (dan itu pun masih bisa diperdebatkan), kernel real-time tidak akan membuat jendela atau program berjalan lebih cepat
  • Namun, eksekusi yang terjamin dan latensi worst-case yang disediakan Linux real-time sangat berguna untuk sistem yang memantau rem mobil, mengendalikan mesin CNC, dan mengatur sistem multi-CPU yang kompleks
  • Memasukkan PREEMPT-RT ke kernel mainline akan mempermudah pemeliharaan sistem real-time, karena tidak lagi perlu mengelola patch di luar tree

Dampaknya pada penyedia solusi OS real-time profesional

  • Ubuntu mulai menyediakan versi real-time dari distribusinya pada 2023, tetapi memerlukan langganan Ubuntu Pro
  • Ubuntu menawarkan rilis real-time sambil menyediakan perbaikan, patch, integrasi modul, dan pengujian untuk robotika, otomasi, embedded Linux, dan kebutuhan real-time lainnya
  • Mulai sekarang, situasinya akan berbeda bagi penyedia solusi OS real-time profesional untuk sistem mission-critical

Pandangan Linus Torvalds

  • Pada Kernel Summit 2006, Torvalds berkata, "Mengendalikan laser dengan Linux itu gila, tetapi semua orang di ruangan ini juga gila dengan caranya masing-masing"
  • Ia juga mengatakan, "Jika Anda ingin menggunakan Linux untuk mengendalikan laser las industri, tidak ada masalah menggunakan PREEMPT_RT"
  • Sekitar 18 tahun kemudian, Torvalds, tim kernel, dan Steven Rostedt—pemelihara jangka panjang sekaligus tokoh utama real-time—telah membuat pekerjaan semacam itu menjadi lebih mudah

Pendapat GN⁺

  • Penggabungan Linux real-time ke mainline diharapkan akan makin memperluas cakupan penggunaan Linux dan memungkinkannya dimanfaatkan di berbagai bidang
  • Secara khusus, Linux tampaknya akan makin luas digunakan di lingkungan industri, sistem embedded, robotika, dan bidang lain yang menuntut kemampuan real-time
  • Namun, saat mengadopsi Linux real-time, kompatibilitas hardware, stabilitas sistem, dan tingkat kesulitan pengembangan tetap perlu dipertimbangkan
  • OS real-time yang sudah ada seperti QNX, VxWorks, dan INTEGRITY juga masih kompetitif di bidangnya masing-masing, sehingga tetap perlu memilih sesuai kebutuhan
  • Ke depannya, dengan Linux real-time masuk ke mainline, ekosistem pengembangan diperkirakan akan makin aktif dan cakupan dukungan untuk beragam hardware maupun software akan semakin luas

4 komentar

 
ilotoki0804 2024-09-23

Akan lebih baik kalau ada penjelasan singkat tentang apa itu sistem operasi real-time, apa itu PREEMPT_RT, dan bagaimana kaitannya dengan sistem operasi real-time, tetapi sayangnya hampir tidak ada detail yang dijelaskan. sedih

 
tongji 2024-09-23

Perbedaan utama antara Linux dan Real-Time Operating System (RTOS) terletak pada kemampuan real-time dan perilaku deterministik. Perbedaan ini sangat memengaruhi batasan waktu respons yang harus dipenuhi sistem dan tingkat ketepatannya, serta membantu memahami dalam situasi seperti apa masing-masing OS paling cocok digunakan.

  1. Gambaran umum Linux dan RTOS
    Linux: Sistem operasi yang umumnya berbasis kernel Linux yang telah dimodifikasi, dan digunakan pada berbagai perangkat keras embedded. Ramah pengguna serta menyediakan beragam fungsi seperti jaringan, file system, dan driver, sehingga cocok untuk aplikasi yang kompleks.

RTOS (Real-Time Operating System): Sistem operasi yang menjamin responsivitas untuk memproses tugas dalam jangka waktu tertentu. RTOS terutama digunakan di bidang yang membutuhkan respons real-time yang penting, seperti otomasi industri, peralatan medis, dan sistem kontrol otomotif.

  1. Perbedaan kemampuan real-time dan perilaku deterministik
    Karakteristik Linux
    Waktu respons non-deterministik: Kernel Linux pada dasarnya dirancang dengan fokus pada throughput dan efisiensi, sehingga tidak dapat diprediksi secara pasti kapan suatu tugas akan dijalankan. Hal ini karena scheduler mengelola tugas dengan berbagai prioritas, dan proses kompleks seperti operasi I/O serta manajemen memori turut memengaruhi.

Keterbatasan preemption: Kernel Linux pada umumnya memang menyediakan sebagian fitur real-time, tetapi tidak semua pekerjaan kernel bisa langsung diinterupsi kapan saja. Secara khusus, kernel bisa saja tidak merespons interrupt dalam waktu lama, atau tugas lain dapat tertunda karena sedang menjalankan pekerjaan penting.

Variabilitas latency: Dalam berbagai pekerjaan sistem dan lingkungan multitasking, latency dapat berubah-ubah secara tidak teratur. Hal ini dapat dipengaruhi oleh berbagai faktor seperti pemrosesan network stack dan disk I/O.

Patch real-time (PREEMPT-RT): Untuk meningkatkan respons real-time, patch PREEMPT-RT dapat diterapkan guna meningkatkan kemampuan real-time kernel. Namun, ini tetap tidak menjamin respons yang sepenuhnya dapat diprediksi seperti RTOS.

Karakteristik RTOS
Waktu respons deterministik: RTOS dirancang untuk menjamin bahwa tugas dapat diselesaikan dalam waktu tertentu. Karena tugas harus dijalankan dalam jangka waktu yang telah ditetapkan, responsnya sangat konsisten dan dapat diprediksi.

Pemrosesan interrupt berkecepatan tinggi: RTOS menangani interrupt dengan cepat dan sebagai prioritas utama, dan dalam banyak kasus memprioritaskan interrupt agar tugas penting dapat diproses dengan cepat. Hal ini memenuhi batasan hard real-time.

Kernel kecil dan ringan: RTOS hanya mencakup fungsi minimum yang diperlukan sehingga sangat ringan, dan penjadwalan tugasnya sangat efisien. Karena itu, beban sistem rendah dan tugas dapat dijalankan sesuai timing yang dirancang dengan presisi.

Penjadwalan berbasis prioritas: Prioritas tugas ditetapkan dengan jelas, dan pekerjaan dengan prioritas lebih tinggi dapat langsung diproses. Hal ini menjamin penggunaan di lingkungan mission-critical.

Low Latency: RTOS memproses tugas real-time dengan latency yang sangat rendah. Cocok ketika dibutuhkan respons cepat di tingkat hardware.

  1. Ringkasan perbedaan utama dari sisi real-time
    Karakteristik || Linux RTOS
    ============================================================
    Waktu respons || Non-deterministik, ada variabilitas Deterministik, menjamin waktu respons yang konsisten
    Pemrosesan prioritas || Ada prioritas, tetapi tanpa jaminan real-time Prioritas jelas,
    || tugas prioritas tinggi diproses lebih dulu
    Ukuran kernel || Besar dan kaya fitur Kecil dan ringan
    Latency || Dapat tertunda oleh network, disk I/O, dll. Sangat rendah, hampir konstan

Kompleksitas sistem || Cocok untuk menjalankan aplikasi kompleks Cocok untuk tugas real-time yang sederhana
Bidang penerapan || Multimedia, jaringan, dll. Kontrol industri, robotika, perangkat medis, dll.
|| Antarmuka pengguna yang kompleks
Kesimpulan
Embedded Linux cocok untuk sistem embedded yang membutuhkan pemrosesan jaringan, aplikasi multimedia, dan antarmuka pengguna yang kompleks. Jika patch real-time diterapkan, kinerja real-time dapat ditingkatkan sampai tingkat tertentu, tetapi tetap tidak sedeterministik RTOS.

RTOS sangat penting untuk aplikasi mission-critical yang sensitif terhadap waktu. Jika dibutuhkan waktu respons yang konsisten, khususnya di lingkungan dengan batasan real-time seperti kontrol hardware, robot industri, kedirgantaraan, dan perangkat medis, maka RTOS digunakan.

 
helloppfm 2024-09-22

Saya selalu pusing karena QNX dan VxWorks, tetapi sekarang sepertinya siapa pun bisa mengaksesnya dengan lebih mudah.

 
GN⁺ 2024-09-20
Komentar Hacker News
  • Ini merupakan pencapaian besar setelah bertahun-tahun upaya

    • Sebagian besar pekerjaan dilakukan oleh Thomas Gleixner dan timnya
    • Ia mendirikan Linutronix, yang kini dimiliki oleh Intel
    • Menyediakan tautan pull request untuk bit printk terakhir
    • Menyediakan tautan pull request untuk PREEMPT_RT dalam konfigurasi kernel
    • Menyediakan tautan log patch RT di atas kernel v6.11
    • Infrastruktur printk baru perlu diadopsi ke driver nyata
    • Ukuran patchset RT kini jauh lebih kecil dibanding sebelumnya
    • Ini adalah sinyal besar bahwa Linus menunjukkan kepercayaan
    • Mengucapkan selamat kepada tim
  • Untuk melihat efek kernel real-time, direkomendasikan membangun dan menjalankan utilitas cyclictest

    • Utilitas ini mengukur dan menampilkan latensi interupsi pada tiap inti CPU
    • Tanpa patch real-time, latensi terburuk bisa mencapai puluhan milidetik
    • Dengan patch real-time, latensi terburuk turun menjadi mikrodetik satu digit
    • Untuk mendapatkan latensi rendah yang konsisten, status hemat daya perlu dimatikan
    • cyclictest adalah alat penting saat mengerjakan tugas real-time di Linux
    • Menjelaskan perbedaan performa sistem saat memproses software-defined radio (SDR)
    • Dengan kernel real-time, SDR tetap berjalan tanpa masalah sambil menjalankan GNOME dan libreoffice
  • Tanpa patchset RT, bisa menjalankan satu atau dua instrumen pada latensi 3ms

    • Dengan patchset RT, bisa menjalankan 6 instrumen pada latensi 1ms
    • Tidak ada masalah bahkan saat membuka puluhan jendela Chrome dan memainkan game shooter 3D
    • Perbedaannya jauh lebih besar dibanding scheduler low-latency biasa
  • Membagikan pengalaman mencoba menggunakan Linux untuk pekerjaan real-time pada pertengahan 2000-an

    • Saat itu real-time Linux sangat bersifat hacky dan berada di luar tree
    • Solusi yang umum adalah meng-host Linux sebagai proses di dalam mikrokernel real-time sejati untuk mencapai perilaku real-time
    • Alasan real-time Linux tidak praktis adalah karena waktu eksekusi semua bagian yang tidak bisa dipreempt harus dijamin
    • Penasaran bagaimana persyaratan ini akhirnya diselesaikan
    • Bertanya apakah Linux mendukung priority inversion
  • Bertanya apakah ada referensi yang bagus tentang bagaimana pemrograman real-time dilakukan

    • Penasaran bagaimana cara memastikan sebuah program benar-benar real-time
    • Bertanya apakah coding real-time berbeda dari coding biasa
    • Penasaran tentang dampak arsitektur CPU modern terhadap pemrograman real-time
  • Mempertanyakan penyebutan bahwa Torvalds menulis kode asli printk

    • Tidak setuju dengan penjelasan tentang alat debugging printk
  • Ini akan sangat membantu komunitas CNC

    • RT itu esensial dan membuat build jauh lebih mudah
  • Menganggap ini sangat keren

    • Penasaran bagaimana cara "mengaktifkannya"
    • Bertanya apakah ini opsi saat kompilasi/boot, atau apakah proses yang berjalan di sistem dapat meminta jaminan timeslice/latensi
  • Penasaran tentang kekurangan penggunaan kernel real-time bagi pengguna desktop