Neptune OS: تخصيص WinNT لنواة seL4 الصغيرة

نشر أول نسخة تجريبية من مشروع Neptune OS والذي يختلف عن مشروع توزيع Linux المستند إلى دبيان بنفس الاسم.

هذا النظام الذي سنتحدث عنه اليوم يتميز بتطوير مكون إضافي لـ seL4 microkernel مع تنفيذ مكونات نواة Windows NT ، بهدف توفير دعم لتشغيل تطبيقات Windows. 

حول Neptune OS

المشروع طتنفذ "NT Executive"، إحدى طبقات نواة Windows NT (NTOSKRNL.EXE) ، المسؤولة عن توفير واجهة برمجة تطبيقات استدعاء نظام NT الأصلي وواجهة لتشغيل برامج التشغيل.

على Neptune OS ، المكون NT Executive وجميع برامج التشغيل لا تعمل على مستوى kernel ، لكن كعمليات مستخدم في بيئة تعتمد على النواة الدقيقة seL4. يتم تنفيذ تفاعل مكون NT Executive مع برامج التشغيل من خلال معيار seL4 IPC. تجعل استدعاءات النظام المتوفرة من الممكن لمكتبة NTDLL.DLL العمل مع تطبيق Win32 API المستخدم في التطبيقات.

 NT Executive أيضًا مسؤول عن واجهة برنامج تشغيل Windows kernel (المعروفة بنموذج برنامج تشغيل Windows) ، والتي تتضمن ميزات مثل IoConnectInterruptIoCallDriver

في Windows ، يتم تحميلها في وضع kernel وربطها بامتدادNTOSKRNL.EXEصورة. في نظام تشغيل Neptune OS ، نقوم بتشغيل جميع برامج تشغيل Windows kernel في وضع المستخدم ويتواصلون مع عملية NT Executive من خلال أساسيات seL4 IPC القياسية.

الهدف النهائي من مشروع Neptune OS هو تنفيذ ما يكفي من دلالات NT بحيث يمكن نقل بيئة مستخدم ReactOS إلى نظام Neptune OS ، بالإضافة إلى معظم برامج تشغيل ReactOS kernel.

من الناحية النظرية ، المطورين يذكر أنه يجب أن يكونوا قادرين على تحقيق التوافق الثنائي مع البرامج التنفيذية الأصلية لنظام التشغيل Windows طالما أن التنفيذ المعروض لواجهة NT API الأصلية يكون أمينًا بدرجة كافية.

يجب أن نكون قادرين أيضًا على تحقيق درجة عالية من توافق كود المصدر مع برامج تشغيل Windows kernel. تتمثل العقبة الرئيسية أمام تحقيق التوافق الثنائي لبرامج تشغيل kernel في أن العديد من برامج تشغيل Windows kernel لا تتبع بروتوكول اتصال برنامج تشغيل Windows القياسي (أي أنها تجتاز عمليات IRP عندما يحتاجون إلى الاتصال ببرنامج تشغيل آخر) وبدلاً من ذلك ، فإنها تقوم فقط بتمرير المؤشرات والاتصال بوحدات التحكم الأخرى مباشرةً . في نظام التشغيل Neptune OS ، ما لم يكن زوجًا من برنامج تشغيل و minidriver ، فإننا نقوم دائمًا بتشغيل "kernel".

حول Neptune OS 0.1.0001

حالة المشروع في هذا الوقت هي نسخة أولية ، حيث تمكنا حتى الآن من تنفيذ عدد كافٍ من NT primitives لتحميل مجموعة أساسية من برامج تشغيل لوحة المفاتيح ، والتي تتضمن برنامج تشغيل لوحة المفاتيح kbdclass.sys وبرنامج تشغيل المنفذ. PS / 2 i8042prt.sys ، بالإضافة إلى موجه الأوامر الأساسي ntcmd.exe ، مأخوذ من مشروع ReactOS.

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

لكن يذكر أنه يمكن تعطيلها في الكود (يجب أن تشير إلى private / ntos / inc). يُذكر أيضًا أنه تم تضمين برنامج تشغيل "beep.sys" (وهو أمر غير منطقي ، ولكن المطور وحده هو الذي يعرف السبب) الذي يصدر صوتًا مزعجًا في مكبر صوت الكمبيوتر الشخصي ، ومن أجل سماعه ، يجب إلغاء كتم الصوت (خاصة إذا كنت تستخدم pulseaudio).

تعمل جميع وحدات التحكم في مساحة المستخدم! يناسب النظام بأكمله قرصًا مرنًا واحدًا ويمكن تنزيله من الإصدار v0.1.0001. يمكنك أيضًا بنائه بنفسك ، الإجراء الموضح في القسم التالي.

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

حجم صورة التمهيد 1,4 ميجا بايت ويتم تحرير الرمز بموجب ترخيص GPLv3.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.