نظام التشغيل

نظام التشغيل ( OS ) هو برنامج نظام يدير موارد الأجهزة والبرامج الحاسوبية ، ويوفر خدمات مشتركة لبرامج الحاسوب .

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

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

في سوق أجهزة الكمبيوتر الشخصية ، اعتبارًا من سبتمبر 2024 ، تمتلك Microsoft Windows حصة سوقية مهيمنة تبلغ حوالي 73٪. يأتي macOS من Apple Inc. في المرتبة الثانية (15٪)، ويأتي Linux في المرتبة الثالثة (5٪)، ويأتي ChromeOS في المرتبة الرابعة (2٪). [3] في قطاع الأجهزة المحمولة (بما في ذلك الهواتف الذكية والأجهزة اللوحية )، اعتبارًا من سبتمبر 2023 ، تبلغ حصة Android 68.92٪، تليها iOS و iPadOS من Apple بنسبة 30.42٪، وأنظمة التشغيل الأخرى بنسبة 0.66٪. [4] تهيمن توزيعات Linux على قطاعي الخادم والحوسبة الفائقة. توجد فئات متخصصة أخرى من أنظمة التشغيل (أنظمة التشغيل ذات الأغراض الخاصة)، [5] [6] مثل الأنظمة المضمنة والأنظمة في الوقت الفعلي، للعديد من التطبيقات. توجد أيضًا أنظمة تشغيل تركز على الأمان . بعض أنظمة التشغيل لها متطلبات نظام منخفضة (على سبيل المثال توزيعات Linux خفيفة الوزن ). قد يكون لدى البعض الآخر متطلبات نظام أعلى.

تتطلب بعض أنظمة التشغيل التثبيت أو قد تأتي مثبتة مسبقًا مع أجهزة الكمبيوتر التي تم شراؤها ( تثبيت OEM )، في حين أن البعض الآخر قد يعمل مباشرة من الوسائط (مثل القرص المضغوط المباشر ) أو ذاكرة الفلاش (مثل عصا USB ).

التعريف والغرض

من الصعب تعريف نظام التشغيل، [7] ولكن تم تسميته " طبقة البرامج التي تدير موارد الكمبيوتر لمستخدميه وتطبيقاتهم " . [8] تتضمن أنظمة التشغيل البرامج التي تعمل دائمًا، والتي تسمى النواة - ولكنها يمكن أن تتضمن برامج أخرى أيضًا. [7] [9] النوعان الآخران من البرامج التي يمكن تشغيلها على الكمبيوتر هما برامج النظام - والتي ترتبط بنظام التشغيل، ولكن قد لا تكون جزءًا من النواة - والتطبيقات - جميع البرامج الأخرى. [9]

هناك ثلاثة أغراض رئيسية يحققها نظام التشغيل: [10]

  • تقوم أنظمة التشغيل بتخصيص الموارد بين التطبيقات المختلفة، وتحديد متى ستحصل على وقت أو مساحة وحدة المعالجة المركزية (CPU) في الذاكرة . [10] في أجهزة الكمبيوتر الشخصية الحديثة، غالبًا ما يرغب المستخدمون في تشغيل العديد من التطبيقات في وقت واحد. من أجل ضمان عدم تمكن برنامج واحد من احتكار موارد الأجهزة المحدودة للكمبيوتر، يمنح نظام التشغيل كل تطبيق حصة من المورد، إما في الوقت (وحدة المعالجة المركزية) أو المساحة (الذاكرة). [11] [12] يجب على نظام التشغيل أيضًا عزل التطبيقات عن بعضها البعض لحمايتها من الأخطاء والثغرات الأمنية في كود تطبيق آخر، ولكن تمكين الاتصالات بين التطبيقات المختلفة. [13]
  • توفر أنظمة التشغيل واجهة تجرد تفاصيل الوصول إلى تفاصيل الأجهزة (مثل الذاكرة الفعلية) لتسهيل الأمور على المبرمجين. [10] [14] كما تمكن المحاكاة الافتراضية نظام التشغيل من إخفاء موارد الأجهزة المحدودة؛ على سبيل المثال، يمكن للذاكرة الافتراضية أن توفر لبرنامج وهم ذاكرة غير محدودة تقريبًا تتجاوز الذاكرة الفعلية للكمبيوتر. [15]
  • توفر أنظمة التشغيل خدمات مشتركة، مثل واجهة للوصول إلى أجهزة الشبكة والقرص. يتيح هذا تشغيل التطبيق على أجهزة مختلفة دون الحاجة إلى إعادة كتابته. [16] تختلف الخدمات التي يجب تضمينها في نظام التشغيل بشكل كبير، وتشكل هذه الوظيفة الغالبية العظمى من التعليمات البرمجية لمعظم أنظمة التشغيل. [17]

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

أنظمة تشغيل متعددة الحواسيب

مع المعالجات المتعددة، تتشارك وحدات المعالجة المركزية المتعددة الذاكرة. يحتوي الكمبيوتر المتعدد أو الكمبيوتر العنقودي على وحدات معالجة مركزية متعددة، ولكل منها ذاكرتها الخاصة . تم تطوير أجهزة الكمبيوتر المتعددة لأن المعالجات المتعددة الكبيرة يصعب تصميمها وباهظة التكلفة؛ [18] فهي عالمية في الحوسبة السحابية بسبب حجم الجهاز المطلوب. [19] غالبًا ما تحتاج وحدات المعالجة المركزية المختلفة إلى إرسال واستقبال الرسائل إلى بعضها البعض؛ [20] لضمان الأداء الجيد، تحتاج أنظمة التشغيل لهذه الأجهزة إلى تقليل نسخ الحزم هذه . [21] غالبًا ما تكون الأنظمة الأحدث متعددة الطوابير - تفصل مجموعات المستخدمين إلى طوابير منفصلة - لتقليل الحاجة إلى نسخ الحزم ودعم المزيد من المستخدمين المتزامنين. [22] هناك تقنية أخرى وهي الوصول المباشر عن بُعد إلى الذاكرة ، والتي تمكن كل وحدة معالجة مركزية من الوصول إلى الذاكرة التي تنتمي إلى وحدات معالجة مركزية أخرى. [20] غالبًا ما تدعم أنظمة التشغيل متعددة الحواسيب استدعاءات الإجراءات عن بُعد حيث يمكن لوحدة المعالجة المركزية استدعاء إجراء على وحدة معالجة مركزية أخرى، [23] أو الذاكرة المشتركة الموزعة ، حيث يستخدم نظام التشغيل المحاكاة الافتراضية لإنشاء ذاكرة مشتركة غير موجودة فعليًا. [24]

الأنظمة الموزعة

النظام الموزع هو مجموعة من أجهزة الكمبيوتر المتميزة المتصلة بشبكة - كل منها قد يكون له نظام تشغيل ونظام ملفات خاص به. على عكس أجهزة الكمبيوتر المتعددة، يمكن توزيعها في أي مكان في العالم. [25] غالبًا ما يتم استخدام البرامج الوسيطة ، وهي طبقة برمجية إضافية بين نظام التشغيل والتطبيقات، لتحسين الاتساق. على الرغم من أنها تعمل بشكل مشابه لنظام التشغيل، إلا أنها ليست نظام تشغيل حقيقي. [26]

مغروس

تم تصميم أنظمة التشغيل المضمنة لاستخدامها في أنظمة الكمبيوتر المضمنة ، سواء كانت كائنات إنترنت الأشياء أو غير متصلة بشبكة. تتضمن الأنظمة المضمنة العديد من الأجهزة المنزلية. العامل المميز هو أنها لا تقوم بتحميل البرامج المثبتة من قبل المستخدم. وبالتالي، فهي لا تحتاج إلى الحماية بين التطبيقات المختلفة، مما يتيح تصميمات أبسط. قد تعمل أنظمة التشغيل الصغيرة جدًا في أقل من 10 كيلوبايت ، [27] وأصغرها هي للبطاقات الذكية . [28] تشمل الأمثلة Embedded Linux و QNX و VxWorks والأنظمة الصغيرة جدًا RIOT و TinyOS . [29]

في الوقت الحالى

نظام التشغيل في الوقت الحقيقي هو نظام تشغيل يضمن معالجة الأحداث أو البيانات بحلول أو في لحظة محددة من الزمن. تتطلب أنظمة الوقت الحقيقي الصارمة توقيتًا دقيقًا وهي شائعة في التصنيع والإلكترونيات الجوية والعسكرية وغيرها من الاستخدامات المماثلة. [29] مع أنظمة الوقت الحقيقي الناعمة، يكون الحدث الفائت العرضي مقبولًا؛ غالبًا ما تتضمن هذه الفئة أنظمة الصوت أو الوسائط المتعددة، بالإضافة إلى الهواتف الذكية. [29] لكي تكون أنظمة الوقت الحقيقي الصارمة دقيقة بدرجة كافية في توقيتها، غالبًا ما تكون مجرد مكتبة بدون حماية بين التطبيقات، مثل eCos . [29]

