Inisiatif Pengerjaan Ulang Toolkit Xen Hypervisor di Rust

Pengembang platform XCP-ng, yang dikembangkan di bawah proyek Xen, telah menerbitkan rencana untuk membuat pengganti berbagai komponen tumpukan perangkat lunak Xen dalam bahasa Rust. Tidak ada rencana untuk mengerjakan ulang hypervisor Xen itu sendiri, pekerjaan difokuskan terutama pada pengerjaan ulang masing-masing komponen toolkit.

Platform saat ini menggunakan komponen C, Python, OCaml, dan Go, beberapa di antaranya sudah ketinggalan jaman dan menimbulkan tantangan pemeliharaan. Perlu dicatat bahwa penggunaan Rust tidak akan meningkatkan jumlah bahasa yang terlibat secara keseluruhan, karena hanya satu komponen yang diimplementasikan di Go, yang rencananya akan diganti terlebih dahulu.

Rust dipilih sebagai bahasa yang menggabungkan kode berkinerja tinggi dengan kemampuan memori aman, tidak memerlukan pengumpul sampah, cocok untuk mengembangkan komponen tingkat rendah dan tinggi, dan menyediakan fitur tambahan untuk mengurangi potensi kesalahan, seperti kesalahan. pinjam pemeriksa. ). Rust juga lebih tersebar luas dibandingkan bahasa OCaml yang saat ini digunakan di XAPI, yang akan memudahkan menarik pengembang baru ke proyek tersebut.

Tahap pertama adalah mengembangkan penggantian beberapa komponen untuk menguji proses dan mempersiapkan dasar penggantian bagian lain dari tumpukan perangkat lunak. Secara khusus, pertama-tama, alat tamu Linux, yang saat ini menggunakan bahasa Go, dan proses latar belakang untuk mengumpulkan metrik, yang ditulis dalam OCaml, akan ditulis ulang di Rust.

Kebutuhan untuk mengerjakan ulang alat tamu Linux (xe-guest-utilities) disebabkan oleh masalah kualitas kode dan pengembangan di luar Proyek Xen di bawah kendali Cloud Software Group, yang mempersulit pengemasan paket dan pengaruh komunitas terhadap pengembangan. Mereka berencana untuk membuat versi baru dari toolkit (xen-guest-agent) sepenuhnya dari awal, membuatnya sesederhana mungkin dan memisahkan logika agen dari perpustakaan. Diputuskan untuk mengerjakan ulang proses latar belakang untuk mengumpulkan metrik (rrdd) karena kompak dan terpisah, yang menyederhanakan eksperimen penggunaan bahasa baru selama pengembangan.

Tahun depan, pekerjaan mungkin dimulai pada pengembangan komponen xenopsd-ng di Rust, yang akan mengoptimalkan arsitektur tumpukan perangkat lunak. Ide utamanya adalah untuk memusatkan pekerjaan dengan API tingkat rendah dalam satu komponen dan mengatur penyediaan semua API tingkat tinggi ke komponen tumpukan lain yang melaluinya.

Arsitektur tumpukan Xen saat ini:

Inisiatif Pengerjaan Ulang Toolkit Xen Hypervisor di Rust

Arsitektur tumpukan Xen yang diusulkan berdasarkan xenopsd-ng:

Inisiatif Pengerjaan Ulang Toolkit Xen Hypervisor di Rust


Sumber: opennet.ru

Tambah komentar