Rilis Rusty bisa menjadi game-changer • The Register

Pendapat Linus Torvalds dengan senang hati memberi tahu Kamu bahwa nomor rilis Linux bukanlah masalah besar.

Seperti yang dikatakan supremo Linux tentang rilis 6.0: “Meskipun ada perubahan angka yang besar, ada tidak ada yang berbeda secara mendasar tentang rilis ini – Saya sudah lama menghindari anggapan bahwa bilangan utama bermakna, dan satu-satunya alasan untuk sistem penomoran ‘hierarkis’ adalah untuk membuat bilangan lebih mudah diingat dan dibedakan.”

Namun, dengan 6.1, ada sesuatu yang berbeda secara fundamental. Untuk pertama kalinya dalam sejarah Linux, selain C, Kamu dapat menggunakan bahasa lain, Rust, untuk pengembangan kernel.

Mengapa? Seperti yang dikatakan Wedson Almeida Filho dari Tim Android Google, “Kami merasakan itu Rust sekarang siap untuk bergabung dengan C sebagai bahasa praktis untuk mengimplementasikan kernel. Ini dapat membantu kami mengurangi jumlah potensi bug dan kerentanan keamanan dalam kode istimewa sambil bermain baik dengan kernel inti dan mempertahankan karakteristik kinerjanya.”

Secara khusus, seperti yang dijelaskan Alex Gaynor dan Geoffrey Thomas di Linux Security Summit 2019, hampir dua pertiga lubang keamanan kernel Linux (PDF) berasal dari masalah keamanan memori. Dan dari mana mereka berasal? Kelemahan yang melekat pada C dan C++. Rust, di sisi lain, menghindari masalah ini dengan menggunakan antarmuka pemrograman aplikasi yang jauh lebih aman (Lebah). Karat lebih aman daripada C.

Baru-baru ini, Badan Keamanan Nasional AS (NSA), yang bertugas mengamankan kode sekaligus memecahkannya, menyarankan bahwa salah satu hal terbaik yang dapat Kamu lakukan untuk keamanan program adalah menggunakan bahasa yang aman untuk memori seperti Rust alih-alih C. Tentu saja, ada bahasa lain seperti Swift, Go, atau C#, tetapi mereka tidak cocok untuk jenis pemrograman tingkat rendah yang diperlukan untuk sistem operasi.

Ini bukan hanya teori. Berhasil. Google, misalnya, kini menggunakan Rust secara ekstensif di Android. Di sana “tujuannya bukan untuk mengubah C/C++ yang ada menjadi Rust, melainkan untuk mengalihkan pengembangan kode baru ke bahasa yang aman untuk memori lembur”

Hasil? “Karena jumlah kode baru yang tidak aman untuk memori yang memasuki Android telah menurun, demikian pula jumlah kerentanan keamanan memori. Dari 2019 hingga 2022 telah turun dari 76 persen menjadi 35 persen dari total kerentanan Android. 2022 adalah tahun pertama di mana kerentanan keamanan memori tidak mewakili sebagian besar kerentanan Android.” Itu tidak terlalu lusuh.

Tentu saja, hanya karena sesuatu lebih aman tidak berarti semua orang ingin mengadopsinya. Lagi pula, pengembang telah menghabiskan hampir 30 tahun bekerja di Linux di C. Semua pengembang khawatir tentang banyaknya pekerjaan yang diperlukan untuk membawa Rust ke Linux. Misalnya untuk mendapatkan Rust driver NVMe Linux agar berfungsi, diperlukan 70 ekstensi Rust non-standar.

Tapi, seperti yang dikatakan Torvalds kepada saya awal tahun ini, “Kami telah menggunakan pengecualian untuk standar C selama beberapa dekade.”

Jika Kamu telah memotong gigi pemrograman Kamu di C dan tidur dengan salinan K&R di bawah bantal Kamu, jangan khawatir. Karat tidak akan menggantikan C di kernel kapan pun dekade ini.

Seperti yang dijelaskan Torvalds, Rust “hanya akan memiliki infrastruktur inti (yaitu belum ada kasus penggunaan yang serius).” Secara khusus, Kamu dapat mengharapkan untuk melihat Rust muncul pertama kali di driver Linux.

Miguel Ojeda, pengembang kernel Linux yang mempelopori upaya untuk membawa Rust ke dalam kernel, menambahkan: “Kernel adalah proyek besar dengan banyak pemangku kepentingan. Sejak awal, jelas bahwa menambahkan bahasa ‘utama’ kedua ke kernel akan memiliki tantangan teknis dan manajemen .”

Jadi, Ojeda menjelaskan, pekerjaan Rust pertama yang akan Kamu lihat di kernel Linux adalah “Abstraksi karat untuk subsistem dan menulis driver dan modul lainnya.”

Apa artinya bagi pengembang jadul? Dalam pengantar Ojeda untuk set tambalan terbarunya, dia berkata, “itu fasilitas diperkenalkan adalah bagian dari ‘Inti karat.’ Mereka tidak berinteraksi dengan sisi C dengan cara utama baru (tidak ada tipe C baru yang digunakan; hanya strlen, memchrkode kesalahan tambahan, dan lainnya printk format string).”

Ojeda juga menambahkan, “Hampir semua kode telah ada di linux-next selama berbulan-bulan.”

Dengan kata lain, Rust secara perlahan dan mantap dimasukkan ke dalam kernel. Tidak ada perubahan cepat yang didorong ke tenggorokan pengembang kernel. Memang, sebagian besar dari perubahan terbaru ini bahkan tidak akan masuk ke kernel 6.1. Mereka jauh lebih mungkin muncul pertama kali di kernel 6.2.

Namun, dengan dirilisnya 6.1, yang seharusnya muncul pada 12 Desember, Rust secara resmi akan menjadikan Linux sebagai sistem operasi dua bahasa. Dan, itu, teman-teman, memang berita besar. ®

Leave a Comment