محمد قتيبة شيخانيأبني. أستكشف. أشارك

17من 28

أساسيات الحاسوب

ما هو نظام التشغيل؟ المدير الذي يقود جهازك

في كلّ مقالٍ من هذه السلسلة حضر لاعبٌ خفيٌّ دون أن يُفرَد بالحديث. هو الذي يحمّل برامج التشغيل بعد الإقلاع، والذي ينظّم الملفّات في القرص، والذي يقرّر أيّ برنامجٍ يأخذ المعالج الآن. ذُكِر عابرًا مرّاتٍ ثمّ مضى الحديث. لكنّه المايسترو الذي يقود أوركسترا العتاد كلّها، ومن دونه تبقى القطع صمّاء لا تعمل معًا. آن أن تجلس أمامه وجهًا لوجه: ما نظام التشغيل، وكيف يدير كلّ هذا؟

في هذا المقال تفهم المشكلة التي وُجِد نظام التشغيل ليحلّها، وتتعرّف على نواته وما حولها، وعلى مهامّه الكبرى: إدارة البرامج العاملة وتوزيع المعالج عليها، وإدارة الذاكرة وحماية كلّ برنامجٍ من غيره، وتنظيم الملفّات والأجهزة. وتفهم كيف يطلب البرنامج خدمةً من النظام، ولماذا لا يخاطب العتاد مباشرةً، والفرق بين واجهة النظام التي تراها وقلبه الذي لا تراه.

المشكلة: فوضى بلا حَكَم

تخيّل جهازك دون نظام تشغيل، وفيه عدّة برامج تريد العمل معًا: متصفّحٌ، ومشغّل موسيقى، ومحرّر نصوص. كلّها تريد المعالج ليحسب لها، والذاكرة لتخزّن بياناتها، والقرص لتقرأ وتكتب، والشاشة لتعرض. لكنّ المعالج واحد، والذاكرة محدودة، والشاشة واحدة. من يقرّر أيّ برنامجٍ يأخذ المعالج الآن؟ من يمنع برنامجًا من الكتابة فوق ذاكرة غيره؟ من ينظّم من يكتب على القرص أوّلًا؟

دون حَكَمٍ ينظّم هذا التزاحم، تعمّ الفوضى: برنامجٌ يحتكر المعالج فتتجمّد البقيّة، وآخر يطمس ذاكرة جاره فيتحطّم كلاهما، وثالثٌ يفسد ما يكتبه رابعٌ على القرص. لن يعمل شيءٌ بثبات. المشكلة الجوهريّة أنّ الموارد قليلةٌ والطالبين كثيرون، ولا أحد فيهم يثق بالآخر أو يعرف نيّته. تحتاج هذه الفوضى إلى مديرٍ عادلٍ حازمٍ يقف فوق الجميع.

نظام التشغيل: المدير

هذا المدير هو نظام التشغيل (Operating System). دوره في جملةٍ: يقف بين البرامج والعتاد، فيوزّع الموارد المحدودة على الطالبين الكثيرين بعدلٍ ونظام، ويمنعهم من إيذاء بعضهم. البرامج لا تلمس العتاد مباشرةً، بل تطلب من النظام، وهو يقرّر ويوزّع وينفّذ. كأنّه عمدة مدينةٍ يدير مرافقها المشتركة: لا يملك الطرق، لكنّه ينظّم من يمرّ ومتى، فتسير الحركة بدل أن تتصادم.[3]

ولهذا الدور وجهان. وجهٌ نحو الأسفل تجاه العتاد: يعرف النظام كيف يخاطب كلّ قطعةٍ عبر برامج التشغيل، ويدير المعالج والذاكرة والأقراص. ووجهٌ نحو الأعلى تجاه البرامج: يقدّم لها خدماتٍ جاهزةً وواجهةً موحّدةً تطلب منها ما تريد. النظام هو الطبقة الوسطى التي تحوّل عتادًا خامًّا معقّدًا إلى خدماتٍ بسيطةٍ يسهل على البرامج استعمالها، فلا يحتاج كلّ برنامجٍ أن يعيد اختراع كلّ شيء.

