ما هي طبقات نظام التشغيل؟ شرح مبسّط لبنية أي جهاز
طبقات نظام التشغيل هي طريقة لتنظيم النظام على شكل مستويات متراكِمة، كل مستوى يعتمد على المستوى الذي تحته ويقدّم خدمات للمستوى الذي فوقه. في الأسفل يوجد العتاد المادي، وفي الأعلى توجد التطبيقات التي تستخدمها يوميًا، وبينهما تقع «النواة» وخدمات النظام. الفكرة الأساسية بسيطة: بدلًا من كتلة برمجية واحدة عملاقة يصعب فهمها وصيانتها، يُقسَّم النظام إلى طبقات واضحة الحدود، فيسهل تطويره وتأمينه وإصلاح أعطاله.
هذا التقسيم ليس مجرد نظرية أكاديمية؛ فهو ما يجعل تطبيقًا على هاتفك قادرًا على حفظ ملف أو الاتصال بالإنترنت دون أن يعرف المبرمج شيئًا عن نوع القرص أو كرت الشبكة الموجود في جهازك.
لماذا نقسّم النظام إلى طبقات؟
- العزل: خطأ في طبقة عليا (تطبيق) لا يُفترض أن يُسقِط النظام كله، لأن الطبقات السفلى محمية منه.
- قابلية الاستبدال: يمكن تغيير قرص التخزين أو كرت الشاشة دون إعادة كتابة التطبيقات، لأن الطبقة التي تتعامل مع العتاد وحدها هي التي تتغير.
- الأمان: كلما نزلنا للأسفل زادت الصلاحيات، لذا تُحصَّن الطبقات الدنيا بقيود صارمة على من يصل إليها.
- سهولة الصيانة: كل طبقة لها مسؤولية محددة، فيصبح تشخيص المشكلة وحصرها أسرع.
الطبقات الأساسية من الأسفل إلى الأعلى
1. طبقة العتاد: المعالج والذاكرة والأقراص وبطاقات الشبكة والشاشة. هذه ليست جزءًا من البرمجيات، لكنها الأساس الذي تُبنى فوقه كل الطبقات.
2. النواة (Kernel): قلب نظام التشغيل والطبقة الأقرب للعتاد. تدير أهم أربع مهام: توزيع وقت المعالج على العمليات (الجدولة)، وإدارة الذاكرة، والتعامل مع الإدخال والإخراج، والتحكم في الأجهزة عبر «مشغّلات» (Drivers). النواة تعمل بأعلى صلاحية في النظام.
3. خدمات النظام والمشغّلات: طبقة وسيطة تترجم الطلبات العامة إلى أوامر يفهمها العتاد المحدد. مشغّل الطابعة مثلًا يعرف كيف يخاطب طرازك بالذات، بينما التطبيق يقول ببساطة «اطبع».
4. واجهة النظام (واجهة البرمجة والصدفة): الطبقة التي تسمح للبرامج بطلب الخدمات عبر واجهات برمجية (APIs) واستدعاءات النظام (System Calls)، وتسمح لك أنت بإصدار الأوامر عبر سطر الأوامر أو الواجهة الرسومية.
5. طبقة التطبيقات: المتصفح، ومحرر النصوص، وتطبيقات المراسلة. هذه أعلى طبقة وأقلها صلاحية، وتتعامل مع كل ما تحتها من خلال الواجهات فقط، لا مباشرةً مع العتاد.
وضع النواة ووضع المستخدم
أهم انقسام عملي في أي نظام حديث هو بين مستويين من الصلاحية، وهو ما يفسّر لماذا لا يستطيع تطبيق عادي أن يُعطب النظام كله:
| العنصر | وضع النواة (Kernel Mode) | وضع المستخدم (User Mode) |
|---|---|---|
| الصلاحية | كاملة على العتاد | محدودة ومعزولة |
| ما يعمل فيه | النواة والمشغّلات | التطبيقات وأغلب الخدمات |
| أثر التعطّل | قد يُسقط النظام كله | يُغلق التطبيق وحده غالبًا |
| الوصول للذاكرة | مباشر | عبر طلبات مُراقَبة |
عندما يحتاج تطبيق في وضع المستخدم شيئًا محميًا، يُرسل «استدعاء نظام» فتتحقق النواة من الطلب قبل تنفيذه. هذا الحاجز هو جوهر استقرار الأنظمة الحديثة وأمانها.
نماذج مختلفة لترتيب الطبقات
ليست كل الأنظمة تلتزم بالطبقات بالطريقة نفسها:
- النواة الأحادية (Monolithic): تضع معظم الخدمات داخل النواة لأداء أسرع، كما في لينكس.
- النواة المصغّرة (Microkernel): تُبقي النواة صغيرة جدًا وتدفع أغلب الخدمات إلى وضع المستخدم لزيادة العزل والأمان.
- النماذج الهجينة: تمزج بين الأسلوبين، وهو ما تعتمده أنظمة مثل ويندوز و macOS عمليًا.
أمثلة من أنظمة تستخدمها
الترتيب نفسه يتكرر في كل مكان: في ويندوز تجد النواة والمشغّلات في الأسفل، وواجهة Win32/API فوقها، ثم برامجك. في لينكس توجد نواة Linux ثم مكتبات النظام ثم الصدفة والتطبيقات. أما أندرويد فيُبنى فوق نواة لينكس، وتعلوها طبقات خدمات ثم إطار العمل ثم التطبيقات. وiOS يقوم على نواة من نوع هجين تعلوها طبقات خدمات وواجهات حتى تصل إلى التطبيق. تتغير الأسماء، لكن منطق التراكم من العتاد صعودًا إلى المستخدم واحد.
خطأ شائع يجب تصحيحه
كثيرون يخلطون بين «طبقات نظام التشغيل» و«طبقات نموذج OSI للشبكات». الاثنان مفهومان منفصلان تمامًا: نموذج OSI يصف كيف تنتقل البيانات عبر الشبكة عبر سبع طبقات، بينما طبقات نظام التشغيل تصف بنية النظام داخل الجهاز نفسه. وجود «الشبكة» كخدمة داخل نظام التشغيل لا يعني أنها الطبقة نفسها في نموذج OSI.
الأسئلة الشائعة
هل عدد طبقات نظام التشغيل ثابت؟ لا. العدد يعتمد على النموذج المُستخدم وطريقة الشرح؛ بعض المراجع تختصرها في ثلاث طبقات (عتاد، نواة، تطبيقات) وبعضها يفصّلها أكثر. المهم هو المبدأ لا الرقم.
ما الفرق بين النواة ونظام التشغيل؟ النواة جزء واحد من نظام التشغيل، وهي الطبقة الأقرب للعتاد. نظام التشغيل الكامل يشمل النواة إضافةً إلى الخدمات والواجهات والأدوات المرافقة.
لماذا لا تصل التطبيقات إلى العتاد مباشرة؟ لأسباب أمان واستقرار. لو سُمح لكل تطبيق بالوصول المباشر لأمكن لأي خطأ أو برنامج خبيث أن يُعطّل الجهاز أو يقرأ بيانات غيره، لذلك تمر كل الطلبات عبر النواة.
هل يختلف الأمر بين الحاسوب والهاتف؟ المبدأ واحد في الحالتين، لكن أنظمة الهواتف تضيف طبقات إضافية لإدارة الطاقة والصلاحيات والأذونات لأن البيئة أكثر تقييدًا وحساسية للخصوصية.