يقوم المعالج بتنفيذ البرامج في وضع المستخدم أو وضع Kernel. عند استخدام جهاز الكمبيوتر الخاص بك، يقوم المعالج بشكل متكرر بالتبديل بين هذين النوعين من الأوضاع، اعتمادًا على ما يفعله. ولكن ما هو وضع المستخدم ووضع Kernel؟ ما هو الفرق بين هذين الوضعين؟ لماذا تحتاج وحدة المعالجة المركزية إلى التبديل بين هذه الأوضاع.
ما هو وضع المستخدم في نظام التشغيل Windows؟

وضع المستخدم في نظام التشغيل Windows
عند بدء تشغيل برنامج على نظام التشغيل Windows، يتم تشغيل هذا البرنامج في وضع المستخدم. عندما يرغب برنامج ما في وضع المستخدم في التشغيل، يقوم Windows بإنشاء عملية له. العملية هي مجرد برنامج يقوم المعالج بتنفيذه أو برنامج قام Windows بجدولة تنفيذه. وعندما يقوم Windows بإنشاء عملية، فإنه يقوم أيضًا بإنشاء مساحة عنوان افتراضية لتلك العملية.
مساحة العنوان الافتراضية هي مجموعة العناوين المنطقية (غير المادية) التي يعينها Windows لعملية ما. يمكن للعمليات استخدام هذه العناوين لتخزين البيانات في الذاكرة الفعلية.
بالإضافة إلى ذلك، يتم عزل مساحة العنوان الظاهرية. لذلك، لا تتداخل مساحة العنوان الظاهرية لعملية واحدة مع مساحة العنوان لعملية أخرى. ولأن البرامج في وضع المستخدم لها مساحات عناوين منفصلة، إذا تعطل أحد البرامج، فسوف يتعطل هذا البرنامج بمفرده ولا يؤثر على البرامج الأخرى أو نظام التشغيل بأكمله بتأثيراته.
هناك طريقة أخرى لوصف تطبيقات وضع المستخدم وهي استخدام المصطلح "الأقل امتيازًا". يقيد Windows تطبيقات وضع المستخدم من الوصول مباشرة إلى موارد النظام الهامة، مما يجعلها أقل امتيازًا. على سبيل المثال، إذا أراد أحد التطبيقات الوصول إلى الأجهزة، فيجب أن يمر عبر نواة نظام التشغيل باستخدام استدعاءات النظام (أسلوب برمجة يطلب فيه برنامج كمبيوتر خدمة من نواة نظام التشغيل). يتم تنفيذه.
ببساطة، يتم تشغيل البرامج التطبيقية مثل ألعاب الفيديو في وضع المستخدم. لديهم امتيازات قليلة، لذلك ليس لديهم وصول غير مقيد إلى موارد النظام. يحتوي كل تطبيق في وضع المستخدم على مساحة عنوان خاصة به. لا يمكن لتطبيق ما تغيير مساحة العنوان لتطبيق آخر. ولذلك، إذا تعطل أحد التطبيقات، فلن يؤثر ذلك على البرامج الأخرى التي تعمل على الكمبيوتر.
ما هو وضع Kernel في نظام التشغيل Windows؟
![الفرق بين وضع Kernel ووضع المستخدم في Windows الفرق بين وضع Kernel ووضع المستخدم في Windows]()
وضع Kernel في نظام التشغيل Windows
قبل مناقشة وضع Kernel، يجب علينا أولاً أن نعرف ما هو "kernel" وكيف يعمل مع Windows.
النواة هي عقل نظام التشغيل. وهو مكون البرنامج الأساسي الذي تعتمد عليه جميع المكونات الأخرى داخل نظام التشغيل. تقوم النواة بإدارة أجهزة الكمبيوتر، وجداول العمل على الكمبيوتر، وتتعامل مع التفاعلات بين الأجهزة والبرامج التطبيقية.
باختصار، النواة هي الجزء الأكثر امتيازًا من التعليمات البرمجية التي تعمل على النظام، لأنها التعليمات البرمجية التي تتفاعل مباشرة مع الأجهزة. أي برنامج آخر يريد استخدام موارد الأجهزة يجب أن يطلب الوصول من خلال النواة.
عندما يتم تشغيل برنامج تطبيقي في وضع المستخدم ويريد الوصول إلى جهاز مثل كاميرا الويب، فيجب عليه طلب النواة باستخدام استدعاءات النظام. ولخدمة هذه الطلبات، تقوم وحدة المعالجة المركزية، في وقت تنفيذ البرنامج، بالتبديل من وضع المستخدم إلى وضع Kernel.
بمجرد اكتمال التنفيذ، تعود وحدة المعالجة المركزية إلى وضع المستخدم وتبدأ في تنفيذ العملية المجدولة التالية. وهذا ما يسمى "تبديل السياق" .
ما الفرق بين وضع المستخدم ووضع Kernel؟
يتمثل الاختلاف الرئيسي بين وضع المستخدم ووضع Kernel في مستوى الامتيازات التي يوفرها كل وضع. في وضع المستخدم، تتمتع التطبيقات بامتيازات أقل. ليس لديهم إمكانية الوصول المباشر إلى موارد الأجهزة ولا يمكنهم الكتابة إلى مساحة العناوين الخاصة بالتطبيقات الأخرى.
يتمتع الكود الذي يتم تشغيله في وضع Kernel بامتيازات مرتفعة. فهو لا يتمتع بإمكانية الوصول المباشر إلى أجهزة الكمبيوتر فحسب، بل إن جميع البرامج التي تعمل في وضع Kernel، بما في ذلك نظام التشغيل، تشترك أيضًا في مساحة العنوان. لذا، إذا تعطل أحد البرامج في وضع Kernel، فقد يؤدي ذلك إلى تعطل نظام التشغيل بأكمله. ولضمان عدم حدوث مثل هذه المشكلات، يسمح Windows فقط بتشغيل بعض العمليات في وضع Kernel.
يتبنى Windows أسلوبًا متعدد الطبقات لفصل برامج المستخدم عن موارد النظام
يستخدم Windows نموذج الطبقات لتحديد مستويات الامتياز للعمليات. التطبيقات الموجودة في الطبقة الخارجية هي التطبيقات التي تتمتع بامتيازات الإيجار. جوهر هذه الطبقات هو النواة. لذلك، تتمتع النواة بوصول غير محدود إلى موارد نظام التشغيل.
يحمي النهج متعدد الطبقات أيضًا وظائف نظام التشغيل المهمة. عندما تتعطل البرامج الموجودة في الطبقة العليا بشكل عشوائي، فإن ذلك لا يؤثر على نظام التشغيل. ومن ناحية أخرى، عندما يتعطل النواة، يتأثر نظام التشغيل بأكمله.