كيفية صنع نظام تشغيل للكمبيوتر: 13 خطوة (بالصور)

جدول المحتويات:

كيفية صنع نظام تشغيل للكمبيوتر: 13 خطوة (بالصور)
كيفية صنع نظام تشغيل للكمبيوتر: 13 خطوة (بالصور)

فيديو: كيفية صنع نظام تشغيل للكمبيوتر: 13 خطوة (بالصور)

فيديو: كيفية صنع نظام تشغيل للكمبيوتر: 13 خطوة (بالصور)
فيديو: Install Ubuntu on VirtualBox | تشغيل ابونتو على نظام فيرشوال بوكس 2024, أبريل
Anonim

تعلمك مقالة ويكي هاو هذه كيفية التخطيط لنظام التشغيل وتطويره إذا كنت لا تعرف كيفية البرمجة بلغة C أو C ++. تدير أنظمة التشغيل أجهزة الكمبيوتر وتوفر الموارد التي تحتاجها التطبيقات للتشغيل. تتطلب كتابة نظام تشغيل من نقطة الصفر أمرًا قويًا في علوم الكمبيوتر ، ولغة برمجة مثل C أو C ++ ، وممارسات التجميع وإدارة الكود.

خطوات

جزء 1 من 2: تعلم الأساسيات

قم بعمل نظام تشغيل للكمبيوتر الخطوة 1
قم بعمل نظام تشغيل للكمبيوتر الخطوة 1

الخطوة 1. خذ بعض الدورات الأساسية في علوم الكمبيوتر

على عكس التطوير للويب ، يتطلب إنشاء نظام تشغيل فهمًا قويًا للخوارزميات وهياكل البيانات وأجهزة الكمبيوتر وإدارة الموارد. يحصل الأشخاص على درجات علمية في هذه الأشياء ، لذلك لا تتوقع كتابة نظام تشغيل كامل بعد قراءة برنامج تعليمي عبر الإنترنت! تتوفر دورة مقدمة في علوم الكمبيوتر بجامعة هارفارد عبر الإنترنت من خلال EDX مجانًا.

قم بعمل نظام تشغيل للكمبيوتر الخطوة 2
قم بعمل نظام تشغيل للكمبيوتر الخطوة 2

الخطوة الثانية: تعلم لغة برمجة عالية المستوى مثل Python

بمجرد حصولك على فهم أساسي قوي لعلوم الكمبيوتر ، فإن الخطوة التالية هي إتقان C و / أو C ++. مثل تعلم علوم الكمبيوتر ، فإن إتقان اللغة ليس أمرًا اختياريًا - فلن تكون قادرًا على ترميز نظام تشغيل إذا لم تتمكن من كتابة تطبيقات قوية.

إذا كنت جديدًا في C ، فراجع دورة Dartmouth's C Programming: Getting Started ، وهي مجانية من خلال EDX. بمجرد إكمال هذه الدورة ، يمكنك أن تأخذ الدورة التالية في السلسلة: C Programming: Language Foundations. بعد ذلك ، انتقل إلى الدورات التدريبية اللاحقة مثل البرمجة المعيارية وإدارة الذاكرة والمؤشرات وإدارة الذاكرة

قم بعمل نظام تشغيل للكمبيوتر الخطوة 4
قم بعمل نظام تشغيل للكمبيوتر الخطوة 4

الخطوة 3. تعلم لغة التجميع

لغات التجميع هي لغات منخفضة المستوى مصممة للتواصل مع المعالجات المختلفة. نظرًا لأن التجميع يختلف باختلاف أنواع المعالجات (على سبيل المثال ، لغة التجميع x86 لمعالجات Intel و AMD و VIA والمعالجات الأخرى) ، فستحتاج إلى معرفة الإصدار الخاص بنوع المعالج الذي تقوم بالترميز له.

  • يمكن أن يمنحك هذا الكتاب المفتوح المصدر ، إذا تمت قراءته بالكامل ، فهمًا قويًا بدرجة كافية لبناء نظام تشغيل.
  • The Art of Assembly Language هو كتاب يوصى به بشدة حول التجميع المتاح على الإنترنت وغير متصل.
  • يجب عليك أيضًا إجراء الكثير من الأبحاث حول نوع المعالج (المعالجات) الذي يجب أن يعمل عليه نظام التشغيل الخاص بك. يمكن العثور بسهولة على أدلة هندسة المعالج باستخدام بحث Google ("أدلة Intel" ، "كتيبات ARM ،" إلخ.).
قم بعمل نظام تشغيل للكمبيوتر الخطوة 5
قم بعمل نظام تشغيل للكمبيوتر الخطوة 5

الخطوة 4. أكمل البرنامج التعليمي لنظام التشغيل

