ما هو وضع المستخدم مقابل وضع Kernel في Windows

ربما سمعت عن التطبيقات التي تعمل في وضع "kernel" أو "المستخدم". يعود الأمر برمته إلى كيفية عمل أنظمة التشغيل عندما يؤدون وظائفهم. بمجرد أن تفهم ذلك ، من السهل فهم الفرق بين وضع المستخدم ووضع النواة.

فهم ما يفعله نظام التشغيل(Does)

يتكون الكمبيوتر من الأجهزة والمكونات الإلكترونية والبرامج ورمز الكمبيوتر الذي يتم تنفيذه بواسطة هذا الجهاز. ولكن ما قد يكون أقل وضوحًا هو كيفية عملهم معًا.

العنصر الأكثر أهمية في الكمبيوتر هو البت أو "الرقم الثنائي. "(” Everything) يتم تمثيل كل ما يفعله الكمبيوتر في صورة آحاد وأصفار. تمثل مكونات الكمبيوتر المختلفة(Different) البتات بطرق مختلفة. في وحدة المعالجة المركزية ( CPU ) ، تمثل الترانزستورات المجهرية الآحاد والأصفار إما عن طريق التشغيل أو الإيقاف. يتم ترتيب تلك الترانزستورات في هياكل منطقية تسمى بوابات منطقية.

في ذاكرة الكمبيوتر الإلكترونية ، يتم تمثيل وحدات البت بواسطة خلايا ذاكرة إما ذات شحنة أعلى أو أقل من عتبة معينة. على القرص الصلب الميكانيكي ، يتم تمثيل البتات كتقلبات مغناطيسية يتم قياسها على طبق دوار. على الأقراص الضوئية ، تؤدي الحفر والأراضي التي تعكس ضوء الليزر أو لا تعكسه نفس المهمة. 

بغض النظر عن كيفية تحقيق التمثيل المادي للشفرة الثنائية ، يمكنك في النهاية تقليل جميع مكونات الكمبيوتر للمستهلك إلى رمز الجهاز الخام هذا.

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

يترجم هذا البرنامج كل شيء تريده التطبيقات (وبالتالي المستخدم) إلى تعليمات رمز الجهاز التي تفهمها وحدة المعالجة المركزية(CPU) والمكونات الأخرى. تعتبر النواة أهم جزء من البرامج في هذه العملية.

ما هي النواة؟

النواة ، كما يوحي الاسم ، هي جوهر نظام التشغيل. النواة هي برنامج موجود في ذاكرة الوصول العشوائي ( RAM ) ويوجه كل ما يفعله الكمبيوتر. عندما يتم كتابة شيء ما في الذاكرة ، فإن النواة هي التي توجه التنفيذ.

تعرف النواة كيفية التفاعل مع الأجهزة مثل وحدات معالجة الرسومات(GPUs) وبطاقات الشبكة ، ولكنها قد لا تعرف كيفية تشغيلها بكامل إمكاناتها ، بالاعتماد على المعايير العامة في صناعة الكمبيوتر.

يتم تشغيل برامج تشغيل الأجهزة هنا. تخبر برامج التشغيل نظام التشغيل الخاص بك بكيفية العمل مع مكونات محددة ، ولهذا السبب تحتاج إلى برامج تشغيل مختلفة لوحدات معالجة الرسومات Nvidia و AMD(AMD GPUs) ، على سبيل المثال.

نظرًا لتزويده بالمحركات الصحيحة ، فإن النواة هي السلطة النهائية داخل الكمبيوتر ، بما في ذلك القيام بأشياء يمكن أن تدمر البيانات بشكل كارثي.

دور واجهات (Role)برمجة(Application Programming Interfaces) التطبيقات ( APIs )

في أيام MS-DOS ، كان على مطوري البرامج كتابة برامجهم خصيصًا لأجهزة المستخدم. كان المثال الأكثر شهرة على أنظمة MS-DOS هو برامج تشغيل بطاقة الصوت.

يجب أن تدعم لعبة فيديو معينة البطاقات الأكثر شيوعًا ( Sound Blaster و Ad-lib و Gravis Ultrasound وما إلى ذلك) ونأمل أن تتم تغطية معظم اللاعبين. اليوم ، تعمل الأشياء بشكل مختلف تمامًا ، بفضل واجهات برمجة التطبيقات(APIs) .

