نواة (نظم تشغيل)
قرارات تصميم النواة (kernel)

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