النواة: القلب الذي لا يُرى

قلب نظام التشغيل جزءٌ اسمه النواة (Kernel). هي أوّل ما يُحمَّل بعد الإقلاع، وتبقى في الذاكرة طوال عمل الجهاز، وتملك السلطة المطلقة على العتاد كلّه. النواة تدير الموارد الأساسيّة مباشرةً: المعالج، والذاكرة، والأجهزة عبر تعريفاتها. كلّ ما هو حسّاسٌ وخطيرٌ يجري فيها، معزولًا عن البرامج العاديّة التي لا تصل إليه.[1]

وهنا يتّضح ما مرّ بك في مقال برامج التشغيل: يقسم النظام عمله إلى منطقتين. فضاء النواة، حيث السلطة المطلقة، تعمل فيه النواة وتعريفاتها. وفضاء المستخدم، محدود الصلاحيّات، تعمل فيه برامجك العاديّة معزولةً عن القلب. هذا الفصل هو أساس استقرار النظام وأمنه: برنامجٌ عاديٌّ لا يقدر أن يمسّ العتاد أو ذاكرة غيره مباشرةً، فمهما أخطأ أو خبُث، يبقى محبوسًا في حدوده.

المهمّة الأولى: إدارة البرامج العاملة

حين تفتح برنامجًا، يحوّله النظام إلى «عمليّة» (Process): نسخةٌ حيّةٌ منه تعمل في الذاكرة، لها مواردها وحالتها. النظام يخلق العمليّة، ويحمّل شيفرة البرنامج من القرص إلى الذاكرة، ويعطيها ما تحتاج لتبدأ، ويتتبّعها طوال حياتها، ثمّ ينظّف مواردها حين تُغلَق. لكلّ عمليّةٍ رقمها الخاصّ الذي يميّزها، وقد يعمل من البرنامج الواحد عدّة عمليّاتٍ في آنٍ معًا.

والنظام يراقب كلّ العمليّات العاملة، ويعرف حال كلٍّ منها: أتعمل الآن، أم تنتظر دورها، أم تنتظر بياناتٍ من القرص؟ هو يتحكّم في دورة حياتها كاملةً، من الولادة إلى الإغلاق. حين يتجمّد برنامجٌ وتضطرّ إلى إنهائه قسرًا، فأنت تطلب من النظام أن يقتل تلك العمليّة ويحرّر مواردها. المدير هنا مسؤولٌ عن كلّ ساكنٍ في المدينة: يعرف عددهم وأحوالهم، ويقدر على إخراج من يعطّل النظام.

وكثيرٌ من العمليّات التي يديرها النظام ليست برامجك التي فتحتها، بل خدماتٌ تعمل في الخلفيّة بصمت، تسمّى في ويندوز «الخدمات» وفي عالم يونكس «العفاريت». هي برامجٌ يشغّلها النظام تلقائيًّا لتؤدّي مهامّ دائمة: مراقبة الطابعة، وإدارة الشبكة، وفحص التحديثات، وتسجيل الأحداث. لا واجهة لها ولا نافذة، لكنّها تعمل ما دام الجهاز يعمل، وهي جزءٌ كبيرٌ ممّا تراه في قائمة العمليّات.

وأوّل عمليّةٍ يخلقها النظام بعد أن تأخذ النواة زمامها هي عمليّةٌ أمٌّ تشغّل بقيّة الخدمات وتنظّم بدء النظام. منها تتفرّع كلّ العمليّات الأخرى، فتنشأ شجرةٌ من العمليّات كلٌّ أنجبتها سابقتها. لهذا حين يبطؤ إقلاع جهازك، يكون السبب غالبًا كثرة الخدمات التي تطلب العمل عند البدء، وهو ما يمكن ضبطه بتعطيل ما لا تحتاجه منها، كما مرّ بك في مقال الإقلاع.

وهم التزامن: كيف تعمل البرامج معًا

