- 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
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
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.
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.
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.
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.
Saya selalu pusing karena QNX dan VxWorks, tetapi sekarang sepertinya siapa pun bisa mengaksesnya dengan lebih mudah.
Komentar Hacker News
Ini merupakan pencapaian besar setelah bertahun-tahun upaya
Untuk melihat efek kernel real-time, direkomendasikan membangun dan menjalankan utilitas cyclictest
Tanpa patchset RT, bisa menjalankan satu atau dua instrumen pada latensi 3ms
Membagikan pengalaman mencoba menggunakan Linux untuk pekerjaan real-time pada pertengahan 2000-an
Bertanya apakah ada referensi yang bagus tentang bagaimana pemrograman real-time dilakukan
Mempertanyakan penyebutan bahwa Torvalds menulis kode asli printk
Ini akan sangat membantu komunitas CNC
Menganggap ini sangat keren
Penasaran tentang kekurangan penggunaan kernel real-time bagi pengguna desktop