Apakah mod pengguna vs mod kernel di Windows

Apakah mod pengguna vs mod kernel di Windows

Anda mungkin pernah mendengar tentang aplikasi yang berjalan dalam mod "kernel" atau "pengguna". Ini semua bagaimana sistem pengendalian berfungsi ketika mereka melakukan pekerjaan mereka. Sebaik sahaja anda memahami bahawa, mudah untuk memahami perbezaan antara mod pengguna dan mod kernel.

Dalam memori komputer elektronik, bit diwakili oleh sel ingatan sama ada mempunyai caj di atas atau di bawah ambang tertentu. Pada cakera keras mekanikal, bit diwakili sebagai turun naik magnet yang diukur pada pinggan berputar. Pada cakera optik, lubang dan tanah yang dilakukan atau tidak mencerminkan cahaya laser melakukan pekerjaan yang sama.

Tidak kira bagaimana perwakilan fizikal kod binari dicapai, akhirnya anda dapat mengurangkan semua komponen komputer pengguna ke kod mesin mentah ini.

Oleh itu, bagaimana anda pergi dari antara muka komputer yang mesra manusia ke proses mentah, rendah di komputer itu sendiri? Di situlah sistem operasi masuk. Ia secara langsung mengawal perkakasan komputer.

Perisian ini menerjemahkan semua aplikasi (dan oleh itu pengguna) ingin ke dalam arahan kod mesin yang difahami oleh CPU dan komponen lain. Perisian yang paling kritikal dalam proses ini ialah kernel.

Apa itu kernel?

Kernel adalah, seperti namanya, teras sistem operasi. Kernel adalah perisian yang tinggal di RAM dan mengarahkan semua komputer. Apabila sesuatu ditulis ke dalam ingatan, itu adalah kernel yang mengarahkan pelaksanaannya.

Kernel tahu bagaimana untuk berinteraksi dengan perkakasan seperti GPU dan kad rangkaian, tetapi ia mungkin tidak tahu bagaimana untuk mengendalikannya dengan potensi penuh mereka, bergantung kepada piawaian generik dalam industri komputer.

Pemandu perkakasan dimainkan di sini. Pemandu memberitahu sistem operasi anda bagaimana untuk bekerja dengan komponen tertentu, sebab itu anda memerlukan pemandu yang berbeza untuk NVIDIA dan AMD GPU, sebagai contoh.

Dilengkapi dengan pemandu yang betul, kernel adalah kuasa utama dalam komputer, termasuk melakukan perkara -perkara yang boleh memusnahkan data.

Peranan antara muka pengaturcaraan aplikasi (API)

Pada zaman MS-DOS, pemaju perisian terpaksa menulis perisian mereka khusus untuk perkakasan pengguna. Contoh yang paling terkenal ini mengenai sistem MS-DOS adalah pemandu kad bunyi.

Permainan video yang diberikan perlu menyokong kad yang paling popular (bunyi blaster, ad-lib, ultrasound gravis, dll.) dan berharap kebanyakan pemain dilindungi. Hari ini, perkara berfungsi dengan sangat berbeza, terima kasih kepada API.

Skrin pemilihan soundcard dari wolf3d

Microsoft DirectX adalah contoh yang bagus. Sekiranya anda mahukan penjelasan yang mendalam, lihat apa yang directx dan mengapa penting? Walau bagaimanapun, perkara yang paling penting untuk diketahui ialah API menawarkan cara standard bagi pemaju perisian untuk meminta sumber perkakasan dari komponen seperti GPU. Di samping itu, pembuat perkakasan hanya perlu memastikan bahawa produk mereka mematuhi DirectX untuk memastikan keserasian penuh dengan perisian yang sesuai.

