Apa Itu Mode Pengguna vs Mode Kernel di Windows


Anda mungkin pernah mendengar tentang aplikasi yang berjalan dalam mode “kernel” atau “pengguna”. Semuanya bergantung pada cara kerja sistem operasi saat melakukan tugasnya. Setelah Anda memahaminya, mudah untuk memahami perbedaan antara mode pengguna dan mode kernel.

Memahami Fungsi Sistem Operasi

Komputer terdiri dari perangkat keras, komponen elektronik, dan perangkat lunak, kode komputer dijalankan oleh perangkat keras tersebut. Namun yang mungkin kurang jelas adalah bagaimana keduanya bekerja sama.

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 hidup atau mati. Transistor tersebut disusun menjadi struktur logis 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 daratan 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 menjadi kode mesin mentah ini.

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

Perangkat lunak ini menerjemahkan semua yang diinginkan aplikasi (dan pengguna) ke dalam instruksi kode mesin yang dipahami oleh CPU dan komponen lainnya. Perangkat lunak yang paling penting dalam proses ini adalah kernel.

Apa itu Kernel?

Kernel, seperti namanya, adalah inti dari sistem operasi. Kernel adalah perangkat lunak yang berada di RAM dan mengarahkan segala sesuatu yang dilakukan komputer. Ketika sesuatu ditulis ke dalam memori, kernellah yang mengarahkan eksekusinya.

Kernel mengetahui cara berinteraksi dengan perangkat keras seperti GPU dan kartu jaringan, namun mungkin tidak mengetahui cara mengoperasikannya secara maksimal, bergantung pada 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 GPU Nvidia dan AMD, misalnya.

Dilengkapi dengan driver yang tepat, kernel adalah otoritas tertinggi di dalam komputer, termasuk melakukan hal-hal yang dapat merusak data secara dahsyat.

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, segalanya berjalan sangat berbeda berkat API.

Microsoft DirectX adalah contoh yang bagus. Jika Anda ingin penjelasan lebih mendalam, lihat Apa Itu DirectX dan Mengapa 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 juga mematuhi persyaratan tersebut.

API menawarkan lapisan terjemahan antara aplikasi perangkat lunak dan kernel tingkat rendah dengan driver perangkat kerasnya. Ya, ini disertai dengan sedikit penalti kinerja. Namun, pada komputer modern, hal ini dapat diabaikan, dan memiliki berbagai keuntungan, yang pada 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 memberikan waktu CPU sesuai kebutuhan berdasarkan prioritas dan kebutuhan daya komputasi.

Saat Anda meluncurkan aplikasi, aplikasi akan 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 pribadinya dan tabel pegangannya. Perangkat lunak ini menggunakan tabel ini untuk menyimpan data dalam RAM dan meminta sumber daya. Tidak ada akses langsung ke memori atau perangkat keras lainnya, dan sistem operasi berhak memetakan ruang virtual tersebut ke perangkat keras komputer sebenarnya..

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

Ketika suatu proses diluncurkan atau dinaikkan ke mode kernel, proses tersebut memiliki akses penuh ke sumber daya sistem, bahkan sumber daya yang disediakan untuk sistem operasi. Jadi, secara teori, ini dapat menimpa data penting yang dibutuhkan sistem operasi agar dapat 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, aplikasi tersebut akan menghasilkan “perangkap” atau “pengecualian”. Sistem operasi kemudian akan menangani aplikasi tersebut, biasanya dengan mematikannya dan membuat log kerusakan sehingga pengembang dapat melihat apa yang terjadi di memori ketika segala sesuatunya tidak berjalan sesuai rencana.

Bahaya Mode Kernel: Layar Biru Kematian

Jika Anda pernah mengalami Blue Screen of Death (siapa yang belum pernah mengalaminya?) yang memaksa komputer Anda untuk mati atau restart, kemungkinan besar penyebabnya adalah proses mode kernel.

Ketika suatu proses dalam mode kernel melakukan sesuatu yang tidak seharusnya, sistem operasi tidak dapat memulihkannya, dan seluruh komputer terhenti. Saat proses mode pengguna bermasalah, hanya aplikasi yang mengalami error, dan perangkat lunak serta sistem operasi lainnya dapat berjalan tanpa masalah apa pun.

Ini adalah salah satu area di mana API memainkan peran penting karena API tersebut meminta hak istimewa mode kernel. Aplikasi mode pengguna pada dasarnya mendelegasikan permintaan yang memerlukan hak istimewa mode kernel ke API.

Inilah sebabnya mode kernel biasanya hanya diberikan pada proses sistem tingkat rendah yang perlu mengakses perangkat keras komputer secara langsung. Biasanya, hak istimewa ini diperluas ke suatu proses karena memerlukan kinerja lebih dari yang dapat disediakan oleh mode pengguna. Beberapa instruksi CPU hanya bekerja dalam mode kernel, jadi jika suatu proses perlu menggunakan fungsi tersebut, maka harus ditingkatkan.

Jika Anda mengalami masalah dengan Blue Screen of Death, pastikan untuk membaca Panduan Mengatasi Masalah Layar Biru Kematian untuk Windows 10 kami!.

.

Pos terkait:


31.12.2021