في علوم الكمبيوتر، Kernel هو برنامج كمبيوتر يمثل جوهر أو قلب نظام التشغيل. قبل مناقشة النواة بالتفصيل، دعونا أولاً نفهم أساسياتها، أي نظام التشغيل في الكمبيوتر.
تاريخ استخدام جافا
نظام التشغيل
نظام التشغيل أو نظام التشغيل هو برنامج نظام يعمل كواجهة بين مكونات الأجهزة والمستخدم النهائي. أنها تمكن البرامج الأخرى من التشغيل. يجب أن يكون لكل نظام كمبيوتر، سواء كان سطح المكتب أو الكمبيوتر المحمول أو الجهاز اللوحي أو الهاتف الذكي، نظام تشغيل لتوفير الوظائف الأساسية للجهاز. بعض أنظمة التشغيل المستخدمة على نطاق واسع هي شبابيك , لينكس و MacOS و Android و iOS وما إلى ذلك.
ما هو النواة في نظام التشغيل؟
- كما نوقش أعلاه، النواة هي الجزء الأساسي من نظام التشغيل (نظام التشغيل)؛ ومن ثم فهو يتمتع بالسيطرة الكاملة على كل شيء في النظام. تتم إدارة كل عملية من عمليات الأجهزة والبرامج بواسطة النواة.
- إنه بمثابة جسر بين التطبيقات ومعالجة البيانات التي تتم على مستوى الأجهزة. إنه المكون المركزي لنظام التشغيل.
- إنه جزء نظام التشغيل الموجود دائمًا في ذاكرة الكمبيوتر ويتيح الاتصال بين مكونات البرامج والأجهزة.
- إنه برنامج الكمبيوتر الذي تم تحميله لأول مرة عند بدء تشغيل النظام (بعد أداة تحميل التشغيل). بمجرد تحميله، فإنه يدير الشركات الناشئة المتبقية. كما أنه يدير طلبات الذاكرة والأجهزة الطرفية والإدخال/الإخراج من البرامج. علاوة على ذلك، فإنه يترجم جميع طلبات الإدخال/الإخراج إلى تعليمات معالجة البيانات لوحدة المعالجة المركزية. ويدير مهام أخرى أيضا من هذا القبيل مثل إدارة الذاكرة وإدارة المهام وإدارة الأقراص .
- يتم الاحتفاظ بالنواة ويتم تحميلها عادةً في مساحة ذاكرة منفصلة، تُعرف باسم مساحة النواة المحمية. إنه محمي من الوصول إلى برامج التطبيقات أو الأجزاء الأقل أهمية من نظام التشغيل.
- تستخدم برامج التطبيقات الأخرى مثل المتصفح ومعالج النصوص ومشغل الصوت والفيديو مساحة ذاكرة منفصلة تُعرف باسم مساحة المستخدم.
- وبسبب هاتين المساحتين المنفصلتين، لا تتداخل بيانات المستخدم وبيانات النواة مع بعضها البعض ولا تسبب أي عدم استقرار أو بطء.
وظائف النواة
تكون نواة نظام التشغيل مسؤولة عن أداء وظائف مختلفة وتتحكم في النظام. بعض المسؤوليات الرئيسية لـ Kernel مذكورة أدناه:
لتنفيذ إجراءات مختلفة، تتطلب العمليات الوصول إلى الأجهزة الطرفية مثل الماوس ولوحة المفاتيح وما إلى ذلك، المتصلة بالكمبيوتر. النواة مسؤولة عن التحكم في هذه الأجهزة باستخدام برامج تشغيل الأجهزة. هنا، أ سائق الجهاز هو برنامج كمبيوتر يساعد نظام التشغيل أو يمكّنه من الاتصال بأي جهاز.
تحتفظ النواة بقائمة بجميع الأجهزة المتاحة، وقد تكون هذه القائمة معروفة بالفعل، أو تم تكوينها بواسطة المستخدم، أو تم اكتشافها بواسطة نظام التشغيل في وقت التشغيل.
تتمتع النواة بالتحكم الكامل في الوصول إلى ذاكرة الكمبيوتر. تتطلب كل عملية بعض الذاكرة لتعمل، وتمكن النواة العمليات من الوصول بأمان إلى الذاكرة. لتخصيص الذاكرة، تُعرف الخطوة الأولى باسم العنونة الافتراضية, والذي يتم عن طريق الترحيل أو التجزئة. العنونة الافتراضية هي عملية توفير مساحات العناوين الافتراضية للعمليات. وهذا يمنع التطبيق من الاصطدام ببعضه البعض.
إحدى الوظائف المهمة لـ Kernel هي مشاركة الموارد بين العمليات المختلفة. يجب أن تشارك الموارد بطريقة تمكن كل عملية من الوصول إلى المورد بشكل موحد.
توفر النواة أيضًا طريقة للمزامنة و الاتصالات بين العمليات (IPC). وهي مسؤولة عن تبديل السياق بين العمليات.
النواة مسؤولة عن الوصول إلى موارد الكمبيوتر مثل ذاكرة الوصول العشوائي (RAM) وأجهزة الإدخال / الإخراج. ذاكرة الوصول العشوائي (RAM) أو ذاكرة الوصول العشوائي يستخدم لاحتواء كل من البيانات والتعليمات. يحتاج كل برنامج إلى الوصول إلى الذاكرة للتنفيذ ويريد في الغالب ذاكرة أكبر من المتوفرة. في مثل هذه الحالة، يلعب Kernel دوره ويقرر الذاكرة التي ستستخدمها كل عملية وما يجب فعله في حالة عدم توفر الذاكرة المطلوبة.
تقوم النواة أيضًا بتخصيص الطلب من التطبيقات لاستخدام أجهزة الإدخال/الإخراج مثل لوحات المفاتيح والميكروفونات والطابعات وما إلى ذلك.
أنواع النواة
هناك خمسة أنواع رئيسية من النواة، وهي مذكورة أدناه:
1. حبات متجانسة
في نواة متجانسة، يتم استخدام نفس مساحة الذاكرة لتنفيذ خدمات المستخدم وخدمات kernel.
وهذا يعني أنه في هذا النوع من النواة لا توجد ذاكرة مختلفة مستخدمة لخدمات المستخدم وخدمات النواة.
نظرًا لأنه يستخدم نفس مساحة الذاكرة، فإن حجم النواة يزداد، مما يزيد من الحجم الإجمالي لنظام التشغيل.
يعد تنفيذ العمليات أيضًا أسرع من أنواع kernel الأخرى لأنه لا يستخدم مساحة مستخدم ومساحة kernel منفصلة.
أمثلة من حبات متجانسة هي يونكس، لينكس، Open VMS، XTS-400، إلخ.
مزايا:
- يكون تنفيذ العمليات أيضًا أسرع نظرًا لعدم وجود مساحة مستخدم منفصلة ومساحة kernel وعدد أقل من البرامج المعنية.
- نظرًا لأنه عبارة عن برنامج واحد، فإن مصادره وأشكاله المجمعة أصغر.
سلبيات:
- إذا قامت أي خدمة بإنشاء أي خطأ، فقد يؤدي ذلك إلى تعطل النظام بأكمله.
- هذه النوى ليست محمولة، مما يعني أنه يجب إعادة كتابتها لكل بنية جديدة.
- كبيرة الحجم وبالتالي يصعب التحكم فيها.
- لإضافة خدمة جديدة، يجب تعديل نظام التشغيل بالكامل.
2. النواة الدقيقة
ويشار إلى النواة الدقيقة أيضًا باسم عضو الكنيست ، وهي تختلف عن النواة التقليدية أو النواة المتجانسة. في هذا، يتم تنفيذ خدمات المستخدم وخدمات kernel في مساحتين مختلفتين للعناوين: مساحة المستخدم ومساحة kernel . نظرًا لأنه يستخدم مساحات مختلفة لكلتا الخدمتين، يتم تقليل حجم النواة الدقيقة، مما يقلل أيضًا من حجم نظام التشغيل.
تعتبر النوى الدقيقة أسهل في الإدارة والصيانة مقارنة بالنوى المتجانسة. ومع ذلك، إذا كان هناك عدد أكبر من استدعاءات النظام وتبديل السياق، فقد يؤدي ذلك إلى تقليل أداء النظام عن طريق جعله بطيئًا.
تستخدم هذه النوى نظام تمرير الرسائل لمعالجة الطلب من خادم إلى خادم آخر.
يتم توفير بعض الخدمات الأساسية فقط بواسطة النوى الدقيقة، مثل تحديد مساحات عناوين الذاكرة، وIPC (الاتصال بين العمليات)، وإدارة العمليات. لا يتم توفير خدمات أخرى مثل الشبكات بواسطة Kernel ويتم التعامل معها بواسطة برنامج مساحة المستخدم المعروف باسم الخوادم .
أحد العيوب الرئيسية للنوى المتجانسة هو أن الخطأ في النواة يمكن أن يؤدي إلى تعطل النظام بأكمله، ويمكن إزالته في النواة الدقيقة. كما هو الحال في النواة الدقيقة، إذا تعطلت عملية النواة، فلا يزال من الممكن منع تعطل النظام بأكمله عن طريق إعادة تشغيل الخدمات التي تسبب الأخطاء.
أمثلة من Microkernel هي L4، أميغا أو إس، مينيكس، K42 ، إلخ.
مزايا
- يمكن إدارة Microkernels بسهولة.
- يمكن إضافة خدمة جديدة بسهولة دون تعديل نظام التشغيل بأكمله.
- في النواة الدقيقة، إذا تعطلت عملية النواة، فلا يزال من الممكن منع النظام بأكمله من التعطل.
سلبيات
- هناك متطلبات أكثر للبرامج للتواصل، مما يقلل من أداء النظام.
- إدارة العملية معقدة للغاية.
- من الصعب إصلاح أخطاء المراسلة.
3. النواة الهجينة
تُعرف النوى الهجينة أيضًا باسم حبات وحدات ، وهو مزيج من Monolithic و Microkernels. إنه يستفيد من سرعة الحبات المتجانسة ونمطية الحبيبات الدقيقة.
يمكن فهم النواة الهجينة على أنها النسخة الموسعة من النواة الدقيقة مع خصائص إضافية للنواة المتجانسة. تُستخدم هذه النوى على نطاق واسع في أنظمة التشغيل التجارية، مثل الإصدارات المختلفة من نظام التشغيل MS Windows.
وهو يشبه إلى حد كبير النواة الدقيقة، ولكنه يتضمن أيضًا بعض التعليمات البرمجية الإضافية في مساحة النواة لتحسين أداء النظام.
تسمح النواة الهجينة بتشغيل بعض الخدمات مثل مكدس الشبكة في مساحة النواة لتقليل الأداء مقارنة بالنوية التقليدية، لكنه لا يزال يسمح بتشغيل كود النواة (مثل برامج تشغيل الأجهزة) كخوادم في مساحة المستخدم.
من أمثلة Hybrid Kernel Windows NT وNetware وBeOS وما إلى ذلك.
مزايا:
- ليست هناك حاجة لإعادة التشغيل للاختبار.
- يمكن دمج تكنولوجيا الطرف الثالث بسرعة.
سلبيات:
- هناك احتمال لوجود المزيد من الأخطاء مع المزيد من الواجهات التي يمكن المرور عبرها.
- يمكن أن يكون الحفاظ على الوحدات النمطية لبعض المسؤولين مهمة مربكة، خاصة عند التعامل مع مشكلات مثل اختلافات الرموز.
4. النواة النانوية
حسب الاسم المقترح، في Nanokernel، يكون الكود الكامل للنواة صغيرًا جدًا، مما يعني أن الكود الذي يتم تنفيذه في الوضع المميز للجهاز صغير جدًا . هنا يُعرّف مصطلح nano النواة التي تدعم دقة ساعة النانو ثانية.
أمثلة على النواة النانوية هي إيروس وما إلى ذلك.
مزايا
أوري مقابل عنوان ورل
- يوفر تجريدًا للأجهزة حتى مع حجم صغير جدًا.
سلبيات
- Nanokernel يفتقر إلى خدمات النظام.
5. إكسوكيرنيل
لا يزال Exokernel قيد التطوير وهو النهج التجريبي لتصميم نظام التشغيل.
ويختلف هذا النوع من النواة عن النوى الأخرى في هذا؛ يتم فصل حماية الموارد عن الإدارة، مما يسمح لنا بإجراء التخصيص الخاص بالتطبيق.
مزايا:
- يمكن للنظام القائم على exokernel أن يتضمن أنظمة تشغيل مكتبات متعددة. تقوم كل مكتبة بتصدير واجهة برمجة تطبيقات مختلفة، مثل واحدة يمكن استخدامها لتطوير واجهة المستخدم عالية المستوى، ويمكن استخدام الأخرى للتحكم في الوقت الفعلي .
سلبيات:
- تصميم exokernel معقد للغاية.
ما هو نواة الذعر؟
كما ناقشنا سابقًا، تتحكم النواة في نظام الكمبيوتر بأكمله؛ ومن ثم، إذا تعطل، فيمكنه إسقاط النظام بأكمله. في نظامي التشغيل MacOS وLinux، يُعرف هذا الحدث غير المرغوب فيه باسم ' نواة الذعر. للتعافي من حالة ذعر kernel، نحتاج إلى إعادة تشغيل النظام.
عادةً ما يكون سبب ذعر kernel هذا هو مشكلات الاتصال بالأجهزة. ومن ثم، في حالة حدوث ذعر متكرر للنواة، حاول فصل الأجهزة الأقل طلبًا أو غير الضرورية وتحقق مما إذا تم حل المشكلة أم لا.