نظام التشغيل والبرنامج
درس 3 من 4
3نظام التشغيل والبرنامج
عندك الآن معالج وذاكرة وقرص. لكن من يقرّر أي برنامج يأخذ المعالج الآن؟ ومن يمنع لعبة من قراءة كلمات مرورك؟ هذا هو نظام التشغيل.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
نظام التشغيل مثل مدير فندق. النزلاء هم البرامج، والغرف هي الذاكرة، والمصعد هو المعالج. المدير يعطي كل نزيل غرفته ولا يسمح له بدخول غرفة غيره، وينظّم دور المصعد حتى لا يحتكره أحد. البرنامج لا يكلّم العتاد مباشرة، بل يطلب من المدير.
النواة kernel تجدول العمليات على المعالج، وتعطي كل عملية مساحة ذاكرة افتراضية معزولة، وتقدّم استدعاءات النظام system calls لفتح الملفات والشبكة. العملية برنامج قيد التشغيل له معرّف PID. وLinux نواة مفتوحة المصدر تقوم عليها أغلب الخوادم وأجهزة Android.
قبل أن تبدأ
🧮درس المعالج والذاكرة
تعرف أن المعالج ينفّذ تعليمة في كل مرة وأن الذاكرة تنسى.
📱استخدام هاتف أو حاسوب
فتحت تطبيقات كثيرة معًا وشفت واحدًا منها يتجمّد. هذا كله هنا.
الفكرة الجوهرية
1لماذا نحتاج وسيطًا
لو سُمح لكل برنامج أن يلمس القرص والذاكرة مباشرة، لأفسد برنامج سيّئ ملفات غيره. فوُضع وسيط اسمه النواة، وهي قلب نظام التشغيل.
تابع الرسم: البرنامج لا يقرأ القرص. يطلب من النواة أن تقرأ، والنواة تتحقّق من حقه ثم تفعل. هذا الطلب اسمه نداء نظام.
الطريق المباشر ممنوع بالعتاد نفسه، لا بالاتفاق. ولهذا الفيروس القديم كان يعطّل الجهاز كله، أما اليوم فيُحاصر في برنامج واحد.
2العملية: برنامج وهو يعمل
الملف على القرص برنامج. وعندما يُنسخ إلى الذاكرة ويبدأ المعالج تنفيذه يصير عملية. برنامج واحد قد يعمل كثلاث عمليات، كثلاث نوافذ متصفّح.
تابع الرسم: معالج واحد وثلاث عمليات. تأخذ كل عملية شريحة من الزمن بضع أجزاء من الألف من الثانية، ثم التالية. السرعة تجعل التناوب يبدو تزامنًا.
النواة تحفظ لكل عملية أين وصلت، وتعطيها ذاكرة خاصة لا تراها العمليات الأخرى. عندما «يتجمّد» تطبيق، فعمليته لا تردّ، والنواة قادرة على إنهائها دون أن يسقط الباقي.
3ما هو Linux ولماذا هو في كل مكان
Linux نواة. كُتبت عام 1991 ونُشرت مفتوحة المصدر، فصار بإمكان أي شركة أن تبني عليها نظامها الخاص. هاتف أندرويد نواته Linux، وأغلب خوادم الإنترنت كذلك.
ما تراه على الشاشة ليس النواة بل برامج فوقها: واجهة، ومحرر، ومتصفّح. وفي الخوادم لا شاشة أصلًا، فتتعامل مع النواة بأوامر نصية. هذا سبب تعلّمك الشل في مسار «أدوات المهندس».
القاعدة التي تخرج بها: كل برنامج يعيش فوق النواة، والنواة تعيش فوق العتاد. وكل ما ستتعلّمه بعد هذا الدرس يقع في إحدى هاتين الطبقتين.
كيف يعمل، خطوة بخطوة: ماذا يحدث عندما تضغط على أيقونة برنامج
تطلب الواجهة من النواة إنشاء عملية جديدة.
تنسخ النواة البرنامج من القرص إلى الذاكرة وتعطيه مساحة خاصة به.
تضع العملية في طابور المعالج، فتأخذ شرائح زمنية مع بقية العمليات.
عندما تحتاج العملية ملفًا أو شبكة أو شاشة، تطلب من النواة عبر نداء نظام، والنواة تتحقّق وتنفّذ.
جرّب بلا كود
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| نظام التشغيل هو الواجهة التي أراها. | الواجهة برنامج فوق النواة. النواة هي التي توزّع المعالج وتحمي الذاكرة، وتعمل حتى بلا شاشة. |
| Linux نظام للخبراء فقط. | Linux نواة داخل هاتفك وتلفازك وراوترك. ما يبدو صعبًا هو الأوامر النصية، وهي ما ستتعلّمه خطوة خطوة. |
| البرامج تعمل كلها في الوقت نفسه فعلًا. | تتناوب على المعالج بسرعة. المعالجات متعددة الأنوية تنفّذ بضع عمليات معًا فعلًا، لكن الباقي ينتظر دوره. |
جرّب بنفسك
تجمّد متصفّحك لكن الموسيقى ما زالت تعمل. ماذا يفسّر ذلك؟
كل برنامج عملية مستقلة بذاكرتها ودورها على المعالج. تعطّل عملية لا يوقف توزيع النواة للزمن على البقية، ولهذا تستطيع إنهاء المتصفّح وحده.
بطاقات مراجعة سريعة
تحقق من فهمك
لماذا تستطيع إنهاء تطبيق متجمّد دون إعادة تشغيل الجهاز؟
لأنه عملية معزولة بذاكرتها، والنواة تستطيع إنهاءها وتحرير مواردها دون المساس بالبقية.
ما الذي يمنع لعبة من قراءة ملف كلمات المرور؟
كل قراءة تمرّ عبر نداء نظام، والنواة تتحقّق من صلاحية العملية قبل أن تنفّذه.
إن كان لجهازك أربع أنوية، فكم عملية تعمل فعلًا في اللحظة نفسها؟
أربع على الأكثر؛ وبقية العشرات من العمليات تتناوب عليها بشرائح زمنية.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.