نظام التشغيل

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

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

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

اعتبارًا من نوفمبر 2025 يُعدّ نظام أندرويد نظام التشغيل الأكثر شيوعًا، بحصة سوقية تبلغ 38%، يليه نظام مايكروسوفت ويندوز بنسبة 33%، ثم نظاما iOS و iPadOS بنسبة 15%، ثم نظام macOS بنسبة 4%، وأخيرًا نظام لينكس بنسبة 1%. تُستخدم أنظمة أندرويد و iOS و iPadOS للأجهزة المحمولة كالهواتف الذكية، بينما تُستخدم أنظمة ويندوز و macOS ولينكس لأجهزة الكمبيوتر المكتبية. [ 4 ] وتُهيمن توزيعات لينكس على قطاعي الخوادم والحوسبة الفائقة. كما توجد فئات أخرى متخصصة من أنظمة التشغيل (أنظمة تشغيل ذات أغراض خاصة)، [ 5 ] [ 6 ] مثل الأنظمة المدمجة وأنظمة الوقت الحقيقي، والتي تُستخدم في العديد من التطبيقات. وتوجد أيضًا أنظمة تشغيل تُركز على الأمان . تتميز بعض أنظمة التشغيل بمتطلبات نظام منخفضة (مثل توزيعات لينكس الخفيفة )، بينما قد تتطلب أنظمة أخرى متطلبات نظام أعلى.

تتطلب بعض أنظمة التشغيل التثبيت أو قد تأتي مثبتة مسبقًا مع أجهزة الكمبيوتر المشتراة ( تثبيت OEM )، في حين أن البعض الآخر قد يعمل مباشرة من الوسائط (مثل القرص المضغوط الحي ) أو ذاكرة الفلاش (مثل قرص USB حي من عصا 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 ] ولكن الحواسيب المركزية كانت لا تزال تحتوي على أنظمة تشغيل بدائية مثل نظام مراقبة فورتران (FMS) و IBSYS . [ 39 ] في الستينيات، قدمت شركة IBM أول سلسلة من الحواسيب المتوافقة ( System/360 ). جميعها كانت تعمل بنظام التشغيل نفسه - OS/360 - الذي كان يتألف من ملايين أسطر لغة التجميع التي احتوت على آلاف الأخطاء . كان نظام التشغيل OS/360 أول نظام تشغيل شائع يدعم تعدد البرامج ، بحيث إذا كانت إحدى المهام معلقة في انتظار اكتمال عملية إدخال/إخراج ، يمكن لمهام أخرى استخدام وحدة المعالجة المركزية. ويتطلب الاحتفاظ بمهام متعددة في الذاكرة تقسيم الذاكرة ووضع ضمانات لمنع إحدى المهام من الوصول إلى الذاكرة المخصصة لمهام أخرى. [ 40 ]

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

الحواسيب الصغيرة

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

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

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

في البداية، هيمن نظام التشغيل سيمبيان على الأجهزة المحمولة ، قبل أن يتفوق عليه نظام التشغيل بلاك بيري (الذي طُرح عام 2002) ونظام iOS لأجهزة آيفون (منذ عام 2007). لاحقًا، أصبح نظام التشغيل أندرويد مفتوح المصدر (الذي طُرح عام 2008)، بنواة لينكس ومكتبة سي ( بيونيك ) المبنية جزئيًا على شفرة بي إس دي، هو الأكثر شيوعًا. [ 48 ]

عناصر

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

النواة

