Anda mungkin pernah mendengar tentang aplikasi yang berjalan dalam mode”kernel”atau”pengguna”. Semuanya tergantung pada bagaimana sistem operasi bekerja ketika mereka melakukan pekerjaan mereka. Setelah Anda memahaminya, mudah untuk memahami perbedaan antara mode pengguna dan mode kernel.
Memahami Apa Fungsi Sistem Operasi
Komputer terdiri dari perangkat keras, komponen elektronik, dan perangkat lunak, kode komputer dijalankan oleh perangkat keras itu. Tapi yang mungkin kurang jelas adalah bagaimana mereka bekerja bersama.
Daftar Isi
Elemen komputer yang paling penting adalah bit atau”digit biner”. Segala sesuatu yang dilakukan komputer direpresentasikan sebagai satu dan nol. Komponen komputer yang berbeda mewakili bit dengan cara yang berbeda. Dalam CPU, transistor mikroskopis mewakili satu dan nol dengan menghidupkan atau mematikan. Transistor tersebut disusun ke dalam struktur logika yang disebut gerbang logika.
Dalam memori komputer elektronik, bit diwakili oleh sel memori yang memiliki muatan di atas atau di bawah ambang batas tertentu. Pada hard drive mekanis, bit direpresentasikan sebagai fluktuasi magnetik yang diukur pada piringan yang berputar. Pada cakram optik, lubang dan tanah yang memantulkan atau tidak memantulkan sinar laser melakukan pekerjaan yang sama.
Tidak peduli bagaimana representasi fisik kode biner dicapai, pada akhirnya Anda dapat mengurangi semua komponen komputer konsumen ke kode mesin mentah ini.
Jadi, bagaimana Anda beralih dari antarmuka komputer yang ramah-manusia ke antarmuka mentah, rendah-tingkat proses di komputer itu sendiri? Di situlah sistem operasi masuk. Secara langsung mengontrol perangkat keras komputer.
Perangkat lunak ini menerjemahkan semua yang diinginkan aplikasi (dan oleh karena itu pengguna) ke dalam instruksi kode mesin yang dipahami oleh CPU dan komponen lainnya. Bagian paling penting dari perangkat lunak dalam proses ini adalah kernel.
Apa itu Kernel?
Kernel adalah, seperti namanya, inti dari sistem operasi. Kernel adalah perangkat lunak yang berada di RAM dan mengarahkan semua yang dilakukan komputer. Ketika sesuatu ditulis ke dalam memori, itu adalah kernel yang mengarahkan eksekusi.
Kernel tahu bagaimana berinteraksi dengan perangkat keras seperti GPU dan kartu jaringan, tetapi mungkin tidak tahu bagaimana mengoperasikannya secara maksimal , mengandalkan standar umum dalam industri komputer.
Driver perangkat keras berperan di sini. Driver memberi tahu sistem operasi Anda cara bekerja dengan komponen tertentu, itulah sebabnya Anda memerlukan driver yang berbeda untuk Nvidia dan GPU AMD, misalnya.
Dilengkapi dengan driver yang tepat, kernel adalah otoritas tertinggi di dalam komputer , termasuk melakukan hal-hal yang dapat menghancurkan data secara serempak.
Peran Antarmuka Pemrograman Aplikasi (API)
Pada zaman MS-DOS, pengembang perangkat lunak harus menulis perangkat lunak mereka secara khusus untuk perangkat keras pengguna. Contoh paling terkenal dari hal ini pada sistem MS-DOS adalah driver kartu suara.
Video game tertentu harus mendukung kartu paling populer (Sound Blaster, Ad-lib, Gravis Ultrasound, dll.) dan berharap sebagian besar pemain tercakup. Saat ini, semuanya bekerja dengan sangat berbeda, berkat API.
Layar pemilihan Soundcard dari Wolf3D
Microsoft DirectX adalah contoh yang bagus. Jika Anda ingin penjelasan mendalam, lihat Apa itu DirectX dan Mengapa Penting? Namun, yang paling penting untuk diketahui adalah bahwa API menawarkan cara standar bagi pengembang perangkat lunak untuk meminta sumber daya perangkat keras dari komponen seperti GPU. Selain itu, pembuat perangkat keras hanya harus memastikan bahwa produk mereka mematuhi DirectX untuk memastikan kompatibilitas penuh dengan perangkat lunak yang juga sesuai.
API menawarkan lapisan terjemahan antara aplikasi perangkat lunak dan kernel tingkat rendah dengan driver perangkat kerasnya. Ya, ini datang dengan sedikit penalti kinerja. Namun, pada komputer modern, hal ini dapat diabaikan, dan hadir dengan berbagai keuntungan, di situlah akhirnya kita sampai pada mode pengguna dan mode kernel.
Mode Pengguna vs. Mode Kernel
Sistem operasi modern menjalankan ratusan atau ribuan”proses”secara bersamaan, secara dinamis memberi mereka waktu CPU sesuai kebutuhan berdasarkan prioritas dan kebutuhan daya komputasinya.
Saat Anda meluncurkan aplikasi, itu menghasilkan proses, dan CPU dapat mengeksekusinya dalam mode pengguna atau mode kernel.
Proses Windows yang berjalan dalam mode pengguna hanya memiliki akses ke ruang alamat memori virtual pribadinya dan tabel pegangannya. Perangkat lunak menggunakan tabel ini untuk menyimpan data dalam RAM dan meminta sumber daya. Tidak ada akses langsung ke memori atau perangkat keras lain, dan terserah pada sistem operasi untuk memetakan ruang virtual tersebut ke perangkat keras komputer yang sebenarnya.
Ini bagus untuk berbagai alasan, tetapi manfaat yang paling penting adalah aplikasi tidak dapat menimpa atau mengubah data di luar ruang alamat memori virtualnya. Selain itu, fungsi-fungsi tertentu terlarang untuk proses mode pengguna, terutama yang dapat merusak sistem atau menghancurkan data.
Ketika sebuah proses diluncurkan atau dinaikkan ke mode kernel, proses tersebut memiliki akses penuh ke sistem sumber daya, bahkan yang disediakan untuk sistem operasi. Jadi, secara teori, ini bisa menimpa data penting yang dibutuhkan sistem operasi untuk berjalan dengan baik.
Perangkap dan Pengecualian
Penting untuk dipahami bahwa kedua mode ini diterapkan pada tingkat perangkat keras oleh CPU itu sendiri. Jika aplikasi yang berjalan dalam mode pengguna mencoba melakukan sesuatu yang memerlukan akses mode kernel, itu menghasilkan”perangkap”atau”pengecualian.”Sistem operasi kemudian akan menangani aplikasi, biasanya dengan mematikannya dan membuat crash log sehingga pengembang dapat melihat apa yang terjadi di memori ketika ada yang tidak beres.
Bahaya Mode Kernel: Blue Screen of Death
Jika Anda pernah mengalami Blue Screen of Death (siapa yang belum?) yang memaksa komputer Anda untuk mati atau restart, kemungkinan besar itu adalah mode kernel proses yang harus disalahkan.
Ketika sebuah proses dalam mode kernel melakukan sesuatu yang tidak seharusnya, sistem operasi tidak dapat memulihkannya, dan seluruh komputer berhenti. Saat proses mode pengguna rusak, hanya aplikasi yang mogok, dan perangkat lunak serta sistem operasi lainnya dapat berjalan tanpa masalah.
Ini adalah salah satu area di mana API memainkan peran penting karena API meminta hak istimewa mode kernel. Aplikasi mode pengguna pada dasarnya mendelegasikan permintaan yang memerlukan hak mode kernel ke API.
Inilah sebabnya mode kernel biasanya hanya diberikan kepada proses sistem tingkat rendah yang perlu mengakses perangkat keras komputer secara langsung. Biasanya, hak istimewa ini diperluas ke suatu proses karena membutuhkan lebih banyak kinerja daripada yang dapat disediakan oleh mode pengguna. Beberapa instruksi CPU hanya bekerja dalam mode kernel, jadi jika suatu proses perlu menggunakan fungsi tersebut, itu harus ditingkatkan.
Jika Anda mengalami masalah dengan Blue Screen of Death, pastikan untuk membaca Panduan Pemecahan Masalah Layar Biru Kematian untuk Windows 10!