الهدف الرئيسي من Mimiker هو تقديم الحد الأدنى من نظام التشغيل الذي يشبه Unix ، أي kernel ومجموعة من برامج مساحة المستخدمين.
تصميم kernel مستوحى بشكل كبير من أنظمة FreeBSD و NetBsD مع بعض الأفكار المأخوذة من Linux و Plan9 وغيرها من OS. نقضي الكثير من الوقت في قراءة رمز المصدر لأنظمة التشغيل مفتوحة المصدر. نحن نختار بعناية أفضل قرارات التصميم والأفكار والخوارزميات وواجهة برمجة التطبيقات والممارسات وما إلى ذلك ، وينزعها إلى الحد الأدنى وإعدادها أو التكيف مع قاعدة رمز Mimiker. نأمل عدم تكرار أخطائهم والابتعاد عن الحلول القديمة وغير الممتازة.
يجمع مشروع Mimiker مثل الأشخاص الذين يقدرون الحد الأدنى والبساطة وقدرة على القراءة. نحن نسعى جاهدين للحصول على أدنى تعقيد ممكن للحلول. نحن نحب التخلص من الكود الذي لا يمثل مفيدًا بشكل رهيب أو يتعامل مع حالات حافة نادرة. نحن نعلم قيمة التصريف ولا نتردد في قضاء الوقت في كتابة الأدوات التي تساعد على تحسينها.
على الرغم من أن برامج AssetPace هي جزء من مشروع Mimiker ، إلا أنها تم نقلها ببساطة من NetBsd أو Projectless Project. نحن نركز على تطوير النواة ، لأننا نجدها أكثر إثارة للاهتمام. لا نريد استثمار الكثير من الوقت في برامج تشغيل الأجهزة ، لذلك نحتفظ بقائمة من المنصات المستهدفة صغيرة.
إذا كنت ترغب في المشاركة في المشروع ، فيرجى قراءة Wiki لمعرفة المزيد!
Mimiker هو نظام تشغيل في الوقت الحقيقي. النواة استباقية ودعم Mutexes لدينا ميراث الأولوية. نقوم بتقليل العمل المنجز في سياق المقاطعة عن طريق تفويضه لمقاطعة الخيوط بدلاً من تشغيله باستخدام المقاطعات الناعمة.
يعمل Mimiker على MIPS (32 بت) و AARCH64 و RISC-V (كلا 32 بت و 64 بت) تحت التحكم في QEMU و RELODE.
لدى Mimiker مجموعة لطيفة من أدوات التصحيح: البرامج النصية gdb مكتوبة في Python ، مطهر العنوان kernel ، مدقق التبعية قفل ، مطهر التزامن kernel. لدينا حتى الدعم لتوصيف النواة باستخدام gprof ! نستخدم Clang لتجميع قاعدة الكود الخاصة بنا ، وبالتالي يمكننا استخدام خوارزميات تحليل ديناميكية وثابتة متطورة للمساعدة في توحيد الكود.
يتم توفير مجموعة شائعة من بدائل التزامن ، أي قفلات الدوران ، والمتغيرات الشرطية - كلها مع دلالات بسيطة. ليس لدينا العديد من البدائيات التي تقوم بأشياء مماثلة ، ولكن بشكل مختلف قليلاً ، وهو أمر شائع في حبات FreeBSD أو Linux.
تم توصيل ذاكرة kernel من Mimiker (أي غير قابلة للتبديل) ، لذلك لا داعي للقلق بشأن اختيار الأقفال المناسبة عند الوصول إلى ذاكرة kernel ، على عكس FreeBsD. لدينا تخصيص ذاكرة الأصدقاء للذاكرة الفعلية ، وتخصيص مساحة العناوين الظاهرية وتخصيص الألواح على أساس المجلات وورق VMEM. مخصصات الذاكرة لدينا بسيطة ولكنها فعالة.
ملخصات البنية التحتية لبرنامج تشغيل Mimiker ، تتخلى عن مفهوم تسجيل الأجهزة ويقطع بطريقة مماثلة لمبتدئ FreeBSD المبتدئ. يتم توخي الحذر الخاص لجعل السائقين محمولين. لدينا روتين التعداد أن الأجهزة التلقائية متصلة بحافلات PCI و USB. نستخدم شجرة الجهاز المسطح لقيادة تكوين kernel خلال مرحلة بدء التشغيل.
تعتمد نظام الملفات الافتراضية وعنوان المستخدم إدارة مساحة الفضاء بشكل فضفاض على أفكار FreeBSD. إنهم يحتاجون إلى كمية استبدال من العمل لتصبح ناضجة كما في حبات FreeBSD أو Linux.
لدينا أكثر من ثمانين سيسول تسمح لنا بإدارة أدوات مختلفة مفتوحة المصدر ، بما في ذلك KORN Shell من Netbsd ، محرر Atto Emacs ، LUA مترجم ، وغيرها الكثير. لدينا حتى لعبة:
يدعم Mimiker:
نود أن ندعم:
هناك الكثير من العمل الذي يتعين القيام به. يرجى الرجوع إلى خارطة الطريق الخاصة بنا!