هنا حقيقةٌ تدهش كثيرين: نواة المعالج الواحدة لا تفعل إلّا شيئًا واحدًا في اللحظة الواحدة. فكيف تعمل عشرات البرامج «معًا» على جهازك؟ السرّ أنّها لا تعمل معًا حقًّا، بل يتناوب المعالج بينها بسرعةٍ خارقة. يعطي هذا البرنامج جزءًا صغيرًا من الثانية، ثمّ يخطفه ويعطيه للتالي، ثمّ للتالي، ويدور على الجميع عشرات المرّات في الثانية الواحدة.

هذا التناوب السريع اسمه الجدولة (Scheduling)، والجزء الذي يقرّره اسمه المجدول. لأنّ التبديل أسرع من أن تلحظه عينك، يبدو لك أنّ كلّ البرامج تعمل في وقتٍ واحد، بينما هي في الحقيقة تتناوب لمحاتٍ متتالية. مثل عارض أفلامٍ يعرض صورًا ثابتةً متتابعةً بسرعةٍ فتراها حركةً متّصلة، يخلق المعالج وهم التزامن من تعاقبٍ سريعٍ لمهامّ منفصلة.[2]

والمجدول يوازن بين البرامج بذكاء. يعطي البرنامج الذي تتفاعل معه الآن أولويّةً ليبقى سريع الاستجابة، ويعطي المهامّ الخلفيّة وقتًا أقلّ دون أن يحرمها. وحين يكون في المعالج عدّة أنوية، كما شرحتُ لك في مقال المعالج، يقدر أن يشغّل عدّة برامج فعلًا في اللحظة نفسها، نواةً لكلٍّ، فيقلّ التناوب ويزيد الإنجاز الحقيقيّ المتوازي. لهذا يهمّ عدد الأنوية في الأجهزة التي تشغّل كثيرًا معًا.

المقاطعات: كيف يتنبّه النظام

وسؤالٌ يفرض نفسه: إن كان المعالج منشغلًا بتنفيذ برنامج، فكيف يعرف أنّك ضغطت مفتاحًا أو وصلت رسالة؟ الجواب آليّةٌ أنيقةٌ اسمها المقاطعة (Interrupt). حين يقع حدثٌ يحتاج انتباهًا، ترسل القطعة المعنيّة، كلوحة المفاتيح، إشارةً تقاطع المعالج فتوقفه عمّا يفعل لحظةً. عندها يحفظ النظام مكانه، ويعالج الحدث الطارئ، ثمّ يعود إلى ما كان يفعله كأنّ شيئًا لم يكن.

بهذه الآليّة لا يحتاج النظام أن يسأل كلّ قطعةٍ باستمرار «هل حدث شيء؟»، وهو سؤالٌ يهدر المعالج. بل ينشغل بعمله حتّى تناديه القطعة عند الحاجة. حتّى تناوب البرامج الذي شرحتُه لك يعتمد على مقاطعةٍ دوريّةٍ من ساعةٍ داخليّةٍ تنبّه النظام كلّ جزءٍ من الثانية ليقرّر أيبدّل البرنامج العامل أم يبقيه. المقاطعات هي كيف يبقى النظام يقظًا لكلّ ما يجري دون أن يشلّه الانتظار.

المهمّة الثانية: إدارة الذاكرة

الذاكرة العشوائيّة موردٌ ثمينٌ محدود، وكلّ برنامجٍ يريد نصيبه منها. لو تُرِكت البرامج تتقاسمها بلا حَكَم، لكتب كلٌّ فوق ذاكرة الآخر وعمّ الخراب. لهذا يدير النظام الذاكرة بحكمةٍ بالغة: يخصّص لكلّ عمليّةٍ ما تحتاج، ويستعيد ما تتركه حين تُغلَق، ويمنع أيّ عمليّةٍ من الوصول إلى ذاكرة غيرها. النظام هنا موزّع الأرض في المدينة: لكلٍّ قطعته، ولا يجوز التعدّي على قطعة الجار.

