الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نظم التشغيل التصميم و التنفيذ

بدأه محمد جبر في 7 مارس 2009 · 2 رد · 3,377 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته سنقدم هنا و في شكل دروس مسلسلة ترجمة لكتاب operating systems design and implementation و الكتاب يشرح نظريات تصميم نظم التشغيل و يقوم بشرح مثال عملي لنظام تشغيل كتب بواسطة كاتب الكتاب هذا النظام يدعي مينيكس لذا فإن هذا الكتاب فريد في تقديمه ليس فقط النظرية و لكن يشرح الكود الخاص بمينيكس و سنبدأ في وضع ترجمة هذا الكتاب في شكل دروس مقسمة على اقسام الكتاب. اما عن سبب استخدام هذا الكتاب بالذات فهو ان لينوس تورفالد الذي بدأ تطوير النواة لينكس ( و ليس مصمم نظام التشغيل كله كما هو شائع ) قد قرأ هذا الكتاب و درس كوده جيدا. معلومة - اعقتد - انها في غاية الايحاء. دعنا نبدأ اذن ولا داعي للمزيد من الثرثرة.

- مقدمة :

بدون البرمجيات Software يعتبر الحاسوب مجرد كومة معدنية عديمة الفائدة. بالبرمجيات, يستطيع الحاسوب أن يخزن و يعالج و يسترجع البيانات, و يشغل الصوت و الصورة, و يرسل البريد الالكتروني, و يبحث في الانترنت, و أشياء أخري عديدة. يمكن تقسيم برمجيات الحاسوب إلي قسمين : برامج النظام System programs (لا تعبر كلمة النظام هنا عن برنامج نظام التشغيل كويندوز أو دوس وإنما تعبر عن نظام الحاسوب أو عمارة الحاسوب المكونة من معالج و ذاكرة عشوائية و أجهزة إدخال و إخراج ويعبر عنها بكلمة Computer system ), و التي تدير الحاسوب نفسه, و برامج التطبيقات Application programs و التي تقوم بإنجاز المهام التي يريدها المستخدم. يعتبر نظام التشغيل Operating system هو أهم برنامج من برامج النظام, ووظيفته التحكم في مصادر النظام Resources (أو ما يعرف ب I\O Devices أو أجهزة الإدخال كلوحة المفاتيح أو الإخراج كالشاشة), و توفر بيئة تمكن فيها التطبيقات من العمل (عن طريق توفير API أو واجهة برمجة التطبيقات وهي مجموعة من الدوال يستدعيها البرنامج من نظام التشغيل لعمل مهام لا تقع في نطاق صلاحية البرنامج) . أنظمة التشغيل هي موضوع هذا الكتاب . علي وجه الخصوص سنستخدم نظام تشغيل يدعي MINIX3 (كتب بواسطة كاتب الكتاب نقسه) كأنموذج لتوضيح مبادئ التصميم و حقائق تنفيذ التصميم.

يتكون الحاسب من واحد أو أكثر من المعالجات, و ذاكرة رئيسية,و أقراص Disks, و طابعات, و لوحة مفاتيح,و شاشة,و واجهة شبكات network interfaces, ووحدات إدخال و إخراج أخري. باختصار نظام معقد. تعتبر كتابة برنامج للتحكم في كل هذه المكونات بمفرده عملية في غاية الصعوبة. لو أن علي كل مبرمج أن يهتم بكيفية عمل الأقراص الصلبة وكل الأخطاء التي ربما تحدث عند قراءة قطاع , ما كانت كثير من البرامج لتكتب علي الإطلاق!

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

يظهر الشكل 1-1 وضع نظام التشغيل. العتاد في القاع, والذي يتكون بدوره من طبقة أو اثنتين. الطبقة الدنيا تحتوي علي الأجهزة المادية physical devices, والتي تحتوي علي رقاقات الدوائر المتكاملة,و السلوك,و مزود الطاقة power supply, و أجهزة أخري مشابهه. كيف تعمل وكيف تركب هذا هوا اختصاص مهندس الالكترونيات.

post-84940-1236417860_thumb.jpg

