31يوليو

لمحة عامة عن نظام التشغيل

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

لمحة تاريخية عن أنظمة التشغيل

شهدت أنظمة التشغيل تطورا كبيرا منذ ظهورها حتى الآن و سنلقي الضوء في المقاطع التالية على أهم المراحل التي مرت بها أنظمة التشغيل و لما كانت أنظمة التشغيل تاريخيا وثيقة الصلة بالأجهزة التي تعمل عليها فإننا سنطلع على الأجيال المتعاقبة من الحواسب لنرى كيف كانت أنظمة تشغيلها تبدو.
الجيل الأول 1945-1955 الصمامات المفرغة و لوحات التوصيل: بدأت الحواسب بالظهور في أواسط الأربعينات و كانت بدائية جدا و تستخدم الصمامات و كانت تتألف من آلاف الصمامات التي تملأ عدة غرف و لم يكن آنذاك لغات برمجة (حتى لغة التجميع ) و لم يكن هناك أنظمة تشغيل أيضا.
الجيل الثاني 1955-1965 الترانزستور و الأنظمة الدفعية: تغيرت الصورة جذريا مع ظهور الترانزستورات حيث أصبحت الحواسب أصغر حجما بكثير و أكثر موثوقية و أقل أعطالاَ و أصبح هناك تمييز بين المصممين و المنفذين و المشغلين و المبرمجين و عمال الصيانة و بسبب غلاء التجهيزات آنذاك فقد ظهرت فكرة البرمجة الدفعية حيث يتم تجميع مجموعة من الأعمال ثم تحويلها إلى أشرطة مغناطيسية بواسطة حاسب رخيص ثم نقلها إلى الحاسب الرئيسي ليتم معالجتها دفعة واحدة.
الجيل الثالث 1965-1980 الدارات المتكاملة و البرمجة المتعددة:  كانت الشركات في نهاية الستينات تنتج نوعين من أجهزة الحاسب الحواسبSystem/360 وهوة و الحواسب التجارية الصغيرة نسبيا و كان استخدام و برمجة نوعين مختلفين من الأجهزة مهمة صعبة، خاصة أن معظم الشركات كانت تبدأ بحاسب صغير ثم تتوسع إلى حاسب كبير.قدمت IBM حلا لهذه المشكلة من خلال تطوير جيل جديد من الحواسب يسمى System/360 وهو عبارة عن سلسلة من الحواسب المتوافقة مع بعضها من الناحية البرمجية و تتدرج بالحجم من الكبيرة القوية إلى الصغيرة التجارية و بما أن جميع هذه الأجهزة لها نفس مجموعة التعليمات فإن البرامج المكتوبة لأحدها يمكن أن تعمل عليها كلها نظريا كما أنها مصممة لمعالجة العمليات العلمية بالإضافة إلى العمليات التجارية.و بعد سنوات قدمت IBM سلسلة متوافقة مع 360.
كان 360 الجهاز الأول المعروف الذي استخدم الدارات المتكاملة و كان هذا تطورا كبيرا عن الجيل الثاني الذي استخدمت حواسبه الترانزستورات المنفردة و مازالت هذه الأجهزة مستخدمة حتى الآن لكن بنسخ أحدث و فيما يلي بعض مميزات هذا الجيل:

  • البرمجة المتعددة حيث في الجيل السابق كان المعالج يبقى خاملا عند القيام بعملية دخل / خرج حتى ينهي هذه العملية و تم حل هذا الأمر في البرمجة المتعددة.
  • الأرتال أي عملية ترتيل عمليات الطرفيات و وضعها في أرتال و هو ما يدعى ب Spooling.
  • المشاركة الزمنية أي تقسيم الزمن لخدمة مجموعة لا بأس منها من المستخدمين بنفس الوقت و بشكل تفاعلي.