وأذكى حيلةٍ في هذا الباب هي الذاكرة الافتراضيّة (Virtual Memory). النظام يعطي كلّ برنامجٍ وهمًا جميلًا: أنّه يملك مساحة ذاكرةٍ خاصّةً به وحده، متّصلةً تبدأ من الصفر، وكأنّه وحده في الجهاز. لكنّ هذه العناوين التي يراها البرنامج ليست عناوين الذاكرة الحقيقيّة، بل النظام يترجمها خفيةً إلى مواضع فعليّةٍ متفرّقةٍ في الذاكرة. كلّ برنامجٍ يعيش في عالمه الخاصّ، لا يرى غيره ولا يعرف أنّه يتقاسم الذاكرة أصلًا.

ولهذا الوهم فوائد عظيمة. أوّلها العزل: بما أنّ كلّ برنامجٍ يرى عناوينه وحدها، يستحيل عليه لمس ذاكرة غيره، فلا يفسد أحدٌ بيانات أحد. وثانيها المرونة: يقدر النظام أن ينقل بيانات برنامجٍ في الذاكرة الحقيقيّة دون أن يشعر البرنامج، أو ينقل ما لا يُستعمَل الآن إلى القرص ليوفّر مكانًا، فيبدو للبرامج أنّ الذاكرة أوسع ممّا هي فعلًا. هذا ما يسمّى ملفّ المبادلة، وهو يبطّئ لكنّه يمنع التوقّف عند امتلاء الذاكرة.

الحماية: لماذا لا يسقط كلّ شيءٍ معًا

هل لاحظت أنّ برنامجًا قد يتحطّم فيُغلَق وحده، بينما يبقى كلّ شيءٍ آخر يعمل؟ هذا ثمرة العزل الذي شرحتُه لك. كلّ عمليّةٍ في صندوقها الخاصّ من الذاكرة، فإن أخطأت خطأً قاتلًا، أنهاها النظام وحدها دون أن يمسّ جيرانها. في الأنظمة القديمة التي لم تعزل البرامج جيّدًا، كان خطأ برنامجٍ واحدٍ كفيلًا بإسقاط الجهاز كلّه، وهو ما عانى منه مستخدمو الحواسيب المبكّرة كثيرًا.

وهذه الحماية تسري على الأمن أيضًا. برنامجٌ خبيثٌ يعمل في فضاء المستخدم لا يقدر أن يعبث بالنظام أو ببرامج غيره مباشرةً، لأنّه محبوسٌ في حدوده. ليصل إلى صلاحيّةٍ أعلى، عليه أن يطلبها صراحةً، فيتدخّل النظام ويسألك، أو يستغلّ ثغرةً في النظام نفسه. لهذا يبقى الفصل بين فضاء النواة وفضاء المستخدم خطّ الدفاع الأوّل، والثغرات التي تكسره أخطر أنواع الثغرات على الإطلاق.

المهمّتان الثالثة والرابعة: الملفّات والأجهزة

مهمّتان كبيرتان أخريان للنظام مرّتا بك في مقالاتٍ سابقة. الأولى إدارة الملفّات: نظام الملفّات الذي شرحتُه لك ليس إلّا جزءًا من نظام التشغيل، يشغّله ويقدّمه للبرامج. حين يحفظ برنامجٌ ملفًّا، لا يكتب على القرص بنفسه، بل يطلب من النظام أن يحفظ له، والنظام يترجم الطلب إلى عناقيد وجداول ويكتب. لهذا تتعامل كلّ البرامج مع الملفّات بالطريقة نفسها، لأنّ النظام يوحّدها لها.

والثانية إدارة الأجهزة عبر برامج التشغيل التي أُفرِد لها مقالٌ. النظام يحمّل تعريف كلّ قطعةٍ ويديره، ويقدّم للبرامج واجهةً موحّدةً تخاطب كلّ صنفٍ دون أن تعرف تفاصيله. فيطبع برنامجٌ على أيّ طابعةٍ عبر النظام، ويخرج الصوت من أيّ سمّاعةٍ عبره. النظام هو من يجمع خيوط العتاد كلّها في يده، ويقدّمها للبرامج خدماتٍ نظيفةً جاهزة، فلا تغرق البرامج في تفاصيل العتاد.