بعد ذلك تأتي طبقة عمارة الحاسب والتي يتم فيها تجميع الأجهزة المادية مع بعضها البعض لتشكل وحدات لها وظيفة معينة. ويوجد في هذه الطبقة المسجلات registers وهي موجودة في ال CPU (المسجلات عبارة عن وحدات تخزينية موجودة في المعالج وتستخدم بدلا من الذاكرة العشوائية لتسجيل معاملات الدوال و المتغيرات البسيطة ) و وحدة الحساب و المنطق. في كل دورة أو تكة clock cycle (الزمن ألازم لعمل تعليمة أو أكثر من قبل المعالج ) يتم إحضار معامل أو اثنتين من المسجلات ثم يتم جمعهم في وحدة الحساب و المنطق. ثم يتم وضع النتيجة في مسجل أخر. في بعض الآلات تتم العمليات علي مسار البيانات data path ببرنامج اسمه microprogram وفي البعض الآخر تتم هذه العمليات من خلال دوائر العتاد.

فائدة مسار البيانات هو تنفيذ بعض التعليمات. بعض التعليمات تستخدم دورة cycle واحدة و بعضها تستخدم أكثر من دورة. هذه التعليمات تستخدم المسجلات وكثير من التسهيلات التي يوفرها العتاد. يسمي كل من العتاد و التعليمات ISA (instruction set summary) بلغة الآلة machine language.

تحتوي لغة الآلة من 50 ل 300 تعليمة, معظمهم لتحريك البيانات بين العتاد,و العمليات الحسابية, ومقارنة القيم. في هذه المرحلة يتم التحكم في أجهزة الإدخال و الإخراج عن طريق إدخال قيم لمسجلات خاصة بالأجهزة device registers. علي سيبل المثال يمكن لقرص أن يقرأ عن طريق تحميل قيم عنوان القرص, عنوان الذاكرة الرئيسة, عدد البيتات, و الاتجاه (قراءة – كتابة) لمسجلات القرص. يلعب التوقيت دور مهم في بعض أجهزة الإدخال والإخراج (كبطاقة الصوت).

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

في أعلي نظام التشغيل يأتي بقية برمجيات النظام. كمفسر الأوامر shell, نظام واجهة المستخدم الرسومية, المترجمات compilers, المحررات editors, والبرامج المستقلة. من المهم لنا أن نعلم أن هذه البرامج ليست جزئ من نظام التشغيل. نظام التشغيل هو عادة البرمجيات التي تعمل في وضع نواة نظام التشغيل kernel mode أو وضع الإشراف supervisor mode. وهي محمية من محاولة تلاعب المستخدم عن طريق المعالج (يوفر المعالج طبقات حماية لكل مهمة أو برنامج عن طريق حلقات حماية من 0 إلي 4.تبدأ العمل برامج النواة التي تحتاج للوصول إلي العتاد في مرحلة الحماية 0 أي لها جميع الحقوق لوصول لكل مواقع الذاكرة و التلاعب بالعتاد أما برامج المستخدم فتعمل في المرحة 3 أي لا تتمكن من الوصول إلي العتاد إلا عن طريق طلب هذا من دوال النظام ).

المترجمات و المحررات تعمل في وضع المستخدم إذا لم يعجبك المترجم الذي تستخدمه يمكنك أن تكتب مترجم خاص بك لكنك لا تستطيع أن تعيد كتابة الدوال المسؤولة عن التعامل مع المقاطعات interrupt handlers علي سبيل المثال.

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

بعض أجزاء ناظم التشغيل من الممكن أن تعمل في وضع المستخدم فعلي سبيل المثال نظام الملفات في minix يعمل في وضع المستخدم وهو عبارة عن برنامج كبير مكتوب بلغة سي.

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

تم تعديل هذه المشاركة بواسطة محمد جبر في 7 مارس 2009 في 12:57

1

لا اله إلا الله

#2

شكرا لكم اخي محمد جبر حياكم الله

#3

شكرا على هذا الموضوع الجميل ولكن هل ممكن المساعدة في نظم التشغيل بإستخدام الجافا

مواضيع مشابهة