ستوجهك البرامج التعليمية لنظام التشغيل خلال عملية إنشاء نظام تشغيل أساسي. هذا يجعلك معتادًا على العملية ويساعدك على معرفة ما إذا كانت هناك أي قطع مفقودة. بمجرد الانتهاء من برنامج تعليمي أو اثنين ، ستكون في طريقك لإنشاء نظام التشغيل الخاص بك.

  • Bare Bones هو برنامج تعليمي يساعدك على كتابة أول نواة بسيطة 32 بت. بعد الانتهاء من البرنامج التعليمي ، فإن الخطوة التالية هي استخدام Meaty Skeleton لبناء نظام التشغيل الخاص بك.
  • Linux from Scratch هو كتاب عبر الإنترنت يرشدك خلال إنشاء نظام التشغيل Linux الخاص بك.
  • أنظمة التشغيل من 0 إلى 1 عبارة عن كتاب مجاني حول إنشاء أنظمة تشغيل مختلفة من البداية إلى النهاية.
قم بعمل نظام تشغيل للكمبيوتر الخطوة 3
قم بعمل نظام تشغيل للكمبيوتر الخطوة 3

الخطوة 5. حدد أهداف نظام التشغيل الخاص بك

ماذا تريد من نظام التشغيل الخاص بك أن يفعل؟ كيف يجب أن تبدو؟ هل تحتاج حقًا إلى كتابة نظام تشغيل كامل أم أنك تبحث فقط عن مظهر معين لسطح مكتبك؟ هذه كلها أشياء يجب مراعاتها قبل البدء في الكود.

  • ضع في اعتبارك التطوير مع فريق من المبرمجين الآخرين. سيؤدي وجود فريق من المطورين يعملون على المشروع إلى تقليل وقت التطوير بشكل كبير.
  • أضف أهداف مشروعك وخططك وأسئلتك إلى مستودعك العام حتى يسهل على الآخرين مساعدتك.

جزء 2 من 2: بناء نظام التشغيل الخاص بك

احصل على متعة الكمبيوتر الخطوة 16
احصل على متعة الكمبيوتر الخطوة 16

الخطوة 1. اختر بيئة التطوير

هذا هو النظام الأساسي الذي ستستخدمه لترميز نظام التشغيل الجديد الخاص بك. إنها مسألة تفضيل شخصي ، لكن معظم الناس يستخدمون Windows أو نكهة من UNIX. إذا كنت تستخدم Windows ، فمن الأفضل تثبيت بيئة UNIX مثل Cygwin أو MinGW. سترغب عمومًا في التأكد من أن البيئة التي تستخدمها تتضمن ما يلي:

  • GCC (مترجم Gnu). إذا كنت تستخدم Windows ، فيمكنك تثبيته في Cygwin أو MinGW.
  • Binutils هي مجموعة من الأدوات المستخدمة لمعالجة ملفات الكائنات. مرة أخرى ، إذا كنت تستخدم Windows ، فيمكنك تثبيته في Cygwin.
  • محرر نصوص جيد. يشيع استخدام Vim و emacs في بيئات UNIX. يمكن لمستخدمي Windows استخدام Notepad ، أو التحقق من Notepad ++ للترقية متعددة علامات التبويب.
  • بيرل و / أو بايثون. يوصى باستخدام أحدهما أو كليهما لمعالجة السلسلة.
قم بعمل نظام تشغيل للكمبيوتر الخطوة 13
قم بعمل نظام تشغيل للكمبيوتر الخطوة 13

الخطوة 2. قم بإعداد نظام التحكم في الإصدار الخاص بك

تعني كتابة نظام تشغيل أنك ستنشئ على الأرجح مئات (أو آلاف) سطور التعليمات البرمجية. عندما تعمل على المراجعات ، يمكن أن يكون هذا محيرًا. بعض الخيارات للتحقق منها هي CVS و Mercurial و Subversion.

قم بعمل نظام تشغيل للكمبيوتر الخطوة 6
قم بعمل نظام تشغيل للكمبيوتر الخطوة 6

الخطوة الثالثة. حدد محمل الإقلاع

إذا كنت لا ترغب في إنشاء ملفك الخاص ، فيمكنك استخدام واحد موجود مثل Grand Unified Bootloader (GRUB). إذا كنت تشعر بالجرأة الكافية لتشفير أداة تحميل التشغيل ، فراجع Rolling Your Own Bootloader على OSDev.org.

قم بعمل نظام تشغيل للكمبيوتر الخطوة 9
قم بعمل نظام تشغيل للكمبيوتر الخطوة 9

الخطوة 4. اختر تصميم النواة

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

قم بعمل نظام تشغيل للكمبيوتر الخطوة 12
قم بعمل نظام تشغيل للكمبيوتر الخطوة 12

الخطوة 5. ابدأ بخطوة صغيرة

