5Aug

Apa itu Kernel Linux dan Apa Artinya?

click fraud protection


Dengan lebih dari 13 juta baris kode, kernel Linux adalah salah satu proyek open source terbesar di dunia, tapi apa itu kernel dan apa gunanya?

Jadi Apa itu Kernel?

Kernel adalah tingkat terendah dari perangkat lunak yang mudah diganti yang berinteraksi dengan perangkat keras di komputer Anda. Ini bertanggung jawab untuk mencermati semua aplikasi Anda yang berjalan dalam "mode pengguna" ke perangkat keras fisik, dan membiarkan proses, yang dikenal sebagai server, untuk mendapatkan informasi satu sama lain menggunakan komunikasi antar proses( IPC).

Berbagai Jenis Kernel

Tentu saja ada beberapa cara untuk membangun sebuah kernel dan pertimbangan arsitektural saat membangunnya dari nol. Secara umum, kebanyakan kernel terbagi menjadi satu dari tiga jenis: monolitik, mikrokernel, dan hibrid. Linux adalah kernel monolitik sementara OS X( XNU) dan Windows 7 menggunakan kernel hibrida. Mari kita tur singkat tiga kategori ini sehingga kita bisa membahas lebih detail nanti.


Image oleh uptown popcorn

instagram viewer

Microkernel
Mikrokernel mengambil pendekatan hanya untuk mengelola apa yang harus dilakukan: CPU, memori, dan IPC.Hampir semua hal lain di komputer bisa dilihat sebagai aksesori dan bisa ditangani dalam mode pengguna. Microkernels memiliki keuntungan portabilitas karena mereka tidak perlu khawatir jika Anda mengganti kartu video atau bahkan sistem operasi Anda asalkan sistem operasi masih mencoba mengakses perangkat keras dengan cara yang sama. Microkernels juga memiliki jejak yang sangat kecil, baik untuk memori dan pemasangan ruang, dan cenderung lebih aman karena hanya proses spesifik yang berjalan dalam mode pengguna yang tidak memiliki izin tinggi sebagai mode supervisor.

Kelebihan

  • Portabilitas
  • Tapak instalasi kecil
  • Tapak memori kecil
  • Keamanan

Kontra Perangkat Keras

  • lebih disarikan melalui driver
  • Perangkat keras dapat bereaksi lebih lambat karena pengemudi berada dalam mode pengguna Proses
  • harus menunggu dalam antrian untuk mendapatkan informasi Proses
  • tidak dapatmendapatkan akses ke proses lain tanpa menunggu

Kernel Monolitik
Kernel monolitik berlawanan dengan mikrokernel karena tidak hanya mencakup CPU, memori, dan IPC, namun juga mencakup hal-hal seperti driver perangkat, manajemen sistem file, dan panggilan server sistem. Benang monolitik cenderung lebih baik dalam mengakses perangkat keras dan multitasking karena jika sebuah program perlu mendapatkan informasi dari ingatan atau proses lain yang menjalankannya, ada jalur yang lebih langsung untuk mengaksesnya dan tidak perlu menunggu dalam antrian untuk menyelesaikan sesuatu. Namun hal ini dapat menyebabkan masalah karena semakin banyak hal yang berjalan dalam mode supervisor, semakin banyak hal yang dapat menurunkan sistem Anda jika tidak berperilaku baik.

Kelebihan

  • Akses lebih langsung ke perangkat keras untuk program
  • Lebih mudah untuk proses berkomunikasi antara masing-masing
  • Jika perangkat Anda didukung, perangkat ini harus bekerja tanpa instalasi tambahan Proses
  • bereaksi lebih cepat karena tidak ada antrian untuk waktu prosesor

Cons

  • Largeinstal jejak
  • Tapak memori besar
  • Kurang aman karena semuanya berjalan dalam mode pengawas


Gambar melalui schoschie di Flickr

Kernel Hybrid Kernel
Kernel hibrida memiliki kemampuan untuk memilih dan memilih apa yang ingin dijalankan dalam mode pengguna dan apa yang ingin mereka jalankan di supervisor.mode. Sering kali hal-hal seperti driver perangkat dan filesystem I / O akan dijalankan dalam mode pengguna sementara panggilan IPC dan server akan disimpan dalam mode supervisor. Ini memberikan yang terbaik dari kedua dunia namun seringkali akan membutuhkan lebih banyak pekerjaan dari produsen perangkat keras karena semua tanggung jawab pengemudi terserah mereka. Ini juga dapat memiliki beberapa masalah latensi yang melekat pada mikrokernel.

Pro

  • Developer dapat memilih dan memilih apa yang berjalan dalam mode pengguna dan apa yang berjalan dalam mode supervisor
  • Memasang jejak yang lebih kecil daripada kernel monolitik
  • Lebih fleksibel daripada model
lainnya.

Cons

  • Dapat mengalami lag proses yang sama seperti driver perangkat
  • mikrokernel yang perlu dikelola oleh pengguna( biasanya)

Dimana File Kernel Linux?