الجيل الرابع 1980- الوقت الحاضر الحواسب الشخصية: بدأ عصر الحواسب الشخصية مع ظهور الدارات ذات التكامل الواسع LSI و أصبحت بعد ذلك الحواسب الشخصية رخيصة و بمقدار أي شخص شراءها. صممت IBM جهازها الشخصي IBM PC في أوائل الثمانينات و طرحته في الأسواق مرفقا مع نظام التشغيل MS DOS ومفسر لغة BASIC من شركة MicroUNIX.لناشئة و قد كان أحد أهم القرارات الحكيمة ل بيل غيتس أنه قرر توزيع نظام تشغيله مع الأجهزة من خلال الاتفاق مع شركات تصنيع العداد مثل IBM و غيرها على عكس ما كانت تفعله منافسته شركة Digital Research التي كانت تسوق نظام التشغيل CP/M مباشرة للمستخدم النهائي.أصبح بعد ذلك نظام MS DOS نظام التشغيل الأشهر و قد أضيفت له الكثير من المميزات في الإصدارات اللاحقة و كانت كلها مستوحاة من نظام UNIX.
حتى هذا الوقت كانت جميع أنظمة التشغيل تعتمد على كتابة الأوامر على لوحة المفاتيح و لكن الأمور تغيرت مع ظهور ما يسمى بواجهة المستخدم الرسومية GUI التي صممت في البداية في شركة Xerox على أجهزة Xerox parc المتطورة و لكن Xerox لم تهتم كثيرا بهذه التقنية التي استوحت منها شركة Apple فكرة نظام Lisa الذي لم ينجح بسبب غلاء سعره و لكنها اتبعته مباشرة بنظام Macintosh الذي تميز بسهولة استخدامه فنجح نجاحا باهرا. تأثرت Microsoft بهذا النظام و بدأت بتطوير نظام وندوز الذي لم يكن نظام تشغيل حقيقي بل كان عبارة عن طبقة رسومية فوق نظام MS DOSو استمر ذلك حتى عام 1995 حيث أطلقت عندئذ نظام وندوز مستقلا أسمته Windows 95 و الذي استخدم نظام DOS في داخله من أجل الإقلاع و برامج التشغيل القديمة و هكذا بدأت سلسلة الإصدارات من وندوز.
نذكر من المنافسين الآخرين في عالم الحواسب الشخصية نظام التشغيل Unix الذي لاقى نجاحا اكبر على أجهزة محطات العمل و الحواسب القوية مثل مخدمات الشبكات و على الرغم من أن UNIX كان نظام أوامر سطري منذ البداية فإن MIT طورت واجهة رسومية خاصة سمتها X Windows من أجل أنظمة UNIX.
سنكتفي بهذا القدر من السرد التاريخي و دعونا نتحدث قليلا عن أنواع و أشكال أنظمة التشغيل.

أنواع أنظمة التشغيل

بعد كل هذا التطور الذي مرت به أنظمة التشغيل، أصبح لدينا مجال واسع من الأنظمة المتنوعة بعضها معروف و البعض الآخر يستخدم في مجالات ضيقة و سنتكلم عن سبعة أنواع.

أنظمة تشغيل الأجهزة الكبيرة Mainframe: تحتل أنظمة التشغيل الكبيرة المرتبة الأولى من حيث الحجم و تتميز عن الحواسب الشخصية بسعة منافذ الدخل و الخرج فمن الطبيعي أن يحتوي جهاز منها حوالي 1000 قرص صلب و تستخدم ه/360.اسب كملقمات ويب متطورة و ملقمات مواقع التجارة الالكترونية المتطورة.تهتم أنظمة تشغيل هذه الأجهزة بالدرجة الأولى بتشغيل عدة مهام في وقت واحد و تحتوي على كمية هائلة من معالجات الدخل و الخرج من الأمثلة على هذه الأنظمة OS/390 المشتق من OS /360.

