نظام التشغيل: توظيف "مدير كبير" لحاسوبك
مقدمة
مع معالج مثالي وذاكرة لا نهائية، هل يمكن استخدام الحاسوب مباشرة؟ في الفصل السابق، رأينا كيف تتحد الترانزستورات لتشكل معالجاً قوياً. ولكن حتى لو كان لديك أفضل الأجهزة، إذا تركتها تعمل مباشرة، فإن عرض حرف واحد على الشاشة سيتطلب مئات الأسطر من تعليمات الآلة المعقدة. ليس الأمر مزعجاً فحسب، بل خطير للغاية -- بأي خطأ بسيط، يمكن أن يكتب الكود الخاص بك فوق بيانات الآخرين.
لحل هذه الكوابيس، وُلد نظام التشغيل (Operating System, OS). إنه أعظم طبقة "برمجية" بينك وبين الأجهزة الباردة. في هذا الفصل، سنتجاوز الكود المعقد ونستخدم تشبيهات بسيطة لنرى كيف يروض هذا "المدير الخارق" الأجهزة الفوضوية.
ماذا ستتعلم في هذه المقالة؟
بعد إكمال هذا الفصل، ستكتسب:
- قدرة على تشخيص المشكلات: عند مواجهة "برنامج متجمد" أو "ذاكرة غير كافية"، يمكنك التحليل من مستوى نظام التشغيل
- فهم أعمق للمصطلحات: فهم المشكلات التي يحلها "تعدد العمليات" و"الذاكرة الافتراضية" و"أذونات الملفات"
- تفكير نظامي: فهم أن البرامج لا تعمل بمعزل، بل تتفاعل بشكل وثيق مع نظام التشغيل والعمليات الأخرى وموارد الأجهزة
- أساس للتعلم المستقبلي: وضع الأساس للبرمجة المتزامنة، وضبط الأنظمة، وتقنية الحاويات
| الفصل | المحتوى | المفهوم الأساسي |
|---|---|---|
| الفصل 1 | إدارة العمليات | تعدد إرسال زمني للمعالج، الجولة الزمنية |
| الفصل 2 | إدارة الذاكرة | الذاكرة الافتراضية، آلية الترقيم |
| الفصل 3 | نظام الملفات | تنظيم الملفات، هيكل الدلائل |
0. نظرة عامة: ماذا سيحدث بدون نظام تشغيل؟
تخيل أنك فتحت "مصنع حوسبة" واعد جداً (حاسوبك)، به عامل نخبة لا يعرف التعب (المعالج)، ومستودع ضخم (الذاكرة)، وحاويات لا حصر لها (القرص الصلب).
إذا لم توظف مديراً (نظام تشغيل):
- أزمة احتكار المعالج: المعالج يستطيع القيام بشيء واحد فقط في كل مرة. إذا كان شخص ما يستخدمه للاستماع للموسيقى، فجميع من يريدون تصفح الويب؟ اعتذار، يجب الانتظار.
- حادث دهس الذاكرة: وي تشات واللعبة يستخدمان المستودع (الذاكرة). بدون حراس أمن، قد تضع اللعبة بيانات المعدات في صندوق وي تشات، مما يسبب انهياراً فورياً.
- متاهة القرص الصلب: أجهزة القرص هي مجرد أقراص محفورة بـ 0 و 1. للعثور على صورة الأمس، يجب أن تتذكر بالضبط "الوجه 1، المسار 56، القطاع 8" -- لا أحد يستطيع تذكر هذه الإحداثيات اللاإنسانية.
لحل هذه الكوابيس الثلاثة، يستخدم نظام التشغيل أدواته الثلاث الرئيسية: إدارة العمليات، إدارة الذاكرة، ونظام الملفات.
1. إدارة العمليات: تعدد الإرسال الزمني للمعالج
عادة تستخدم الحاسوب مع وي تشات مفتوح، وتستمع للموسيقى، وتكتب في نفس الوقت. ولكن إذا كان حاسوبك يحتوي على نواة معالج واحدة فقط، كيف يقوم بهذه الأشياء الثلاث في وقت واحد؟
الجواب: إنه لا يقوم بها في وقت واحد. بل نظام التشغيل يقوم بـ "إدارة الوقت" بجنون.
1.1 ما هي "العملية"؟
كل برنامج قيد التشغيل يسمى عملية. يمكنك فهمها كـ "فريق مشروع"، مع كودها الخاص (قائمة المهام)، وبياناتها الخاصة في الذاكرة (أموال المشروع)، تنتظر دورها لمقابلة المعالج.
1.2 الجولة الزمنية
لمنع البرمجيات الخبيثة من احتكار المعالج، يقسم نظام التشغيل وقت المعالج إلى أجزاء صغيرة جداً (~10 مللي ثانية)، ويوزعها بالتناوب على كل عملية. وبما أن التبديل سريع جداً، تشعر أن كل شيء يعمل "في وقت واحد".
2. إدارة الذاكرة: مساحة العناوين الافتراضية
بعد حل مشكلة تبادل المعالج، التالي هو مساحة الذاكرة. بدون إدارة، جميع البرامج ستكتب مباشرة في الذاكرة الفعلية، مما سيؤدي حتماً إلى دهس متبادل للبيانات.
2.1 الذاكرة الافتراضية (Virtual Memory)
نظام التشغيل يكذب على كل عملية: "مرحباً، لديك كل ذاكرة الحاسوب لنفسك، استخدمها كما تشاء!"
في نظر العملية، ذاكرتها دائماً متصلة ونظيفة. إنها تكتب البيانات فيها بارتياح.
2.2 جدول الصفحات (Page Table)
في الواقع؟ نظام التشغيل偷偷 يضع البيانات في الذاكرة الفعلية الحقيقية في الفجوات المتناثرة. هذا له فائدتان عبقريتان:
- أمان مطلق: وي تشات لا يمكنها رؤية مساحتها الخاصة فقط، ولا يمكنها التلاعب ببيانات الآخرين
- استغلال الشظايا: بغض النظر عن مدى فوضوية الذاكرة الفعلية، المساحة الافتراضية للعملية لا تزال مرتبة
3. نظام الملفات: تنظيم التخزين الدائم
إذا اشتريت قرصاً صلباً جديداً، فهو في الحقيقة منطقة تخزين قاحلة. إذا كنت تريد حفظ صورة، القرص سيسألك فقط: "أخبرني أي بايت تريد الحفظ فيه؟"
3.1 ماذا يفعل نظام الملفات؟
- تقطيع القرص: يقسم القرص إلى عدد لا يحصى من الكتل بحجم ثابت (عادة 4 كيلوبايت)
- إنشاء سجل حسابات: يسجل أي الكتل ممتلئة وأيها فارغة
- ترجمة المسارات: يحول
D:/صور/حيواني.jpgإلى "الكتل 3، 7، 11"
لهذا السبب إعادة تسمية ملف تتم فوراً (تغيير الاسم فقط في السجل)، بينما نسخ ملف يستغرق وقتاً طويلاً (يجب قراءة وكتابة كتل البيانات الفعلية).
4. تنسيق الثلاثة: عملية إطلاق برنامج كاملة
لقد تعرفنا على الوحدات الثلاث الرئيسية لنظام التشغيل. لنرى كيف تنسق عندما تنقر مرتين لفتح برنامج:
سواء نقرت على أيقونة سطح المكتب أو كتبت print("Hello World") في الكود، كل هذا يعتمد على هذا العمل المخفي المعقد. يمكننا تصفح العالم الرقمي بسهولة بفضل نظام التشغيل الذي يتحمل الأعباء في الأسفل.
قراءة إضافية
إذا وجدت "تقنيات الإدارة والخداع" في نظام التشغيل مثيرة للاهتمام، يمكنك استكشاف هذه المواضيع المتقدمة:
- العمليات والمسارات: إذا كانت العملية فريق مشروع، فإن "المسار" هو الموظف الذي يعمل في الفريق
- التزامن والأقفال: عندما تتنافس عمليتان على نفس المورد، كيفية منع الجمود
- استدعاءات النظام: "نافذة الخدمات" التي يوفرها نظام التشغيل للتطبيقات