المستخدمون: مدينةٌ لأكثر من ساكن

يدير النظام أيضًا المستخدمين، لا البرامج وحدها. الجهاز الواحد قد يستعمله عدّة أشخاص بحساباتٍ منفصلة، لكلٍّ ملفّاته وإعداداته وصلاحيّاته. النظام يفصل بينهم فلا يرى أحدهم ملفّات الآخر ولا يعبث بها، كما شرحتُ لك في صلاحيّات نظام الملفّات. وفوقهم جميعًا حسابٌ إداريٌّ بصلاحيّةٍ كاملة، هو وحده من يغيّر إعدادات النظام ويثبّت البرامج التي تمسّه.

ولهذا الفصل قيمةٌ أمنيّةٌ كبرى حتّى لو كنت المستخدم الوحيد. فالأفضل أن تعمل يوميًّا بحسابٍ عاديٍّ محدود الصلاحيّة، لا بالحساب الإداريّ. هكذا لو تسلّل برنامجٌ خبيث، بقي محبوسًا في صلاحيّتك المحدودة، عاجزًا عن تخريب النظام دون أن تأذن أنت صراحةً برفع صلاحيّته. النظام يسألك عند كلّ فعلٍ إداريٍّ خطير، وهذا السؤال المزعج أحيانًا هو حارسٌ يقف بينك وبين خطأٍ أو خبثٍ فادح.

التخزين المؤقّت: حيلة السرعة

من أذكى ما يفعله النظام ليسرّع جهازك: التخزين المؤقّت في الذاكرة. لأنّ القرص أبطأ من الذاكرة بمراحل، كما شرحتُ لك في مقالي الذاكرة والتخزين، يحتفظ النظام في الذاكرة بنسخةٍ ممّا قرأه من القرص حديثًا. فإن طلبته مرّةً أخرى، أعطاك إيّاه من الذاكرة السريعة بدل القرص البطيء. لهذا يفتح ملفٌّ فتحته قبل قليلٍ أسرع بكثيرٍ من فتحه أوّل مرّة.

ولهذا لا تقلق إن رأيت ذاكرتك «ممتلئةً» أغلبها، فالنظام يملؤها عمدًا بهذه النسخ المؤقّتة النافعة، ويحرّرها فورًا حين يحتاجها برنامجٌ فعلًا. ذاكرةٌ فارغةٌ تمامًا ذاكرةٌ مهدورة، والنظام الذكيّ يستثمر كلّ ما لديك لتسريعك. هذا يفسّر لغزًا يحيّر كثيرين حين يرون ذاكرتهم مشغولةً وهم لم يفتحوا إلّا القليل: النظام يعمل لصالحك، لا ضدّك.

نداء النظام: كيف يطلب البرنامج خدمة

إن كانت البرامج معزولةً لا تلمس العتاد، فكيف تطبع أو تحفظ ملفًّا أو تتّصل بالشبكة؟ الجواب عبر نداء النظام (System Call): البرنامج لا يفعل الشيء بنفسه، بل يطلب من النظام أن يفعله له. حين يريد حفظ ملفّ، ينادي النظام: «احفظ لي هذه البيانات في هذا الملفّ». فينتقل التحكّم من فضاء المستخدم إلى فضاء النواة، تنفّذ النواة الطلب بصلاحيّتها، ثمّ تعيد النتيجة والتحكّم إلى البرنامج.

نداء النظام هو البوّابة الوحيدة المشروعة بين البرامج والقلب. كأنّ فضاء المستخدم غرفة انتظارٍ، ونداء النظام شبّاكٌ يقدّم منه البرنامج طلبه للموظّف في الداخل، فينفّذه بصلاحيّته ويعيد له الجواب. لا يعبر البرنامج الشبّاك بنفسه أبدًا. كلّ ما يفعله برنامجٌ ذو أثرٍ على النظام، من فتح ملفٍّ إلى إنشاء عمليّةٍ إلى إرسال بياناتٍ عبر الشبكة، يمرّ عبر هذا الشبّاك المحروس.

وهذا يفسّر لماذا برنامجٌ لا يعمل على نظامٍ مختلف. فهو يخاطب نداءات نظامٍ بعينه بطريقته، فإن نُقِل إلى نظامٍ آخر لم يجد نفس الشبابيك ولا نفس اللغة. لهذا لا يعمل برنامج ويندوز على ماك مباشرةً، ولو كان المعالج نفسه: النداءات مختلفة، والواجهات مختلفة. هذا الاختلاف بين الأنظمة هو ما يستكشفه المقال القادم، حين يقارن بين الأنظمة الثلاثة الكبرى.

الواجهة: الوجه لا القلب

ما تراه على شاشتك، من سطح مكتبٍ وأيقوناتٍ ونوافذ، ليس نظام التشغيل نفسه، بل واجهته. النواة تعمل في العمق بلا وجهٍ ولا صورة، والواجهة الرسوميّة طبقةٌ فوقها تترجم أوامرك بالفأرة إلى طلباتٍ للنظام. لهذا يقدر نظامٌ واحدٌ أن يلبس واجهاتٍ مختلفة، وتقدر أن تغيّر شكل سطح مكتبك تمامًا دون أن يتغيّر قلب النظام تحته. الوجه غير المحرّك.

وقبل الواجهات الرسوميّة، كانت الواجهة نصّيّةً بحتة: سطر أوامرٍ تكتب فيه ما تريد بالكلمات، وتُسمّى الصدفة (Shell). وما زالت موجودةً وقويّةً، يفضّلها المحترفون لأنّها أسرع وأدقّ في كثيرٍ من المهامّ، وتتيح أتمتة ما يتكرّر. الواجهة الرسوميّة أسهل للمبتدئ، وسطر الأوامر أقوى للمتمرّس، وكلاهما مجرّد بابٍ إلى النظام نفسه، لا النظام. تحت كلّ واجهةٍ نواةٌ واحدةٌ تعمل.

لماذا هذه الوساطة كلّها؟

قد تسأل: لماذا لا تخاطب البرامج العتاد مباشرةً وتوفّر كلّ هذه الوساطة؟ لثلاثة أسباب. أوّلها المشاركة العادلة: لو أخذ كلّ برنامجٍ ما يشاء من الموارد، لتصادم الجميع، فلا بدّ من حَكَمٍ يوزّع. وثانيها الحماية: لو لمست البرامج العتاد مباشرةً، لأفسد خطأٌ أو خبثٌ في أحدها كلّ شيء، فالوساطة تعزل وتحمي.

وثالثها البساطة والنقل: لو خاطب كلّ برنامجٍ العتاد مباشرةً، لاحتاج أن يعرف كلّ قطعةٍ في كلّ جهاز، ولما عمل على جهازٍ مختلف. لكنّ النظام يقدّم للبرامج واجهةً موحّدةً تخفي اختلاف العتاد، فيُكتَب البرنامج مرّةً ويعمل على كلّ جهازٍ يشغّل النظام نفسه. هذه الأسباب الثلاثة، العدل والحماية والبساطة، هي لماذا لا يوجد حاسوبٌ جادٌّ بلا نظام تشغيلٍ يدير موارده ويحمي برامجه ويبسّط عتاده.

أنظمةٌ لكلّ حجم

ليست أنظمة التشغيل حكرًا على الحواسيب والهواتف. المبادئ نفسها تدير الخوادم العملاقة في مراكز البيانات، والساعات الذكيّة على معصمك، والسيّارات الحديثة، وأجهزة الشبكات، بل الثلّاجات الذكيّة. كلّها تحتاج من يدير مواردها ويشغّل برامجها، وإن اختلف الحجم والقدرات. نظامٌ صغيرٌ في جهازٍ بسيطٍ يفعل أقلّ، لكنّه يحلّ المشكلة نفسها: موردٌ محدودٌ وطالبون، يحتاجون مديرًا ينظّم بينهم.