ابدأ بالأشياء الصغيرة مثل عرض النص والمقاطعات قبل الانتقال إلى أشياء مثل إدارة الذاكرة وتعدد المهام. يمكنك أيضًا محاولة إنشاء نظام تشغيل بسيط 16 بت ، بدلاً من القيام بقفزة كبيرة.

لن يكون لديك نظام كامل خلال أسبوعين. ابدأ بنظام تشغيل يعمل ، ثم انتقل إلى الأشياء الرائعة

قم بعمل نظام تشغيل للكمبيوتر الخطوة 14
قم بعمل نظام تشغيل للكمبيوتر الخطوة 14

الخطوة 6. اختبر نظام التشغيل الجديد الخاص بك باستخدام آلة افتراضية

بدلاً من إعادة تشغيل جهاز الكمبيوتر الخاص بك في كل مرة تقوم فيها بإجراء تغييرات أو تضطر إلى نقل الملفات من كمبيوتر التطوير إلى جهاز الاختبار الخاص بك ، استخدم تطبيق الجهاز الظاهري. VMWare هو خيار شائع يعمل مع كل من Windows و Linux ، وكذلك Bochs. تحقق من حالات الجمود المحتملة والأخطاء الأخرى وقم بإصلاحها حسب الحاجة.

قم بعمل نظام تشغيل للكمبيوتر الخطوة 15
قم بعمل نظام تشغيل للكمبيوتر الخطوة 15

الخطوة 7. حرر "الافراج عن المرشح

يمكنك القيام بذلك عن طريق تحميل الكود الذي تم اختباره إلى مستودعك العام. سيسمح هذا للأشخاص باختبار نظام التشغيل الخاص بك والإبلاغ عن أي مشكلات يواجهونها.

احصل على متعة الكمبيوتر الخطوة 28
احصل على متعة الكمبيوتر الخطوة 28

الخطوة الثامنة. التواصل مع مطوري أنظمة التشغيل الآخرين

هناك مجتمع كامل من مطوري أنظمة التشغيل يتجمعون في منتديات مختلفة ، بما في ذلك / r / osdev على Reddit و Software Engineering Stack Exchange. عندما تكون قد فهمت تطوير نظام تشغيل أساسي ، اقرأ المنشورات الحالية لمعرفة نوع الأشياء التي تظهر أثناء عملية التطوير.

فيديو - باستخدام هذه الخدمة ، قد تتم مشاركة بعض المعلومات مع YouTube

نصائح

  • تأكد من تنفيذ ميزات الأمان كأولوية قصوى إذا كنت تريد أن يكون نظامك قابلاً للتطبيق.
  • بعد الانتهاء من جميع عمليات التطوير ، حدد ما إذا كنت تريد تحرير الكود كمصدر مفتوح أم ملكية.
  • لجعل نظام التشغيل قادرًا على التعامل مع معالجات متعددة ، يجب أن يكون لدى Memory Manager آليات "قفل" لمنع معالجات متعددة من الوصول إلى نفس المورد في نفس الوقت. ستتطلب "الأقفال" المستخدمة لهذا الغرض وجود برنامج جدولة للتأكد من أن معالج واحد فقط يصل إلى مورد مهم في أي وقت معين وأن جميع الآخرين مضطرون للانتظار. ومع ذلك ، يعتمد المجدول على وجود مدير الذاكرة. هذه حالة تبعية وصلت إلى طريق مسدود. لا توجد طريقة معيارية لحل مشاكل كهذه ؛ كمبرمج ، من المتوقع أن تكون ماهرًا بما يكفي لمعرفة طريقته الخاصة في التعامل معها.
  • يمكن أن يكون نظام التشغيل سهل الاستخدام أيضًا. تأكد من إضافة ميزات سهلة الاستخدام ، مما يجعلها جزءًا لا يتجزأ من تصميمك.
  • لا تنضم منتديات OSDev.org وابدأ في طرح الأسئلة الواضحة. سوف ينتج عنه ببساطة "اقرأ الدليل" الإجابات. يجب أن تحاول قراءة ويكيبيديا ، وكتيبات الأدوات المختلفة التي ترغب في استخدامها.
  • لا تبدأ مشروع نظام تشغيل لبدء تعلم البرمجة. إذا كنت لا تعرف لغة C أو C ++ أو Pascal أو أي لغة أخرى مناسبة ، بما في ذلك معالجة المؤشر ، ومعالجة البت منخفضة المستوى ، وتحويل البت ، ولغة التجميع المضمنة ، وما إلى ذلك ، فأنت لست مستعدًا لتطوير نظام التشغيل.
  • إذا فعلت شيئًا غير حكيم ، مثل كتابة وحدات بايت عشوائية لمنافذ الإدخال / الإخراج العشوائية ، فسوف تتعطل نظام التشغيل لديك ، ويمكنك (نظريًا) قلي أجهزتك.

موصى به: