Untuk pengguna biasa dan penggemar yang kurang hardcore, Linux adalah sistem operasi. Untuk puritan, bagaimanapun, judul "Linux" disediakan untuk kernel yang memberdayakan sistem operasi. Jika Anda ingin tahu tentang kernel Linux, mari jawab pertanyaan itu dengan memperhatikan pengguna baru.
Mode
Sebelum kami menjelaskan apa itu kernel, penting untuk memahami istilah "mode pengguna" dan "mode kernel". Modus pengguna adalah ketika mengeksekusi kode tidak memiliki kemampuan untuk secara langsung mengakses perangkat keras atau memori referensi. Untuk mendapatkan akses ke perangkat keras dan memori, kode yang dijalankan dalam mode pengguna harus mendelegasikan instruksi ke Antarmuka Pemrograman Aplikasi sistem (API). Kernel Mode adalah ketika mengeksekusi kode memiliki akses tidak terbatas ke semua perangkat keras dan dicadangkan untuk fungsi sistem operasi yang paling tepercaya.
Apa itu Kernel?
Setiap sistem operasi memiliki kernel. Windows, macOS, iOS, Android, Chrome OS, dan Linux masing-masing memiliki sistem tingkat rendah yang bertanggung jawab untuk menghubungkan semua aplikasi dengan perangkat keras fisik komputer. Tanpa kernel, tidak ada aplikasi Anda yang dapat menggunakan komputer fisik; aplikasi seperti Firefox, Chrome, LibreOffice, MS Office, atau Outlook tidak akan berfungsi. Kernel juga bertanggung jawab untuk memungkinkan proses untuk bertukar informasi menggunakan apa yang disebut Inter-Process Communication (IPC).
Ada (secara umum) tiga jenis kernel:
- Kernel monolitik: kernel ini meliputi CPU, memori, IPC, driver perangkat, manajemen sistem file, dan panggilan server sistem. Ini juga bertanggung jawab untuk menyerahkan memori sistem gratis ke aplikasi. Jenis kernel ini biasanya lebih baik dalam mengakses perangkat keras dan multitasking.
- Microkernels: Microkernels mengambil pendekatan minimalis dan hanya mengelola CPU, memori, dan IPC.
- Kernel hibrida: Hybrid Kernel memiliki kemampuan untuk memutuskan apa yang ingin mereka jalankan baik di User atau Kernel Mode. Meskipun ini memberikan yang terbaik dari kedua dunia, itu membutuhkan lebih banyak dari produsen perangkat keras untuk membuat driver yang berfungsi untuk antarmuka antara kode yang berjalan dan perangkat keras.
Linux menggunakan open source, Monolithic Kernel, sedangkan macOS dan Windows keduanya menggunakan Hybrid Kernels. Kernel Linux dikandung pada tahun 1991 oleh Linus Torvalds. Sampai hari ini, Mr. Torvalds terus menjadi pengembang utama di kernel Linux, sementara pengembang dari seluruh dunia berkontribusi pada kernel Linux. Bahkan, diperkirakan bahwa hampir 10.000 pengembang, dari lebih dari 1.000 perusahaan, telah berkontribusi pada kernel Linux (sejak pelacakan dimulai pada tahun 2005).
Di mana Kernel?
Jika Anda membuka jendela terminal dan mengeluarkan perintah ls / boot, Anda akan melihat file bernama vmlinuz-VERSION (Di mana VERSION adalah nama atau nomor rilis). File vmlinuz adalah kernel Linux bootable yang sebenarnya, dan "z" adalah untuk menunjukkan kernel dikompresi; Jadi, bukannya vmlinux kami memiliki vmlinuz.
Di dalam direktori / boot itu adalah file kernel penting lainnya, seperti initrd.img-VERSION, system.map-VERSION, dan config-VERSION (Di mana VERSION adalah nama atau nomor rilis). File-file lain melayani tujuan berikut:
- initrd: digunakan sebagai RAMdisk kecil yang mengekstraksi dan mengeksekusi file kernel yang sebenarnya.
- system.map: digunakan untuk manajemen memori, sebelum pemuatan kernel.
- konfigurasi: menginstruksikan kernel pada opsi dan modul apa untuk dimuat.
Modul
Tanpa modul, kernel tidak akan banyak berguna. Modul secara efektif mengaktifkan driver yang diperlukan untuk berkomunikasi dengan perangkat keras tanpa menghabiskan semua memori sistem Anda. Modul juga menambahkan fungsionalitas ke kernel, seperti berkomunikasi dengan periferal, mengelola sistem file, keamanan, dll. Mungkin untuk daftar, tambah, dan hapus modul ke kernel dengan perintah berikut:
- lsmod akan mendaftar semua modul kernel yang dimuat saat ini.
- insmod akan memuat modul kernel ke kernel yang sedang berjalan.
- rmmod akan membongkar modul dari kernel yang sedang berjalan.
Jadi Anda lihat, dengan bantuan beberapa perintah sederhana, kernel Linux bisa sangat fleksibel.
Kernel Saat Ini
Pada tulisan ini, kernel Linux stabil adalah 4.18.5, tetapi tidak semua distribusi Linux akan menyertakan kernel terbaru. Bahkan, distribusi desktop Elementary OS yang diperbarui menjalankan kernel 4.15.0-30. Apa artinya angka itu? Dalam kasus kernel terbaru pada OS Elementary, itu berarti:
- 4 adalah versi Utama
- 15 adalah versi Minor
- 0-30 adalah revisi
Anda juga dapat mengunduh berbagai versi kernel Linux dari kernel.org dan mengompilasinya sendiri. Kompilasi kernel Linux adalah tugas yang paling kiri bagi mereka yang benar-benar tahu apa yang mereka lakukan. Kernel yang tidak benar dikompilasi dapat membuat sistem tidak dapat boot. Jadi, kecuali Anda siap untuk menyelami tugas menantang untuk menyusun kode pada level ini, gunakan kernel default yang dikirimkan dan diperbarui pada distribusi pilihan Anda.