حلقة الحماية

في علوم الحاسوب ، تعتبر مجالات الحماية الهرمية ، [ 1 ] [ 2 ] والتي تسمى غالبًا حلقات الحماية ، آليات لحماية البيانات والوظائف من الأعطال (عن طريق تحسين تحمل الأعطال ) والسلوك الضار (عن طريق توفير أمن الحاسوب ).
توفر أنظمة تشغيل الحاسوب مستويات وصول مختلفة إلى الموارد. حلقة الحماية هي إحدى مستويين أو أكثر من مستويات الامتيازات الهرمية ضمن بنية نظام الحاسوب . ويتم فرض ذلك عادةً على مستوى الأجهزة من خلال بعض بنى وحدات المعالجة المركزية التي توفر أوضاعًا مختلفة لوحدة المعالجة المركزية على مستوى الأجهزة أو الشفرة البرمجية الدقيقة . تُرتّب الحلقات هرميًا من الأكثر امتيازًا (الأكثر موثوقية، وعادةً ما يكون رقمها صفرًا) إلى الأقل امتيازًا (الأقل موثوقية، وعادةً ما يكون رقم الحلقة أعلى). في معظم أنظمة التشغيل، تُعدّ الحلقة صفر هي المستوى الذي يتمتع بأكبر قدر من الامتيازات، وتتفاعل بشكل مباشر مع الأجهزة المادية، مثل بعض وظائف وحدة المعالجة المركزية (مثل سجلات التحكم) ووحدات التحكم في الإدخال/الإخراج.
تُوفّر آليات خاصة لتمكين حلقة خارجية من الوصول إلى موارد حلقة داخلية بطريقة مُحدّدة مسبقًا، بدلًا من السماح بالاستخدام العشوائي. يُمكن لضبط الوصول بين الحلقات بشكل صحيح تحسين الأمان من خلال منع البرامج من حلقة أو مستوى امتياز مُعيّن من إساءة استخدام الموارد المُخصّصة لبرامج في حلقة أخرى. على سبيل المثال، يجب منع برامج التجسس التي تعمل كبرنامج مستخدم في الحلقة 3 من تشغيل كاميرا الويب دون إشعار المستخدم، لأن الوصول إلى الأجهزة يجب أن يكون وظيفة من وظائف الحلقة 1 محجوزة لبرامج تشغيل الأجهزة . يجب على البرامج، مثل متصفحات الويب التي تعمل في حلقات ذات أرقام أعلى، طلب الوصول إلى الشبكة، وهو مورد مُقيّد بحلقة ذات رقم أدنى.
معمارية X86S ، وهي معمارية إنتل ملغاة نُشرت عام 2024، تحتوي فقط على الحلقتين 0 و3. وكان من المقرر إزالة الحلقتين 1 و2 في معمارية X86S لأن أنظمة التشغيل الحديثة لا تستخدمهما. [ 3 ] [ 4 ]
التطبيقات
كانت حلقات الحماية المتعددة من بين أكثر المفاهيم ثورية التي قدمها نظام التشغيل Multics ، وهو سلف عالي الأمان لعائلة أنظمة التشغيل Unix الحالية . كان لدى حاسوب GE 645 المركزي بعض التحكم في الوصول المادي، بما في ذلك الوضعين نفسيهما الموجودين في أجهزة سلسلة GE-600 الأخرى، وأذونات على مستوى القطاعات في وحدة إدارة الذاكرة (وحدة الإلحاق)، لكن ذلك لم يكن كافيًا لتوفير دعم كامل للحلقات في الأجهزة، لذا دعمها Multics عن طريق اعتراض انتقالات الحلقات في البرمجيات؛ [ 5 ] أما خليفته، Honeywell 6180 ، فقد نفذها في الأجهزة، مع دعم ثماني حلقات؛ [ 6 ] كانت حلقات الحماية في Multics منفصلة عن أوضاع وحدة المعالجة المركزية؛ حيث كان الكود في جميع الحلقات باستثناء الحلقة 0، وبعض كود الحلقة 0، يعمل في وضع التابع. [ 7 ]
مع ذلك، تستخدم معظم الأنظمة العامة حلقتين فقط، حتى لو كانت الأجهزة التي تعمل عليها تدعم أوضاع معالجة مركزية أكثر من ذلك. على سبيل المثال، يستخدم نظاما التشغيل Windows 7 وWindows Server 2008 (والإصدارات السابقة لهما) حلقتين فقط، حيث تتوافق الحلقة 0 مع وضع النواة والحلقة 3 مع وضع المستخدم ، [ 8 ] لأن الإصدارات السابقة من Windows NT كانت تعمل على معالجات تدعم مستويين فقط من الحماية. [ 9 ]
تتضمن العديد من معمارية المعالجات المركزية الحديثة (بما في ذلك معمارية Intel x86 الشائعة ) نوعًا من الحماية الحلقية، على الرغم من أن نظام التشغيل Windows NT ، مثل Unix، لا يستغل هذه الميزة بشكل كامل. يستخدم نظام التشغيل OS/2 ، إلى حد ما، ثلاث حلقات: [ 10 ] الحلقة 0 لرمز النواة وبرامج تشغيل الأجهزة، والحلقة 2 للبرامج ذات الامتيازات (برامج المستخدم التي لديها أذونات الوصول إلى الإدخال/الإخراج)، والحلقة 3 للبرامج غير ذات الامتيازات (جميع برامج المستخدم تقريبًا). في نظام DOS ، تعمل النواة وبرامج التشغيل والتطبيقات عادةً على الحلقة 3 (ومع ذلك، يقتصر هذا على حالة استخدام برامج تشغيل الوضع المحمي أو موسعات DOS؛ كنظام تشغيل في الوضع الحقيقي، يعمل النظام بدون حماية فعليًا)، بينما تعمل برامج إدارة الذاكرة 386 مثل EMM386 على الحلقة 0. بالإضافة إلى ذلك، يمكن لـ DR-DOS EMM386 3.xx تشغيل بعض الوحدات (مثل DPMS ) على الحلقة 1 اختياريًا. يستخدم نظام التشغيل OpenVMS أربعة أوضاع تسمى (بالترتيب التنازلي للصلاحيات) النواة، والتنفيذي، والمشرف، والمستخدم.

