Sebuah seri patch RFC baru yang mengusulkan dukungan arsitektur multikernel untuk Linux telah memicu diskusi intens dalam komunitas pengembang mengenai kelayakan dan implikasi keamanannya. Proposal ini, yang akan memungkinkan beberapa instance kernel independen berjalan secara bersamaan pada core CPU yang berbeda sambil berbagi sumber daya perangkat keras, menjanjikan manfaat seperti isolasi kesalahan yang lebih baik dan pemanfaatan sumber daya yang lebih optimal dibandingkan virtualisasi tradisional.
Komponen Utama Arsitektur Multikernel
- Subsistem kexec yang ditingkatkan: Pelacakan dan pengelolaan gambar kernel secara dinamis
- Framework IPI generik: Komunikasi antar-kernel dan sistem pesan
- Mekanisme bootstrap CPU: Dukungan spesifik arsitektur (saat ini hanya x86)
- Interface Proc:
/proc/multikernel
untuk memantau instansi yang dimuat - Vektor komunikasi: MULTIKERNEL_VECTOR khusus untuk komunikasi antar-kernel x86
Kekhawatiran Berbagi Sumber Daya Perangkat Keras Mendominasi Diskusi
Aspek paling kontroversial dari proposal ini berpusat pada bagaimana beberapa kernel akan berbagi sumber daya perangkat keras tanpa konflik. Anggota komunitas telah mengangkat kekhawatiran signifikan tentang perangkat yang bergantung pada penyimpanan status dan serialisasi dalam driver mereka. Tantangan menjadi sangat akut dengan periferal kompleks seperti perangkat USB dan Bluetooth, di mana vendor biasanya tidak menguji untuk beberapa urutan perintah yang saling berselang-seling dari instance kernel yang berbeda.
Beberapa pengembang menyarankan pendekatan hierarkis di mana kernel utama akan memiliki perangkat keras kritis sementara kernel lain berkomunikasi melalui saluran khusus. Namun, ini menciptakan satu titik kegagalan yang merusak beberapa manfaat yang dijanjikan, terutama untuk isolasi kesalahan dan pembaruan kernel tanpa downtime.
Catatan: State-keeping mengacu pada perangkat keras yang mempertahankan informasi status internal, sementara serialisasi berarti memproses perintah satu per satu dalam urutan tertentu.
Model Keamanan Menimbulkan Pertanyaan Tentang Isolasi
Implikasi keamanan dari pendekatan multikernel telah memicu perdebatan yang cukup besar. Tidak seperti virtualisasi tradisional yang bergantung pada isolasi berbantuan perangkat keras, model kooperatif ini mengasumsikan semua kernel yang dimuat dapat dipercaya. Kritikus menunjukkan bahwa kernel yang dikompromikan pada satu core berpotensi dapat membajak core lain, mempertanyakan apakah ini memberikan batas keamanan yang bermakna.
Pendukung berargumen bahwa meskipun arsitektur ini tidak mencegah serangan eksekusi kode, ini dapat membatasi ruang lingkup eksploit umum seperti kerentanan syscall atau serangan pemetaan memori. Isolasi akan lebih tentang menahan korupsi yang tidak disengaja dan membatasi dampak eksploit daripada memberikan jaminan keamanan tingkat VM.
Manfaat yang Diklaim vs. Kekhawatiran Komunitas
Manfaat yang Diklaim | Kekhawatiran Komunitas |
---|---|
Isolasi kesalahan yang lebih baik | Konflik status perangkat keras dengan perangkat yang dibagi |
Keamanan yang ditingkatkan melalui pemisahan | Batas keamanan yang lemah dibandingkan dengan VM |
Pemanfaatan sumber daya yang lebih baik daripada VM | Titik kegagalan tunggal dengan kernel "utama" |
Pembaruan kernel tanpa downtime ( KHO ) | Pengujian terbatas pada perangkat keras yang beragam |
Koeksistensi kernel real-time + tujuan umum | Persyaratan koordinasi driver yang kompleks |
Perbandingan dengan Pendekatan Historis dan Alternatif
Proposal ini telah menarik perbandingan dengan beberapa sistem historis dan proyek penelitian. Anggota komunitas mencatat kesamaan dengan OpenVMS Galaxy pada sistem DEC Alpha, partisi mainframe IBM, dan sistem operasi penelitian Barrelfish. Perbandingan ini menyoroti bahwa meskipun konsepnya tidak sepenuhnya baru, mengimplementasikannya dengan sukses dalam kernel produksi seperti Linux menghadirkan tantangan unik.
Tidak mungkin misalnya vendor usb atau bluetooth rata-rata memiliki 'beberapa urutan perintah berselang-seling' dalam pengaturan pengujian mereka.
Diskusi juga menyentuh apakah pendekatan ini menawarkan keuntungan dibandingkan teknologi containerisasi yang ada atau virtualisasi perangkat keras. Meskipun arsitektur multikernel dapat memberikan performa yang lebih baik daripada VM dengan menghilangkan overhead hypervisor, ini mengorbankan jaminan isolasi yang kuat yang membuat virtualisasi menarik untuk beban kerja yang sensitif terhadap keamanan.
Tantangan Implementasi dan Prospek Masa Depan
Sifat RFC dari seri patch ini mengakui bahwa pekerjaan signifikan masih tersisa sebelum teknologi ini dapat siap untuk produksi. Implementasi saat ini hanya mendukung arsitektur x86 dan telah diuji pada konfigurasi perangkat keras yang terbatas. Anggota komunitas menekankan bahwa pengujian ekstensif di berbagai platform akan menjadi krusial untuk mengidentifikasi masalah potensial.
Latar belakang penulis di Bytedance dan keterlibatan dalam teknologi kernel lain seperti kernelscript telah menghasilkan optimisme yang hati-hati tentang potensi proyek ini. Namun, banyak pengembang tetap skeptis apakah manfaatnya membenarkan kompleksitas dan masalah keandalan potensial, terutama mengingat kematangan solusi virtualisasi yang ada.
Arsitektur multikernel mewakili titik tengah yang menarik antara performa bare-metal dan isolasi tervirtualisasi, tetapi kesuksesannya pada akhirnya akan bergantung pada penyelesaian tantangan fundamental berbagi perangkat keras secara kooperatif dan mempertahankan stabilitas sistem di berbagai instance kernel.
Referensi: [RFC Patch 0/7] kernel: Introduce multikernel architecture support