
حالت کاربر و حالت هسته
یک پردازنده در یک رایانه که ویندوز را اجرا میکند در دو حالت مختلف کار میکند: حالت کاربر و حالت هسته. پردازنده بسته به نوع کدی که اجرا میکند بین این حالتها جابهجا میشود. برنامهها در حالت کاربر عمل میکنند. مؤلفههای اصلی سیستمعامل در حالت هسته کار میکنند. اگرچه بسیاری از درایورها در حالت هسته اجرا میشوند، برخی میتوانند در حالت کاربر عمل کنند.
حالت کاربر
وقتی برنامهای را در حالت کاربر اجرا میکنید، ویندوز یک پردازه برای آن ایجاد میکند. این پردازه یک فضای آدرس مجازی خصوصی و یک جدول دستهٔ خصوصی در اختیار برنامه قرار میدهد. از آنجا که فضای آدرس مجازی هر برنامه خصوصی است، یک برنامه نمیتواند دادههای برنامهٔ دیگری را تغییر دهد. هر برنامه در انزوا اجرا میشود. این رویکرد تضمین میکند که اگر برنامهای کرش کند، روی برنامههای دیگر یا سیستمعامل تأثیر نگذارد.
فضای آدرس مجازی یک برنامهٔ حالت کاربر نیز محدود است. یک پردازه که در حالت کاربر اجرا میشود نمیتواند به آدرسهای مجازیای دسترسی داشته باشد که برای سیستمعامل رزرو شدهاند. محدود کردن فضای آدرس مجازی برنامهٔ حالت کاربر مانع از آن میشود که برنامه دادههای حیاتی سیستمعامل را تغییر داده یا خراب کند.
هستهٔ حالت
تمام کدی که در حالت هسته اجرا میشود یک فضای آدرس مجازی مشترک دارد. در نتیجه، یک درایور حالت هسته از دیگر درایورها یا سیستمعامل ایزوله نیست. اگر یک درایور حالت هسته به اشتباه در آدرس مجازی نادرست بنویسد، ممکن است دادهای که متعلق به سیستمعامل یا یک درایور دیگر است را خراب کند. اگر یک درایور حالت هسته کرش کند، باعث میشود کل سیستمعامل کرش کند.
نمودار زیر ارتباط بین مؤلفههای حالت کاربر و حالت هسته را نشان میدهد.

Telegram: @CaKeegan
Gmail : [email protected]