تعلم تطوير نظام التشغيل باستخدام Linux kernel وRaspberry Pi
يحتوي هذا المستودع على دليل خطوة بخطوة يعلمك كيفية إنشاء نواة نظام تشغيل بسيط (OS) من البداية. أسمي نظام التشغيل Raspberry Pi OS هذا أو RPi OS فقط. يعتمد كود مصدر نظام التشغيل RPi إلى حد كبير على Linux kernel، لكن نظام التشغيل لديه وظائف محدودة للغاية ويدعم فقط Raspberry PI 3.
تم تصميم كل درس بحيث يشرح أولاً كيفية تنفيذ بعض ميزات kernel في نظام التشغيل RPi OS، ثم يحاول توضيح كيفية عمل نفس الوظيفة في Linux kernel. يحتوي كل درس على مجلد مطابق في دليل src، والذي يحتوي على لقطة من التعليمات البرمجية المصدر لنظام التشغيل في الوقت الذي كان الدرس قد اكتمل فيه للتو. وهذا يسمح بإدخال مفاهيم جديدة بأمان ويساعد القراء على متابعة تطور نظام التشغيل RPi. لا يتطلب فهم هذا الدليل أي مهارات محددة لتطوير نظام التشغيل.
لمزيد من المعلومات حول أهداف المشروع وتاريخه، يرجى قراءة المقدمة. لا يزال المشروع قيد التطوير النشط، إذا كنت ترغب في المشاركة - يرجى قراءة دليل المساهمة.
جدول المحتويات
- مقدمة
- دليل المساهمة
- المتطلبات الأساسية
- الدرس الأول: تهيئة النواة
- 1.1 تقديم نظام التشغيل RPi، أو النظام المعدني "مرحبًا بالعالم!"
- لينكس
- 1.2 هيكل المشروع
- 1.3 نظام بناء النواة
- 1.4 تسلسل بدء التشغيل
- 1.5 التمارين
- الدرس الثاني: تهيئة المعالج
- 2.1 نظام التشغيل آر بي آي
- 2.2 لينكس
- 2.3 التمارين
- الدرس الثالث: التعامل مع المقاطعة
- 3.1 نظام التشغيل آر بي آي
- لينكس
- 3.2 معالجة الاستثناءات ذات المستوى المنخفض
- 3.3 وحدات التحكم بالمقاطعة
- 3.4 الموقتات
- 3.5 التمارين
- الدرس الرابع: جدولة العمليات
- 4.1 نظام التشغيل آر بي آي
- لينكس
- 4.2 الهياكل الأساسية للمجدول
- 4.3 تفرع المهمة
- 4.4 المجدول
- 4.5 التمارين
- الدرس 5: عمليات المستخدم واستدعاءات النظام
- 5.1 نظام التشغيل آر بي آي
- 5.2 لينكس
- 5.3 التمارين
- الدرس السادس: إدارة الذاكرة الافتراضية
- 6.1 نظام التشغيل آر بي آي
- 6.2 لينكس (قيد التقدم)
- 6.3 التمارين
- الدرس السابع: الإشارات ومقاطعة الانتظار (يجب القيام به)
- الدرس الثامن: أنظمة الملفات (يجب القيام به)
- الدرس التاسع: الملفات القابلة للتنفيذ (ELF) (يجب إنجازه)
- الدرس 10: السائقين (يجب القيام به)
- الدرس 11: الشبكات (يجب القيام به)