أنظمة تشغيل المخدمات: تعمل هذه الأنظمة على المخدمات التي تكون إما أجهزة شخصية كبيرة جدا أو محطات عمل أو حتى أجهزة كبيرة و تخدم هذه الأنظمة عدة مستخدمين بوقت واحد على شبكة و يسمح للمستخدمين بمشاركة الموارد العتادية و البرمجية و من الأمثلة على هذه الأنظمة UNIX و Windows 2000 و ظهر مؤخرا على الساحة نظام LINUX.

أنظمة تشغيل المعالجات المتعددة: تعني المعالجات المتعددة وصل عدة معالجات معا لتامين طاقة معالجة كبيرة و تدعى هذه الأنظمة بالأنظمة المتوازية أو المعالجات المتفرعة و تحتاج لأنظمة تشغيل خاصة بها و عادة ما تكون هي أنظمة مخدمات و مع بعض التعديلات.
أنظمة تشغيل الحواسب الشخصية
تنحصر مهمة هذه الأنظمة بتقديم واجهة جيدة لمستخدم واحد و من الأمثلة الشهيرة Windows و Linux و في الواقع يوجد العديد من أنظمة التشغيل الأخرى و لكن ليست مشهورة بسبب الناحية التجارية.

أنظمة تشغيل الزمن الحقيقي: تعتمد هذه الأنظمة على الزمن بشكل رئيسي مثل أنظمة التحكم بالعمليات الصناعية و تحتوي هذه الأنظمة على نقاط حرجة يجب احترامها و نظم الزمن الحقيقي نوعان Hard و Soft و من الأمثلة على هذه الأنظمة vxworks و QNX.

أنظمة التشغيل المضمنة: ننتقل الآن الحواسب المحمولة باليد و الأنظمة المضمنة و تتسم غالبا هذه الأنظمة بنفس مزايا أنظمة الزمن الحقيقي لكن لها قيود بالنسبة للحجم و متطلبات الذاكرة و القوة الحسابية و من الأمثلة عليها Palm Os و Windows CE.

أنظمة تشغيل البطاقات الذكية:تعمل هذه الأنظمة على البطاقات الذكية ة تحوي على معالج و لها قيود قاسية بالنسبة للقوة الحسابية و حجم الذاكرة و بعض هذه البطاقات يعتمد على لغة الجافا و هذا يعني أن الذاكرة ROM تحتوي على مفسر لآلة جافا الظاهرية JVM.
بنية أنظمة التشغيل

الأنظمة الأحادية:يمكن وصف هذا الأسلوب الذي يعتبر الأكثر شيوعا حتى الآن بأنه فوضى كبيرة “Big Mess” و تعتمد هذه البنية على عدم وجود بنية و يكتب نظام التشغيل على شكل مجموعة من الإجراءات يستطيع كل منها استدعاء أي إجراء آخر عندما يحتاج إليه و لإنشاء البرنامج التنفيذي الفعلي لنظام التشغيل عند إتباع هذا الأسلوب يجب أولا ترجمة جميع الإجراءات أو الملفات التي تحتوي هذه الإجراءات أو الملفات التي تحتوي هذه الإجراءات و من ثم ربطها معا ضمن ملف هدف واحد باستخدام رابط النظام و يكون إخفاء المعلومات مفقودا تماما حيث يستطيع كل إجراء رؤية جميع الإجراءات الأخرى يقترح هذا التنظيم بنية بسيطة لنظام التشغيل:

  • برنامج رئيسي ينفذ إجراء الخدمة المطلوبة.
  • مجموعة من إجراءات الخدمة التي تنفذ إستدعاءات النظام.
  • مجموعة من الإجراءات المساعدة التي تساعد إجراءات الخدمة.

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

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

أنماط عمل معالجات INTEL:

