نُشرت مؤخرًا معلومات حول مشروع كيرلا. يجري تطوير كيرلا كنواة نظام تشغيل مكتوبة بلغة رست. يُوزّع الكود بموجب رخصتي أباتشي 2.0 وMIT. يتولى تطوير المشروع المطور الياباني سيا نوتا، المعروف بإنشائه نظام التشغيل ريسيا ذي النواة المصغرة، المكتوب بلغة سي.
تهدف النواة الجديدة في البداية إلى ضمان التوافق مع نواة لينكس على مستوى ABI، مما يسمح بتشغيل الملفات الثنائية غير المعدلة التي تم إنشاؤها لنظام لينكس في بيئة قائمة على Kerla.
حول كيرال
كيرلا هي نواة نظام تشغيل متجانسة مبنية من الصفر بلغة رست. في مرحلة التطوير الحالية، تعمل كيرلا فقط على أنظمة x86_64 وتُنفذ استدعاءات النظام الأساسية مثل الكتابة، والإحصاءات، وربط الملفات، والأنابيب، والاستطلاع. كما تدعم الإشارات، والأنابيب غير المسماة، وتبديل السياق. وتُستخدم استدعاءات مثل fork، وwait4، وexecve للتحكم في العمليات. وتدعم كيرلا أيضًا المحطات الطرفية (tty) والمحطات الطرفية الوهمية (pty). ولا تزال أنظمة الملفات initramfs (المستخدمة لتركيب نظام الملفات الجذر)، وtmpfs، وdevfs مدعومة.
يُوفر النظام حزمة بروتوكولات شبكية تدعم مقابس TCP وUDP، مبنية على مكتبة smoltcp. وقد أعدّ المطور بيئة تشغيل تعمل على أجهزة QEMU أو Firecracker الافتراضية باستخدام برنامج تشغيل virtio-net، والذي يُمكن الاتصال به عبر SSH . يُستخدم Musl كمكتبة نظام، وBusyBox كأداة مساعدة للمستخدم . كما تم إعداد نظام بناء قائم على Docker يُتيح إنشاء initramfs خاص بك للتشغيل باستخدام نواة Kerlas.
حتى الآن ، تم تقديم القليل من التفاصيل حول النواة الجديدة ، ولكن ما يلفت الانتباه إلى ميزات Kerla هو حقيقة أنها مكتوبة بلغة Rust. فهل للكتابة في Rust أي مزايا على اللغات الأخرى أو على الكود الموجود؟ أجاب الكثيرون بنعم على هذا السؤال ، مؤكدين على فوائد أمان الذاكرة التي توفرها اللغة.
يُستخدم هذا أيضًا عند تقييم دقة الوصول إلى الذاكرة أثناء التشغيل. علاوة على ذلك ، تعتقد موزيلا أن لغة رست توفر حماية ضد تجاوزات الأعداد الصحيحة ، وتتطلب تهيئة إلزامية لقيم المتغيرات قبل استخدامها، وتعتمد مفهوم المراجع والمتغيرات غير القابلة للتغيير افتراضيًا، وتوفر كتابة ثابتة قوية لتقليل الأخطاء المنطقية، وتبسط معالجة المدخلات من خلال مطابقة الأنماط.
من بين المزايا، نُسلط الضوء على الأدوات المُدمجة لتقييم جودة الكود وإنشاء اختبارات الوحدة التي يُمكن تشغيلها ليس فقط على أجهزة حقيقية، بل أيضًا في بيئة QEMU. في الأساس، تعتبر موزيلا لغة Rust أسهل في تصحيح الأخطاء، لأن المُصرّف سيرفض الأخطاء. مع ذلك، أشارت الاختبارات إلى بعض عيوب Rust.
"كما هو الحال مع C ++ ، يكاد يكون من المستحيل كتابة Rust الاصطلاحي بدون استخدام القوالب ، لذلك فهو يحتوي على ثنائيات منتفخة وأوقات ترجمة بطيئة. كل هذه الشيكات وقت الترجمة تأتي أيضا بتكلفة. أيضًا ، إذا أعدت كتابة شيء ما ، فستفقد قاعدة الشفرة القديمة الناضجة ، ولا توجد طريقة يمكنك من خلالها إنتاج قاعدة بيانات ذات جودة مماثلة في فترة زمنية معقولة ؛ من الأفضل بكثير تمديد البرنامج في Rust بدلاً من إعادة كتابته. يقول مهندس برمجيات: "من الأفضل تمديد البرنامج بدلاً من إعادة كتابته في Rust".
ووفقًا لمبتكرها، هذا هو السبب في أن مطوري لينكس، وخاصة لينوس تورفالدز نفسه، رفضوا فكرة إعادة كتابة النواة بأكملها بلغة رست.
"قم ببعض العمل لإنشاء روابط آمنة ، ثم اكتب الكود الإضافي في Rust ولا يزال بإمكانك الاستمتاع بهذا الرمز الناضج. (هذا ما يفعله Linux ، هناك جهود لإضافة القدرة على كتابة وحدة kernel في Rust) ". كان مطورو Linux يستكشفون إمكانيات كتابة وحدات نواة جديدة معينة باستخدام لغة Rust لمدة ثلاث سنوات تقريبًا. أدى ذلك إلى ظهور مشروع Rust for Linux.
وأخيرًا، إذا كنت مهتمًا بمعرفة المزيد، يمكنك العثور على التفاصيل في الرابط التالي.