استنادًا إلى بنية树莓派3 و ARMv8-AArch64 ، يتم تنفيذ نواة نظام التشغيل الصغيرة.
يتم تنظيم المشروع في شكل overview subprojects +. overview تخزن جميع الكود. يستخدم كل subproject هذه الرموز وفقًا لاحتياجاتها الخاصة ، بما في ذلك تصفية الملفات غير الضرورية (باستثناءها من التجميع).
تم تطوير المشروع باستخدام لغة C++ الحديثة ، والهندسة المعمارية الهدف الرئيسية هي ARMv8 . المترجم المستخدم من قبل المشروع هو g++ ، وبالتالي فإن الكود سيحتوي على بعض امتدادات بناء الجملة لـ g++ ، مثل __attribute__ ، __asm__ .
بالإضافة إلى ذلك ، ترجمة
يعتمد هذا المشروع على eclipse ( version > = 4.6.3 ). عند التجميع ، تحتاج إلى استخدام إصدار eclipse المناسب. على Windows أو Linux أو MacOS ، حدد File -> Open Projects from File System -> انقر فوق Directory ، حدد الدليل الذي يوجد فيه المشروع ، وفتح -> Finish
يحتوي المشروع على العديد من المشروعات الفرعية ، بشكل رئيسي: host ، qemu_virt ، raspi3 و user_space .
الأهداف المقابلة (الهندسة المعمارية) لهذه التكوينات هي: التطوير بناءً على نظام التشغيل المضيف المضيف (يستخدم بشكل أساسي لاختبار إدارة الذاكرة وغيرها من الوظائف المستقلة عن الهندسة المعمارية) ، التطوير استنادًا إلى محاكاة QEMU (المستخدمة لاختبار الذاكرة الافتراضية ، المقاطعات ، وما إلى ذلك) ، التطوير بناءً على Raspberry Pi 3 (يستخدم للتحقق الشامل) ، والبرنامج في المساحة المستخدم.
تقع جميع المشروعات الفرعية تحت المشاريع الفرعية.
قام المشروع بتكوين بعض أهداف البناء الخاصة. انظر Build Targets المشروع.
في النواة ، يمكن بالفعل استخدام تجنب استخدام المتغيرات العالمية خصيصًا لتهيئة جميع المتغيرات العالمية التي تحتاج إلى تحديد. هذه المتغيرات مريحة للاستخدام فقط لأنها قد خصصت بالفعل مساحة خلال فترة الترجمة. إذا كان عليك استخدامه ، فحدده مرة واحدة في التعريف وإعادة تعريفه مرة واحدة في وظيفة التهيئة.
إذا تم تغيير تكوين المشروع ، فيجب إعادة تشغيل سطر أوامر جديد لأنه سيتم تصدير جميع بيئات Eclipse.
نظرة عامة على التقدم المحرز المرجعي Progress_Current.md
سجل مشروع مرجع recording_note.md
بنية وتكوين المشاريع الفرعية ، تشير إلى المشاريع الفرعية/readMe.md
قيد التقدم (ربما معهد ماساتشوستس للتكنولوجيا ، ولكن قد يتم إغلاقه مرة أخرى ، أصبح الآن نصف مفتوح ونصف).
لا ، اجعله posix بدلاً من ذلك.
اتبع بعض قواعد الترميز التي يمكن الرجوع إليها لاحقًا هنا
اقرأ المستند الذي يمكن نشره لاحقًا
باستخدام QEMU لتصحيح بعض برنامج التجريبي
حاول تغيير رمز Kernel ، Rerun.
ثم ، git add -a && git الالتزام && push push!
انظر هنا ، انظر أيضًا المستند الخارجي.
RSP3-ARMV8-Baremital ، المشروع الأصلي.
Linux ، Linux ، رسميا.
Qemu ، محاكي يساعد كثيرا.
Gvisor ، kernel مساحة المستخدم ، بواسطة Google ، في Go.
وضع المستخدم Linux (UML) ، كما يقول اسمه.
x2 ، نواة قديمة على bochs.
برنامج Raspi3 ، بواسطة BZT ، مفيد جدًا للمبتدئين.
ARMV8 Hello World ، Hello World Meoast لـ ARMV8 ، استنادًا إلى QEMU ، مفيدة للمبتدئين.