وبعض هذه الأنظمة متخصّصٌ لغاياتٍ لا تحتملها أنظمة سطح المكتب. أنظمة الزمن الحقيقيّ مثلًا تضمن أن يُنفَّذ الأمر خلال زمنٍ محدّدٍ بدقّةٍ صارمة، وهو ما تحتاجه أجهزةٌ كمنظّم ضربات القلب أو نظام فرامل السيّارة، حيث التأخّر جزءًا من الثانية كارثة. النظام هنا لا يوازن بين البرامج بعدلٍ فقط، بل يضمن مواعيد صارمةً لا تُخرَق. لكلّ غايةٍ نظامٌ مصمّمٌ لها، والمبدأ الجامع واحد.

جرّبه بنفسك

افتح «مدير المهامّ» في ويندوز، أو «مراقب النشاط» في ماك، وانظر قائمة العمليّات العاملة. سترى عشراتٍ منها، كثيرٌ لم تفتحه أنت، بل يشغّله النظام في الخلفيّة. راقب نصيب كلّ عمليّةٍ من المعالج والذاكرة، وكيف تتغيّر الأرقام لحظةً بلحظة مع تناوب المجدول. هذه نافذةٌ مباشرةٌ على المدير وهو يوزّع الموارد على المدينة المزدحمة تحت شاشتك.

ثمّ جرّب فتح عدّة برامج ثقيلةٍ معًا وراقب ارتفاع استهلاك المعالج والذاكرة. حين تقترب الذاكرة من الامتلاء، لاحظ كيف يبطؤ الجهاز لأنّ النظام يبدأ نقل ما لا يُستعمَل إلى القرص، وهو ملفّ المبادلة الذي شرحتُه لك. أنهِ عمليّةً متجمّدةً وشاهد النظام يحرّر مواردها فورًا. كلّ هذه تجارب حيّةٌ على المهامّ التي شرحتُها لك، تريك المدير يعمل بدل أن تقرأ عنه فقط. وحين تألف قراءة هذه الأرقام، صرت تشخّص بطء جهازك بنفسك: أهو المعالج مشغولًا، أم الذاكرة ممتلئةً، أم القرص مرهقًا؟ فتعالج السبب لا العرض.

من المدير إلى المدن الثلاث

عرفتَ نظام التشغيل مديرًا يقف بين البرامج والعتاد: نواةٌ في القلب تدير المعالج والذاكرة والأجهزة، وتوزّع بعدلٍ عبر الجدولة، وتعزل البرامج بالذاكرة الافتراضيّة، وتخدمها عبر نداء النظام. صار «النظام» عندك كائنًا حيًّا يعمل كلّ لحظة، لا مجرّد شعارٍ يظهر عند التشغيل، وفهمت لماذا لا يقوم حاسوبٌ بلا مديرٍ ينظّم فوضاه، ولماذا تبقى القطع صمّاء حتّى يجمعها هذا المدير في يدٍ واحدة.

لكنّ المبادئ التي شرحتُها لك يشترك فيها كلّ نظامٍ حديث، بينما تختلف الأنظمة في وجهها وفلسفتها وعالمها. لماذا يبدو ويندوز غير ماك غير لينكس، وأيّها لمن؟ ما الذي يميّز كلًّا منها، ولماذا يختار الناس هذا دون ذاك؟ ثمّ ما قصّة أنظمة الهواتف التي في جيبك؟ هذه أسئلة المقالين القادمين، حين تنزل من المبدأ العامّ إلى الأنظمة التي تستعملها فعلًا كلّ يوم.

المصادر

  1. ويكيبيديا، «نظام تشغيل» (تعريف نظام التشغيل ومهامّه: إدارة العمليّات والذاكرة والملفّات والأجهزة، ودور النواة).
  2. فلنتعلم، «كيف تعمل نواة نظام التشغيل؟» (مهامّ النواة: إدارة الذاكرة وإدارة العمليّات وجدولتها لتعدّد المهامّ).
  3. IBM، «What is an operating system?» (النظام وسيطٌ بين المستخدم والعتاد يدير الموارد ويقدّم خدماتٍ موحّدةً للبرامج).

اترك تعليقاً

الحقول المميّزة بـ مطلوبة