GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana perbandingan kernel Linux dengan arsitektur mikrokernel?

Mikrokernel memerlukan lebih sedikit kode untuk dijalankan dalam mode terdalam dan paling tepercaya daripada kernel monolitik. Ini memiliki banyak aspek, seperti:

  • Mikrokernel memungkinkan fitur non-fundamental (seperti driver untuk perangkat keras yang tidak tersambung atau tidak digunakan) untuk dimuat dan dibongkar sesuka hati. Ini sebagian besar dapat dicapai di Linux, melalui modul.
  • Mikrokernel lebih tangguh:jika komponen non-kernel mogok, tidak akan merusak seluruh sistem. Sistem file atau driver perangkat yang bermasalah dapat merusak sistem Linux. Linux tidak memiliki cara apa pun untuk mengurangi masalah ini selain dari praktik pengkodean dan pengujian.
  • Mikrokernel memiliki basis komputasi tepercaya yang lebih kecil. Jadi, bahkan pengandar perangkat atau sistem file berbahaya tidak dapat mengendalikan keseluruhan sistem (misalnya pengandar asal yang meragukan untuk gadget USB terbaru Anda tidak akan dapat membaca hard disk Anda).
  • Konsekuensi dari poin sebelumnya adalah pengguna biasa dapat memuat komponen mereka sendiri yang akan menjadi komponen kernel dalam kernel monolitik.

GUI Unix disediakan melalui jendela X, yang merupakan kode userland (kecuali untuk (bagian dari) driver perangkat video). Banyak unice modern memungkinkan pengguna biasa memuat driver sistem file melalui FUSE. Beberapa pemfilteran paket jaringan Linux dapat dilakukan di userland. Namun, driver perangkat, penjadwal, pengelola memori, dan sebagian besar protokol jaringan masih hanya untuk kernel.

Bacaan klasik (jika kuno) tentang Linux dan mikrokernel adalah debat Tanenbaum–Torvalds. Dua puluh tahun kemudian, dapat dikatakan bahwa Linux bergerak sangat lambat menuju struktur mikrokernel (modul yang dapat dimuat muncul lebih awal, FUSE lebih baru), tetapi jalan masih panjang.

Hal lain yang telah berubah adalah meningkatnya relevansi virtualisasi pada desktop dan komputer tersemat kelas atas:untuk beberapa tujuan, perbedaan yang relevan bukanlah antara kernel dan userland, tetapi antara hypervisor dan OS tamu.


Mikrokernel membatasi waktu sistem dalam mode kernel, berlawanan dengan ruang pengguna, seminimal mungkin.

Jika crash terjadi dalam mode kernel, seluruh kernel mati, dan itu berarti seluruh sistem mati. Jika crash terjadi dalam mode pengguna, hanya proses itu yang turun. Linux tangguh dalam hal ini, tetapi subsistem kernel apa pun masih dapat menulis di atas memori subsistem kernel lainnya, baik sengaja atau tidak sengaja.

Konsep mikrokernel menempatkan banyak hal yang secara tradisional merupakan mode kernel, seperti jaringan dan driver perangkat, di ruang pengguna. Karena microkernel tidak terlalu bertanggung jawab untuk banyak hal, itu juga berarti itu bisa lebih sederhana dan lebih dapat diandalkan. Pikirkan cara protokol IP, dengan menjadi sederhana dan bodoh, benar-benar mengarah ke jaringan yang kuat dengan mendorong kerumitan ke tepi dan membiarkan inti ramping dan kejam.


Anda harus membaca sisi lain dari masalah ini:

Komputasi Ekstrim Berperforma Tinggi atau Mengapa Microkernel payah

Sistem File Termasuk Dalam Kernel


Linux
  1. Cara memutakhirkan Kernel di Desktop Linux

  2. Cara memeriksa versi Kernel di Linux

  3. Bagaimana saya memeriksa apakah KPTI diaktifkan di linux?

  1. Linux – Bagaimana Cara Memuat Ulang Modul Kernel dengan Benar?

  2. Bagaimana kernel Linux menentukan urutan panggilan __init?

  3. Bagaimana cara kerja debugger di Linux?

  1. Linux – Bagaimana Kernel Linux Dibandingkan Dengan Arsitektur Mikrokernel?

  2. Bagaimana cara kerja copy_from_user dari kernel Linux secara internal?

  3. Bagaimana cara membuat kode modul kernel Linux?