يعد Microsoft DirectX(Microsoft DirectX) مثالاً رائعًا. إذا كنت تريد شرحًا تفصيليًا ، فراجع ما المقصود بـ DirectX ولماذا هو مهم؟ (What Is DirectX and Why Is It Important?)ومع ذلك ، فإن أهم شيء يجب معرفته هو أن واجهة برمجة التطبيقات(API) توفر طريقة قياسية لمطوري البرامج لطلب موارد الأجهزة من مكونات مثل وحدة معالجة الرسومات(GPU) . بالإضافة إلى ذلك ، يجب على صانعي الأجهزة التأكد فقط من أن منتجاتهم تتوافق مع DirectX لضمان التوافق الكامل مع أي برنامج متوافق بالمثل.

تقدم واجهات برمجة التطبيقات(APIs) طبقة من الترجمة بين تطبيقات البرامج والنواة منخفضة المستوى مع برامج تشغيل الأجهزة الخاصة بها. نعم ، هذا يأتي مع عقوبة أداء بسيطة. ومع ذلك ، على أجهزة الكمبيوتر الحديثة ، هذا لا يكاد يذكر ، ويأتي مع مجموعة متنوعة من المزايا ، حيث وصلنا أخيرًا إلى وضع المستخدم ووضع النواة.

وضع المستخدم مقابل وضع Kernel

تعمل أنظمة التشغيل الحديثة على تشغيل مئات أو آلاف "العمليات" في وقت واحد ، مما يمنحها ديناميكيًا وقت وحدة المعالجة المركزية(CPU) حسب الحاجة بناءً على أولوياتها ومتطلبات طاقة الحساب.

عند تشغيل أحد التطبيقات ، فإنه يولد عمليات ، ويمكن لوحدة المعالجة المركزية(CPU) تنفيذها إما في وضع المستخدم أو وضع النواة.

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

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

عند بدء تشغيل عملية أو رفعها إلى وضع kernel ، فإنها تتمتع بوصول كامل إلى موارد النظام ، حتى تلك المخصصة لنظام التشغيل. لذلك ، من الناحية النظرية ، يمكن أن تستبدل البيانات المهمة التي يحتاجها نظام التشغيل ليعمل بشكل صحيح.

الفخاخ والاستثناءات

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

مخاطر(Dangers) وضع النواة(Kernel Mode) : شاشة(Blue Screen) الموت الزرقاء(Death) _

إذا سبق لك تجربة Blue Screen of Death (من لم يفعل ذلك؟) والتي أجبرت جهاز الكمبيوتر الخاص بك على إيقاف التشغيل أو إعادة التشغيل ، فهناك فرصة جيدة لإلقاء اللوم على عملية وضع kernel.

عندما تقوم عملية في وضع kernel بشيء ليس من المفترض أن تفعله ، لا يمكن لنظام التشغيل التعافي منه ، ويتوقف الكمبيوتر بأكمله. عندما تتعطل عملية وضع المستخدم ، يتعطل التطبيق فقط ، ويمكن أن يستمر باقي البرنامج ونظام التشغيل دون أي مشاكل.

هذا هو أحد المجالات التي تلعب فيها واجهات برمجة التطبيقات(APIs) دورًا أساسيًا لأنها واجهة برمجة التطبيقات(API) التي تطلب امتيازات وضع kernel. تقوم تطبيقات وضع المستخدم بشكل أساسي بتفويض الطلبات التي تتطلب امتيازات وضع kernel إلى API .

هذا هو السبب في أن kernel-mode يُمنح عادةً فقط لعمليات النظام منخفضة المستوى التي تحتاج إلى الوصول إلى أجهزة الكمبيوتر مباشرةً. عادة ، يتم تمديد هذا الامتياز إلى عملية لأنها تحتاج إلى أداء أكثر مما يمكن أن يوفره وضع المستخدم. تعمل بعض تعليمات وحدة المعالجة المركزية(CPU) فقط في وضع kernel ، لذلك إذا احتاجت العملية إلى استخدام هذه الوظائف ، فيجب رفعها.

إذا كنت تواجه مشكلة مع Blue Screen of Death ، فتأكد من قراءة دليل Blue Screen of Death لاستكشاف الأخطاء وإصلاحها لنظام التشغيل Windows 10(Blue Screen of Death Troubleshooting Guide for Windows 10) !



About the author

أنا عالم كمبيوتر لدي أكثر من 10 سنوات من الخبرة في العمل في مجال المتصفحات و Microsoft Office و onedrive. أنا متخصص في تطوير الويب ، وأبحاث تجربة المستخدم ، وتطوير التطبيقات على نطاق واسع. يتم استخدام مهاراتي من قبل بعض الشركات الرائدة في العالم ، بما في ذلك Google و Facebook و Apple.



Related posts