Kerla: نواة جديدة مكتوبة بلغة Rust ومتوافقة مع Linux ABI

تم إصدار معلومات مؤخرًا حول مشروع Kerla ، والذي يتم تطويره كنواة نظام تشغيل مكتوبة بلغة Rust. يتم توزيع الكود بموجب تراخيص Apache 2.0 و MIT. يتم تطوير المشروع من قبل المطور الياباني Seiya Nuta ، المعروف بإنشاء نظام التشغيل microkernel Resea ، المكتوب بلغة C.

تهدف النواة الجديدة في البداية ضمان التوافق مع Linux kernel على مستوى ABI ، والذي سيسمح للثنائيات غير المعدلة المصممة لنظام التشغيل Linux بالعمل في بيئة تستند إلى Kerla.

حول كيرال

Kerla هو نواة نظام تشغيل متجانسة خلقت من الصفر في الصدأ. في المرحلة الحالية من التطور كيرلا يمكن تشغيله فقط على الأنظمة ذات البنية x86_64 وينفذ استدعاءات النظام الأساسية مثل الكتابة والإحصاءات و mmap والأنابيب والاستقصاء ، ويدعم الإشارات والأنابيب غير المسماة ومفاتيح السياق. توفر المكالمات مثل fork و wait4 و execve للتحكم في العمليات. هناك دعم للمحطات الطرفية tty والزائفة (pty). من بين أنظمة الملفات initramfs (المستخدمة في تحميل الجذر FS) ، لا يزال tmpfs و devfs مدعومين.

يتم أيضًا توفير مكدس شبكة يدعم مآخذ TCP و UDP ، بناءً على مكتبة smoltcp. قام المطور بإعداد بيئة تمهيد تعمل في QEMU أو Firecracker VM مع برنامج التشغيل Virtio-net ، والذي يمكنك بالفعل الاتصال به عبر SSH. يتم استخدام Musl كمكتبة نظام ويستخدم BusyBox كأداة مساعدة للمستخدم. استنادًا إلى Docker ، تم إعداد نظام بناء يسمح لك بإنشاء التمهيد الخاص بك باستخدام نواة Kerla.

حتى الآن ، تم تقديم القليل من التفاصيل حول النواة الجديدة ، ولكن ما يلفت الانتباه إلى ميزات Kerla هو حقيقة أنها مكتوبة بلغة Rust. فهل للكتابة في Rust أي مزايا على اللغات الأخرى أو على الكود الموجود؟ أجاب الكثيرون بنعم على هذا السؤال ، مؤكدين على فوائد أمان الذاكرة التي توفرها اللغة.

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

من بين المزايا ، نبرز الأدوات المتكاملة لتقييم جودة الكود وإنشاء اختبارات وحدة يمكن تشغيلها ليس فقط على أجهزة حقيقية ، ولكن أيضًا على QEMU. في الأساس ، تجد Mozilla أن Rust أسهل في التصحيح لأن المترجم سيرفض الأخطاء. ومع ذلك ، فإن الكهوف تشير إلى بعض العيوب مع الصدأ.

"كما هو الحال مع C ++ ، يكاد يكون من المستحيل كتابة Rust الاصطلاحي بدون استخدام القوالب ، لذلك فهو يحتوي على ثنائيات منتفخة وأوقات ترجمة بطيئة. كل هذه الشيكات وقت الترجمة تأتي أيضا بتكلفة. أيضًا ، إذا أعدت كتابة شيء ما ، فستفقد قاعدة الشفرة القديمة الناضجة ، ولا توجد طريقة يمكنك من خلالها إنتاج قاعدة بيانات ذات جودة مماثلة في فترة زمنية معقولة ؛ من الأفضل بكثير تمديد البرنامج في Rust بدلاً من إعادة كتابته. يقول مهندس برمجيات: "من الأفضل تمديد البرنامج بدلاً من إعادة كتابته في Rust".

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

"قم ببعض العمل لإنشاء روابط آمنة ، ثم اكتب الكود الإضافي في Rust ولا يزال بإمكانك الاستمتاع بهذا الرمز الناضج. (هذا ما يفعله Linux ، هناك جهود لإضافة القدرة على كتابة وحدة kernel في Rust) ". كان مطورو Linux يستكشفون إمكانيات كتابة وحدات نواة جديدة معينة باستخدام لغة Rust لمدة ثلاث سنوات تقريبًا. أدى ذلك إلى ظهور مشروع Rust for Linux.

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


محتوى المقال يلتزم بمبادئنا أخلاقيات التحرير. للإبلاغ عن خطأ انقر فوق هنا.

كن أول من يعلق

اترك تعليقك

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

*

*

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