API menawarkan lapisan terjemahan antara aplikasi perisian dan kernel peringkat rendah dengan pemandu perkakasannya. Ya, ini datang dengan penalti prestasi yang sedikit. Namun, di komputer moden, ini boleh diabaikan, dan ia dilengkapi dengan pelbagai kelebihan, di mana kita akhirnya datang ke mod pengguna dan mod kernel.

Mod pengguna vs. Mod kernel

Sistem operasi moden menjalankan beratus -ratus atau beribu -ribu "proses" secara serentak, secara dinamik memberi mereka masa CPU seperti yang diperlukan berdasarkan keutamaan dan keperluan kuasa pengiraan mereka.

Apabila anda melancarkan aplikasi, ia menghasilkan proses, dan CPU boleh melaksanakannya dalam mod pengguna atau mod kernel.

Proses Windows yang berjalan dalam mod pengguna hanya mempunyai akses ke ruang alamat memori maya peribadi dan jadual mengendalikannya. Perisian menggunakan jadual ini untuk menyimpan data dalam RAM dan meminta sumber. Tidak ada akses langsung ke memori atau perkakasan lain, dan terserah kepada sistem operasi untuk memetakan ruang maya ke perkakasan sebenar komputer.

Ini bagus untuk banyak sebab, tetapi manfaat yang paling penting ialah aplikasi tidak dapat menimpa atau mengubah data di luar ruang alamat memori maya. Di samping itu, fungsi tertentu tidak terhad kepada proses mod pengguna, terutamanya yang boleh merosakkan sistem atau memusnahkan data.

Apabila proses dilancarkan atau ditinggikan ke mod kernel, ia mempunyai akses penuh ke sumber sistem, bahkan yang dikhaskan untuk sistem operasi. Oleh itu, secara teori, ia dapat menimpa data penting bahawa sistem operasi perlu dijalankan dengan betul.

Perangkap dan pengecualian

Penting untuk memahami bahawa kedua -dua mod ini dikuatkuasakan pada tahap perkakasan oleh CPU itu sendiri. Sekiranya aplikasi yang dijalankan dalam mod pengguna cuba melakukan sesuatu yang memerlukan akses mod kernel, ia menghasilkan "perangkap" atau "pengecualian."Sistem pengendalian kemudian akan berurusan dengan aplikasi itu, biasanya dengan menutupnya dan menghasilkan log kemalangan supaya pemaju dapat melihat apa yang berlaku dalam ingatan ketika sesuatu melepaskan rel.

Bahaya Mod Kernel: Skrin Kematian Biru

Sekiranya anda pernah mengalami skrin kematian biru (yang belum?) yang memaksa komputer anda mematikan atau memulakan semula, ada peluang yang baik ia adalah proses mod kernel untuk disalahkan.

Apabila proses dalam mod kernel melakukan sesuatu yang tidak sepatutnya, sistem pengendalian tidak dapat pulih daripadanya, dan keseluruhan komputer berhenti. Apabila proses mod pengguna berjalan lantang, hanya aplikasi yang terhempas, dan selebihnya perisian dan sistem operasi dapat diteruskan tanpa sebarang masalah.

Ini adalah satu kawasan di mana API memainkan peranan penting kerana API yang meminta keistimewaan kernel-mod. Aplikasi mod pengguna pada dasarnya mewakilkan permintaan yang memerlukan keistimewaan mod kernel ke API.

Inilah sebabnya mod kernel biasanya hanya diberikan kepada proses sistem peringkat rendah yang perlu mengakses perkakasan komputer secara langsung. Biasanya, keistimewaan ini dilanjutkan ke proses kerana ia memerlukan lebih banyak prestasi daripada mod pengguna yang dapat memberikan. Sesetengah arahan CPU hanya berfungsi dalam mod kernel, jadi jika proses perlu menggunakan fungsi tersebut, ia harus ditinggikan.

Sekiranya anda menghadapi masalah dengan Skrin Kematian Biru, pastikan anda membaca Panduan Penyelesaian Masalah Kematian Skrin Blue kami untuk Windows 10!