النواة هي جزء من نظام التشغيل يوفر الحماية بين التطبيقات المختلفة والمستخدمين. هذه الحماية أساسية لتحسين الموثوقية من خلال حصر الأخطاء في برنامج واحد، بالإضافة إلى تعزيز الأمان من خلال الحد من قدرة البرامج الضارة وحماية البيانات الخاصة، وضمان عدم احتكار أي برنامج لموارد الحاسوب. [ 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 هو مُعرِّف العملية المُستقبِلة. [ b ]signum هو رقم الإشارة ( بصيغة مُختصرة ) المراد إرسالها. (تم اختيار الاسم المُزعج لـ [b] لأن التطبيقات الأولى كانت تُنهي العملية فقط.) [ 65 ]kill

في أنظمة التشغيل الشبيهة بنظام يونكس، تُعلم الإشارات العمليات بحدوث أحداث غير متزامنة. [ 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 ] عند قبول طلب المقاطعة، سيقوم نظام التشغيل بما يلي:

  • قم بالوصول إلى جدول حالة الجهاز.
  • استخرج كتلة التحكم في العملية.
  • قم بالتبديل إلى سياق عملية الكتابة.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

توفر الذاكرة الافتراضية للمبرمج أو المستخدم تصورًا بوجود كمية أكبر بكثير من ذاكرة الوصول العشوائي (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 ] أما برامج تشغيل الأجهزة فهي برامج خاصة بكل جهاز إدخال/إخراج ، تُمكّن نظام التشغيل من العمل دون تعديل على مختلف الأجهزة. [ 103 ] [ 104 ]

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

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

التواصل

تتضمن أنظمة التشغيل الحديثة عادةً حزمة بروتوكولات الشبكة ، مثل حزمة بروتوكولات TCP/IP .

حماية

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

اعتبارًا من أكتوبر 2025 تُظهر مقاييس حركة مرور الإنترنت أن نظام أندرويد هو نظام التشغيل الأكثر شيوعًا للاتصال بالإنترنت ، بنسبة 38%، يليه نظام مايكروسوفت ويندوز بنسبة 31%، ثم نظاما iOS و iPadOS بنسبة 15%، ثم نظام macOS بنسبة 7%، وأخيرًا نظام لينكس بنسبة 1%. أندرويد و iOS و iPadOS هي أنظمة تشغيل للأجهزة المحمولة ، بينما ويندوز و macOS ولينكس هي أنظمة تشغيل لأجهزة الكمبيوتر المكتبية. [ 4 ]

لينكس

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

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

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

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

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

وصف الأمان لملف يكون للقراءة فقط بشكل افتراضي، تم تحديد عدم الوصول لإلفيس، والوصول للقراءة/الكتابة لكاثي، والوصول الكامل لإيدا، مالكة الملف [ 141 ]

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

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

انظر أيضاً

ملحوظات

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

مراجع

  1. جيا، شيان؛ وانغ، شينبو؛ سونغ، مينغلي؛ تشين، غانغ (15 نوفمبر 2024). "نظام تشغيل محوره الوكيل - مراجعة شاملة وتوقعات لأنظمة التشغيل". arXiv : 2411.17710 [ cs.DC ].
  2. ستالينغز (2005). أنظمة التشغيل، المكونات الداخلية ومبادئ التصميم . بيرسون: برنتيس هول. ص 6. 
  3. دوتري، آي إيه (2009). أنظمة التشغيل . منشورات تقنية. ص 1. 
  4. 1 2 "حصة سوق أنظمة التشغيل عالميًا" . إحصائيات StatCounter العالمية . تم الاطلاع عليه في 20 ديسمبر 2024 .
  5. سيلبرشاتز، أبراهام؛ جالفين، بيتر ب.؛ غاني، جريج (2005). "السابع. أنظمة الأغراض الخاصة" . مفاهيم أنظمة التشغيل ( الطبعة السابعة). وايلي. ISBN  978-0-471-69466-3أُرشف من المصدر الأصلي بتاريخ 13 يونيو 2021. تم الاطلاع عليه بتاريخ 8 فبراير 2021 .
  6. "أنظمة التشغيل ذات الأغراض الخاصة - جامعة آر دبليو تي إتش آخن، معهد أتمتة أنظمة الطاقة المعقدة - الإنجليزية" . www.acs.eonerc.rwth-aachen.de . مؤرشف من الأصل بتاريخ 14 يونيو 2021. تم الاطلاع عليه بتاريخ 8 فبراير 2021 .
  7. 1 2 تانينباوم وبوس 2023 ، ص. 4.
  8. ^ أندرسون وداهلين 2014 ، ص. 6.
  9. 1 2 سيلبيرشاتز وآخرون. 2018 ، ص. 6.
  10. 1 2 3 أندرسون وداهلين 2014 ، ص. 7.
  11. ^ أندرسون وداهلين 2014 ، ص 9-10.
  12. تانينباوم وبوس 2023 ، ص 6-7.
  13. ^ أندرسون وداهلين 2014 ، ص. 10.
  14. تانينباوم وبوس 2023 ، ص 5.
  15. 1 2 3 أندرسون وداهلين 2014 ، ص. 11.
  16. ^ أندرسون وداهلين 2014 ، ص 7، 9، 13.
  17. ^ أندرسون وداهلين 2014 ، ص 12-13.
  18. تانينباوم وبوس 2023 ، ص 557.
  19. تانينباوم وبوس 2023 ، ص 558.
  20. 1 2 تانينباوم وبوس 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. 1 2 3 4 تانينباوم وبوس 2023 ، ص 38.
  30. ^ سيلبيرشاتز وآخرون. 2018 ، ص 701.
  31. ^ سيلبيرشاتز وآخرون. 2018 ، ص 705.
  32. ^ أندرسون وداهلين 2014 ، ص. 12.
  33. مادهافابيدي، أنيل؛ سكوت، ديفيد جيه (نوفمبر 2013). "أُنواة أحادية: صعود نظام تشغيل المكتبة الافتراضية: ماذا لو تم تجميع جميع طبقات البرمجيات في جهاز افتراضي ضمن إطار لغة آمن وعالي المستوى؟" . مجلة ACM Queue . المجلد 11، العدد 11. نيويورك، نيويورك، الولايات المتحدة الأمريكية: ACM. الصفحات 30-44 . doi : 10.1145/2557963.2566628 . ISSN 1542-7730 . تاريخ الاسترجاع: 7 أغسطس 2024 .    
  34. "عملية البناء - يونيكرافت" . مؤرشف من الأصل بتاريخ 22 أبريل 2024. تم الاطلاع عليه بتاريخ 8 أغسطس 2024 .
  35. "اترك نظام التشغيل الخاص بك في المنزل: صعود أنظمة تشغيل المكتبات" . ACM SIGARCH . 14 سبتمبر 2017. مؤرشف من الأصل في 1 مارس 2024. تم الاطلاع عليه في 7 أغسطس 2024 .
  36. سواريس، ليفيو بالديني؛ ستوم، مايكل (4 أكتوبر 2010). FlexSC: جدولة مرنة لاستدعاءات النظام مع استدعاءات نظام خالية من الاستثناءات . OSDI '10، ندوة USENIX التاسعة حول تصميم وتنفيذ أنظمة التشغيل . USENIX . تم الاطلاع عليه في 9 أغسطس 2024. ص 2: يؤثر التنفيذ المتزامن لاستدعاءات النظام سلبًا على أداء أحمال العمل المكثفة للنظام، سواء من حيث التكاليف المباشرة لتبديل الوضع، والأهم من ذلك، من حيث التلوث غير المباشر لهياكل المعالج المهمة، مما يؤثر على أداء كل من وضع المستخدم ووضع النواة. يمكن رؤية مثال توضيحي يُحدد كميًا تأثير تلوث استدعاءات النظام على أداء التطبيق في الشكل 1. يوضح الشكل تعليمات وضع المستخدم لكل دورة (مع تجاهل دورات وتعليمات النواة) لأحد معايير SPEC CPU 2006 (Xalan) مباشرة قبل وبعد استدعاء النظام. يحدث انخفاض ملحوظ في عدد التعليمات لكل دورة (IPC) نتيجةً لاستدعاء النظام، ويستغرق الأمر ما يصل إلى 14000 دورة تنفيذ قبل أن يعود معدل IPC لهذا التطبيق إلى مستواه السابق. وكما سنوضح، فإن هذا التدهور في الأداء يعود أساسًا إلى تداخل نواة النظام مع هياكل المعالج الرئيسية. pwrite
  37. 1 2 تانينباوم وبوس 2023 ، ص. 8.
  38. أرباتشي-دوسو، رمزي؛ أرباتشي-دوسو، أندريا (2015). أنظمة التشغيل: ثلاث خطوات سهلة . مؤرشف من الأصل في 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. 1 2 تانينباوم وبوس 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. 1 2 كيريسك، مايكل (2010). واجهة برمجة لينكس . دار نشر نو ستارش. ص 388. ISBN  978-1-59327-220-3الإشارة هي إشعار يُرسل إلى عملية ما يفيد بوقوع حدث ما. وتُوصف الإشارات أحيانًا بأنها مقاطعات برمجية .
  54. هايد، راندال (1996). "الفصل السابع عشر: المقاطعات، والفخاخ، والاستثناءات (الجزء 1)" . فن برمجة لغة التجميع . دار نشر نو ستارش. مؤرشف من الأصل في 22 ديسمبر 2021. تم الاسترجاع في 22 ديسمبر 2021. لقد توسع مفهوم المقاطعة على مر السنين . وقد زادت عائلة معالجات 80x86 من الالتباس المحيط بالمقاطعات من خلال تقديم تعليمة int (مقاطعة البرمجيات). في الواقع، استخدمت شركات تصنيع مختلفة مصطلحات مثل الاستثناءات، والأعطال، والإجهاض، والفخاخ، والمقاطعات لوصف الظواهر التي يناقشها هذا الفصل. لسوء الحظ، لا يوجد إجماع واضح على المعنى الدقيق لهذه المصطلحات. يتبنى مؤلفون مختلفون مصطلحات مختلفة لاستخدامهم الخاص.
  55. ↑ تانينباوم ، أندرو س. (1990). تنظيم الحاسوب الهيكلي، الطبعة الثالثة . برنتيس هول. ص 308. ISBN  978-0-13-854662-5وكما هو الحال مع المصيدة، يقوم المقاطعة بإيقاف البرنامج قيد التشغيل ونقل التحكم إلى معالج المقاطعة، الذي يقوم بدوره بتنفيذ الإجراء المناسب. وعند الانتهاء، يعيد معالج المقاطعة التحكم إلى البرنامج الذي تمت مقاطعته .
  56. سيلبرشاتز، أبراهام (1994). مفاهيم أنظمة التشغيل، الطبعة الرابعة . أديسون-ويسلي. ص 32. ISBN  978-0-201-50480-4عند حدوث مقاطعة (أو خطأ) ، ينقل الجهاز التحكم إلى نظام التشغيل. أولًا، يحفظ نظام التشغيل حالة وحدة المعالجة المركزية بتخزين السجلات وعداد البرنامج. ثم يحدد نوع المقاطعة التي حدثت. ولكل نوع من أنواع المقاطعات، تحدد أجزاء منفصلة من التعليمات البرمجية في نظام التشغيل الإجراء المطلوب اتخاذه.
  57. سيلبرشاتز، أبراهام (1994). مفاهيم أنظمة التشغيل، الطبعة الرابعة . أديسون-ويسلي. ص 105. ISBN  978-0-201-50480-4يتطلب تحويل وحدة المعالجة المركزية إلى عملية أخرى حفظ حالة العملية القديمة وتحميل الحالة المحفوظة للعملية الجديدة. تُعرف هذه العملية باسم تبديل السياق.
  58. 1 2 3 4 5 سيلبرشاتز، أبراهام (1994). مفاهيم أنظمة التشغيل، الطبعة الرابعة . أديسون-ويسلي. ص 31. ISBN  978-0-201-50480-4.
  59. سيلبرشاتز، أبراهام (1994). مفاهيم أنظمة التشغيل، الطبعة الرابعة . أديسون-ويسلي. ص 30. ISBN  978-0-201-50480-4قد تقوم الأجهزة بتشغيل مقاطعة في أي وقت عن طريق إرسال إشارة إلى وحدة المعالجة المركزية، وعادة ما يكون ذلك عن طريق ناقل النظام.
  60. كيريسك، مايكل (2010). واجهة برمجة لينكس . دار نشر نو ستارش. ص 388. ISBN  978-1-59327-220-3. الإشارات تشبه المقاطعات المادية من حيث أنها تقاطع التدفق الطبيعي لتنفيذ البرنامج؛ في معظم الحالات، لا يمكن التنبؤ بالضبط بموعد وصول الإشارة.
  61. كيريسك، مايكل (2010). واجهة برمجة لينكس . دار نشر نو ستارش. ص 388. ISBN  978-1-59327-220-3من بين أنواع الأحداث التي تدفع النواة إلى توليد إشارة لعملية ما، ما يلي: حدث برمجي. على سبيل المثال، ... تم تجاوز الحد الزمني لوحدة المعالجة المركزية للعملية.
  62. 1 2 3 4 5 كيريسك، مايكل (2010). واجهة برمجة لينكس . دار نشر نو ستارش. ص 388. ISBN  978-1-59327-220-3.
  63. "دليل مطوري البرامج لبنيتي Intel® 64 و IA-32" (ملف PDF) . شركة إنتل . سبتمبر 2016. صفحة 610. مؤرشف (ملف PDF) من الأصل في 23 مارس 2022. تم الاطلاع عليه في 5 مايو 2022 . 
  64. 1 2 3 باخ، موريس ج. (1986). تصميم نظام التشغيل يونكس . برنتيس هول. ص 200. ISBN  0-13-201799-7.
  65. كيريسك، مايكل (2010). واجهة برمجة لينكس . دار نشر نو ستارش. ص 400. ISBN  978-1-59327-220-3.
  66. 1 2 تانينباوم ، أندرو س. (1990). تنظيم الحاسوب الهيكلي، الطبعة الثالثة . برنتيس هول. ص 308. ISBN  978-0-13-854662-5.
  67. سيلبرشاتز، أبراهام (1994). مفاهيم أنظمة التشغيل، الطبعة الرابعة . أديسون-ويسلي. ص 182. ISBN  978-0-201-50480-4.
  68. هافيلاند، كيث؛ سلامة، بن (1987). برمجة أنظمة يونكس . شركة أديسون-ويسلي للنشر. ص 153. ISBN  0-201-12919-1.
  69. هافيلاند، كيث؛ سلامة، بن (1987). برمجة أنظمة يونكس . شركة أديسون-ويسلي للنشر. ص 148. ISBN  0-201-12919-1.
  70. 1 2 هافيلاند، كيث؛ سلامة، بن (1987). برمجة نظام يونكس . شركة أديسون-ويسلي للنشر. ص 149. ISBN  0-201-12919-1.
  71. ↑ تانينباوم ، أندرو س. (1990). تنظيم الحاسوب الهيكلي، الطبعة الثالثة . برنتيس هول. ص 292. ISBN  978-0-13-854662-5.
  72. آي بي إم (سبتمبر 1968)، "وحدة التخزين الرئيسية" (ملف PDF) ، مبادئ تشغيل نظام IBM System/360 (ملف PDF) ، الطبعة الثامنة، صفحة مؤرشف (ملف PDF) من الأصل في 19 مارس 2022 ، تم استرجاعه في 13 أبريل 2022 
  73. 1 2 تانينباوم ، أندرو س. (1990). تنظيم الحاسوب الهيكلي، الطبعة الثالثة . برنتيس هول. ص 294. ISBN  978-0-13-854662-5.
  74. "وحدة التحكم في مقاطعات البرنامج (PIC)" (ملف PDF) . دليل المستخدم - PDP-7 (ملف PDF) . شركة ديجيتال إكويبمنت . 1965. ص 48. F-75. مؤرشف (ملف PDF) من الأصل في 10 مايو 2022. تم الاطلاع عليه في 20 أبريل 2022 . 
  75. دليل أنظمة الإدخال والإخراج لجهاز PDP-1 (ملف PDF) . شركة ديجيتال إكويبمنت . الصفحات 19-20 . مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 25 يناير 2019. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 . 
  76. سيلبرشاتز، أبراهام (1994). مفاهيم أنظمة التشغيل، الطبعة الرابعة . أديسون-ويسلي. ص 32. ISBN  978-0-201-50480-4.
  77. سيلبرشاتز، أبراهام (1994). مفاهيم أنظمة التشغيل، الطبعة الرابعة . أديسون-ويسلي. ص 34. ISBN  978-0-201-50480-4.
  78. 1 2 تانينباوم ، أندرو س. (1990). تنظيم الحاسوب الهيكلي، الطبعة الثالثة . برنتيس هول. ص 295. ISBN  978-0-13-854662-5.
  79. 1 2 تانينباوم ، أندرو س. (1990). تنظيم الحاسوب الهيكلي، الطبعة الثالثة . برنتيس هول. ص 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. 1 2 أندرسون وداهلين 2014 ، ص. 546.
  107. ^ أندرسون وداهلين 2014 ، ص. 547.
  108. ^ أندرسون وداهلين 2014 ، ص 589 ، 591.
  109. ^ أندرسون وداهلين 2014 ، ص 591-592.
  110. تانينباوم وبوس 2023 ، ص 385-386.
  111. 1 2 أندرسون وداهلين 2014 ، ص. 592.
  112. تانينباوم وبوس 2023 ، ص 605-606.
  113. تانينباوم وبوس 2023 ، ص 608.
  114. تانينباوم وبوس 2023 ، ص 609.
  115. تانينباوم وبوس 2023 ، ص 609-610.
  116. 1 2 تانينباوم وبوس 2023 ، ص. 612.
  117. تانينباوم وبوس 2023 ، ص 648، 657.
  118. Tanenbaum & Bos 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. خطأ sfn: لا يوجد هدف: CITEREFBerntssoStrandénWarg2017 ( مساعدة )
  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. 1 2 سيلبيرشاتز وآخرون. 2018 ، ص. 780.
  136. فوغان-نيكولز، ستيفن (2022). "لينوس تورفالدز يستعد لنقل نواة لينكس إلى لغة سي الحديثة" . زد نت . تم الاطلاع عليه في 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. 1 2 تانينباوم وبوس 2023 ، ص. 1035.
  145. 1 2 تانينباوم وبوس 2023 ، ص. 1036.
  146. ^ سيلبيرشاتز وآخرون. 2018 ، ص. 821.
  147. ^ سيلبيرشاتز وآخرون. 2018 ، ص. 827.

للمزيد من القراءة

  • أندرسون، توماس ؛ داهلين، مايكل (2014). أنظمة التشغيل: المبادئ والتطبيق . دار ريكرسيف بوكس ​​للنشر. رقم ISBN 978-0-9856735-2-9.
  • أوسلاندر، ماساتشوستس؛ لاركين، دي سي؛ شير، أ. ل. (سبتمبر 1981). "تطور نظام التشغيل MVS". مجلة IBM للبحوث والتطوير . 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). أنظمة التشغيل . بيرسون: برنتيس هول .
  • سيلبرشاتز، آفي؛ جالفين، بيتر؛ غاني، جريج (2008). مفاهيم أنظمة التشغيل . جون وايلي وأولاده . 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 .
  • سيلبرشاتز، أبراهام؛ جالفين، بيتر ب.؛ غاني، جريج (2018). مفاهيم أنظمة التشغيل (  الطبعة العاشرة). وايلي. ISBN 978-1-119-32091-3.
  • تانينباوم، أندرو س.؛ بوس، هربرت (2023). أنظمة التشغيل الحديثة، الطبعة العالمية . بيرسون للتعليم العالي. ISBN 978-1-292-72789-9.