Pengembang Senior Linux Real-Time Steven Rostedt dan saya sendiri, Steven Vaughan-Nichols, di Linux Summit Europe di Vienna.

sjvn

WINA — Setelah 20 tahun, Linux Waktu Nyata (PREEMPT_RT) akhirnya — akhirnya — di kernel utamaLinus Torvalds memberkati kode tersebut saat dia berada di KTT Open Source EropaMengapa ini menjadi masalah besar? Mari kita mulai dengan menjelaskan apa itu sistem operasi real-time (RTOS) dan apa saja manfaatnya.

Apa itu RTOS?

RTOS adalah sistem operasi khusus yang dirancang untuk menangani tugas-tugas yang sangat penting dengan presisi dan keandalan. Tidak seperti sistem operasi serbaguna seperti Windows atau macOS, RTOS dibuat untuk merespons kejadian dan memproses data dalam batasan waktu yang ketat, yang sering kali diukur dalam milidetik atau mikrodetik. Seperti yang dikatakan Steven Rostedt, pengembang Linux real-time terkemuka dan teknisi Google, “Waktu nyata adalah skenario terburuk yang tercepat.”

Maksudnya adalah karakteristik penting dari RTOS adalah perilaku deterministiknya. RTOS menjamin bahwa tugas-tugas penting akan selesai dalam tenggat waktu yang ditentukan. Banyak orang berasumsi bahwa RTOS adalah untuk proses yang cepat. Tidak demikian. Kecepatan bukanlah hal yang utama dalam RTOS — keandalanlah yang menjadi intinya. Prediktabilitas ini sangat penting dalam aplikasi yang memerlukan pengaturan waktu, seperti sistem kontrol industri, perangkat medis, dan peralatan kedirgantaraan.

Juga: 5 perintah Linux yang tidak boleh Anda jalankan (dan alasannya)

Salah satu contoh sistem operasi waktu nyata yang digunakan saat ini adalah VxBekerjayang digunakan dalam penjelajah Mars milik NASA untuk memandu mereka, dan dalam pesawat Boeing 787 Dreamliner untuk mengendalikan sistem avionik, memastikan respons waktu nyata untuk kontrol penerbangan. Contoh lainnya adalah QNX Neutrinoyang banyak digunakan pada mobil untuk infotainment, dan sistem bantuan pengemudi yang canggih seperti rem anti-lock.

Sejarah Linux Real-Time

Kode Linux real-time kini telah tertanam di semua distro Linux sejak kernel Linux 6.12 mendatang. Ini berarti Linux akan segera muncul di perangkat yang lebih penting dan perangkat keras industri. Namun, butuh waktu yang lama untuk sampai ke sini.

Kisah Linux real-time dimulai pada akhir tahun 1990-an ketika kebutuhan Linux untuk mendukung aplikasi real-time semakin meningkat. Upaya awal difokuskan pada pembuatan kernel real-time terpisah yang berjalan bersama kernel Linux. Ini termasuk proyek akademis seperti KURT dari University of Kansas; RTAI, dari University of Milano; dan RTLinux dari New Mexico Institute of Mining and Technology.

Ingo Molnar, pengembang senior kernel Linux, mulai mengumpulkan dan membentuk kembali bagian-bagian teknologi ini pada tahun 2004 untuk membangun fondasi bagi rangkaian patch preemption real-time. PREEMPT_RT.

Pendekatan ini berbeda dari solusi Linux real-time sebelumnya karena memodifikasi kernel Linux yang ada daripada membuat kernel real-time yang terpisah. Pada tahun 2006, pendekatan ini telah mendapatkan cukup banyak perhatian sehingga Linus Torvalds mengamati, “Mengendalikan laser dengan Linux itu gilatetapi setiap orang di ruangan ini gila dengan caranya sendiri. Jadi jika Anda ingin menggunakan Linux untuk mengendalikan laser pengelasan industri, saya tidak keberatan jika Anda menggunakan PREEMPT_RT.”

Pada tahun 2009, tim pengembang kernel kecil, termasuk Thomas Gleixner, Peter Ziljstra, dan Rostedt, telah selesai menggabungkan pengembangan prototipe sebelumnya menjadi satu set patch di luar pohon. Saat itulah banyak perusahaan mulai menggunakan set patch ini untuk membangun sistem industri yang memerlukan properti real-time keras dengan presisi milidetik.

Juga: Distribusi Linux ini paling cocok untuk pengembang – berikut alasannya

Seiring berjalannya proyek, banyak elemennya dipindahkan ke kernel. Rostedt mengatakan kepada saya bahwa, bisa dibilang, salah jika mengatakan bahwa real-time baru ada di Linux. Banyak fiturnya telah diperkenalkan ke Linux arus utama selama bertahun-tahun. Beberapa di antaranya memang penting bagi Linux yang Anda gunakan setiap hari.

Misalnya, kemungkinan besar Anda belum pernah mendengar tentang “TIDAK_HZ,” yang mengurangi konsumsi daya pada sistem yang tidak aktif. NO_HZ memungkinkan Linux berjalan secara efisien pada mesin dengan ribuan CPU. “Anda tidak menyadari seberapa besar peningkatan Linux karena patch waktu nyata,” tegas Rostedt. “Satu-satunya alasan mengapa Linux berjalan di pusat data saat ini adalah karena pekerjaan yang kami lakukan.”

