ماهي النواة Kernel ؟؟
النواة عبارة عن قطع كود، أو مكتبات أو برامج ، مسؤول عن إدارة نظام
التشغيل والذي بدوره يعمل كواجه بين العتاد والمستخدم ، ويقوم بإدارة
الموارد . والذي تقوم بها النواة في أنظمة تشغيل مثل ويندوز ولينكس كالآتي
:
1 - إدارة المعالجات البرمجية Process والمسالك Thread، المعالج
البرمجيProcess عبارة عن مساحة ذاكرة حجزت لتشغيل برنامج ما وتشمل
المسالكThread والتي هي عبارة عن خط سير شيفرة ما داخل الذاكرة . والنواة
تقوم بتوفير هذه الأمور للبرنامج عندما يتم تشغيله ويدير العملية لحين
انتهاء البرنامج، وإنهاء الProcess والThread .
2 - إدارة الذاكرة، تقوم النواة بإدارة الذاكرة الافتراضية Virtual
Memory، عبر خورارزمية معينة ، عن طريق تحويل الذاكرة الفيزيائية إلى
الذاكرة الافتراضية، وعندما يحتاج تطبيق أو برنامج ما، لذاكرة لعملها،
يقوم بطلبها من النواة، والنواة بدورها تقوم بحجز المطلوب من الذاكرة
وتعطي تحكم ذلك الجزء المحجوز للبرنامج السائل، وعندما ينتهي التطبيق من
عمله يطلب من النواة كذلك تحرير ذلك الجزء عبر استدعاء الدوال اللازمة.
3 - إدارة نظام الملفات، النواة تقوم كذلك بإدارة الوصول للملفات قراءة
وكتابةً، عبر نظام الملفات معينة ( طريقة معينة للتواصل مع العتاد ، في
الغالب الأقراص).
4 - إدارة الوصول إلى العتاد والأجهزة الأخرى مثل لوحة المفاتيح، والمؤشر،
وبطاقات العرض، والصوت وبطاقات الشبكة ، وتقريبا ما يمكن إضافته إلى
الجهاز من أجهزة . وذلك عبر مشغلات Driver كتبت للتخاطب بين تلك الأجهزة
والنواة ( تبعا لذلك بين نظام التشغيل ككل ).
5 - إدارة المقاطعات Interrupts بأنواعها المختلفة hardware interrupt,
software interrupt, bios interrupt الخ. وعندما يستلم نظام التشغيل
مقاطعة من وحدة المعالجة المركزية CPU، النواة ستقرر كيفية معالجتها ثم
تمرره للمسؤل عن ذلك.
خلاصة الكلام، أن النواة تقوم بإدارة الموارد والأجهزة كما أسلفنا ( كثيرا
ما نعرف نظام التشغيل بنفس التعريف، ولكن الذي يقوم بكل ذلك تحديدا جزء
النواة من نظام التغشيل ).
توفر العناد، بالأخص المعالج CPU عدة مستويات بالنسبة للوصول إلى العتاد
والأجهزة الملحقة، وإلى أجزاء الذاكرة والقيام باعمال منخفضة المستوى ( في
مستوى العتاد ) ، وهذه المستويات تسمى الحلقة Ring وهي أربع مستويات، بدءا
من حلقة صفر حتى حلقة ثلاث، ولكن نواة لينكس وويندوز كذلك تستخدم حلقتي
صفر وثالثة، وبذلك توفر حماية لنفسها من الأضرار والعبث بها .
وأنظمة التشغيل هذه، تقوم بتحميل النواة في حلقة رقم صفر، وتخصص جزءا من الذاكرة لذلك،
0xC000000 -0xF00000 ولا تستطيع الوصول إلى تلك المنطقة من الذاكرة إلا
النواة نفسه او الكود الذي يعمل في مستوى حلقة صفر، ويكون لديها صلاحية
مطلقة وأعلى.
أما البرامج الأخرى والتطبيقات العادية فتعمل في مستوى حلقة ثالثة ولديها
جزء ذاكرة مخصصة 0x000000-0x8000000، ويكون لديها صلاحية مقيدة.
وأي تطبيق أو كود يتم تنفيذها في حلقة صفر يمكنك اعتبارها جزء من النواة او مستوى النواة .
وفي أغلب الأحوال تطبيقات حلقة ثالثة لا تستطيع مباشرة الوصول إلى موارد
حلقة صفر او خدماتها إلا عبر وسيط تسمى gate ( يمكن القفز من حلقة ثالثة
إلى حلقة صفر عبر تلك البوابة، تحت صلاحية خاصة ).
بما أن النواة هو المسؤول عن إدارة وتوفير الموارد للتطبيقات العادية،
والتطبيقات العادية تعمل في مستوى حلقة ثالثة، فكل تطبيق تقريبا في
النهاية يستفيد من مستوى حلقة صفر ، كل ما في الأمر أنها لا تستطيع مباشرة
ولكن عبر وسائط أو بوابة أو سبل أخرى توفرها النواة كما ذكرنا..
النواة عبارة عن قطع كود، أو مكتبات أو برامج ، مسؤول عن إدارة نظام
التشغيل والذي بدوره يعمل كواجه بين العتاد والمستخدم ، ويقوم بإدارة
الموارد . والذي تقوم بها النواة في أنظمة تشغيل مثل ويندوز ولينكس كالآتي
:
1 - إدارة المعالجات البرمجية Process والمسالك Thread، المعالج
البرمجيProcess عبارة عن مساحة ذاكرة حجزت لتشغيل برنامج ما وتشمل
المسالكThread والتي هي عبارة عن خط سير شيفرة ما داخل الذاكرة . والنواة
تقوم بتوفير هذه الأمور للبرنامج عندما يتم تشغيله ويدير العملية لحين
انتهاء البرنامج، وإنهاء الProcess والThread .
2 - إدارة الذاكرة، تقوم النواة بإدارة الذاكرة الافتراضية Virtual
Memory، عبر خورارزمية معينة ، عن طريق تحويل الذاكرة الفيزيائية إلى
الذاكرة الافتراضية، وعندما يحتاج تطبيق أو برنامج ما، لذاكرة لعملها،
يقوم بطلبها من النواة، والنواة بدورها تقوم بحجز المطلوب من الذاكرة
وتعطي تحكم ذلك الجزء المحجوز للبرنامج السائل، وعندما ينتهي التطبيق من
عمله يطلب من النواة كذلك تحرير ذلك الجزء عبر استدعاء الدوال اللازمة.
3 - إدارة نظام الملفات، النواة تقوم كذلك بإدارة الوصول للملفات قراءة
وكتابةً، عبر نظام الملفات معينة ( طريقة معينة للتواصل مع العتاد ، في
الغالب الأقراص).
4 - إدارة الوصول إلى العتاد والأجهزة الأخرى مثل لوحة المفاتيح، والمؤشر،
وبطاقات العرض، والصوت وبطاقات الشبكة ، وتقريبا ما يمكن إضافته إلى
الجهاز من أجهزة . وذلك عبر مشغلات Driver كتبت للتخاطب بين تلك الأجهزة
والنواة ( تبعا لذلك بين نظام التشغيل ككل ).
5 - إدارة المقاطعات Interrupts بأنواعها المختلفة hardware interrupt,
software interrupt, bios interrupt الخ. وعندما يستلم نظام التشغيل
مقاطعة من وحدة المعالجة المركزية CPU، النواة ستقرر كيفية معالجتها ثم
تمرره للمسؤل عن ذلك.
خلاصة الكلام، أن النواة تقوم بإدارة الموارد والأجهزة كما أسلفنا ( كثيرا
ما نعرف نظام التشغيل بنفس التعريف، ولكن الذي يقوم بكل ذلك تحديدا جزء
النواة من نظام التغشيل ).
توفر العناد، بالأخص المعالج CPU عدة مستويات بالنسبة للوصول إلى العتاد
والأجهزة الملحقة، وإلى أجزاء الذاكرة والقيام باعمال منخفضة المستوى ( في
مستوى العتاد ) ، وهذه المستويات تسمى الحلقة Ring وهي أربع مستويات، بدءا
من حلقة صفر حتى حلقة ثلاث، ولكن نواة لينكس وويندوز كذلك تستخدم حلقتي
صفر وثالثة، وبذلك توفر حماية لنفسها من الأضرار والعبث بها .
وأنظمة التشغيل هذه، تقوم بتحميل النواة في حلقة رقم صفر، وتخصص جزءا من الذاكرة لذلك،
0xC000000 -0xF00000 ولا تستطيع الوصول إلى تلك المنطقة من الذاكرة إلا
النواة نفسه او الكود الذي يعمل في مستوى حلقة صفر، ويكون لديها صلاحية
مطلقة وأعلى.
أما البرامج الأخرى والتطبيقات العادية فتعمل في مستوى حلقة ثالثة ولديها
جزء ذاكرة مخصصة 0x000000-0x8000000، ويكون لديها صلاحية مقيدة.
وأي تطبيق أو كود يتم تنفيذها في حلقة صفر يمكنك اعتبارها جزء من النواة او مستوى النواة .
وفي أغلب الأحوال تطبيقات حلقة ثالثة لا تستطيع مباشرة الوصول إلى موارد
حلقة صفر او خدماتها إلا عبر وسيط تسمى gate ( يمكن القفز من حلقة ثالثة
إلى حلقة صفر عبر تلك البوابة، تحت صلاحية خاصة ).
بما أن النواة هو المسؤول عن إدارة وتوفير الموارد للتطبيقات العادية،
والتطبيقات العادية تعمل في مستوى حلقة ثالثة، فكل تطبيق تقريبا في
النهاية يستفيد من مستوى حلقة صفر ، كل ما في الأمر أنها لا تستطيع مباشرة
ولكن عبر وسائط أو بوابة أو سبل أخرى توفرها النواة كما ذكرنا..