File kernel, di Ubuntu, disimpan di folder / boot Anda dan disebut versi vmlinuz- .Nama vmlinuz berasal dari dunia unix dimana mereka biasa memanggil kernel mereka hanya "unix" di tahun 60an sehingga Linux mulai memanggil kernel "linux" mereka saat pertama kali dikembangkan pada tahun 90an.

Ketika memori virtual dikembangkan untuk kemampuan multitasking yang lebih mudah, "vm" diletakkan di bagian depan file untuk menunjukkan bahwa kernel mendukung memori virtual. Untuk sementara kernel Linux disebut vmlinux, namun kernelnya tumbuh terlalu besar agar sesuai dengan memori boot yang tersedia sehingga gambar kernel dikompres dan ending x diubah menjadi z untuk menunjukkan bahwa ia dikompres dengan kompresi zlib. Kompresi yang sama ini tidak selalu digunakan, sering diganti dengan LZMA atau BZIP2, dan beberapa kernel disebut zImage.

Penomoran versi akan dalam format A.B.C.D di mana A.B mungkin akan berukuran 2.6, C adalah versi Anda, dan D menunjukkan patch atau perbaikan Anda.

Di folder / boot ada juga file penting lainnya yang disebut initrd.img-version, system.map-version, dan config-version. Berkas initrd digunakan sebagai disk RAM kecil yang mengekstrak dan mengeksekusi file kernel yang sebenarnya. Berkas system.map digunakan untuk manajemen memori sebelum kernel terisi penuh, dan file konfigurasi memberi tahu kernel opsi dan modul apa yang akan dimasukkan ke dalam gambar kernel saat dikompilasi. Arsitektur Kernel Linux

Karena kernel Linux bersifat monolitik, ia memiliki jejak terbesar dan kompleksitas paling banyak dibandingkan jenis kernel lainnya. Ini adalah fitur desain yang sedikit banyak diperdebatkan di masa-masa awal Linux dan masih memiliki beberapa kelemahan desain yang sama yang dimiliki oleh kernel monolitik.

Satu hal yang pengembang kernel Linux lakukan untuk mengatasi kelemahan ini adalah membuat modul kernel yang bisa dimuat dan dibongkar saat runtime, artinya Anda dapat menambahkan atau menghapus fitur kernel Anda dengan cepat. Ini bisa melampaui hanya menambahkan fungsionalitas perangkat keras ke kernel, dengan memasukkan modul yang menjalankan proses server, seperti virtualisasi tingkat rendah, namun juga memungkinkan seluruh kernel diganti tanpa perlu melakukan boot ulang komputer Anda dalam beberapa kasus.

Bayangkan jika Anda bisa meng-upgrade ke paket layanan Windows tanpa perlu melakukan reboot. .. Modul Kernel

Bagaimana jika Windows memiliki setiap driver yang tersedia yang sudah terpasang dan Anda hanya perlu menyalakan driver yang Anda butuhkan? Itulah dasarnya yang dilakukan modul kernel untuk Linux. Modul kernel, juga dikenal sebagai loadable kernel module( LKM), sangat penting untuk menjaga agar kernel tetap berfungsi dengan semua perangkat keras Anda tanpa menghabiskan semua memori yang ada.

Modul biasanya menambahkan fungsionalitas ke kernel dasar untuk hal-hal seperti perangkat, sistem file, dan panggilan sistem. LKM memiliki ekstensi file. ko dan biasanya disimpan dalam direktori modul /lib/.Karena sifat modularnya, Anda dapat dengan mudah menyesuaikan kernel Anda dengan mengatur modul agar dimuat, atau tidak dimuat, saat startup dengan perintah menuconfig atau dengan mengedit file konfigurasi /boot/ Anda, atau Anda dapat memuat dan membongkar modul dengan cepat dengan perintah modprobe.

Modul sumber pihak ketiga dan closed source tersedia di beberapa distro, seperti Ubuntu, dan mungkin tidak diinstal secara default karena kode sumber untuk modul tidak tersedia. Pengembang perangkat lunak( yaitu nVidia, ATI, antara lain) tidak menyediakan kode sumber melainkan membangun modul mereka sendiri dan mengkompilasi file. ko yang diperlukan untuk distribusi. Sementara modul ini gratis seperti di bir, mereka tidak bebas seperti dalam pidato dan oleh karena itu tidak disertakan oleh beberapa distribusi karena para pengelola merasa "mencemari" kernel dengan menyediakan perangkat lunak tidak bebas.

Kernel bukan sihir, tapi sangat penting bagi komputer yang berjalan dengan baik. Kernel Linux berbeda dari OS X dan Windows karena menyertakan driver di tingkat kernel dan membuat banyak hal didukung "di luar kotak".Mudah-mudahan Anda akan tahu sedikit lebih banyak tentang bagaimana perangkat lunak dan perangkat keras Anda bekerja sama dan file apa yang Anda butuhkan untuk boot komputer Anda.

Kernel.org
Gambar oleh ingridtaylar