الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

seL4 ، نواة نظام تشغيل خالية من الأخطاء 100%

بدأه Abdullah.Alshammeri في 30 يناير 2011 · 6 رد · 1,092 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

فرع جديد من أنوية نظم التشغيل تسمّى Micro-Kernel ، وفكرتها تقوم على تقليص حجم النواة و التخلّص من بعض الوظائف ، فمثلاً الجزء الخاص بمسوّقات التشغيل Drivers ، تم إزالتها من kernel mode ونقلها إلى user mode ، بعكس الأمر مع Linux kernel .

ظهرت قبل فترة ( لا أعرف متى بصراحة ) ، عائلة من أنوية نظم التشغيل الصغيرة ، تحمل اسم L4 ، وظهر مشروع بحثي مبني على L4 يحمل الاسم seL4 ، وبهذا نكون وصلنا لموضوعنا . هذه النواة الصغيرة ، لا تحمل أي Bug ، ومثبت هذا بطريقة رياضية Formal Method ، وهي تأكيد على أن implementation لنواة نظام التشغيل مطابقة تماماً ( تماماً ) للمواصفات . طبعاً هم فرضوا أمور مثل : أن أخطاء العتاد Hardware خارج الحسابات ، و غيرها من الأمور الأخرى التي تعتبر خارج الحالات الطبيعية ، ولهم اقتباس جميل من انشتاين :

As far as the laws of mathematics refer to reality, they are not certain; and as far as they are certain, they do not refer to reality

المهم ، أنهم أثبتوا أن هذه النواة خالية من مشاكل :

Buffer overflows ، Null pointer dereferences ، Pointer errors in general ، Memory leaks و Arithmetic overflows and exceptions .

و الفكرة هي بأنك إذا كتبت مواصفات بشكل صحيح ( وهذا أسهل من كتابة implementation ) ، ففي الغالب أنك ستحدد ما تريد من مشروعك ، لأن الأفكار ستعبر عنها بسهولة أكبر من كتابة code ، وبالتالي عند عمل implementation ، يجب أن تثبت علمياً أنك طبّقت حرفياً ما جاء في هذه المواصفات ، وبالتالي مشروعك خالي من أي Bug :

Does seL4 have zero bugs?

Our proof states that, if the proof assumptions are true, the seL4 kernel has no deviations from its specification. There may still be unexpected features in the specification and one or more of the assumptions may not apply. In particular, the remaining implementation details below the level of the C programming language may still contain as many or few defects as other well-engineered software. The proof and assumption page has the longer version.

يمكن استخدام seL4 ، في embedded systems ، التي تحتاج لأمان عالي ، و يبدو أنه يمكن استخدمها لأي هدف آخر .

المهم ، الكلام كبير و شخصياً ما فهمت شيء بشكل حقيقي ، لكن ما فيه مانع أن تحاول تقرأ و تستفيد ،( أشكر الاخ عبدالعزيز - زميل في العمل - على التوضيح ) ،

عموماً ، للاستزادة:

seL4

L4 Microkernel Family

Formal verification

المزيد عن seL4

3

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#2

حسب كلامك بأنها نواة إزيلت منها العديد من الوظائف الموجوده كأساسيه في بقية الأنويه يعني نواه صغيره مقارنة بنواة الويندوز والليونكس وغيرها

مما يعني أنها ربما تنفع أن تكون نواة لأحد أنظمة الهواتف النقاله أو أحد أنظمة الحواسيب اللوحيه

لكن كنواة لأنظمه ضخمه كأنظمة السيرفرات حتى الحواسيب الشخصيه لا أظنها تنفع رغم أنها أمنه بنسبة 100 % لأنها ببساطة تفتقد بعض الوظائف

#3

المقصود أن النواة مجرّدة من بعض الوظائف مثل Drivers الخاص بالأجهزة و GUI ( واجهة المستخدم ) ( خارج kernel mode ) ، ولكن ممكن تجدها في user mode لنظام تشغيل يعتمد على هذه النواة ، لو كنت تريد استخدامها مع مكوك فضائي ، فأنت لست بحاجة لـ Drivers تقليدية و GUI ، ( أظن Drivers تأتي مع linux kernel مثلاً ) ، بل ستستخدم أشياء أخرى ، و أظن هذا منطقي أكثر .

هناك في الرابط نقطة تتحدث عن تكامل النواة مع Linux نظرياً ، ولكن لم أقرأ التفاصيل .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4

المقصود بالـMicro Kernel هو كيرنل مصغر جداً ولا يحتوي سوى على الأساسيات كأنظمة عنونة الذاكرة والتحكم الـthreads. أما الباقي مثل الـdrivers والـfile system فيكون خارجها. مفهوم الـMicro Kernel ليس جديداً. نظام Minix الشهير الخاص بـ"آندرو تاننباوم" (والذي ألهم "تورفالدس" بتصميم لينوكس) هو نظام ذو Micro Kernel، بعكس لينوكس. هناك خلاف شهير بين "تورفالدس" و "تاننباوم" حول فعالية الـMicro Kernel

http://oreilly.com/catalog/opensources/book/appa.html

3
#5

اعتقد انني قرأت مرة لكن لا اذكر اين ان النواة الخاصة بوندوز 7 .. اضا لها نفس المفاهيم المذكورة بالموضوع وهي مسالة ازالة الGUI من النواة

وهذا السبب الذي جعله يتميز بسرعته ..

ولذلك فان الفكرة لست بجديده ..

لكن اعتقد ان الجديد الذي في الموضوع هو مسألة الموثوقية من خلوها من المشاكل ... ..

تحياتي العطرة ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#6

بالفعل ، الكلام مش على microkernel ، فهي ليست جديدة ( نواة Windows 7 لا تعتبر Microkernel ، حتى مع إزالة GUI ! حسب ما أعرف ) ، لكن الكلام على نجاحهم في التأكد من أن microkernel المسمّاة seL4 خالية من أي Bug ، باستخدام طريقة Formal verification الرياضية .. وهي المرة الأولى حسب ما قرأت التي تستخدم فيها هذه الطريقة مع نواة لنظام تشغيل .

من يفيدنا ويخبرنا عن Formal verification ، وكيف يمكن تطبيقها على بريمج صغير ، بحيث نضمن خلوّه 100% من أي خطأ ، وأنه مطابق للمواصفات المكتوبة لهذا البريمج ؟

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#7

نظام Singularity الخاص بمايكروسوفت و Midori المبني عليه (والمشاع بأنه ويندوز القادم) هو نظام Micro kernel. قرأت عن الـformal verification قبل فترة، وحسب ما أتذكر أن العقبة الرئيسية أمام تطبيقها على الـsoftware هي أنها عملية مكلفة جدا. لذا هو، على ما يبدو، مناسب لنظام ذو كيرنل مصغر.

مواضيع مشابهة