معالجات 8086: يعمل المعالج في النمط الحقيقي و يسمح بعنونة ذاكرة بحجم 16 خانة, و يعمل في عنونة الذاكرة على أساس تقنية التقطيع. و تحتوي مسجلات المعالج التي هي بحجم 16 خانة أيضا على عناوين المقاطع الذاكرية المباشرة و الإزاحات ضمن هذه المقاطع أي يقوم بالوصول إلى الذاكرة مباشرة. و هذا ما يحققه نظام العمل في النمط الحقيقي إلا أن نمط العمل هذا له بعض السلبيات و لا يؤمن لنا إمكانية الحماية للقطع الذاكرية كما أنه لا يدعم تقنيات تعدد المهام.

معالجات 80386: تعمل هذه المعالجات أيضا في النمط الحقيقي و بنفس طريقة عمل المعالج 8086 و لكن بشكل أسرع منه، وكما أنها تعمل في نمط جديد لم يكن موجود في معالجات 8086 وأول ما تم إيجاده في المعالج 80286 و تم تحسينه نمط العمل هذا في الإصدار 80386 لكي يعمل على عنونة ذاكرة بحجم عنونة 32 خط عنونة. و يتم العنونة في نمط العنونة هذا على أساس جداول تخطط بنية الذاكرة،و سنقتصر في نظامنا على المعالجات على 80386 فقط لأنها هي المعتمدة في نظام التشغيل المصمم أو لنقل بشكل أدق أن بنية هذه المعالجات هي البنية القياسية المعتمدة.

المسجلات في 80386

كما ذكرنا سنركز في دراستنا هذه على المعالج 80386 و ذلك لأن هذا النوع من المعالجات يعتبر معيارا للمعالجات التي تعمل في النمط المحمي و كل ما أتى بعدها من معالجات من شركة Intel جاء متوافقا و مبنيا على أساس هذه المعالجات و لدينل نوعان من المسجلات في المعالج 80386:
مسجلات يمكن للمبرمج الوصول إليها و التعامل معها قراءة أو كتابة:

  • أربع مسجلات أغراض عامة
  • مسجل أعلام
  • ست مسجلات مقطعية
  • مسجلي فهرسة
  • مسجل تكديس
  • مسجل قاعدي و مسجل التعليمة
  • مسجلات الجداول
  • GDTR مسجل جدول الموصفات العامة.
  • LDTR مسجل جدول الموصفات المحلية.
  • IDTR مسجل جدول الموصفات المقاطعات.
  • TR مسجل تخزين المهمة.
  • CR0 – CR3 مسجلات التحكم,
  • DR0 – DR7 مسجلات نمط التنقيح.

الشكل التالي يبين معظم ما تم ذكره من مسجلات في الأعلى هنالك بعض الأنواع من المسجلات خاصة في النمط المحمي و لا فائدة لها إلا بهذا النمط و سنأتي على ذكرها في حينه.

 

المسجلات

  • مسجلات مخفية لا يمكن الوصول إليها من قبل المبرمج و تستخدم من قبل المعالج و ذلك لأغراض العنونة الذاكرية و التخزين المؤقت لبعض العناوين.
  • مسجلات تخزين واصفة مقطع الشفرة الحالي : Code Segment Descriptor Cach Reg .
  • مسجلات تخزين واصفة مقطع المعط يات الحالي: Data Segment Descriptor Cach Reg.
  • مسجلات تخزين واصفة مقطع التكديس الحالي: Stack Segment Descriptor Cach Reg.
  • مسجلات تخزين عنوان جدول وصفات المقاطع العامة الـ GDT الحالي.
  • مسجل تخزين عنوان جدول واصفات المقاطعات الـ IDT الحالي.
  • مسجل تخزين عنوان جدول الواصفات المحلية LDT الحالي.
  • سجل تخزين جدول واصفات الحالة TSS.
شارك التدوينة !

اضف رد

لن يتم نشر البريد الإلكتروني . الحقول المطلوبة مشار لها بـ *

*

*

يمكن الإقتباس شرط الإشارة للمصدر.