المعدن الخام

BareMetal هو نظام تشغيل (OS) قائم على exokernel ذو مساحة عنوان واحدة تم إنشاؤه بواسطة Return Infinity .

كُتب هذا النظام بلغة التجميع لتحقيق أداء حوسبة عالي مع أقل حجم ممكن [ 3 ] [ 4 وذلك باتباع نهج "نظام تشغيل كافٍ" ( JeOS ) [ 5 ] . يستهدف هذا النظام بشكل أساسي بيئات الحوسبة السحابية الافتراضية ، أو الحوسبة عالية الأداء ( HPC)، نظرًا لتصميمه كنواة خفيفة الوزن (LWK). ويمكن استخدامه كنواة أحادية .

استُلهم هذا النظام من نظام تشغيل آخر مكتوب بلغة التجميع، وهو MikeOS، [ 2 ] وهو مثال حديث على نظام تشغيل غير مكتوب بلغة C أو C++ ، ولا يعتمد على نواة شبيهة بنظام Unix . [ 6 ]

ملخص

متطلبات الأجهزة

المصدر: [ 7 ]

  • كمبيوتر 64 بت يعمل بنظامي AMD / Intel
  • الذاكرة: 4 ميجابايت (بالإضافة إلى 2 ميجابايت لكل نواة إضافية)
  • القرص الصلب: 32 ميجابايت

الأجهزة المدعومة

المصدر: [ 8 ]

  • ناقل - PCIe ، PCI ، xHCI
  • تخزين غير متطاير - NVMe ، AHCI ( SATAATA ، Virtio-Blk
  • إيثرنت - إنتل 8259x بسرعة 10 جيجابت، إنتل 8254x/8257x بسرعة جيجابت، ريلتك 816x/811x بسرعة جيجابت، فيرتيو-نت

مهمة واحدة لكل شخص

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

برمجة

تم توثيق واجهة برمجة التطبيقات [ 10 ] ولكن، تماشياً مع فلسفتها، فإن نظام التشغيل لا يفرض نقاط دخول لاستدعاءات النظام (على سبيل المثال: لا توجد بوابات استدعاء أو آليات أمان أخرى).

يحتوي نظام التشغيل BareMetal على برنامج نصي للبناء لسحب أحدث التعليمات البرمجية، وإجراء التغييرات اللازمة، ثم تجميع كود C باستخدام مكتبة Newlib القياسية للغة C [ 11 ] . [ 12 ]

تم تصميم وتطوير مكتبة C++11 قياسية شبه مكتملة للعمل في الحلقة 0. [ 13 ] يتمثل الهدف الرئيسي لهذه المكتبة في توفير بديل، على مستوى المكتبة، لحماية الذاكرة المادية المستخدمة في أنظمة التشغيل التقليدية، وذلك بمساعدة فئات مصممة بعناية. [ 14 ]

k for BareMetal : [ 15 ] هو نسخة معدلة من k edu من shakti [ 16 ] بواسطة جاك أندروز. في هذه المرحلة، هو مجرد إثبات للمفهوم ولا يدمج نظام ملفات BareMetal.

تمت إضافة عرض توضيحي لبرنامج Rust إلى البرامج في نوفمبر 2014، مما يوضح القدرة على كتابة برامج Rust لنظام التشغيل BareMetal. [ 17 ]

التواصل

حزمة بروتوكولات TCP/IP

كانت حزمة بروتوكولات TCP/IP هي الميزة الأكثر طلبًا. [ 18 ] تم الإعلان عن نسخة من lwIP مكتوبة بلغة C في أكتوبر 2014. [ 19 ]

يتم تطوير minIP، [ 20 ] وهو عبارة عن حزمة IP بسيطة مكتوبة بلغة ANSI C قادرة على توفير وظائف كافية لخدمة صفحة ويب ثابتة بسيطة ، كإثبات للمفهوم لتعلم الأساسيات استعدادًا لإعادة كتابة لغة التجميع x86-64 المخطط لها في المستقبل.

مراجع

  1. سيلر، إيان. "إصدارات · ReturnInfinity/BareMetal" . مستودع BareMetal OS على GitHub . تم الاطلاع عليه في 19 مايو 2025 .
  2. 1 2 فورسانجر، كونراد (2 يونيو 2011). "مقابلة مع إيان سيلر من Baremetal OS" . أو إس نيوز . تم الاسترجاع 26 مايو، 2014 .
  3. آدامز، ديفيد (14 يوليو 2010). "نظام التشغيل BareMetal" . OSNews . تم الاطلاع عليه في 26 مايو 2014 .
  4. بينشوف، برايان (27 مايو 2011). "نظام تشغيل 64 بت مكتوب بالكامل بلغة التجميع" . هاك أ داي . تم الاسترجاع في 26 مايو 2014 .
  5. سيلر، إيان. "ريترن إنفينيتي (الصفحة الرئيسية)، ميزة BareMetal" . ريترن إنفينيتي . تم الاسترجاع في 2 فبراير 2015 .
  6. سميث، جيسي (19 يوليو 2010). "ديستروواتش ويكلي، العدد 363" . ديستروواتش . تم الاطلاع عليه في 26 مايو 2014 .
  7. "متطلبات نظام التشغيل BareMetal" . Return Infinity (نسخة مؤرشفة في Wayback Machine ) . مؤرشفة من الأصل في 6 سبتمبر 2014. تم الاطلاع عليها في 6 سبتمبر 2014 .
  8. سيلر، إيان. "الأجهزة المدعومة" . مستودع BareMetal OS على GitHub . تم الاطلاع عليه في 19 مايو 2025 .
  9. ^ "قائمة انتظار نظام التشغيل BareMetal" . تم الاسترجاع 28 أبريل، 2015 .
  10. سيلر، إيان. "توثيق واجهة برمجة التطبيقات" . مستودع BareMetal OS على GitHub . تم الاطلاع عليه بتاريخ 26 يونيو 2015 .
  11. سيلر، إيان (17 يناير 2014). "برنامج بناء Newlib" . مجموعة جوجل لنظام التشغيل BeareMetal . تم الاطلاع عليه في 2 فبراير 2015 .
  12. سيلر، إيان. "newlib.sh" . نصوص بناء لنظام التشغيل BareMetal OS والأدوات المساعدة ذات الصلة، مستودع GitHub . تم الاسترجاع في 2 فبراير 2015 .
  13. لودياغين، سيرجي (17 نوفمبر 2013). "مكتبة Bare C++" . مجموعة جوجل لنظام التشغيل BeareMetal . تم الاطلاع عليه في 2 فبراير 2015 .
  14. لودياغين، سيرجي. "مكتبة Bare C++" . مستودع مكتبة Bare C++ على GitHub . تم الاطلاع عليه في 2 فبراير 2015 .
  15. أندروز، جاك (10 ديسمبر 2024). "ReturnInfinity/kbm: k for BareMetal" . نسخة نظام التشغيل BareMetal من k edu . تم الاطلاع عليه في 19 مايو 2025 .
  16. ويتني، آرثر . "شاكتي" . ك ايدو في شاكتي . تم الاسترجاع في 19 مايو 2025 .
  17. سيلر، إيان. "مثال إضافة Rust" . مستودع BareMetal OS على GitHub (الإصدار القديم) . تم الاطلاع عليه في 18 مارس 2018 .
  18. سيلر، إيان (22 أغسطس 2013). "TCP/IP" . مجموعة جوجل لنظام التشغيل BeareMetal . تم الاطلاع عليه في 2 فبراير 2015 .
  19. سيلر، إيان (31 أكتوبر 2014). "BareMetal وlwIP" . مجموعة جوجل لنظام التشغيل BareMetal . تم الاطلاع عليه في 2 فبراير 2015 .
  20. سيلر، إيان. "minIP - حزمة بروتوكولات IP بسيطة مكتوبة بلغة ANSI C" . مستودع BareMetal OS على GitHub . تم الاطلاع عليه بتاريخ 24 مايو 2017 .