Jadi, tanpa NO_HZ, Linux tidak akan menjalankan semua pusat data. Hal ini, pada gilirannya, menjelaskan mengapa Linux menjalankan cloud. Saya tidak tahu persis seperti apa dunia ini tanpa kontribusi real-time ini, tetapi tidak akan terlihat seperti sekarang ini.

Linux real-time juga terbukti bermanfaat dalam cara-cara yang tidak pernah dibayangkan sebelumnya. Rostedt mengenang, “Kembali pada tahun 2005, saya mendapat laporan bug real-time, dan saya mengirim patch dan berkata, ‘Hei, ini perbaikannya. Bisakah Anda menerapkannya?’ Dan orang itu berkata, ‘Saya tidak tahu apa yang saya lakukan.’ Saya menjawab, ‘Tunggu, bukankah Anda seorang pengembang kernel?’ Dia menjawab, ‘Saya seorang gitaris.'”

Juga: Linus Torvalds merenungkan tentang uban sang pengelola dan ‘Raja Linux’ berikutnya

Ternyata dia menggunakan patch real-time awal karena dia menggunakan MENDONGKRAKserver suara untuk koneksi audio latensi rendah. Ia menggunakannya karena, seperti kebanyakan musisi, ia terlalu miskin untuk membeli peralatan canggih, jadi, lanjut Rostedt, “ia membeli laptop murah, dengan Linux dan JACK, karena dengan patch real-time, ia dapat merekam dengan baik alih-alih melewatkan saat hard drive menulis.”

Ternyata banyak musisi yang merupakan pengguna Linux real-time awal karena memungkinkan mereka menghasilkan rekaman berkualitas tinggi dengan biaya murah. Siapa sangka? Fitur-fitur Linux real-time lainnya yang telah masuk ke kernel utama selama bertahun-tahun meliputi:

Apa yang membuat Real-Time Linux membutuhkan waktu begitu lama?

Jadi, mengapa Real-Time Linux baru sekarang benar-benar diberkati di kernel? “Kami sebenarnya tidak akan mendorong sesuatu kecuali kami pikir itu sudah siap,” jelas Rostedt. “Hampir semuanya biasanya ditulis ulang setidaknya tiga kali sebelum masuk ke jalur utama karena kami memiliki standar yang sangat tinggi untuk apa yang akan masuk.”

Selain itu, jalur menuju jalur utama bukan hanya tentang tantangan teknis. Politik dan persepsi juga berperan. “Pada awalnya, kami bahkan tidak bisa menyebut waktu nyata,” kenang Rostedt. “Semua orang berkata, ‘Oh, kami tidak peduli dengan waktu nyata.'”

Masalah lainnya adalah uang. Selama bertahun-tahun pendanaan untuk Linux real-time tidak menentu. Pada tahun 2015, Linux Foundation mendirikan proyek kolaboratif Real-Time Linux (RTL) untuk mengoordinasikan upaya seputar mainlining PREEMPT_RT.

Juga: Perlu mentransfer file antar mesin Linux? Berikut adalah 5 solusi yang dapat diandalkan

Tantangan terakhir untuk integrasi penuh adalah mengerjakan ulang kernel cetak_k fungsi, alat debugging penting yang sudah ada sejak tahun 1991. Torvalds sangat protektif terhadap print_k –Dia menulis kode asli dan masih menggunakannya untuk debugging. Namun, print_k juga memberikan penundaan keras pada program Linux setiap kali dipanggil. Perlambatan semacam itu tidak dapat diterima dalam sistem waktu nyata.

Rostedt menjelaskan: “Print_k memiliki ribuan peretasan untuk menangani ribuan situasi yang berbeda. Setiap kali kami memodifikasi print_k untuk melakukan sesuatu, salah satu kasus ini akan rusak. Hal yang hebat tentang print_k dalam hal debugging adalah Anda dapat mengetahui dengan tepat di mana Anda berada saat suatu proses mogok. Saat saya benar-benar bekerja keras, latensinya sebagian besar sekitar 30 mikrodetik, lalu tiba-tiba melonjak menjadi lima milidetik.” Penundaan itu adalah pesan print_k.

Setelah banyak kerja keras, banyak diskusi panas, dan beberapa proposal yang ditolak, sebuah kompromi dicapai awal tahun ini. Torvalds senang, para pengembang Linux real-time senang, para pengguna priint_K senang, dan akhirnya, Linux real-time menjadi kenyataan.

Juga: 5 distribusi Linux terbaik untuk para gamer pada tahun 2024

Setelah dua dekade pengembangan, patch Linux real-time akhirnya telah digabungkan ke dalam kernel utama. Tonggak sejarah ini menandai puncak kerja keras para pengembang kernel selama bertahun-tahun untuk menghadirkan kinerja deterministik dan latensi rendah ke Linux.

Dengannya, kernel Linux dapat dihentikan sepenuhnya, yang memungkinkannya merespons kejadian dalam hitungan mikrodetik. Kemampuan ini penting untuk aplikasi yang memerlukan pengaturan waktu yang tepat, seperti sistem kontrol industri, robotika, dan produksi audio.

Dengan penggabungan patch real-time, Linux kini siap menjadi pemain serius di dunia RTOS. Ini adalah kemenangan bukan hanya bagi produsen real-time tetapi juga bagi semua pengguna Linux.



Fuente