ان انظمة التشغيل مرت بتاريخ تطوير طويل يلخص في الآتي :
Batch Systems
صممت خلال خمسينيات القرن العشرين للتحكم بالكمبيوترات المركزية. في ذلك
الوقت كانت الكمبيوترات أجهزة ضخمة تستخدم مايسمى البطاقات المثقوبة
(punched cards)للإدخال والطابعات الخطية (line printers) للإخراج ومحركات
الأشرطة (tape drives) كوسط تخزين ثانوي.أي برنامج سيُنفَذ يسمى مهمة
(Job).عندما يرغب المبرمج بتنفيذ مهمة ما يرسل طلب إلى غرفة العمليات مرفق
بالبطاقة المثقوبة للبرنامج والبيانات. ليس للمبرمج أي تحكم أو تفاعل مع
النظام.تتم معالجة البطاقة بواسطة مشغل (operator) إذا كان البرنامج ناجحًا
تُرسل نتيجته إلى المبرمج, وفي حالة فشله تُرسل نسخة بالخطأ. كان نظام
التشغيل خلال هذه الفترة بسيط جدًا ،مهمته الوحيدة التأكد من أن جميع
المصادر قد انتقلت من مهمة لأخرى.
أنظمة المشاركة الزمنية (Time-Sharing Systems)
مصادر نظام الكمبيوتر بكفاءة ظهر مصطلح البرمجة المتعددة
(multiprogramming). تتلخص فكرته في تحميل أكثر من مهمة في الذاكرة ويتم
تخصيص مصدر واحد للمهمة التي تحتاجه بشرط أن يكون المصدر متاح في تلك
اللحظة. مثلاً : عندما يستخدم برنامج ما جهاز الـ ادخال/اخراج تكون وحدة
المعالجة المركزية (CPU) متاحة فيمكن استخدامه بواسطة برنامج آخر.البرمجة
المتعددة قادت إلى فكرة أخرى “مشاركة الوقت” (time sharing) تتلخص في
إمكانية مشاركة المصادر بين المهام المختلفة, كل مهمة تستطيع حجز المصدر
لفترة زمنية معينة. ولأن الكمبيوتر أسرع من الإنسان كل مستخدم يشعر بأن
كامل النظام يخدمه.البرمجة المتعددة ومشاركة الوقت طورت من كفاءة نظام
الكمبيوتر بشكل كبير وأصبح يحتاج بدوره نظام تشغيل أكثر تعقيدًا. فأصبحت
نظم التشغيل تحتاج للقيام بالجدولة (scheduling) أي حجز المصادر لبرامج
مختلفة واتخاذ القرار :” أي برنامج يجب أن يستخدم هذا المصدر؟”.
خلال هذه الفترة العلاقة بين جهاز الكمبيوتر والمستخدم تغيرت أيضًا. أصبح
المستخدم يستطيع التعامل مع النظام مباشرة دون الحاجة إلى وجود مشغل. وظهر
كذلك مصطلح جديد : عملية (process).المهمة هي البرنامج الذي سينفذ. العملية
هي البرنامج الموجود في الذاكرة منتظرًا المصادر
الأنظمة الشخصية (Personal Systems)
بظهور الحاسبات الشخصية ظهرت أيضًا الحاجة لنظم تشغيل خاصة بتلك الأنواع من
الحاسبات. فظهر مايسمى بالـ single-user operating systems مثل الـDOS
الأنظمة المتوازية (Parallel Systems)
الحاجة إلى سرعة أكبر وكفاءة أكثر قادت إلى تصميم الأنظمة المتوازية
parallel.تتلخص في وجود أكثر من وحدة معالجة مركزية على نفس الجهاز. كل
وحدة معالجة تُستخدم لخدمة برنامج أو جزء من برنامج مايعني أن أكثر من مهمة
ممكن أن تُنفذ بالتوازي بدلاً من التسلسل. نظام التشغيل لمثل هذه الأنظمة
أكثر تعقيدًا من تلك المستخدمة في وجود وحدة معالجة واحدة.
الأنظمة الموزعة (Distributed Systems)
الشبكات وشبكة الانترنت أوجدت بُعد جديد في عالم نظم التشغيل. المهمات التي
كانت سابقًا تتم على كمبيوتر واحد أصبحت الآن مشتركة بين كمبيوترات تبعد
عن بعضها آلاف الأميال. أصبح جزء من البرنامج يعمل على كمبيوتر والجزء
الآخر يعمل على كمبيوتر آخر متصل معه بواسطة شبكة كشبكة الانترنت مثلاً.
إضافة إلى أن المصادر أصبحت موزعة.قد يحتاج البرنامج ملفات موجودة في جزء
مختلف من العالم، الأنظمة الموزعة تجمع بين مزايا أجيال النظم السابقة
والمهام الجديدة كالتحكم بالأمان.
الآن أصبحت نظم التشغيل أكثر تعقيدًا، وأصبح نظام التشغيل بحاجة إلى
التعامل مع مصادر مختلفة لنظام الكمبيوتر وصار أشبه بمنظمة تحوي عدة مدراء.
كل مدير مسئول عن إدارة قسمه وهو بدوره بحاجة إلى التعاون مع الأقسام
الأخرى. نظم التشغيل الحديثة عليها القيام بأربع واجبات على الأقل : إدارة
الذاكرة، إدارة العمليات, إدارة الجهاز ،و إدارة الملفات. كالعديد من
المنظمات التي تحوي أقسامًا لا تندرج تحت إدارة معينة، نظام التشغيل يحوي
أيضًا هذا القسم وهو ما يُسمى واجهة المستخدم (user interface) أو a *****
وهو المسئول عن الاتصال خارج نظام التشغيل
-----------------------------------------------
ما هو ؟ ( الوظائف - المكونات - العمل )
نظام التشغيل (بالإنجليزية: Operating System وتختصر إلى OS) هو برنامج
مسؤول عن إدارة موارد عتاد وبرمجيات الحاسوب، يقوم نظام التشغيل بالمهام
الأساسية مثل إدارة وتخصيص مصادر الحاسوب (الذاكرة، القرص الصلب، الوصول
للأجهزة الطرفية الملحقة..إلخ)، ترتيب أولوية التعامل مع الأوامر، التحكم
في أجهزة الإدخال والإخراج، تسهيل الشبكات، وإدارة الملفات.
الحواسيب الحديثة متعددة الأغراض، شاملة الحواسيب الشخصية والحواسيب
العملاقة(mainframes)، لها نظام تشغيل ليشغل باقي البرامج مثل التطبيقات
البرمجية comme windows. تشمل الأمثلة على أنظمة تشغيل الحواسيب الشخصية
ميكروسوفت ويندوز، لينوكس، ماك أو.إس(داروين)، ويونكس.
تشمل الفوائد الأساسية لنظام تشغيل ما يلى:
1.يسمح بتشغيل أكثر من برنامج في نفس الوقت
2.يسهل برمجة التطبيقات البرمجية، لأن البرنامج لن يحتاج إلى التعامل مع
العتاد مباشرة. يدير نظام التشغيل العتاد وتفاعله مع البرمجيات. كما يوفر
أيضا واجهة عالية المستوى للعتاد وطريقة للتفاعل مع البرامج الأخرى.
المستوى الأدنى من أي نظام تشغيل هو نواته. هذه هي الطبقة الأولى من
البرمجيات التي يتم تحميلها في الذاكرة عند إقلاع النظام أو بدء التشغيل.
توفر النواة إمكانية الوصول إلى الخدمات المركزية الشائعة الأخرى لكل برامج
النظام والتطبيقات. هذه الخدمات تشمل(وليس فقط): جدولة المهام، إدارة
الذاكرة، الوصول للقرص، والوصول لأجهزة العتاد.
كما هو الحال بالنسبة للنواة، فإن نظام التشغيل كثيرا ما يزود ببرمجيات
نظام لإدارة واجهة المستخدم الرسومية (بالرغم من إدماج ويندوز وماكينتوش
لهذه البرامج في نظام التشغيل). وأيضا أدوات لمهام مثل إدارة الملفات
وإعداد نظام التشغيل. في أحيان كثيرة يوزع مع نظام التشغيل برمجيات ليست
لها علاقة مباشرة بالوظائف الأساسية لنظام التشغيل، ولكن من يوزع نظام
التشغيل وجد فائدة في توزيعها معه.
الفاصل بين نظام التشغيل وبرمجيات التطبيقات غير واضح، وكثيرا ما يكون موضع
خلاف. من وجهة النظر التجارية أو القانونية، فإن الفصل يعتمد على سياق
الإهتمامات الداخلة في الموضوع. على سبيل المثال، واحد من الأسئلة الرئيسية
في قضية الولايات المتحدة ضد ميكرسوفت هو هل متصفح ويب ميكروسوفت جزأ من
نظام التشغيل أم لا.
كما هو الحال مع مصطلح "نظام تشغيل"، فإن الخلاف يدور أحيانا حول ما الذي
يجب على النواة إدارته يالتحديد، مع النقاش حول هل يجب أن تكون أشياء مثل
نظام الملفات في النواة أم لا. البعض يؤيد النواة الصغريه، والبعض النواة
الاحاديه وهكذا.
تستخدم أنظمة التشغيل على أغلب، وليس كل الحواسيب. الحواسيب الأبسط، شاملة
الأنظمة المغروسة الأصغر والعديد من الحواسيب المبكرة بدون نظام تشغيل،
بدلا من هذا يعتمدوا على برامج التطبيقات لتدير العتاد بمعرفتها، وربما
بمساعدة مكتبات صممت لهذا الغرض.