Apa mode pengguna vs mode kernel di windows

Apa mode pengguna vs mode kernel di windows

Anda mungkin pernah mendengar tentang aplikasi yang berjalan dalam mode "kernel" atau "pengguna". Semuanya tergantung pada cara kerja sistem operasi saat mereka melakukan pekerjaan. Setelah Anda mengerti, mudah untuk memahami perbedaan antara mode pengguna dan mode kernel.

Dalam memori komputer elektronik, bit diwakili oleh sel memori baik memiliki muatan di atas atau di bawah ambang batas tertentu. Pada hard drive mekanis, bit direpresentasikan sebagai fluktuasi magnetik yang diukur pada piring pemintalan. Pada cakram optik, lubang dan tanah yang melakukan atau tidak memantulkan lampu laser melakukan pekerjaan yang sama.

Tidak peduli bagaimana representasi fisik kode biner tercapai, Anda pada akhirnya dapat mengurangi semua komponen komputer konsumen ke kode mesin mentah ini.

Jadi bagaimana Anda beralih dari antarmuka komputer yang ramah manusia ke proses mentah dan tingkat rendah di komputer itu sendiri? Di situlah sistem operasi masuk. Itu secara langsung mengontrol perangkat keras komputer.

Perangkat lunak ini menerjemahkan semua aplikasi (dan oleh karena itu pengguna) menginginkan instruksi kode mesin yang dipahami oleh CPU dan komponen lainnya. Perangkat lunak paling kritis dalam proses ini adalah kernel.

Apa kernelnya?

Kernel, seperti namanya, inti dari sistem operasi. Kernel adalah perangkat lunak yang berada di RAM dan mengarahkan semua yang dilakukan komputer. Ketika sesuatu ditulis dalam ingatan, itu adalah kernel yang mengarahkan eksekusi.

Kernel tahu cara berinteraksi dengan perangkat keras seperti GPU dan kartu jaringan, tetapi mungkin tidak tahu bagaimana mengoperasikannya ke potensi penuh mereka, mengandalkan standar generik di industri komputer.

Driver perangkat keras ikut bermain di sini. Pengemudi memberi tahu sistem operasi Anda cara bekerja dengan komponen tertentu, itulah sebabnya Anda membutuhkan driver yang berbeda untuk NVIDIA dan AMD GPU, misalnya.

Dilengkapi dengan driver yang tepat, kernel adalah otoritas tertinggi di dalam komputer, termasuk melakukan hal -hal yang dapat menghancurkan data yang sangat besar.

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 ini pada sistem MS-DOS adalah driver kartu suara.

Video game yang diberikan harus mendukung kartu yang paling populer (Sound Blaster, Ad-Lib, Gravis USG, dll.) dan berharap sebagian besar pemain tertutup. Hari ini, hal -hal bekerja sangat berbeda, berkat API.

Layar pilihan kartu suara dari Wolf3D

Microsoft DirectX adalah contoh yang bagus. Jika Anda menginginkan penjelasan mendalam, lihat apa itu DirectX dan mengapa itu penting? Namun, hal 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 sesuai juga.

API menawarkan lapisan terjemahan antara aplikasi perangkat lunak dan kernel tingkat rendah dengan driver perangkat kerasnya. Ya, ini datang dengan sedikit penalti kinerja. Namun, di komputer modern, ini dapat diabaikan, dan ia datang dengan berbagai keuntungan, yang akhirnya menjadi tempat kami 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 persyaratan daya perhitungan mereka.

Saat Anda meluncurkan aplikasi, itu menghasilkan proses, dan CPU dapat menjalankannya dalam mode pengguna atau mode kernel.

Proses Windows yang berjalan dalam mode pengguna hanya memiliki akses ke ruang alamat memori virtual pribadi dan tabel pegangannya sendiri. Perangkat lunak menggunakan tabel ini untuk menyimpan data dalam RAM dan meminta sumber daya. Tidak ada akses langsung ke memori atau perangkat keras lainnya, dan tergantung pada sistem operasi untuk memetakan ruang virtual tersebut ke perangkat keras yang sebenarnya dari komputer.

Ini bagus karena berbagai alasan, tetapi manfaat yang paling penting adalah bahwa aplikasi tidak dapat menimpa atau mengubah data di luar ruang alamat memori virtualnya. Selain itu, fungsi tertentu terlarang untuk proses mode pengguna, terutama yang dapat merusak sistem atau menghancurkan data.

Saat proses diluncurkan atau diangkat ke mode kernel, ia memiliki akses penuh ke sumber daya sistem, bahkan yang disediakan untuk sistem operasi. Jadi, secara teori, itu bisa menimpa data penting yang perlu dijalankan oleh sistem operasi dengan benar.

Perangkap dan pengecualian

Penting untuk dipahami bahwa kedua mode ini ditegakkan pada tingkat perangkat keras oleh CPU itu sendiri. Jika aplikasi yang berjalan dalam mode pengguna mencoba melakukan sesuatu yang membutuhkan akses mode kernel, itu menghasilkan "jebakan" atau "pengecualian.Sistem operasi kemudian akan menangani aplikasi, biasanya dengan mematikannya dan menghasilkan log crash sehingga pengembang dapat melihat apa yang terjadi dalam memori ketika segalanya berjalan dari rel.

Bahaya Mode Kernel: Layar Biru Kematian

Jika Anda pernah mengalami layar kematian biru (yang belum?) Itu memaksa komputer Anda untuk mematikan atau memulai kembali, ada kemungkinan besar itu adalah proses mode kernel yang harus disalahkan.

Ketika suatu proses dalam mode kernel melakukan sesuatu yang tidak seharusnya, sistem operasi tidak dapat pulih darinya, dan seluruh komputer berhenti. Saat proses mode pengguna menjadi haywire, hanya aplikasi yang macet, dan sisa perangkat lunak dan sistem operasi dapat berlangsung tanpa masalah apa pun.

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 membutuhkan hak istimewa mode kernel ke API.

Inilah sebabnya mengapa mode kernel biasanya hanya diberikan untuk 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 berfungsi dalam mode kernel, jadi jika suatu proses perlu menggunakan fungsi -fungsi itu, itu harus ditinggikan.

Jika Anda mengalami masalah dengan layar biru kematian, pastikan untuk membaca Panduan Pemecahan Masalah Layar Biru kami untuk Windows 10!