GNU/Linux >> Belajar Linux >  >> Linux

Linux – Bagaimana Kernel Linux Dibandingkan Dengan Arsitektur Mikrokernel?

Saya pernah membaca bahwa salah satu keuntungan dari arsitektur mikrokernel adalah Anda dapat menghentikan/memulai layanan penting seperti jaringan dan sistem file, tanpa perlu memulai ulang seluruh sistem. Tetapi mengingat kernel Linux saat ini (apakah selalu demikian?) menawarkan opsi untuk menggunakan modul untuk mencapai efek yang sama, apa keuntungan (yang tersisa) dari mikrokernel?

Jawaban yang Diterima:

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 terhubung atau tidak digunakan) untuk dimuat dan dibongkar sesuka hati. Ini sebagian besar dapat dicapai di Linux, melalui modul.
  • Mikrokernel lebih kuat:jika komponen non-kernel mogok, itu tidak akan membawa seluruh sistem bersamanya. Sistem file atau driver perangkat yang bermasalah dapat membuat sistem Linux crash. Linux tidak memiliki cara apa pun untuk mengurangi masalah ini selain praktik dan pengujian pengkodean.
  • Mikrokernel memiliki basis komputasi tepercaya yang lebih kecil. Jadi, bahkan driver perangkat atau sistem file yang berbahaya tidak dapat mengendalikan seluruh sistem (misalnya driver yang meragukan asal untuk gadget USB terbaru Anda tidak akan dapat membaca hard disk Anda).
  • Konsekuensi dari poin sebelumnya adalah bahwa 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 unix modern memungkinkan pengguna biasa untuk memuat driver sistem file melalui FUSE. Beberapa packet filtering jaringan Linux dapat dilakukan di userland. Namun, driver perangkat, penjadwal, manajer memori, dan sebagian besar protokol jaringan masih hanya 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 peningkatan relevansi virtualisasi pada desktop dan komputer tertanam kelas atas:untuk beberapa tujuan, perbedaan yang relevan bukanlah antara kernel dan userland tetapi antara hypervisor dan OS tamu.

Terkait:Bagaimana cara menyesuaikan bash autocomplete untuk membuat daftar file di direktori lain?
Linux
  1. Bagaimana kernel linux bisa sangat kecil?

  2. Bagaimana saya memeriksa apakah KPTI diaktifkan di linux?

  3. Bagaimana perbandingan kernel Linux dengan arsitektur mikrokernel?

  1. Cara memutakhirkan Kernel di Desktop Linux

  2. Cara memeriksa versi Kernel di Linux

  3. Bagaimana cara kerja debugger di Linux?

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

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

  3. Bagaimana cara membuat kode modul kernel Linux?