# جينود

جينود (بالاتكليزية Genode) هو نظام تشغيل حر ومفتوح المصدر يتكون من نواة مصغرة ومجموعة من البرمجيات المساعدة والتي تتموضع خارج النواة. يُعتبر هذا النظام هو أحد أنظمة التشغيل المفتوحة المصدر القليلة غير المستمدة من انظمة التشغيل الشائعة الأخرى مثل Unix . يمثل حجم نواة نظام التشغيل مصدر قلق رئيسي من ناحية الأمان. كلما ازداد جحم النواة كلما أصبحت امكانية وجود بعض الثغرات الأمنية فيها أكبر. ومن هنا تاتي اهميه استخدام الأنظمة مصغرة النواة مثل جينود. تم استخدام Genode كنقطة ارتكاز لتطبيق العديد من المجالات مثل المحاكاة الافتراضية، اليات التحكم في تواصل المكونات البرمجية، وعزل مكونات الشبكة، الرصد والمراقبة ، واخيرا، اليات تطوير البرمجيات
يمكن استخدام Genode كنظام تشغيل للاجهزة المكتبية واللوحية أو على جهاز افتراضي.

## نبذة تاريخية

تم تطويرجينود في البداية كتقرير بحثي تحت عنوان "Bastei OS Architecture" في جامعة درسدن التقنية - ألمانيا. كان الهدف من التقرير هو تحديد التطبيق العملي لنظم التشغيل التي توفرالأمان للمكونات البرمجية من خلال المقدرات (cababilities) التي يمتلكها كل مكون. بعد نجاح النموذج الأولي للبحث، قام مؤلفو التقرير بتأسيس شركة Genode Labs لتطوير نظام التشغيل Bastei باسم Genode OS Framework.

## الاصدارات

تم تطوير المشروع كمشروع مفتوح المصدر تم إصداره بموجب شروط رخصة جنو أفيرو العمومية. في كل عام يتم إصدار أربعة إصدارات من نظام التشغيل بمعدل إصدار جديد كل ثلاثة أشهر. كل إصدار يحتوي على شرح مفصل لكل التغيرات والتحسينات. بعد الإصدار 18.02 تم توفير نسخة من نظام التشغيل تُدعى Sculpt موجهة للأغراض العامة.

## البنية المعمارية

الفلسفة العامة للأنظمة مصغرة النواة تقوم على مبدء أنه كلما كان الكود البرمجي أصغر وأبسط، كان من الأسهل التحقق من وثوقيته وثباته وخلوه من الثغرات. تم تطوير جينود استناد على هذه الفلسفة، بل ونقلها لتشمل البرمجيات المتموضعه خارج النواة أيضا من خلال التركيز على بناء تطبيقات معقدة من مكونات صغيرة. كل مكون موجود في تسلسل هرمي وفق العلاقة أب - ابن. كل مكون يمتلك مكون أب ومكون ابن أو أكثر. أي مكون أب يُمكنه التحكم بمصادر (مثل مساحة التحزين) والتواصل بين ابناءه (IPC).

## انتقادات

لغة البرمجة ++c
غالبا ما يتم انتقاد جينود لاختياره سي بلس بلس (++C) كلغة البرمجة المستخدمه في كتابة تطبيقاته أو برمجة نواته. بكل الأحوال، جينود ليس نظام التشغيل الوحيد الذي استخدم هذه اللغة، هناك العديد من أنظمة التشغيل بالإضافة إلى معظم المتصفحات في يومنا الحالي بُنيت باستخدام هذه اللغة. المنتقدون لهذا الأختيار غالبا ما يُركّزون على نقطة مهمه وهي أن لغة سي بلس بلس هي اختيار سيئ لتنفيذ مكتبات النظام وواجهات برمجة التطبيقات بسبب التعقيد التي تتسم به اللغة وصعوبة تحليل التعليمات البرمجية الخاصة بها. للحد من هذه الانتقادات، حاول جينود الحد من المشاكل المرتبطة بلغة البرمجة سي بلس بلس. فبينما يَستخدم جينود مفاهيم الوراثة والقوالب المتعددة في مكتبة النظام الخاصة به، فانه لا يُسمح باستخدام مكتبة سي بلس بلس القياسية، كما انه تمت إزالة بعض ميزات اللغة لشائكة الأخرى. لغة الترميز القابلة للامتداد (إكس إم إل) XML
تستخدم المكونات البرمجية في جينود ملف اكس ام ال يحتوي على بيانات منظمة متسلسلة لتحدد الخدمات التي تمتلكها والتي تحتاجها. يتم انتقاد اكس ام ال على نطاق واسع بسبب ميزاتها المعقدة والصعوبة في تحرير مستندات اكس ام ال يدويًا. جينود يستخدم اكس ام ال لاسباب متعددة ومن اهمها هو أن مستندات اكس ام ال يتم تحليلها بسهولة وتوليدها برمجياً مع استمرار إمكانية فهمها وتحريرها يدويًا. بكافة الاحوال، جينود لا يستخدم كل مزايا اكس ام ال ومع ذلك فان المستخدمين الجدد غالباً ما يشتكون خلال تحرير مستندات اكس ام ال ويصرحون بان هذه العملية مملة ومن السهل للمستخدم ان يخطئ فيها.