سؤال

ما هي الطريقة لإنشاء نظام تشغيل خاص بي باستخدام C ++. لقد تم إنشاء Loader Boot (باستخدام NASM ، QEMU) ولكن ليس لدي معرفة لإضافة kernel إلى محمل التمهيد هذا.

لا يوجد حل صحيح

نصائح أخرى

ها هو طن من المعلومات ستحتاجها في النهاية ، الأسئلة الشائعة عن برمجة OS المروعة.

كن حذرًا ، C ++ هو الوزن الثقيل جدًا لنواة OS.

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

يبدو أنك بالفعل أكثر من غيره ، لذا استمر في طرح الأسئلة وربما سينتهي الأمر في مكان لطيف! : VD

أيضا للإضافة ، هذا الكتاب بواسطة Tanenbaum ، حيث يشرح تفاصيل تنفيذ Minix.

قد تفكر في النظر في Minix وهو نظام تشغيل صغير لأنظمة X86. تم تصميمه في الأصل كمشروع تعليمي وتطور إلى شيء يهدف إلى أن يكون مفيدًا في العالم الحقيقي.

أنا لست على دراية بالتفاصيل ، ولكن على حد علمي بيوس كتب في C ++. يجب أن تكون المصادر متوفرة وكذلك الوثائق.

يمكنك إلقاء نظرة على رمز المصدر Minix 3. إنه نظام تشغيل بسيط للغاية ، تم إنشاؤه بهدف فهم كيفية عمل نظام التشغيل.

يمكنك أيضًا دراسة جميع كتاب Tanenbaum حول OS. كلها كاملة جدًا وأتذكر أن كتابًا واحدًا يحتوي على المصدر الكامل لـ Minix المرفق والتعليق

لنظام التشغيل C ++ ، قد ترغب في النظر إلى Newos أو يونيكسليت.

يمكن تطوير نظام تشغيل قابل للاستخدام في أعلى L4, ، حتى من قبل طالب واحد في فصل دراسي واحد مع دورات أخرى (ولكن مع جميع قضايا السائق التي تم حلها بالفعل). إذا وجدت هذه مغامرة رائعة ، و L4 Microkernel هو أيضا نوع من المتقدمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top