المشرف الافتراضي

المشرف الافتراضي هو نظام تشغيل يقوم بتشغيل آلة افتراضية . الآلة الافتراضية لا تدرك أنها تطبيق وتعمل كما لو كانت لديها أجهزتها الخاصة. [15] [30] يمكن إيقاف الآلات الافتراضية مؤقتًا وحفظها واستئنافها، مما يجعلها مفيدة لأبحاث أنظمة التشغيل وتطويرها [31] وتصحيح أخطائها. [32] كما أنها تعزز قابلية النقل من خلال تمكين تشغيل التطبيقات على الكمبيوتر حتى لو لم تكن متوافقة مع نظام التشغيل الأساسي. [15]

مكتبة

نظام تشغيل المكتبة ( libOS) هو نظام يتم فيه توفير الخدمات التي يوفرها نظام التشغيل النموذجي، مثل الشبكات، في شكل مكتبات ويتم تأليفه باستخدام رمز تطبيق وتكوين واحد لبناء نواة واحدة : [33] متخصصة (يتم استخراج القطع الضرورية المطلقة من التعليمات البرمجية من المكتبات وربطها معًا [34]ومساحة عنوان واحدة ، وصورة آلة يمكن نشرها على السحابة أو البيئات المضمنة.

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

تاريخ

وحدة التحكم ووحدة المعالجة المركزية لمشغل IBM System/360 Model 50؛ وحدة التحكم الخاصة بالمشغل هي محطة طرفية يستخدمها نظام التشغيل للتواصل مع المشغل.

تمت برمجة أول أجهزة كمبيوتر في أواخر الأربعينيات والخمسينيات من القرن العشرين مباشرةً إما باستخدام لوحات التوصيل أو باستخدام كود آلي مُدخل على وسائط مثل البطاقات المثقبة ، دون استخدام لغات برمجة أو أنظمة تشغيل. [37] بعد إدخال الترانزستور في منتصف الخمسينيات من القرن العشرين، بدأ بناء الحواسيب الكبيرة . كانت لا تزال بحاجة إلى مشغلين محترفين [37] يقومون يدويًا بما يفعله نظام التشغيل الحديث، مثل جدولة البرامج للتشغيل، [38] لكن الحواسيب الكبيرة لا تزال تحتوي على أنظمة تشغيل بدائية مثل Fortran Monitor System (FMS) و IBSYS . [39] في الستينيات، قدمت شركة IBM أول سلسلة من أجهزة الكمبيوتر المتوافقة ( System/360 ). كانت جميعها تعمل بنفس نظام التشغيل - OS/360 - والذي يتكون من ملايين الأسطر من لغة التجميع التي تحتوي على آلاف الأخطاء . كان نظام التشغيل OS/360 أيضًا أول نظام تشغيل شائع يدعم البرمجة المتعددة ، بحيث يمكن استخدام وحدة المعالجة المركزية في مهمة واحدة بينما تنتظر أخرى الإدخال/الإخراج (I/O). يتطلب الاحتفاظ بمهام متعددة في الذاكرة تقسيم الذاكرة وتوفير الحماية ضد وصول مهمة واحدة إلى الذاكرة المخصصة لمهمة أخرى. [40]

في نفس الوقت تقريبًا، بدأ استخدام الطابعات عن بعد كمحطات طرفية حتى يتمكن مستخدمون متعددون من الوصول إلى الكمبيوتر في وقت واحد. كان نظام التشغيل MULTICS يهدف إلى السماح لمئات المستخدمين بالوصول إلى كمبيوتر كبير. وعلى الرغم من اعتماده المحدود، يمكن اعتباره مقدمة للحوسبة السحابية . نشأ نظام التشغيل UNIX كتطوير لنظام MULTICS لمستخدم واحد. [41] نظرًا لأن الكود المصدر لنظام UNIX كان متاحًا، فقد أصبح أساسًا لأنظمة تشغيل أخرى غير متوافقة، وكان أنجحها نظام System V لشركة AT&T وتوزيع برامج Berkeley ( BSD) لجامعة كاليفورنيا . [42] لزيادة التوافق، أصدر معهد مهندسي الكهرباء والإلكترونيات معيار POSIX لواجهات برمجة تطبيقات نظام التشغيل (APIs)، والذي تدعمه معظم أنظمة UNIX. كان MINIX إصدارًا مبسطًا من UNIX، تم تطويره في عام 1987 للاستخدامات التعليمية، والذي ألهم برنامج Linux المجاني المتاح تجاريًا . منذ عام 2008، تم استخدام MINIX في وحدات التحكم في معظم شرائح Intel الدقيقة ، بينما تم استخدام Linux على نطاق واسع في مراكز البيانات والهواتف الذكية التي تعمل بنظام Android . [43]

أجهزة الكمبيوتر الدقيقة

واجهة سطر الأوامر لنظام التشغيل MS-DOS
واجهة المستخدم الرسومية لجهاز Macintosh

مكّن اختراع التكامل واسع النطاق من إنتاج أجهزة الكمبيوتر الشخصية (التي كانت تسمى في البداية أجهزة الكمبيوتر الصغيرة ) منذ حوالي عام 1980. [44] لمدة خمس سنوات تقريبًا، كان برنامج التحكم لأجهزة الكمبيوتر الصغيرة هو نظام التشغيل الأكثر شيوعًا لأجهزة الكمبيوتر الصغيرة. [45] في وقت لاحق، اشترت شركة IBM نظام التشغيل DOS (نظام تشغيل القرص) من Microsoft . بعد التعديلات التي طلبتها IBM، أطلق على النظام الناتج اسم MS-DOS (نظام تشغيل القرص من Microsoft) وكان يستخدم على نطاق واسع على أجهزة الكمبيوتر الصغيرة من IBM. زادت الإصدارات اللاحقة من تعقيدها، جزئيًا عن طريق استعارة ميزات من UNIX. [45]

كان جهاز Macintosh من إنتاج شركة Apple هو أول جهاز كمبيوتر شائع يستخدم واجهة مستخدم رسومية (GUI). أثبتت واجهة المستخدم الرسومية أنها أكثر سهولة في الاستخدام من واجهة سطر الأوامر النصية فقط التي استخدمتها أنظمة التشغيل السابقة. بعد نجاح Macintosh، تم تحديث MS-DOS بواجهة مستخدم رسومية تسمى Windows . تمت إعادة كتابة Windows لاحقًا كنظام تشغيل مستقل، مستعيرًا العديد من الميزات من نظام تشغيل آخر ( VAX VMS ) لدرجة أنه تم دفع تسوية قانونية كبيرة . [46] في القرن الحادي والعشرين، لا يزال Windows شائعًا على أجهزة الكمبيوتر الشخصية ولكنه يتمتع بحصة سوقية أقل من الخوادم. تعد أنظمة تشغيل UNIX، وخاصة Linux، الأكثر شيوعًا على أنظمة وخوادم المؤسسات ولكنها تُستخدم أيضًا على الأجهزة المحمولة والعديد من أنظمة الكمبيوتر الأخرى. [47]

في الأجهزة المحمولة، كان نظام التشغيل Symbian OS مهيمنًا في البداية، حيث تغلب عليه نظام التشغيل BlackBerry OS (الذي تم طرحه في عام 2002) ونظام التشغيل iOS لأجهزة iPhone (منذ عام 2007). في وقت لاحق، أصبح نظام التشغيل Android مفتوح المصدر (الذي تم طرحه في عام 2008)، مع نواة Linux ومكتبة C ( Bionic ) المستندة جزئيًا إلى كود BSD، هو الأكثر شعبية. [48]

عناصر

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

النواة

يقوم النواة بربط برنامج التطبيق بأجهزة الكمبيوتر.

النواة هي جزء من نظام التشغيل الذي يوفر الحماية بين التطبيقات المختلفة والمستخدمين. هذه الحماية هي مفتاح لتحسين الموثوقية من خلال الحفاظ على الأخطاء معزولة عن برنامج واحد، وكذلك الأمان من خلال الحد من قوة البرامج الضارة وحماية البيانات الخاصة، وضمان عدم تمكن برنامج واحد من احتكار موارد الكمبيوتر. [49] تحتوي معظم أنظمة التشغيل على وضعين للتشغيل: [50] في وضع المستخدم ، يتحقق الجهاز من أن البرنامج ينفذ التعليمات القانونية فقط، بينما تتمتع النواة بصلاحيات غير مقيدة ولا تخضع لهذه الفحوصات. [51] تدير النواة أيضًا الذاكرة للعمليات الأخرى وتتحكم في الوصول إلى أجهزة الإدخال / الإخراج . [52]

تنفيذ البرنامج

يوفر نظام التشغيل واجهة بين برنامج التطبيق وأجهزة الكمبيوتر، بحيث يمكن لبرنامج التطبيق التفاعل مع الأجهزة فقط من خلال اتباع القواعد والإجراءات المبرمجة في نظام التشغيل. نظام التشغيل هو أيضًا مجموعة من الخدمات التي تبسط تطوير وتنفيذ برامج التطبيق. يتضمن تنفيذ برنامج التطبيق عادةً إنشاء عملية بواسطة نواة نظام التشغيل ، والتي تقوم بتعيين مساحة الذاكرة والموارد الأخرى، وتحدد أولوية للعملية في أنظمة تعدد المهام، وتحمل كود البرنامج الثنائي في الذاكرة، وتبدأ تنفيذ برنامج التطبيق، الذي يتفاعل بعد ذلك مع المستخدم وأجهزة الكمبيوتر. ومع ذلك، في بعض الأنظمة، يمكن للتطبيق أن يطلب من نظام التشغيل تنفيذ تطبيق آخر ضمن نفس العملية، إما كبرنامج فرعي أو في سلسلة منفصلة، ​​على سبيل المثال، مرافق LINK و ATTACH في OS/360 والخلفاء .

المقاطعات

توفر المقاطعة (المعروفة أيضًا باسم الإجهاض أو الاستثناء أو الخطأ أو الإشارة [53] أو الفخ ) [54] طريقة فعالة لمعظم أنظمة التشغيل للتفاعل مع البيئة. تتسبب المقاطعات في حدوث تغيير في تدفق التحكم في وحدة المعالجة المركزية (CPU) بعيدًا عن البرنامج قيد التشغيل حاليًا إلى معالج المقاطعة ، والمعروف أيضًا باسم روتين خدمة المقاطعة (ISR). [55] [56] قد يتسبب روتين خدمة المقاطعة في حدوث تبديل سياق في وحدة المعالجة المركزية (CPU) . [57] [أ] تختلف تفاصيل كيفية معالجة الكمبيوتر للمقاطعة من بنية إلى أخرى، وتختلف تفاصيل كيفية سلوك روتين خدمة المقاطعة من نظام تشغيل إلى آخر. [58] ومع ذلك، هناك العديد من وظائف المقاطعة الشائعة. [58] يجب أن تكون البنية ونظام التشغيل: [58]

  1. نقل التحكم إلى روتين خدمة المقاطعة.
  2. حفظ حالة العملية الجارية حاليًا.
  3. استعادة الحالة بعد خدمة المقاطعة.
مقاطعة البرمجيات

إن مقاطعة البرنامج هي رسالة إلى عملية ما تفيد بوقوع حدث ما. [53] وهذا يتناقض مع مقاطعة الأجهزة - وهي رسالة إلى وحدة المعالجة المركزية (CPU) تفيد بوقوع حدث ما. [59] إن مقاطعات البرامج تشبه مقاطعات الأجهزة - فهناك تغيير بعيدًا عن العملية الجارية حاليًا. [60] وعلى نحو مماثل، تنفذ مقاطعات الأجهزة والبرامج روتين خدمة المقاطعة .

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

قد تكون مقاطعات البرامج عبارة عن حالات خطأ، مثل تعليمات الآلة المشوهة . [62] ومع ذلك، فإن حالات الخطأ الأكثر شيوعًا هي القسمة على الصفر والوصول إلى عنوان ذاكرة غير صالح . [62]

يمكن للمستخدمين إرسال رسائل إلى النواة لتعديل سلوك العملية الجارية حاليًا. [62] على سبيل المثال، في بيئة سطر الأوامر ، قد يؤدي الضغط على حرف المقاطعة (عادةً Control-C ) إلى إنهاء العملية الجارية حاليًا. [62]

لتوليد مقاطعات برمجية لوحدات المعالجة المركزية x86 ، تتوفر تعليمات لغة التجميع INT . [63] بناء الجملة هو ، حيث هو رقم الإزاحة ( بتنسيق سداسي عشري ) لجدول متجه المقاطعة . INT XX

إشارة

لتوليد مقاطعات برمجية في أنظمة تشغيل شبيهة بنظام يونكس ، ترسل kill(pid,signum) نداءات النظام إشارة إلى عملية أخرى. [64] pid هو معرف العملية لعملية الاستقبال. signumهو رقم الإشارة ( بتنسيق التذكير ) [b] المراد إرسالها. (تم اختيار الاسم الكاشط killلأن التنفيذات المبكرة أنهت العملية فقط.) [65]

في أنظمة التشغيل الشبيهة بنظام يونكس، تُعلم الإشارات العمليات بوقوع أحداث غير متزامنة. [64] للتواصل بشكل غير متزامن، يلزم وجود مقاطعات. [66] أحد الأسباب التي تجعل العملية بحاجة إلى التواصل بشكل غير متزامن مع عملية أخرى يحل اختلافًا في مشكلة القارئ/الكاتب الكلاسيكية . [67] يتلقى الكاتب أنبوبًا من الغلاف لإرسال مخرجاته إلى مجرى إدخال القارئ. [68] صيغة سطر الأوامر هي alpha | bravo. alphaسيكتب في الأنبوب عندما تكون حساباته جاهزة ثم ينام في قائمة الانتظار. [69] bravo سيتم نقله بعد ذلك إلى قائمة الاستعداد وسيقرأ قريبًا من مجرى إدخاله. [70] سيولد النواة مقاطعات برمجية لتنسيق الأنابيب. [70]

يمكن تصنيف الإشارات إلى 7 فئات. [64] الفئات هي:

  1. عندما تنتهي العملية بشكل طبيعي.
  2. عندما يكون هناك استثناء خطأ في العملية.
  3. عندما تنفد موارد النظام من عملية ما.
  4. عندما تقوم عملية بتنفيذ تعليمات غير قانونية.
  5. عندما تقوم عملية بتعيين حدث تنبيه.
  6. عندما يتم إلغاء عملية من لوحة المفاتيح.
  7. عندما يكون لدى العملية تنبيه تتبع للتصحيح.
مقاطعة الأجهزة

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

تتطلب بعض أجهزة الكمبيوتر مقاطعة لكل حرف أو كلمة، مما يكلف قدرًا كبيرًا من وقت وحدة المعالجة المركزية. الوصول المباشر للذاكرة (DMA) هو ميزة معمارية تسمح للأجهزة بتجاوز وحدة المعالجة المركزية والوصول إلى الذاكرة الرئيسية مباشرةً. [72] (بصرف النظر عن البنية المعمارية، قد يقوم الجهاز بالوصول المباشر للذاكرة [c] من وإلى الذاكرة الرئيسية إما بشكل مباشر أو عبر ناقل.) [73] [d]

الإدخال/الإخراج

الإدخال/الإخراج المعتمد على المقاطعة

عندما يضغط مستخدم الكمبيوتر على مفتاح على لوحة المفاتيح، يظهر الحرف عادةً على الشاشة فورًا. وبالمثل، عندما يحرك المستخدم الماوس ، يتحرك المؤشر فورًا عبر الشاشة. تولد كل ضغطة مفتاح وحركة ماوس مقاطعة تسمى الإدخال /الإخراج المدفوع بالمقاطعة . يحدث الإدخال/الإخراج المدفوع بالمقاطعة عندما تتسبب عملية ما في مقاطعة لكل حرف [73] أو كلمة [74] يتم إرسالها.

الوصول المباشر للذاكرة

يمكن للأجهزة مثل محركات الأقراص الصلبة ومحركات الأقراص ذات الحالة الصلبة ومحركات الأشرطة المغناطيسية نقل البيانات بمعدل مرتفع بما يكفي بحيث يتطلب مقاطعة وحدة المعالجة المركزية لكل بايت أو كلمة منقولة، وجعل وحدة المعالجة المركزية تنقل البايت أو الكلمة بين الجهاز والذاكرة، الكثير من وقت وحدة المعالجة المركزية. بدلاً من ذلك، يتم نقل البيانات بين الجهاز والذاكرة بشكل مستقل عن وحدة المعالجة المركزية بواسطة أجهزة مثل قناة أو وحدة تحكم في الوصول المباشر للذاكرة ؛ يتم توصيل المقاطعة فقط عند نقل جميع البيانات. [75]

إذا نفذ برنامج كمبيوتر مكالمة نظام لإجراء عملية كتابة كتلة إدخال/إخراج ، فقد تنفذ مكالمة النظام الإرشادات التالية:

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

  • ادفع محتويات عداد البرنامج (سجل) متبوعًا بسجل الحالة إلى مكدس النداء . [58]
  • ادفع محتويات السجلات الأخرى إلى مكدس النداء. (بدلاً من ذلك، يمكن وضع محتويات السجلات في جدول النظام.) [79]
  • اقرأ العدد الصحيح من ناقل البيانات. العدد الصحيح هو إزاحة لجدول متجه المقاطعة . بعد ذلك، ستقوم تعليمات جدول المتجه بما يلي:
  • الوصول إلى جدول حالة الجهاز.
  • استخراج كتلة التحكم في العملية.
  • قم بإجراء تبديل السياق مرة أخرى إلى عملية الكتابة.

عندما تنتهي فترة زمنية لعملية الكتابة ، سيقوم نظام التشغيل بما يلي: [80]

  • قم بإخراج السجلات الأخرى من مكدس النداء باستثناء سجل الحالة وعداد البرنامج.
  • قم بإخراج سجل الحالة من مجموعة المكالمات.
  • قم باستخراج عنوان التعليمات التالية من مجموعة النداءات، ثم قم بإعادته إلى عداد البرنامج.

مع إعادة تعيين عداد البرنامج الآن، ستستأنف العملية المتقطعة شريحة الوقت الخاصة بها. [58]

إدارة الذاكرة

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

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

تتيح حماية الذاكرة للنواة تقييد وصول العملية إلى ذاكرة الكمبيوتر. توجد طرق مختلفة لحماية الذاكرة، بما في ذلك تقسيم الذاكرة والترقيم . تتطلب جميع الطرق مستوى معينًا من دعم الأجهزة (مثل وحدة ذاكرة 80286 )، وهو ما لا يوجد في جميع أجهزة الكمبيوتر.

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

كانت إصدارات Windows من 3.1 إلى ME تحتوي على بعض مستويات حماية الذاكرة، ولكن البرامج كانت قادرة بسهولة على التحايل على الحاجة إلى استخدامها. كان من الممكن أن يحدث خطأ حماية عام ، مما يشير إلى حدوث انتهاك للتجزئة؛ ومع ذلك، كان النظام يتعطل في كثير من الأحيان على أي حال.

الذاكرة الإفتراضية

يمكن للعديد من أنظمة التشغيل "خداع" البرامج لاستخدام الذاكرة المنتشرة حول القرص الصلب والذاكرة العشوائية (RAM) كما لو كانت جزءًا واحدًا متواصلًا من الذاكرة، تسمى الذاكرة الافتراضية.

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

إذا حاول برنامج الوصول إلى ذاكرة غير قابلة للوصول [e] ، ولكن تم تخصيصها لها، فسيتم مقاطعة النواة (انظر § إدارة الذاكرة) . هذا النوع من المقاطعة هو عادةً خطأ صفحة .

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

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

توفر الذاكرة الافتراضية للمبرمج أو المستخدم الإحساس بوجود كمية أكبر بكثير من ذاكرة الوصول العشوائي (RAM) في الكمبيوتر مما هو موجود بالفعل. [81]

التزامن

يشير التزامن إلى قدرة نظام التشغيل على تنفيذ مهام متعددة في وقت واحد. [82] تدعم جميع أنظمة التشغيل الحديثة تقريبًا التزامن. [83]

تمكّن الخيوط من تقسيم عمل العملية إلى أجزاء متعددة يمكن تشغيلها في وقت واحد. [84] لا يقتصر عدد الخيوط على عدد المعالجات المتاحة. إذا كان هناك خيوط أكثر من المعالجات، فإن نواة نظام التشغيل تقوم بجدولة الخيوط وتعليقها واستئنافها، والتحكم في وقت تشغيل كل خيط وكمية وقت وحدة المعالجة المركزية التي يتلقاها. [85] أثناء تبديل السياق، يتم تعليق الخيط الجاري، ويتم حفظ حالته في كتلة التحكم في الخيط والمكدس، ويتم تحميل حالة الخيط الجديد. [86] تاريخيًا، يمكن أن يعمل الخيط على العديد من الأنظمة حتى يتخلى عن السيطرة ( تعدد المهام التعاوني ). نظرًا لأن هذا النموذج يمكن أن يسمح لخيط واحد باحتكار المعالج، فإن معظم أنظمة التشغيل الآن يمكنها مقاطعة الخيط ( تعدد المهام الوقائي ). [87]

تحتوي الخيوط على معرف خيط خاص بها، وعداد برنامج (PC)، ومجموعة سجلات ، ومكدس ، ولكنها تشترك في الكود، وبيانات الكومة ، والموارد الأخرى مع خيوط أخرى لنفس العملية. [88] [89] وبالتالي، هناك تكلفة أقل لإنشاء خيط من عملية جديدة. [90] في أنظمة وحدة المعالجة المركزية الفردية، يكون التزامن هو التبديل بين العمليات. تحتوي العديد من أجهزة الكمبيوتر على وحدات معالجة مركزية متعددة. [91] يمكن للتوازي مع خيوط متعددة تعمل على وحدات معالجة مركزية مختلفة تسريع البرنامج، اعتمادًا على مقدار ما يمكن تنفيذه في وقت واحد. [92]

نظام الملفات

تسمح أنظمة الملفات للمستخدمين والبرامج بتنظيم الملفات وفرزها على جهاز الكمبيوتر، غالبًا من خلال استخدام الدلائل (أو المجلدات).

لا تزال أجهزة التخزين الدائمة المستخدمة في أجهزة الكمبيوتر في القرن الحادي والعشرين، على عكس ذاكرة الوصول العشوائي الديناميكية المتطايرة (DRAM)، قابلة للوصول بعد تعطل أو انقطاع التيار الكهربائي . التخزين الدائم ( غير المتطاير ) أرخص بكثير لكل بايت، ولكنه يستغرق عدة أوامر من حيث الحجم أطول للوصول والقراءة والكتابة. [93] [94] والتقنيتان الرئيسيتان هما محرك الأقراص الصلبة المكون من أقراص مغناطيسية ، وذاكرة الفلاش ( محرك الحالة الصلبة الذي يخزن البيانات في الدوائر الكهربائية). والأخيرة أكثر تكلفة ولكنها أسرع وأكثر متانة. [95] [96]

أنظمة الملفات هي تجريد يستخدمه نظام التشغيل لتبسيط الوصول إلى التخزين الدائم. فهي توفر أسماء ملفات يمكن قراءتها من قبل البشر وبيانات وصفية أخرى ، وتزيد الأداء من خلال استهلاك الوصولات، وتمنع خيوط متعددة من الوصول إلى نفس قسم الذاكرة، وتتضمن مبالغ اختبارية لتحديد الفساد . [97] تتكون أنظمة الملفات من ملفات (مجموعات بيانات مسماة، بحجم عشوائي) وأدلة (تسمى أيضًا مجلدات) تسرد أسماء ملفات يمكن قراءتها من قبل البشر وأدلة أخرى. [98] يبدأ مسار الملف المطلق في الدليل الجذر ويسرد الدلائل الفرعية مقسمة حسب علامات الترقيم، بينما يحدد المسار النسبي موقع الملف من الدليل. [99] [100]

تمكن نداءات النظام (والتي يتم تغليفها أحيانًا بواسطة المكتبات) التطبيقات من إنشاء الملفات وحذفها وفتحها وإغلاقها، بالإضافة إلى ربطها وقراءتها والكتابة إليها. يتم تنفيذ كل هذه العمليات بواسطة نظام التشغيل نيابة عن التطبيق. [101] تتضمن جهود نظام التشغيل لتقليل زمن الوصول تخزين كتل الذاكرة المطلوبة مؤخرًا في ذاكرة التخزين المؤقت وجلب البيانات مسبقًا التي لم يطلبها التطبيق، ولكن قد يحتاج إليها بعد ذلك. [102] برامج تشغيل الأجهزة هي برامج خاصة بكل جهاز إدخال/إخراج (I/O) تمكن نظام التشغيل من العمل دون تعديل على أجهزة مختلفة. [103] [104]

مكون آخر من أنظمة الملفات هو القاموس الذي يربط اسم الملف والبيانات الوصفية بكتلة البيانات حيث يتم تخزين محتوياتها. [105] تستخدم معظم أنظمة الملفات الدلائل لتحويل أسماء الملفات إلى أرقام الملفات. للعثور على رقم الكتلة، يستخدم نظام التشغيل فهرسًا ( غالبًا ما يتم تنفيذه كشجرة ) . [106] بشكل منفصل، توجد خريطة مساحة خالية لتتبع الكتل الحرة، والتي يتم تنفيذها عادةً كخريطة بتات . [106] على الرغم من أنه يمكن استخدام أي كتلة حرة لتخزين ملف جديد، إلا أن العديد من أنظمة التشغيل تحاول تجميع الملفات معًا في نفس الدليل لتحقيق أقصى قدر من الأداء، أو إعادة تنظيم الملفات بشكل دوري لتقليل التجزئة . [107]

الحفاظ على موثوقية البيانات في مواجهة تعطل الكمبيوتر أو فشل الأجهزة هو مصدر قلق آخر. [108] تم تصميم بروتوكولات كتابة الملفات بعمليات ذرية حتى لا تترك التخزين الدائم في حالة غير متسقة مكتوبة جزئيًا في حالة حدوث تعطل في أي وقت أثناء الكتابة. [109] تتم معالجة تلف البيانات من خلال التخزين الزائد (على سبيل المثال، RAID - مجموعة زائدة من الأقراص غير المكلفة ) [110] [111] ومجموعات الاختبار للكشف عن تلف البيانات. مع طبقات متعددة من مجموعات الاختبار والنسخ الاحتياطية لملف، يمكن للنظام التعافي من أعطال الأجهزة المتعددة. غالبًا ما تُستخدم العمليات الخلفية للكشف عن تلف البيانات والتعافي منه. [111]

حماية

الأمان يعني حماية المستخدمين من المستخدمين الآخرين لنفس الكمبيوتر، وكذلك من أولئك الذين يسعون إلى الوصول إليه عن بعد عبر الشبكة. [112] يعتمد أمان أنظمة التشغيل على تحقيق ثالوث وكالة المخابرات المركزية : السرية (لا يمكن للمستخدمين غير المصرح لهم الوصول إلى البيانات)، والنزاهة (لا يمكن للمستخدمين غير المصرح لهم تعديل البيانات)، والتوافر (ضمان بقاء النظام متاحًا للمستخدمين المصرح لهم، حتى في حالة هجوم رفض الخدمة ). [113] كما هو الحال مع أنظمة الكمبيوتر الأخرى، فإن عزل مجالات الأمان - في حالة أنظمة التشغيل، والنواة، والعمليات، والآلات الافتراضية - هو مفتاح تحقيق الأمان. [114] تشمل الطرق الأخرى لزيادة الأمان البساطة لتقليل سطح الهجوم ، وقفل الوصول إلى الموارد افتراضيًا، والتحقق من جميع طلبات الترخيص، ومبدأ أقل سلطة (منح الحد الأدنى من الامتيازات الضرورية لأداء مهمة)، وفصل الامتيازات ، وتقليل البيانات المشتركة. [115]

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

معظم أنظمة التشغيل مكتوبة بلغة C أو C++ ، مما يخلق نقاط ضعف محتملة للاستغلال. وعلى الرغم من محاولات الحماية ضدها، فإن نقاط الضعف تنجم عن هجمات تجاوز سعة المخزن المؤقت ، والتي يتم تمكينها بسبب عدم وجود فحص للحدود . [117] يمكن أيضًا استخدام نقاط الضعف في الأجهزة، بعضها ناتج عن تحسينات وحدة المعالجة المركزية ، لاختراق نظام التشغيل. [118] هناك حالات معروفة لمبرمجي نظام التشغيل الذين زرعوا نقاط ضعف عمدًا، مثل الأبواب الخلفية . [119]

إن أمن أنظمة التشغيل معوق بسبب تعقيدها المتزايد وما ينتج عنه من حتمية الأخطاء. [120] ولأن التحقق الرسمي من أنظمة التشغيل قد لا يكون ممكنًا، يستخدم المطورون تقوية أنظمة التشغيل لتقليل نقاط الضعف، [121] على سبيل المثال عشوائية تخطيط مساحة العنوان ، وسلامة تدفق التحكم ، [122] وقيود الوصول ، [123] وغيرها من التقنيات. [124] لا توجد قيود على من يمكنه المساهمة في الكود لأنظمة التشغيل مفتوحة المصدر؛ حيث تتمتع أنظمة التشغيل هذه بسجلات تغيير شفافة وهياكل حوكمة موزعة. [125] يسعى مطورو المصدر المفتوح إلى العمل بشكل تعاوني للعثور على نقاط الضعف الأمنية والقضاء عليها، باستخدام مراجعة الكود والتحقق من النوع لمسح الكود الضار. [126] [127] ينصح أندرو إس. تانينباوم بإصدار الكود المصدر لجميع أنظمة التشغيل، بحجة أن ذلك يمنع المطورين من وضع ثقتهم في السرية وبالتالي الاعتماد على الممارسة غير الموثوقة للأمن عن طريق الغموض . [128]

واجهة المستخدم

تعتبر واجهة المستخدم ضرورية لدعم التفاعل البشري مع الكمبيوتر. النوعان الأكثر شيوعًا لواجهة المستخدم لأي كمبيوتر هما:

  • واجهة سطر الأوامر ، حيث يتم كتابة أوامر الكمبيوتر سطرًا بسطر،
  • واجهة مستخدم رسومية (GUI) تستخدم بيئة مرئية، غالبًا ما تكون مزيجًا من عناصر النافذة والأيقونة والقائمة والمؤشر، والمعروفة أيضًا باسم WIMP .

بالنسبة لأجهزة الكمبيوتر الشخصية، بما في ذلك الهواتف الذكية وأجهزة الكمبيوتر اللوحية ، ومحطات العمل ، يكون إدخال المستخدم عادةً من مجموعة من لوحة المفاتيح والماوس ولوحة التتبع أو شاشة اللمس ، وكلها متصلة بنظام التشغيل ببرامج متخصصة. [129] غالبًا ما يفضل مستخدمو أجهزة الكمبيوتر الشخصية الذين ليسوا مطورين أو مبرمجين للبرامج واجهات المستخدم الرسومية لكل من الإدخال والإخراج؛ تدعم معظم أجهزة الكمبيوتر الشخصية واجهات المستخدم الرسومية. [130] يعد البرنامج الذي يدعم واجهات المستخدم الرسومية أكثر تعقيدًا من سطر الأوامر للإدخال وإخراج النص العادي. غالبًا ما يفضل المبرمجون إخراج النص العادي، وهو سهل الدعم. [131]

تطوير أنظمة التشغيل كهواية

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

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

تتضمن أمثلة أنظمة التشغيل للهواة Syllable و TempleOS .

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

إذا تمت كتابة تطبيق لاستخدامه على نظام تشغيل محدد، وتم نقله إلى نظام تشغيل آخر، فقد يتم تنفيذ الوظيفة المطلوبة بواسطة هذا التطبيق بشكل مختلف بواسطة نظام التشغيل هذا (أسماء الوظائف، ومعنى الوسائط، وما إلى ذلك) مما يتطلب تكييف التطبيق أو تغييره أو صيانته بطريقة أخرى .

يمكن تجنب هذه التكلفة في دعم تنوع أنظمة التشغيل من خلال كتابة تطبيقات على منصات برمجية مثل Java أو Qt . لقد تحملت هذه التجريدات بالفعل تكلفة التكيف مع أنظمة تشغيل محددة ومكتبات أنظمتها .

هناك نهج آخر يتمثل في أن يتبنى بائعو أنظمة التشغيل المعايير. على سبيل المثال، توفر طبقات التجريد POSIX و OS نقاطًا مشتركة تعمل على تقليل تكاليف النقل.

في سوق أجهزة الكمبيوتر الشخصية ، اعتبارًا من سبتمبر 2023 ، يتمتع Microsoft Windows بأعلى حصة سوقية ، حوالي 68٪. يأتي macOS من Apple Inc. في المرتبة الثانية (20٪)، وتأتي أصناف Linux ، بما في ذلك ChromeOS ، بشكل جماعي في المرتبة الثالثة (7٪). [3] في قطاع الهاتف المحمول (بما في ذلك الهواتف الذكية والأجهزة اللوحية )، اعتبارًا من سبتمبر 2023 ، تبلغ حصة Android 68.92٪، تليها iOS و iPadOS من Apple بنسبة 30.42٪، وأنظمة التشغيل الأخرى بنسبة 0.66٪. [4]

لينكس

طبقات نظام لينكس

لينكس هو برنامج حر يتم توزيعه بموجب رخصة جنو العمومية (GPL)، مما يعني أن جميع مشتقاته ملزمة قانونًا بإصدار الكود المصدري الخاص بها . [133] تم تصميم لينكس بواسطة المبرمجين لاستخدامهم الخاص، وبالتالي التأكيد على البساطة والاتساق، مع عدد صغير من العناصر الأساسية التي يمكن دمجها بطرق غير محدودة تقريبًا، وتجنب التكرار. [134]

تصميمه مشابه لأنظمة يونكس الأخرى التي لا تستخدم نواة صغيرة . [135] وهو مكتوب بلغة سي [136] ويستخدم صيغة نظام يونكس الخامس ، ولكنه يدعم أيضًا صيغة بي إس دي . يدعم لينكس ميزات الشبكات القياسية ليونكس، بالإضافة إلى المجموعة الكاملة من أدوات يونكس، مع دعم مستخدمين متعددين وتوظيف تعدد المهام الاستباقي . في البداية كان تصميم لينكس بسيطًا، وهو نظام مرن يمكن أن يعمل في أقل من 16 ميجا بايت من ذاكرة الوصول العشوائي ، ولكنه لا يزال يستخدم في أنظمة المعالجات المتعددة الكبيرة. [135] على غرار أنظمة يونكس الأخرى، تتكون توزيعات لينكس من نواة ومكتبات النظام وأدوات النظام . [137] يحتوي لينكس على واجهة مستخدم رسومية (GUI) مع أيقونات سطح المكتب والمجلدات والملفات، بالإضافة إلى خيار الوصول إلى نظام التشغيل عبر سطر الأوامر . [138]

أندرويد هو نظام تشغيل مفتوح المصدر جزئيًا يعتمد بشكل وثيق على لينكس وأصبح نظام التشغيل الأكثر استخدامًا من قبل المستخدمين، نظرًا لشعبيته على الهواتف الذكية ، وبدرجة أقل، الأنظمة المضمنة التي تحتاج إلى واجهة مستخدم رسومية، مثل " الساعات الذكية ، ولوحات القيادة في السيارات ، ومساند مقاعد الطائرات، والأجهزة الطبية ، والأجهزة المنزلية ". [139] على عكس لينكس، تمت كتابة جزء كبير من أندرويد بلغة جافا ويستخدم التصميم الموجه للكائنات . [140]

مايكروسوفت ويندوز

الوصف الأمني ​​لملف للقراءة فقط بشكل افتراضي، مع عدم تحديد وصول لـ Elvis، ووصول القراءة/الكتابة لـ Cathy، ووصول كامل لـ Ida، مالكة الملف [141]

Windows هو نظام تشغيل خاص يستخدم على نطاق واسع على أجهزة الكمبيوتر المكتبية وأجهزة الكمبيوتر المحمولة والأجهزة اللوحية والهواتف ومحطات العمل وخوادم المؤسسات وأجهزة Xbox . [142] تم تصميم نظام التشغيل من أجل "الأمان والموثوقية والتوافق والأداء العالي وقابلية التوسعة والقدرة على النقل والدعم الدولي" - وفي وقت لاحق، أصبحت كفاءة الطاقة ودعم الأجهزة الديناميكية أيضًا من الأولويات. [143]

يعمل Windows Executive عبر كائنات وضع kernel لهياكل البيانات المهمة مثل العمليات والخيوط والأقسام (كائنات الذاكرة، على سبيل المثال الملفات). [144] يدعم نظام التشغيل الترقيم حسب الطلب للذاكرة الافتراضية ، مما يسرع عمليات الإدخال/الإخراج للعديد من التطبيقات. تستخدم برامج تشغيل أجهزة الإدخال/الإخراج نموذج برنامج تشغيل Windows . [144] يحتوي نظام ملفات NTFS على جدول رئيسي ويتم تمثيل كل ملف كسجل مع بيانات وصفية . [145] يتضمن الجدولة تعدد المهام الاستباقي . [146] يحتوي Windows على العديد من ميزات الأمان؛ [147] ومن المهم بشكل خاص استخدام قوائم التحكم في الوصول ومستويات النزاهة . تحتوي كل عملية على رمز مصادقة ويتم إعطاء كل كائن واصف أمان. أضافت الإصدارات اللاحقة المزيد من ميزات الأمان. [145]

انظر أيضا

ملحوظات

  1. ^ توفر وحدات المعالجة المركزية الحديثة تعليمات (على سبيل المثال SYSENTER) لاستدعاء خدمات نواة محددة دون انقطاع. قم بزيارة https://wiki.osdev.org/SYSENTER لمزيد من المعلومات.
  2. ^ تشمل الأمثلة SIGINT و SIGSEGV و SIGBUS .
  3. ^ غالبًا في شكل شريحة DMA للأنظمة الأصغر وقنوات الإدخال/الإخراج للأنظمة الأكبر
  4. ^ تحتوي اللوحات الأم الحديثة على وحدة تحكم DMA. بالإضافة إلى ذلك، قد يحتوي الجهاز أيضًا على وحدة تحكم DMA. قم بزيارة بروتوكول SCSI RDMA .
  5. ^ هناك عدة أسباب قد تؤدي إلى عدم إمكانية الوصول إلى الذاكرة
    • قد يكون العنوان خارج النطاق
    • قد يشير العنوان إلى صفحة أو جزء تم نقله إلى متجر احتياطي
    • قد يشير العنوان إلى الذاكرة التي تم تقييد الوصول إليها بسبب، على سبيل المثال، المفتاح أو الحلقة .

مراجع

  1. ^ ستالينجز (2005). أنظمة التشغيل والداخلية ومبادئ التصميم . بيرسون: برنتيس هول. ص 6.
  2. ^ Dhotre, IA (2009). أنظمة التشغيل . المنشورات الفنية. ص 1.
  3. ^ "حصة سوق أنظمة تشغيل سطح المكتب في جميع أنحاء العالم". StatCounter Global Stats . مؤرشف من الأصل في 2 أكتوبر 2023. تم الاسترجاع في 3 أكتوبر 2023 .
  4. ^ "حصة سوق أنظمة تشغيل الأجهزة المحمولة واللوحية في جميع أنحاء العالم". إحصائيات StatCounter العالمية . تم الاسترجاع في 2 أكتوبر 2023 .
  5. ^ "VII. Special-Purpose Systems - Operating System Concepts, Seventh Edition [Book]". www.oreilly.com . مؤرشف من الأصل في 13 يونيو 2021 . تم الاسترجاع 8 فبراير 2021 .
  6. ^ "أنظمة التشغيل ذات الأغراض الخاصة - معهد جامعة RWTH AACHEN لأتمتة أنظمة الطاقة المعقدة - الإنجليزية". www.acs.eonerc.rwth-aachen.de . مؤرشف من الأصل في 14 يونيو 2021 . تم الاسترجاع 8 فبراير 2021 .
  7. ^ من Tanenbaum & Bos 2023، ص 4.
  8. ^ أندرسون وداهلين 2014، ص. 6.
  9. ^ أب سيلبيرشاتز وآخرون. 2018، ص. 6.
  10. ^ اي بي سي أندرسون وداهلين 2014، ص. 7.
  11. ^ أندرسون وداهلين 2014، ص 9-10.
  12. ^ تانينباوم وبوس 2023، ص 6-7.
  13. ^ أندرسون وداهلين 2014، ص. 10.
  14. ^ تانينباوم وبوس 2023، ص 5.
  15. ^ اي بي سي أندرسون وداهلين 2014، ص. 11.
  16. ^ أندرسون وداهلين 2014، ص 7، 9، 13.
  17. ^ أندرسون وداهلين 2014، ص 12-13.
  18. ^ تانينباوم وبوس 2023، ص 557.
  19. ^ تانينباوم وبوس 2023، ص 558.
  20. ^ من تانينباوم وبوس 2023، ص 565.
  21. ^ تانينباوم وبوس 2023، ص 562.
  22. ^ تانينباوم وبوس 2023، ص 563.
  23. ^ تانينباوم وبوس 2023، ص 569.
  24. ^ تانينباوم وبوس 2023، ص 571.
  25. ^ تانينباوم وبوس 2023، ص 579.
  26. ^ تانينباوم وبوس 2023، ص 581.
  27. ^ تانينباوم وبوس 2023، ص 37-38.
  28. ^ تانينباوم وبوس 2023، ص 39.
  29. ^ أ ب ج د تانينباوم وبوس 2023، ص 38.
  30. ^ سيلبيرشاتز وآخرون. 2018، ص 701.
  31. ^ سيلبيرشاتز وآخرون. 2018، ص 705.
  32. ^ أندرسون وداهلين 2014، ص. 12.
  33. ^ Madhavapeddy, Anil; Scott, David J (نوفمبر 2013). "Unikernels: Rise of the Virtual Library Operating System: What if all the software layers in a virtual apparatus were compiled within the same safe, high-level language framework؟". Queue . المجلد 11، العدد 11. نيويورك، نيويورك، الولايات المتحدة الأمريكية: ACM. ص 30-44. doi :10.1145/2557963.2566628. ISSN  1542-7730 . تم الاسترجاع في 7 أغسطس 2024 .
  34. ^ "عملية البناء - Unikraft". مؤرشف من الأصل في 22 أبريل 2024 . تم الاسترجاع 8 أغسطس 2024 .
  35. ^ "اترك نظام التشغيل الخاص بك في المنزل: صعود أنظمة تشغيل المكتبات". ACM SIGARCH . 14 سبتمبر 2017. مؤرشف من الأصل في 1 مارس 2024. تم الاسترجاع 7 أغسطس 2024 .
  36. ^ Soares, Livio Baldini; Stumm, Michael (4 October 2010). FlexSC: Flexible System Call Scheduling with Exception-Less System Calls. OSDI '10, 9th USENIX Symposium on Operating System Design and Implementation. USENIX . تم الاسترجاع في 9 أغسطس 2024 . ص. 2: يؤثر التنفيذ المتزامن لمكالمات النظام سلبًا على أداء أحمال العمل المكثفة للنظام، سواء من حيث التكاليف المباشرة لتبديل الوضع، والأكثر إثارة للاهتمام، من حيث التلوث غير المباشر لهياكل المعالج المهمة التي تؤثر على أداء وضع المستخدم ووضع النواة. يمكن رؤية مثال محفز يقيس تأثير تلوث مكالمات النظام على أداء التطبيق في الشكل 1. يصور تعليمات وضع المستخدم لكل دورة (يتم تجاهل دورات النواة والتعليمات) لأحد معايير SPEC CPU 2006 (Xalan) مباشرة قبل وبعد مكالمة النظام. يحدث انخفاض كبير في التعليمات لكل دورة (IPC) بسبب نداء النظام، ويستغرق الأمر ما يصل إلى 14000 دورة تنفيذ قبل أن يعود IPC لهذا التطبيق إلى مستواه السابق. وكما سنوضح، فإن هذا التدهور في الأداء يرجع بشكل أساسي إلى التداخل الذي تسببه النواة في هياكل المعالج الرئيسية.pwrite
  37. ^ من تانينباوم وبوس 2023، ص 8.
  38. ^ Arpaci-Dusseau, Remzi; Arpaci-Dusseau, Andrea (2015). Operating Systems: Three Easy Pieces. مؤرشف من الأصل في 25 يوليو 2016 . تم الاسترجاع في 25 يوليو 2016 .
  39. ^ تانينباوم وبوس 2023، ص 10.
  40. ^ تانينباوم وبوس 2023، ص 11-12.
  41. ^ تانينباوم وبوس 2023، ص 13-14.
  42. ^ تانينباوم وبوس 2023، ص 14-15.
  43. ^ تانينباوم وبوس 2023، ص 15.
  44. ^ تانينباوم وبوس 2023، ص 15-16.
  45. ^ من تانينباوم وبوس 2023، ص 16.
  46. ^ تانينباوم وبوس 2023، ص 17.
  47. ^ تانينباوم وبوس 2023، ص 18.
  48. ^ تانينباوم وبوس 2023، ص 19-20.
  49. ^ أندرسون وداهلين 2014، ص 39-40.
  50. ^ تانينباوم وبوس 2023، ص 2.
  51. ^ أندرسون وداهلين 2014، ص 41 ، 45.
  52. ^ أندرسون وداهلين 2014، ص 52-53.
  53. ^ ab Kerrisk, Michael (2010). واجهة برمجة لينكس . No Starch Press. ص. 388. ISBN 978-1-59327-220-3الإشارة هي إشعار لعملية بوقوع حدث ما. توصف الإشارات أحيانًا بأنها مقاطعات برمجية.
  54. ^ هايد، راندال (1996). "الفصل السابع عشر: المقاطعات والفخاخ والاستثناءات (الجزء الأول)". فن برمجة لغة التجميع . لا ستارش برس. مؤرشف من الأصل في 22 ديسمبر 2021. تم الاسترجاع في 22 ديسمبر 2021. مفهوم المقاطعة هو شيء توسع نطاقه على مر السنين . لقد أضافت عائلة 80x86 إلى الارتباك المحيط بالمقاطعات من خلال تقديم تعليمة int (مقاطعة البرنامج). في الواقع، استخدم مصنعون مختلفون مصطلحات مثل الاستثناءات والأخطاء والإجهاض والفخاخ والمقاطعات لوصف الظواهر التي يناقشها هذا الفصل. لسوء الحظ، لا يوجد إجماع واضح بشأن المعنى الدقيق لهذه المصطلحات. يتبنى مؤلفون مختلفون مصطلحات مختلفة لاستخدامهم الخاص.
  55. ^ تانينباوم، أندرو س. (1990). التنظيم الحاسوبي المنظم، الطبعة الثالثة. برنتيس هول. ص. 308. ISBN 978-0-13-854662-5مثل الفخ ، يوقف المقاطعة البرنامج الجاري تشغيله وينقل التحكم إلى معالج المقاطعة، الذي يقوم ببعض الإجراءات المناسبة. عند الانتهاء، يعيد معالج المقاطعة التحكم إلى البرنامج الذي تمت مقاطعته.
  56. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition . Addison-Wesley. p. 32. ISBN 978-0-201-50480-4عندما يحدث انقطاع (أو فخ)، تنقل الأجهزة التحكم إلى نظام التشغيل. أولاً، يحافظ نظام التشغيل على حالة وحدة المعالجة المركزية من خلال تخزين السجلات وعداد البرنامج. ثم يحدد نوع الانقطاع الذي حدث. لكل نوع من أنواع الانقطاع، تحدد أجزاء منفصلة من التعليمات البرمجية في نظام التشغيل الإجراء الذي يجب اتخاذه.
  57. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition . Addison-Wesley. p. 105. ISBN 978-0-201-50480-4يتطلب تحويل وحدة المعالجة المركزية إلى عملية أخرى حفظ حالة العملية القديمة وتحميل الحالة المحفوظة للعملية الجديدة. تُعرف هذه المهمة باسم تبديل السياق.
  58. ^ abcde Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition . Addison-Wesley. p. 31. ISBN 978-0-201-50480-4.
  59. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition . Addison-Wesley. p. 30. ISBN 978-0-201-50480-4يمكن للأجهزة أن تتسبب في حدوث مقاطعة في أي وقت عن طريق إرسال إشارة إلى وحدة المعالجة المركزية، عادةً عن طريق ناقل النظام.
  60. ^ Kerrisk, Michael (2010). واجهة برمجة لينكس . No Starch Press. ص. 388. ISBN 978-1-59327-220-3تتشابه الإشارات مع مقاطعات الأجهزة من حيث أنها تقاطع التدفق الطبيعي لتنفيذ البرنامج؛ وفي معظم الحالات، ليس من الممكن التنبؤ بدقة بموعد وصول الإشارة.
  61. ^ Kerrisk, Michael (2010). واجهة برمجة لينكس . No Starch Press. ص. 388. ISBN 978-1-59327-220-3من بين أنواع الأحداث التي تتسبب في قيام النواة بإنشاء إشارة لعملية ما ما يلي: حدث حدث برمجي. على سبيل المثال، ... تم تجاوز حد وقت وحدة المعالجة المركزية للعملية[.]
  62. ^ أ ب ج د كيريسكي، مايكل (2010). واجهة برمجة لينكس . دار نشر نو ستارش. ص 388. رقم ISBN 978-1-59327-220-3.
  63. ^ "دليل مطوري برامج معماريات Intel® 64 وIA-32" (PDF) . شركة Intel . سبتمبر 2016. ص. 610. مؤرشف من الأصل (PDF) في 23 مارس 2022. تم الاسترجاع في 5 مايو 2022 .
  64. ^ abc Bach, Maurice J. (1986). تصميم نظام التشغيل UNIX . برنتيس هول. ص 200. ISBN 0-13-201799-7.
  65. ^ Kerrisk, Michael (2010). واجهة برمجة لينكس . No Starch Press. ص. 400. ISBN 978-1-59327-220-3.
  66. ^ ab Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 308. ISBN 978-0-13-854662-5.
  67. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition . Addison-Wesley. p. 182. ISBN 978-0-201-50480-4.
  68. ^ هافيلاند، كيث؛ سلامة، بن (1987). برمجة نظام يونكس . شركة أديسون ويسلي للنشر. ص. 153. رقم ISBN 0-201-12919-1.
  69. ^ هافيلاند، كيث؛ سلامة، بن (1987). برمجة نظام يونكس . شركة أديسون ويسلي للنشر. ص. 148. رقم ISBN 0-201-12919-1.
  70. ^ ab Haviland, Keith; Salama, Ben (1987). UNIX System Programming . Addison-Wesley Publishing Company. p. 149. ISBN 0-201-12919-1.
  71. ^ تانينباوم، أندرو س. (1990). التنظيم الحاسوبي المنظم، الطبعة الثالثة. برنتيس هول. ص 292. ISBN 978-0-13-854662-5.
  72. ^ IBM (سبتمبر 1968)، "Main Storage" (PDF) ، مبادئ تشغيل نظام IBM/360 (PDF) ، الطبعة الثامنة، ص. 7، مؤرشف (PDF) من الأصل في 19 مارس 2022 ، تم استرجاعه في 13 أبريل 2022
  73. ^ ab Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 294. ISBN  978-0-13-854662-5.
  74. ^ "Program Interrupt Controller (PIC)" (PDF) . دليل المستخدم - PDP-7 (PDF) . شركة المعدات الرقمية . 1965. ص. 48. F-75. مؤرشف من الأصل (PDF) في 10 مايو 2022. تم الاسترجاع في 20 أبريل 2022 .
  75. ^ دليل أنظمة الإدخال والإخراج PDP-1 (PDF) . شركة Digital Equipment Corporation . ص 19-20. مؤرشف من الأصل (PDF) في 25 يناير 2019 . تم الاسترجاع في 16 أغسطس 2022 .
  76. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition . Addison-Wesley. p. 32. ISBN 978-0-201-50480-4.
  77. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition . Addison-Wesley. p. 34. ISBN 978-0-201-50480-4.
  78. ^ ab Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 295. ISBN 978-0-13-854662-5.
  79. ^ ab Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 309. ISBN 978-0-13-854662-5.
  80. ^ تانينباوم، أندرو س. (1990). التنظيم الحاسوبي المنظم، الطبعة الثالثة. برنتيس هول. ص 310. ISBN 978-0-13-854662-5.
  81. ^ ستالينجز، ويليام (2008). تنظيم الحاسوب وبنيته . نيودلهي: برنتيس هول أوف إنديا برايفت ليميتد. ص. 267. ISBN 978-81-203-2962-1.
  82. ^ أندرسون وداهلين 2014، ص. 129.
  83. ^ سيلبيرشاتز وآخرون. 2018، ص. 159.
  84. ^ أندرسون وداهلين 2014، ص. 130.
  85. ^ أندرسون وداهلين 2014، ص. 131.
  86. ^ أندرسون وداهلين 2014، ص 157 ، 159.
  87. ^ أندرسون وداهلين 2014، ص. 139.
  88. ^ سيلبيرشاتز وآخرون. 2018، ص. 160.
  89. ^ أندرسون وداهلين 2014، ص. 183.
  90. ^ سيلبيرشاتز وآخرون. 2018، ص. 162.
  91. ^ سيلبيرشاتز وآخرون. 2018، ص 162 – 163.
  92. ^ سيلبيرشاتز وآخرون. 2018، ص. 164.
  93. ^ أندرسون وداهلين 2014، ص 492 ، 517.
  94. ^ تانينباوم وبوس 2023، ص 259-260.
  95. ^ أندرسون وداهلين 2014، ص 517 ، 530.
  96. ^ تانينباوم وبوس 2023، ص 260.
  97. ^ أندرسون وداهلين 2014، ص 492-493.
  98. ^ أندرسون وداهلين 2014، ص. 496.
  99. ^ أندرسون وداهلين 2014، ص 496-497.
  100. ^ تانينباوم وبوس 2023، ص 274-275.
  101. ^ أندرسون وداهلين 2014، ص 502-504.
  102. ^ أندرسون وداهلين 2014، ص. 507.
  103. ^ أندرسون وداهلين 2014، ص. 508.
  104. ^ تانينباوم وبوس 2023، ص 359.
  105. ^ أندرسون وداهلين 2014، ص. 545.
  106. ^ أب أندرسون وداهلين 2014، ص. 546.
  107. ^ أندرسون وداهلين 2014، ص. 547.
  108. ^ أندرسون وداهلين 2014، ص 589 ، 591.
  109. ^ أندرسون وداهلين 2014، ص 591-592.
  110. ^ تانينباوم وبوس 2023، ص 385-386.
  111. ^ أب أندرسون وداهلين 2014، ص. 592.
  112. ^ تانينباوم وبوس 2023، ص 605-606.
  113. ^ تانينباوم وبوس 2023، ص 608.
  114. ^ تانينباوم وبوس 2023، ص 609.
  115. ^ تانينباوم وبوس 2023، ص 609-610.
  116. ^ من تانينباوم وبوس 2023، ص 612.
  117. ^ تانينباوم وبوس 2023، ص 648، 657.
  118. ^ تانينباوم وبوس 2023، ص 668-669، 674.
  119. ^ تانينباوم وبوس 2023، ص 679-680.
  120. ^ تانينباوم وبوس 2023، ص 605، 617-618.
  121. ^ تانينباوم وبوس 2023، ص 681-682.
  122. ^ تانينباوم وبوس 2023، ص 683.
  123. ^ تانينباوم وبوس 2023، ص 685.
  124. ^ تانينباوم وبوس 2023، ص 689.
  125. ^ ريشيت وبوعينية 2023، ص. 92.
  126. ^ ريشيت وبوعينية 2023، ص 92-93.
  127. ^ بيرنتسو وستراندين ووارج 2017، ص 130-131.
  128. ^ تانينباوم وبوس 2023، ص 611.
  129. ^ تانينباوم وبوس 2023، ص 396، 402.
  130. ^ تانينباوم وبوس 2023، ص 395، 408.
  131. ^ تانينباوم وبوس 2023، ص 402.
  132. ^ هولويردا، توم (20 ديسمبر 2009). "نظام التشغيل الخاص بي ليس مجرد هواية مقارنة بنظام التشغيل الخاص بك". أخبار أنظمة التشغيل . تم الاسترجاع في 4 يونيو 2024 .
  133. ^ سيلبيرشاتز وآخرون. 2018، ص 779-780.
  134. ^ تانينباوم وبوس 2023، ص 713-714.
  135. ^ أب سيلبيرشاتز وآخرون. 2018، ص. 780.
  136. ^ فوغان نيكولز، ستيفن (2022). "لينوس تورفالدس يستعد لنقل نواة لينكس إلى لغة سي الحديثة". ZDNET . تم الاسترجاع في 7 فبراير 2024 .
  137. ^ سيلبيرشاتز وآخرون. 2018، ص. 781.
  138. ^ تانينباوم وبوس 2023، ص 715-716.
  139. ^ تانينباوم وبوس 2023، ص 793-794.
  140. ^ تانينباوم وبوس 2023، ص 793.
  141. ^ تانينباوم وبوس 2023، ص 1021-1022.
  142. ^ تانينباوم وبوس 2023، ص 871.
  143. ^ سيلبيرشاتز وآخرون. 2018، ص. 826.
  144. ^ من تانينباوم وبوس 2023، ص 1035.
  145. ^ من تانينباوم وبوس 2023، ص 1036.
  146. ^ سيلبيرشاتز وآخرون. 2018، ص. 821.
  147. ^ سيلبيرشاتز وآخرون. 2018، ص. 827.

قراءة إضافية

  • أندرسون، توماس ؛ داهلين، مايكل (2014). أنظمة التشغيل: المبادئ والممارسة . كتب متكررة. رقم ISBN 978-0-9856735-2-9.
  • أوسلاندر، ما؛ لاركين، دي سي؛ شير، ألاباما (سبتمبر 1981). "تطور نظام التشغيل MVS". مجلة آي بي إم للأبحاث والتطوير . 25 (5): 471-482. doi :10.1147/rd.255.0471. ISSN  0018-8646.
  • بيرنتسون، بيتر ساينيو؛ ستراندين، لارس؛ وارج، فريدريك (2017). تقييم أنظمة التشغيل مفتوحة المصدر للتطبيقات الحرجة للسلامة . دار سبرينغر للنشر الدولي. ص 117-132. رقم ISBN 978-3-319-65948-0.
  • ديتل، هارفي م.؛ ديتل، بول؛ تشوفنيس، ديفيد (25 ديسمبر 2015). أنظمة التشغيل . بيرسون/برنتس هول. رقم ISBN 978-0-13-092641-8.
  • بيك، لوبومور ف.؛ شو، آلان س. (2003). أنظمة التشغيل . بيرسون: برنتيس هول .
  • Silberschatz, Avi; Galvin, Peter; Gagne, Greg (2008). مفاهيم أنظمة التشغيل . John Wiley & Sons . ISBN 978-0-470-12872-5.
  • أوبراين، جيه إيه، وماراكاس، جي إم (2011). أنظمة المعلومات الإدارية . الطبعة العاشرة. ماكجرو هيل إروين.
  • ليفا، ألبرتو؛ ماجيو، مارتينا؛ بابادوبولوس، أليساندرو فيتوريو؛ تيرانيو ، فيديريكو (2013). تصميم نظام التشغيل القائم على التحكم . آي إي تي . رقم ISBN 978-1-84919-609-3.
  • ريشيت، جان لوب؛ بوعينايا، وفاء (2023). "فهم وإدارة نقاط الضعف المعقدة في البرامج: تحليل تجريبي لأنظمة التشغيل مفتوحة المصدر". أنظمة المعلومات والإدارة . 28 (1): 87-114. doi :10.54695/sim.28.1.0087 (غير نشط 1 نوفمبر 2024).{{cite journal}}:CS1 maint: DOI غير نشط اعتبارًا من نوفمبر 2024 ( الرابط )
  • Silberschatz, Abraham; Galvin, Peter B.; Gagne, Greg (2018). Operating System Concepts (10 ed.). Wiley. ISBN 978-1-119-32091-3.
  • تانينباوم، أندرو س.؛ بوس، هربرت (2023). أنظمة التشغيل الحديثة، الطبعة العالمية . بيرسون للتعليم العالي. رقم ISBN 978-1-292-72789-9.
  • تاريخ Multics وتاريخ أنظمة التشغيل
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=نظام_التشغيل&oldid=1255660549"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate