Program Linux ajaib berikutnya yang akan mengubah dunia? Io_uring

Kolom Beberapa tahun yang lalu pengembang tahu eBPF sebagai cara praktis untuk membangun firewall namun sekarang digunakan di mana-mana untuk semuanya. Bersiaplah untuk io_uring melakukan hal yang sama.

Kebanyakan orang tidak tahu apa-apa tentang pemrograman Linux. Mengapa harus? Linux, lebih dari kebanyakan sistem operasi, hanya berfungsi. Namun di bawah permukaan, ada program seperti eBPF yang mengubah infrastruktur di bawah sistem operasi yang kita gunakan setiap hari.

Seperti yang diungkapkan minggu ini, Microsoft memilih untuk mem-port eBPF ke Windows daripada mencoba menduplikasi fungsinya dengan programnya sendiri. io_uring mungkin menjadi alat Swiss-Army berikutnya untuk pengembang Linux.

Io_uring memungkinkan Linux untuk meluncurkan operasi secara asinkron dan menunggu penyelesaiannya. Tidak seperti subsistem I/O (AIO) asinkronnya, pendahulunya, io_uring menggunakan buffer cincin memori yang dibagi antara ruang pengguna dan kernel Linux. Ini memungkinkannya untuk mengirimkan operasi dan mengumpulkan hasilnya tanpa memerlukan panggilan kernel Linux yang memakan waktu. API-nya rumit, tetapi jika aplikasi Anda membutuhkan banyak I/O, Anda akan mendapatkan peningkatan kinerja yang jauh lebih baik.

Ketika saya mengatakan “banyak” I/OI berarti panggilan I/O besar-besaran, gigabyte, dan seterusnya. Dan ketika saya mengatakan “sangat meningkat,” maksud saya bahkan pada tahun 2020, io_uring hingga 20 kali lebih cepat daripada Linux AIO gaya lama.

Peningkatan kecepatan semacam itu membuat pengembang berdiri dan memperhatikan. Seperti yang dikatakan Glauber Costa, CEO dan pendiri ChiselStrike – sebuah backend as-a-service company -, “Ini secara mendasar mengubah cara aplikasi Linux dirancang: Alih-alih aliran kode yang mengeluarkan syscalls saat dibutuhkan, yang harus berpikir tentang apakah file siap atau tidak, mereka secara alami menjadi loop peristiwa yang terus-menerus menambahkan sesuatu ke buffer bersama, berurusan dengan entri sebelumnya yang selesai, bilas, ulangi.”

Costa tidak sendirian. Pada Open Source Summit Europe Linux Foundation di Dublin, pengembang kernel Linux senior Jonathan Corbet mengatakan dalam pidatonya State of the Linux Kernel Summit bahwa io_uring adalah pengubah permainan. Itu akan “membuat batas antara ruang pengguna dan ruang kernel keropos.”

Untuk sebagian besar keberadaan Linux, hanya ada jembatan lambat yang sempit dari panggilan sistem antara ruang pengguna yang lambat dan proses ruang kernel yang cepat.

Seperti yang dikatakan Corbet: Ini “memungkinkan Anda untuk melakukan beberapa hal yang cukup rumit melalui ring. Ini, dalam arti tertentu, menjadi API terpisah untuk sistem saat ini yang memungkinkan Anda memuat beberapa program sederhana ke dalam kernel dan menjalankan semuanya secara asinkron dan dapatkan hasilnya ketika itu terjadi. Ini adalah pendekatan yang sangat berbeda untuk pemrograman pada sistem tipe Unix, dan orang-orang mulai melakukan hal-hal menarik dengannya.”

Di masa depan, dia melihat keduanya hampir menyatu untuk tujuan pemrograman karena konsep penyangga cincin memori kunci io_uring digunakan dalam proses pemrograman Linux mendasar lainnya.

Dalam sebuah wawancara di Linux Plumbers Conference, yang diadakan bersamaan dengan Open Source Summit Europe, Linus Torvalds mengatakan bahwa meskipun io_uring masih baru, “Saya pikir teknologinya cukup masuk akal. Saya pikir itu telah membuktikan dirinya di area kecil. Dan orang-orang mulai berkata, ‘Hei, saya ingin menggunakan alat ini!'”

Torvalds tidak yakin bahwa io_uring akan mengubah pemrograman Linux, tetapi dia juga tidak mengesampingkannya.

Jadi, jika Anda seorang pengembang Linux yang serius atau hanya seseorang yang membangun Komputasi Kinerja Tinggi, server Web, atau DBMS, periksa io_uring. Anda akan senang melakukannya. ®

Teknologi Pribadi