وقد تجدد الاهتمام بهذا الهيكل التصميمي مع انتشار برنامج Xen VMM ، والنقاش المستمر حول النواة المتجانسة مقابل النواة المصغرة (خاصة في مجموعات أخبار Usenet ومنتديات الويب )، وهيكل تصميم Ring-1 من Microsoft كجزء من مبادرة NGSCB الخاصة بهم، وبرامج إدارة الأجهزة الافتراضية القائمة على تقنية x86 الافتراضية مثل Intel VT-x (المعروفة سابقًا باسم Vanderpool).
كان نظام Multics الأصلي يحتوي على ثماني حلقات، لكن العديد من الأنظمة الحديثة تحتوي على عدد أقل. يبقى الجهاز على دراية بحلقة تنفيذ التعليمات الحالية في جميع الأوقات، وذلك بمساعدة سجل خاص بالجهاز. في بعض الأنظمة، تُخصص أرقام الحلقات لمناطق الذاكرة الافتراضية في الجهاز نفسه. ومن الأمثلة على ذلك نظام Data General Eclipse MV/8000 ، حيث كانت البتات الثلاث العليا من عداد البرنامج (PC) بمثابة سجل الحلقة. وبالتالي، فإن التعليمات البرمجية التي تُنفذ مع ضبط عداد البرنامج الافتراضي على 0xE200000، على سبيل المثال، ستكون تلقائيًا في الحلقة 7، وسيؤدي استدعاء روتين فرعي في قسم مختلف من الذاكرة تلقائيًا إلى نقل الحلقة.
تُقيّد البنية المادية بشدة طرق نقل التحكم بين الحلقات، كما تفرض قيودًا على أنواع الوصول إلى الذاكرة المسموح بها عبر الحلقات. على سبيل المثال، في معمارية x86، توجد بنية بوابة خاصة يُشار إليها بتعليمات الاستدعاء ، تنقل التحكم بطريقة آمنة إلى نقاط دخول مُحددة مسبقًا في حلقات أدنى مستوى (أكثر موثوقية)؛ وتعمل هذه البنية كاستدعاء إشرافي في العديد من أنظمة التشغيل التي تستخدم بنية الحلقات. صُممت هذه القيود المادية للحد من فرص الاختراقات الأمنية، سواءً كانت عرضية أو متعمدة. إضافةً إلى ذلك، قد تُمنح الحلقة ذات الامتيازات الأعلى قدرات خاصة (مثل عنونة الذاكرة الحقيقية التي تتجاوز بنية الذاكرة الافتراضية).
تُطبّق بنية ARM الإصدار 7 ثلاثة مستويات امتياز: التطبيق (PL0)، ونظام التشغيل (PL1)، والمُشرف (PL2). ومن اللافت للنظر أن المستوى 0 (PL0) هو الأقل امتيازًا، بينما المستوى 2 هو الأكثر امتيازًا. [ 11 ] وتُطبّق بنية ARM الإصدار 8 أربعة مستويات استثناء: التطبيق (EL0)، ونظام التشغيل (EL1)، والمُشرف (EL2)، والمراقب/البرنامج الثابت الآمن (EL3)، وذلك لبنية AArch64 [ 12 ] : D1-2454 وبنية AArch32 [ 12 ] : G1-6013 .
يمكن دمج الحماية الحلقية مع أوضاع المعالج (الوضع الرئيسي/النواة/المميز/ المشرف مقابل الوضع التابع/غير المميز/المستخدم) في بعض الأنظمة. قد تستخدم أنظمة التشغيل التي تعمل على أجهزة تدعم كلا النوعين من الحماية كلا الشكلين أو أحدهما فقط.
يتطلب الاستخدام الفعال لبنية الحلقات تعاونًا وثيقًا بين المكونات المادية ونظام التشغيل. قد لا تستفيد أنظمة التشغيل المصممة للعمل على منصات متعددة من الحلقات إلا بشكل محدود إذا لم تكن موجودة على جميع المنصات المدعومة. غالبًا ما يُبسط نموذج الأمان إلى "النواة" و"المستخدم" حتى لو كانت المكونات المادية توفر دقة أعلى من خلال الحلقات. [ 13 ]
الأوضاع
وضع المشرف
في مصطلحات الحاسوب، يُعدّ وضع الإشراف علامةً تُفعّلها وحدة المعالجة المركزية ، ويمكن تغييرها بواسطة التعليمات البرمجية التي تعمل على مستوى النظام. قد تُفعّل هذه العلامة في مهام أو سلاسل العمليات على مستوى النظام أثناء تشغيلها ، بينما لا تُفعّل في تطبيقات مستوى المستخدم. تُحدد هذه العلامة إمكانية تنفيذ عمليات لغة الآلة، مثل تعديل سجلات جداول الواصفات المختلفة، أو تنفيذ عمليات مثل تعطيل المقاطعات. ينبع مفهوم وجود وضعين مختلفين للتشغيل من مبدأ "مع زيادة القدرة تأتي مسؤولية أكبر" - يُفترض أن البرنامج في وضع الإشراف لن يفشل أبدًا، لأن أي فشل قد يؤدي إلى انهيار نظام الحاسوب بأكمله.
وضع المشرف هو "وضع تنفيذ في بعض المعالجات يسمح بتنفيذ جميع التعليمات، بما في ذلك التعليمات ذات الامتيازات. وقد يتيح أيضًا الوصول إلى مساحة عناوين مختلفة، وإلى أجهزة إدارة الذاكرة، وإلى الأجهزة الطرفية الأخرى. وهذا هو الوضع الذي يعمل فيه نظام التشغيل عادةً." [ 14 ]
في النواة المتجانسة ، يعمل نظام التشغيل في وضع الإشراف، بينما تعمل التطبيقات في وضع المستخدم. أما أنواع أنظمة التشغيل الأخرى ، مثل تلك التي تحتوي على نواة خارجية أو نواة مصغرة ، فلا تشترك بالضرورة في هذا السلوك.
بعض الأمثلة من عالم الحواسيب الشخصية:
- تُعدّ أنظمة لينكس وماك أو إس وويندوز ثلاثة أنظمة تشغيل تستخدم وضع المشرف/المستخدم. ولتنفيذ وظائف مُخصصة، يجب على كود وضع المستخدم استدعاء النظام إلى وضع المشرف أو حتى إلى مساحة النواة، حيث يقوم كود موثوق به من نظام التشغيل بتنفيذ المهمة المطلوبة وإعادة التنفيذ إلى مساحة المستخدم. يُمكن إضافة كود إضافي إلى مساحة النواة باستخدام وحدات النواة القابلة للتحميل ، ولكن فقط من قِبل مستخدم لديه الصلاحيات اللازمة، لأن هذا الكود لا يخضع لقيود التحكم في الوصول والأمان الخاصة بوضع المستخدم.
- يعمل نظام التشغيل DOS (طالما لم يتم تحميل مدير ذاكرة 386 مثل EMM386 )، بالإضافة إلى أنظمة التشغيل البسيطة الأخرى والعديد من الأجهزة المدمجة في وضع المشرف بشكل دائم، مما يعني أنه يمكن كتابة برامج التشغيل مباشرة كبرامج مستخدم.
تحتوي معظم المعالجات على وضعين مختلفين على الأقل. أما معالجات x86 ، فلديها أربعة أوضاع مختلفة مقسمة إلى أربع حلقات. يمكن للبرامج التي تعمل في الحلقة 0 القيام بأي شيء على النظام، ويجب أن يكون البرنامج الذي يعمل في الحلقة 3 قادرًا على التوقف في أي وقت دون التأثير على بقية نظام الحاسوب. نادرًا ما تُستخدم الحلقتان 1 و2، ولكن يمكن تهيئتهما بمستويات وصول مختلفة.
في معظم الأنظمة الحالية، يرتبط الانتقال من وضع المستخدم إلى وضع النواة بانخفاض كبير في الأداء. وقد قُدِّرَ، بناءً على الطلب الأساسي getpid، بتكلفة تتراوح بين 1000 و1500 دورة معالجة على معظم الأجهزة. من هذه الدورات، تُخصَّص حوالي 100 دورة فقط للانتقال الفعلي (70 دورة من وضع المستخدم إلى وضع النواة، و40 دورة للعودة)، أما الباقي فهو "عبء النواة". [ 15 ] [ 16 ] في النواة المصغرة من المستوى الثالث ، أدى تقليل هذا العبء إلى خفض التكلفة الإجمالية إلى حوالي 150 دورة. [ 15 ]
كتب موريس ويلكس : [ 17 ]
... اتضح في النهاية أن الحماية الهرمية التي توفرها الحلقات لا تتوافق تمامًا مع متطلبات مبرمج النظام، ولم تُضف تحسينًا يُذكر على النظام البسيط ذي الوضعين فقط. صحيح أن حلقات الحماية تُسهّل التنفيذ الفعال في الأجهزة، لكن لا يُمكن قول الكثير عنها. [...] بقيَت جاذبية الحماية الدقيقة قائمة، حتى بعد أن تبيّن أن حلقات الحماية لا تُقدّم الحل... وقد أثبت هذا مجددًا أنه طريق مسدود...
لتحسين الأداء وضمان استقرار النظام، تقوم بعض الأنظمة بوضع وظائف تُعتبر عادةً منطقًا تطبيقيًا، وليس برامج تشغيل أجهزة، في وضع النواة؛ ومن الأمثلة على ذلك تطبيقات الأمان (مثل التحكم في الوصول ، وجدران الحماية ، وما إلى ذلك) وأنظمة مراقبة التشغيل. وقد طُوّر نظام إدارة قواعد بيانات مضمن واحد على الأقل، وهو eXtreme DB Kernel Mode ، خصيصًا للنشر في وضع النواة، لتوفير قاعدة بيانات محلية لوظائف التطبيقات القائمة على النواة، ولتجنب تبديل السياق الذي قد يحدث عند تفاعل وظائف النواة مع نظام قاعدة بيانات يعمل في وضع المستخدم. [ 18 ]
أحيانًا تُنقل الدوال بين الحلقات في الاتجاه المعاكس. على سبيل المثال، تُضيف نواة لينكس إلى العمليات قسمًا من مكتبة البيانات الافتراضية (vDSO) يحتوي على دوال تتطلب عادةً استدعاءً للنظام، أي انتقالًا بين الحلقات. بدلًا من إجراء استدعاء النظام، تستخدم هذه الدوال بيانات ثابتة تُوفرها النواة. هذا يُغني عن الحاجة إلى الانتقال بين الحلقات، وبالتالي فهو أخف وزنًا من استدعاء النظام. يمكن توفير الدالة gettimeofday بهذه الطريقة.
وضع المشرف
تُوفر المعالجات الحديثة من إنتل وإيه إم دي تعليمات محاكاة افتراضية x86 لبرنامج إدارة الأجهزة الافتراضية للتحكم في الوصول إلى مكونات النظام الأساسية (Ring 0). على الرغم من عدم توافقهما، فإن كلاً من تقنية Intel VT-x (المعروفة باسم "Vanderpool") وتقنية AMD-V (المعروفة باسم "Pacifica") تسمحان لنظام التشغيل الضيف بتشغيل عمليات النظام الأساسية (Ring 0) بشكل أصلي دون التأثير على أنظمة التشغيل الضيفة الأخرى أو نظام التشغيل المضيف.
قبل المحاكاة الافتراضية المدعومة بالأجهزة ، كانت أنظمة التشغيل الضيفة تعمل تحت الحلقة 1. أي محاولة تتطلب مستوى امتياز أعلى للتنفيذ (الحلقة 0) ستنتج مقاطعة ثم يتم التعامل معها باستخدام البرامج؛ وهذا ما يسمى "الاعتراض والمحاكاة".
للمساعدة في المحاكاة الافتراضية وتقليل الحمل الزائد الناتج عن السبب المذكور أعلاه، تسمح تقنيتا VT-x و AMD-V بتشغيل النظام الضيف ضمن الحلقة 0. تُقدم VT-x ميزة VMX Root/Non-root Operation: يعمل برنامج إدارة الأجهزة الافتراضية في وضع VMX Root Operation، ما يمنحه أعلى صلاحيات. بينما يعمل نظام التشغيل الضيف في وضع VMX Non-Root Operation، ما يسمح له بالعمل ضمن الحلقة 0 دون امتلاك صلاحيات فعلية على مستوى الأجهزة. يتم التحكم في وضع VMX Non-Root Operation والانتقالات بين أوضاع VMX بواسطة بنية بيانات تُسمى وحدة تحكم الجهاز الافتراضي. [ 19 ] تُمكّن هذه الإضافات المادية تقنية المحاكاة الافتراضية التقليدية "Trap and Emulate" من العمل على بنية x86، ولكن الآن بدعم من الأجهزة.
مستوى الامتياز
يتحكم مستوى الامتياز في مجموعة تعليمات x86 في وصول البرنامج قيد التشغيل حاليًا على المعالج إلى موارد مثل مناطق الذاكرة ومنافذ الإدخال/الإخراج والتعليمات الخاصة. يوجد أربعة مستويات امتياز، من 0 (الأعلى امتيازًا) إلى 3 (الأقل امتيازًا). تستخدم معظم أنظمة التشغيل الحديثة المستوى 0 لنواة النظام/البرنامج التنفيذي، والمستوى 3 لبرامج التطبيقات. أي مورد متاح للمستوى n يكون متاحًا أيضًا للمستويات من 0 إلى n، لذا تُشكل مستويات الامتياز حلقات. عندما يحاول برنامج ذو امتياز أقل الوصول إلى برنامج ذي امتياز أعلى، يتم الإبلاغ عن استثناء خطأ حماية عام إلى نظام التشغيل.
ليس من الضروري استخدام جميع مستويات الامتياز الأربعة. تستخدم أنظمة التشغيل الحالية ذات الحصة السوقية الواسعة، بما في ذلك مايكروسوفت ويندوز ، وماك أو إس ، ولينكس ، وآي أو إس ، وأندرويد ، آلية ترحيل الصفحات مع بت واحد فقط لتحديد مستوى الامتياز إما كمشرف أو مستخدم (بت U/S). يستخدم ويندوز إن تي نظامًا ثنائي المستويات. [ 20 ] يُنفذ الكود الذي يعمل في الوضع الحقيقي عند المستوى 0 (أعلى مستوى امتياز)، بينما يُنفذ الكود الذي يعمل في وضع 8086 الافتراضي عند المستوى 3. [ 21 ]
تشمل الاستخدامات المستقبلية المحتملة لمستويات الامتياز المتعددة التي تدعمها عائلة معمارية x86 تقنيات الحاويات والآلات الافتراضية . يمكن لنواة نظام التشغيل المضيف استخدام تعليمات ذات صلاحيات كاملة ( وضع النواة )، بينما يمكن للتطبيقات التي تعمل على نظام التشغيل الضيف في آلة افتراضية أو حاوية استخدام أدنى مستوى من الامتيازات في وضع المستخدم. ويمكن للآلة الافتراضية ونواة نظام التشغيل الضيف استخدام مستوى وسيط من امتيازات التعليمات لاستدعاء عمليات وضع النواة ومحاكاتها ، مثل استدعاءات النظام، من وجهة نظر نظام التشغيل الضيف. [ 22 ]
IOPL
يُعدّ مؤشر مستوى امتياز الإدخال/الإخراج ( IOPL ) مؤشرًا موجودًا في جميع وحدات المعالجة المركزية x86 المتوافقة مع معمارية IA-32 . ويشغل هذا المؤشر البتّين 12 و13 في سجل FLAGS . في الوضع المحمي والوضع الطويل ، يُشير هذا المؤشر إلى مستوى امتياز الإدخال/الإخراج للبرنامج أو المهمة الحالية. يجب أن يكون مستوى الامتياز الحالي (CPL) (CPL0، CPL1، CPL2، CPL3) للبرنامج أو المهمة أقل من أو يساوي مستوى امتياز الإدخال/الإخراج (IOPL) حتى يتمكن البرنامج أو المهمة من الوصول إلى منافذ الإدخال/الإخراج .
يمكن تغيير مستوى صلاحيات الإدخال/الإخراج باستخدام الأمر IOPL POPF(D)فقط IRET(D)عندما يكون مستوى الامتياز الحالي هو Ring 0.
إلى جانب IOPL، تشارك أذونات منفذ الإدخال/الإخراج في TSS أيضًا في تحديد قدرة المهمة على الوصول إلى منفذ الإدخال/الإخراج.
متنوع
في أنظمة x86، يُشار إلى تقنية المحاكاة الافتراضية للأجهزة x86 ( VT-x و SVM ) باسم "الحلقة -1"، ويُشار إلى وضع إدارة النظام باسم "الحلقة -2"، ويُشار أحيانًا إلى محرك إدارة Intel ومعالج أمان منصة AMD باسم "الحلقة -3". [ 23 ]
استخدام ميزات الأجهزة
توفر العديد من بنى معالجات وحدة المعالجة المركزية مرونةً أكبر بكثير مما تستغله أنظمة التشغيل التي تعمل عليها عادةً. يتطلب الاستخدام الأمثل لأوضاع وحدة المعالجة المركزية المعقدة تعاونًا وثيقًا بين نظام التشغيل ووحدة المعالجة المركزية، مما يؤدي إلى ربط نظام التشغيل ببنية وحدة المعالجة المركزية. عندما يُصمم نظام التشغيل ووحدة المعالجة المركزية خصيصًا لبعضهما البعض، لا تُشكل هذه المسألة مشكلة (مع أن بعض ميزات الأجهزة قد تبقى غير مُستغلة)، ولكن عندما يُصمم نظام التشغيل ليكون متوافقًا مع بنى معالجات مركزية متعددة ومختلفة، فقد يتجاهل نظام التشغيل جزءًا كبيرًا من ميزات أوضاع وحدة المعالجة المركزية. على سبيل المثال، السبب في أن نظام ويندوز يستخدم مستويين فقط (الحلقة 0 والحلقة 3) هو أن بعض بنى الأجهزة التي كانت مدعومة في الماضي (مثل PowerPC أو MIPS ) كانت تُنفذ مستويين فقط من الامتيازات. [ 8 ]
كان نظام التشغيل Multics مصممًا خصيصًا لبنية معالج مركزي خاصة (والتي بدورها صُممت خصيصًا لنظام Multics)، وقد استفاد استفادة كاملة من أوضاع المعالج المتاحة له. مع ذلك، فقد كان استثناءً للقاعدة. اليوم، لا يُعد هذا المستوى العالي من التوافق بين نظام التشغيل والمكونات المادية مُجديًا اقتصاديًا في كثير من الأحيان، على الرغم من المزايا المحتملة للأمان والاستقرار.
في نهاية المطاف، يكمن الغرض من أوضاع التشغيل المتميزة لوحدة المعالجة المركزية في توفير حماية مادية ضد التلف العرضي أو المتعمد لبيئة النظام (وما يترتب عليه من اختراقات أمنية) بواسطة البرمجيات. يُسمح فقط للأجزاء "الموثوقة" من برمجيات النظام بالعمل في بيئة وضع النواة غير المقيدة، وفي التصاميم النموذجية، فقط عند الضرورة القصوى. أما باقي البرمجيات فتُنفذ في وضع مستخدم واحد أو أكثر. إذا تسبب المعالج في حدوث خطأ أو استثناء في وضع المستخدم، ففي معظم الحالات لا يتأثر استقرار النظام؛ أما إذا تسبب في حدوث خطأ أو استثناء في وضع النواة، فإن معظم أنظمة التشغيل ستوقف النظام بخطأ غير قابل للإصلاح. عند وجود تسلسل هرمي للأوضاع (أمان قائم على الحلقات)، فإن الأخطاء والاستثناءات في مستوى امتياز معين قد تُزعزع استقرار مستويات الامتياز الأعلى فقط. وبالتالي، فإن حدوث خطأ في الحلقة 0 (وضع النواة ذو أعلى امتياز) سيؤدي إلى انهيار النظام بأكمله، بينما لن يؤثر حدوث خطأ في الحلقة 2 إلا على الحلقات 3 وما بعدها، وعلى الحلقة 2 نفسها كحد أقصى.
تكون الانتقالات بين الأوضاع خاضعة لتقدير الخيط المنفذ عندما يكون الانتقال من مستوى امتياز عالٍ إلى مستوى امتياز منخفض (كما هو الحال من وضع النواة إلى وضع المستخدم)، ولكن الانتقالات من مستويات الامتياز الأدنى إلى الأعلى لا يمكن أن تحدث إلا من خلال "بوابات" آمنة يتم التحكم فيها بواسطة الأجهزة والتي يتم اجتيازها عن طريق تنفيذ تعليمات خاصة أو عند استقبال مقاطعات خارجية.
تحاول أنظمة التشغيل ذات النواة المصغرة تقليل كمية التعليمات البرمجية التي تعمل في الوضع المميز، وذلك لأغراض الأمن والأناقة .
انظر أيضاً
- بوابة الاتصال (إنتل)
- تجزئة الذاكرة
- الوضع المحمي - متوفر على وحدات المعالجة المركزية 80286 المتوافقة مع x86 والإصدارات الأحدث
- IOPL (توجيه CONFIG.SYS) – توجيه في نظام التشغيل OS/2 لتشغيل كود DLL في الحلقة 2 بدلاً من الحلقة 3
- واصف القطاع
- تعليمات الاتصال بالمشرف
- وضع إدارة النظام (SMM)
- مبدأ أقل الامتيازات
ملحوظات
مراجع
- ↑ كارغر، بول أ.؛ هربرت، أندرو ج. (1984). بنية قدرات مُعززة لدعم أمن الشبكة وتتبع الوصول . ندوة IEEE للأمن والخصوصية لعام 1984. ص 2. doi : 10.1109/SP.1984.10001 . ISBN 0-8186-0532-4. S2CID 14788823 .
- ↑ بايندر، و. (2001). "تصميم وتنفيذ نواة الوكيل المتنقل J-SEAL2". وقائع ندوة 2001 حول التطبيقات والإنترنت . ص 35-42 . doi : 10.1109/SAINT.2001.905166 . ISBN 0-7695-0942-8. S2CID 11066378 .
- ↑ "تصور بنية إنتل مبسطة للمستقبل" . إنتل . تم الاطلاع عليه بتاريخ 28 مايو 2024 .
- ^ تانيمباوم ، أندرو س. (2015). أنظمة التشغيل الحديثة (الطبعة الرابعة ). بيرسون . ص 479 – 480. ISBN 978-0-13-359162-0لسنوات عديدة ،
دعمت معالجات x86 أربعة أوضاع حماية أو حلقات [...]. الحلقة 3 هي الأقل امتيازًا [...]. الحلقة 0 هي الأكثر امتيازًا [...]. أما الحلقتان المتبقيتان فلا تستخدمهما أي أنظمة تشغيل حالية.
- ↑ "بنية عتادية لتنفيذ حلقات الحماية" . اتصالات رابطة آلات الحوسبة . 15 (3). مارس 1972. تم الاطلاع عليه بتاريخ 27 سبتمبر 2012 .
- ↑ "قاموس المصطلحات المتعددة - حلقة" . تم الاطلاع عليه بتاريخ 27 سبتمبر 2012 .
- ↑ الذاكرة الافتراضية Multics، الجزء 2 (ملف PDF) . أنظمة معلومات هانيويل. يونيو 1972. الصفحات 160-161 .
- 1 2 روسينوفيتش، مارك إي؛ ديفيد أ. سليمان (2005). مايكروسوفت ويندوز الداخلية (4 ed.). مايكروسوفت برس. ص 16 . رقم ISBN 978-0-7356-1917-3.
- ↑ روسينوفيتش، مارك (2012). أساسيات ويندوز، الجزء الأول (الطبعة السادسة ). ريدموند، واشنطن: مطبعة مايكروسوفت. ص 17. ISBN 978-0-7356-4873-9السبب في أن
نظام التشغيل Windows يستخدم مستويين فقط هو أن بعض بنى الأجهزة التي كانت مدعومة في الماضي (مثل Compaq Alpha و Silicon Graphics MIPS ) لم تنفذ سوى مستويين من الامتيازات.
- ↑ "مرجع برنامج تشغيل جهاز العرض لنظام التشغيل OS/2 - 5. مقدمة إلى برامج تشغيل العرض لنظام التشغيل OS/2" . مؤرشف من الأصل في 15 يونيو 2015. تم الاطلاع عليه في 13 يونيو 2015 .
- ↑ دليل مرجعي لهندسة ARM، إصدار ARMv7-A و ARMv7-R . شركة Arm المحدودة، ص. B1 - 1136.
- 1 2 دليل مرجعي لهندسة معمارية Arm الإصدار 8، لهندسة معمارية A-profile . شركة Arm المحدودة.
- ^ تانيمباوم ، أندرو س. (2015). أنظمة التشغيل الحديثة (الطبعة الرابعة ). بيرسون . ص 479 – 480. ISBN 978-0-13-359162-0لسنوات عديدة ،
دعمت معالجات x86 أربعة أوضاع حماية أو حلقات [...]. الحلقة 3 هي الأقل امتيازًا [...]. الحلقة 0 هي الأكثر امتيازًا [...]. أما الحلقتان المتبقيتان فلا تستخدمهما أي أنظمة تشغيل حالية.
- ↑ "وضع المشرف" . فولدوك . 15 فبراير 1995.
- 1 2 يوشين ليدتكه (ديسمبر 1995). "حول بناء النواة المصغرة" . وقائع الندوة الخامسة عشرة لجمعية الحوسبة الآلية حول مبادئ أنظمة التشغيل (SOSP) .
- ↑ أوسترهوت، جيه كيه (1990). لماذا لا تصبح أنظمة التشغيل أسرع بنفس سرعة الأجهزة؟ مؤتمر يوزنيكس الصيفي، ناهايم، كاليفورنيا. الصفحات 247-256 .
- ↑ موريس ويلكس (أبريل 1994). "أنظمة التشغيل في عالم متغير" . مجلة ACM SIGOPS لأنظمة التشغيل . 28 (2): 9-21 . doi : 10.1145/198153.198154 . ISSN 0163-5980 . S2CID 254134 .
- ↑ غورين، أندريه؛ كريڤولابوف، ألكسندر (مايو 2008). "قواعد بيانات وضع النواة: تقنية إدارة قواعد البيانات للتطبيقات عالية الأداء" . مجلة دكتور دوبز .
- ↑ دليل مطوري البرامج لبنيتي Intel® 64 و IA-32، المجلد 3C (ملف PDF) . شركة Intel (نُشر في سبتمبر 2016). 2016. الصفحات 1-3 .
- ↑ روسينوفيتش، مارك إي.؛ سولومون، ديفيد أ. (2005). أساسيات نظام التشغيل مايكروسوفت ويندوز ( الطبعة الرابعة). مطبعة مايكروسوفت. ص 16. ISBN 978-0-7356-1917-3.
- ↑ سونيل ماثور. المعالج الدقيق 8086: البنية والبرمجة والربط البيني ( طبعة الاقتصاد الشرقي). دار نشر PHI Learning.
- ↑ أندرسون، توماس؛ داهلين، مايكل (21 أغسطس 2014). "2.2". أنظمة التشغيل: المبادئ والتطبيق ( الطبعة الثانية). دار ريكرسيف بوكس للنشر. ISBN 978-0985673529.
- ↑ دي جيلاس، يوهان. "محاكاة الأجهزة: الأساسيات" . أناند تك . مؤرشف من الأصل في 4 أبريل 2010. تم الاطلاع عليه في 13 مارس 2021 .
- دليل مبرمج معالج Intel 80386
للمزيد من القراءة
- ديفيد تي. روجرز (يونيو 2003). إطار عمل للتخريب الديناميكي (ملف PDF) (ماجستير). كلية الدراسات العليا البحرية . hdl : 10945/919 .
- ويليام ج. كايلي (2002). "إعادة تعلم "الأنظمة الموثوقة" في عصر NIIP: دروس من الماضي للمستقبل" . مؤرشف من الأصل (PDF) في 20 أبريل 2015.
- هارونا ر. عيسى؛ ويليام ر. شوكلي؛ سينثيا إي. إيرفين (مايو 1999). "معمارية متعددة الخيوط لمعالجة المعاملات الآمنة متعددة المستويات" (ملف PDF) . وقائع ندوة IEEE للأمن والخصوصية لعام 1999. أوكلاند، كاليفورنيا. الصفحات 166-179 . hdl : 10945/7198 .
- إيفان كيلي (8 مايو 2006). "نقل نظام MINIX إلى Xen" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 27 أغسطس 2006.
- بول بارام؛ بوريس دراغوفيتش؛ كير فريزر؛ ستيفن هاند؛ تيم هاريس؛ أليكس هو؛ رولف نويغباور؛ إيان برات؛ أندرو وارفيلد (2003). "زين وفن المحاكاة الافتراضية" (ملف PDF) .
- ماركوس بينادو؛ يوكون تشين؛ بول إنجلاند؛ جون مانفيرديلي. "NGSCB: نظام مفتوح موثوق به" (PDF) . مؤرشفة من الأصلي (PDF) في 4 مارس 2005.
- مايكل د. شرودر ؛ جيروم هـ. سالتزر (1972). "بنية الأجهزة لتنفيذ حلقات الحماية" .
- "دليل مطوري برامج معمارية إنتل، المجلد 3: برمجة النظام (رقم الطلب 243192)" (ملف PDF) . الفصل 4 "الحماية"؛ القسم 4.5 "مستويات الامتياز". مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 19 فبراير 2009.
- تزي-كر تشيوه؛ غانيش فينكيتاشالام؛ براشانت برادان (ديسمبر 1999). "دمج حماية التجزئة والترقيم لتوسيعات برمجية آمنة وفعالة وشفافة". وقائع الندوة السابعة عشرة لجمعية ACM حول مبادئ أنظمة التشغيل . القسم 3: ميزات حماية الأجهزة في بنية Intel X86؛ القسم الفرعي 3.1: فحوصات الحماية. doi : 10.1145/319151.319161 . ISBN 1581131402. S2CID 9456119 .
- تاكاهيرو شيناغاوا؛ كينجي كونو؛ تاكاشي ماسودا (17 مايو 2000). "استغلال آلية التجزئة للحماية من البرامج الضارة على الأجهزة المحمولة" (ملف PDF) . الفصل 3: التنفيذ؛ القسم 3.2.1: الحماية الحلقية. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 10 أغسطس 2017. تاريخ الاطلاع: 2 أبريل 2018 .
- بوبرت، ويليام إيرل؛ آر. كاين (1985). بديل عملي لسياسات النزاهة الهرمية . المؤتمر الوطني الثامن لأمن الحاسوب.
- غورين، أندريه؛ كريڤولابوف، ألكسندر (مايو 2008). "قواعد بيانات وضع النواة: تقنية إدارة قواعد البيانات للتطبيقات عالية الأداء" . مجلة دكتور دوبز .
- وحدات المعالجة المركزية
- نماذج أمن الحاسوب
- تقنية نظام التشغيل
