Daniel Almeida dengan Collabora telah memposting penulisan ulang kode perpustakaan codec VP9 dalam subsistem Video 4 Linux 2 (V4L2) kernel Linux. Dalam menggunakan Rust dibandingkan kode C yang ada, hal ini akan menghasilkan keamanan memori yang lebih baik dan menangkis potensi masalah dalam kode yang ada dengan lebih baik.
Kode “permintaan komentar” memasukkan kode perpustakaan VP9 ke Rust plus mengubah kode driver RKVDEC dan Hantro menjadi menggunakan versi Rust`ed. Pengujian Fluster Fluendo menunjukkan hasil yang sama saat menggunakan kode versi Rust atau C.
Almeida berkomentar dengan patch RFC:
“Banyak yang telah dibicarakan di berbagai kesempatan tentang driver dan saya merasa konsensusnya masih harus menunggu saat ini. Inilah mengapa saya mengusulkan pendekatan yang berbeda: mem-porting perpustakaan codec kami ke Rust.
IMHO, komponen-komponen ini mendapatkan keuntungan besar dari Rust, karena mereka mengimplementasikan algoritma rumit yang juga memproses data yang diterima dari ruang pengguna melalui kontrol V4L2. Algoritme ini menggunakan data yang diterima dari ruang pengguna untuk mengindeks ke dalam banyak array dan dengan demikian mendapatkan keuntungan dari keamanan memori Rust.
Hal pertama tentang kode ini adalah kode tersebut tidak menyertakan lapisan pengikatan apa pun. Ini telah ditunjukkan sebagai pemblokir beberapa kali karena perlunya menjaga sinkronisasi dengan kode C.
Kode Rust di sini juga menawarkan C API untuk driver C. C API ini secara otomatis dibuat oleh cbindgen dan saya telah memberikan instruksi tentang cara melakukannya. Kita bahkan dapat menggunakan fungsi dari pustaka C dan Rust secara bersamaan karena ABI-nya sama.
Hal di atas dapat berguna karena ini berarti kita dapat mengonversi basis kode tertentu sedikit demi sedikit jika diperlukan. Driver C akan bekerja seperti biasa melalui C API dan setiap driver Rust baru akan mendapatkan manfaat dari antarmuka asli Rust.” Dia melanjutkan dengan menambahkan surat pengantar patch:
“Saya berharap dapat meyakinkan komunitas bahwa ini adalah cara yang layak untuk bereksperimen dengan kode Rust secara perlahan tanpa terlalu mengikat kita pada kode tersebut.
Terakhir, perlu diketahui bahwa kode ini hanyalah bukti konsep, kita dapat menentukan patch yang tepat – dengan semua yang diperlukan – jika diterima dengan baik. “Mereka yang tertarik dapat menemukan patch RFC ini di milis kernel sambil menunggu masukan dari pemangku kepentingan kernel Linux hulu lainnya.
Itulah berita seputar Kode Kernel Codec Linux V4L2 VP9 Ditulis Ulang Dalam Rust Untuk Keamanan Memori Yang Lebih Baik, semoga bermanfaat. Disadur dari Phoronix.com.