كيف تصنع نظام تشغيل للكمبيوتر

مؤلف: Ellen Moore
تاريخ الخلق: 14 كانون الثاني 2021
تاريخ التحديث: 19 قد 2024
Anonim
كيف تصنع نظام تشغيل خاص بك, How to create your own OS
فيديو: كيف تصنع نظام تشغيل خاص بك, How to create your own OS

المحتوى

تسمح أنظمة التشغيل بالتفاعل بين الأشخاص وأجهزة الكمبيوتر وتتكون من آلاف وآلاف من أسطر التعليمات البرمجية. يتم إنشاؤها عمومًا بلغات البرمجة التالية: C و C ++ والتجميع.

خطوات

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

  2. حدد الوسائط التي تريد تحميل نظام التشغيل الخاص بك عليها. يمكن أن يكون قرصًا مرنًا أو قرصًا مضغوطًا أو قرص DVD أو محرك أقراص USB أو محرك أقراص ثابتة أو حتى جهاز كمبيوتر آخر.
  3. حدد ما تريد أن يفعله نظام التشغيل الخاص بك (نظام التشغيل). سواء كان نظام تشغيل كاملًا بواجهة مستخدم رسومية (GUI) أو شيء أكثر بساطة ، ستحتاج إلى معرفة الاتجاه الذي تسلكه قبل أن تبدأ.

  4. حدد منصة المعالج التي سيدعمها نظام التشغيل الخاص بك. إذا لم تكن متأكدًا من ذلك ، فمن الأفضل التركيز على النظام الأساسي للمعالج X86 (32 بت) ، نظرًا لأن معظم أجهزة الكمبيوتر تستخدم معالجات النظام الأساسي X86.
  5. قرر ما إذا كنت تريد تطويره بالكامل بنفسك أو إذا كان هناك نواة متاحة تريد تطوير نظام التشغيل الخاص بك من خلالها. Linux From Scratch هو مشروع لأولئك الذين يرغبون في إنشاء توزيع Linux الخاص بهم ، على سبيل المثال. تحقق من النصائح للوصول إلى ارتباط خارجي.

  6. حدد ما إذا كنت ستستخدم مدير التمهيد الخاص بك أو مدير التشغيل الحالي ، مثل GRUB (Grand Unified Bootloader). نظرًا لأن برمجة أداة تحميل التمهيد الخاصة بك ستمنحك الكثير من المعرفة حول الأجهزة و BIOS ، فقد ينتهي بك هذا الأمر إلى فكرة برمجة النواة نفسها. تحقق من النصائح.
  7. حدد لغة البرمجة التي تريد استخدامها. على الرغم من إمكانية إنشاء نظام تشغيل بلغات مثل Pascal أو Basic ، سيكون من الأفضل استخدام لغة مثل C أو Assembly. التجميع ضروري للغاية ، حيث ستحتاج إليه بعض الأجزاء الحيوية في نظام التشغيل. من ناحية أخرى ، تحتوي C ++ على بعض الكلمات الرئيسية التي تتطلب نظام تشغيل متطورًا بالكامل من أجل التشغيل.
    • لتجميع نظام تشغيل من كود C أو C ++ ، من الواضح أنك ستستخدم مترجمًا واحدًا أو آخر. يجب عليك قراءة دليل المستخدم / الكتيبات / الوثائق لمترجم C / C ++ الذي اخترته ، سواء كان معبأ مع البرنامج أو متاحًا على موقع الموزع. ستحتاج إلى معرفة العديد من التفاصيل المعقدة حول المترجم الخاص بك ، ولتطوير C ++ ، يجب أن تعرف مخطط تحريف المترجم و ABI الخاص به. يُتوقع منك فهم التنسيقات القابلة للتنفيذ المختلفة (ELF ، و PE ، و COFF ، والثنائي المسطح ، وما إلى ذلك) ، بالإضافة إلى فهم أن تنسيق Windows الخاص ، PE (.exe) ، محمي بموجب حقوق النشر.
  8. حدد ما ستكون واجهة برمجة التطبيقات (API) الخاصة بك. واجهة برمجة تطبيقات جيدة للاختيار من بينها هي POSIX ، وهي موثقة جيدًا. تحتوي جميع أنظمة UNIX على دعم جزئي على الأقل لنظام POSIX ، لذلك سيكون من السهل نقل تطبيقات UNIX إلى نظام التشغيل لديك.
  9. قرر كيف سيبدو التصميم الخاص بك. هناك حبات متجانسة وحبات دقيقة. تقوم النوى المتجانسة بتنفيذ جميع الخدمات في النواة ، بينما تحتوي النواة الصغيرة على نواة صغيرة مقترنة بخدمات تنفيذ خدمات المستخدم. بشكل عام ، تكون النواة المتجانسة أسرع ، لكن النواة الدقيقة تتمتع بعزل أفضل للأخطاء وموثوقية أكبر.
  10. ضع في اعتبارك القيام بأعمال التطوير مع فريق. بهذه الطريقة ، سيتم استهلاك وقت أقل في حل عدد أكبر من المشكلات ، مما يؤدي إلى نظام تشغيل أفضل.
  11. لا تقم بتنظيف القرص الصلب بالكامل. تذكر أنه عندما تمسح القرص بالكامل ، فإنك ستحذف جميع بياناتك ، وهذا أمر لا رجوع فيه! استخدم Grub أو مدير تمهيد آخر لاستخدام التمهيد المزدوج مما يسمح لك بتشغيل نظامك بالإضافة إلى نظام آخر ، حتى يكتمل نظامك ويعمل بشكل كامل.
  12. ابدأ من الأسفل. ابدأ بأشياء صغيرة مثل تقديم النص والمقاطعات قبل الانتقال إلى جوانب أكثر تعقيدًا مثل إدارة الذاكرة وتعدد المهام.
  13. احتفظ بنسخة احتياطية من أحدث كود مصدر وظيفي. في حالة حدوث خطأ فادح في الإصدار الحالي أو إذا واجه جهاز الكمبيوتر الخاص بك مشاكل ولم يعد قادرًا على التمهيد أو بدء التشغيل ، فسيكون من الجيد أن يكون لديك نسخة ثانية حتى تتمكن من متابعة العمل أو استكشاف الأخطاء وإصلاحها.
  14. ضع في اعتبارك اختبار نظام التشغيل الجديد على جهاز افتراضي. بدلاً من إعادة تشغيل جهاز الكمبيوتر الخاص بك في كل مرة تقوم فيها بإجراء تغييرات أو تضطر إلى نقل الملفات من جهاز التطوير الخاص بك إلى جهاز الاختبار الخاص بك ، يمكنك استخدام برنامج المحاكاة الافتراضية لتثبيت نظام التشغيل الخاص بك على جهاز افتراضي وتشغيله حتى أثناء استمرار تشغيل نظام التشغيل الحالي. تتضمن تطبيقات المحاكاة الافتراضية برنامج VMWare (الذي يحتوي أيضًا على إصدار مجاني للخوادم) ، و Bochs البديل مفتوح المصدر ، و Microsoft Virtual PC (غير متوافق مع Linux) ، و xVM VirtualBox. تحقق من النصائح لمزيد من المعلومات.
  15. قم بإصدار "نسخة مرشحة" (تُعرف أيضًا باسم الإصدار المرشح أو RC ببساطة). سيسمح ذلك للمستخدمين بتنبيهك إلى المشاكل المحتملة في نظام التشغيل الخاص بك.
  16. يمكن أن يكون نظام التشغيل سهل الاستخدام أيضًا.

نصائح

  • لا تبدأ مشروع تطوير نظام التشغيل في نفس الوقت الذي تبدأ فيه التعلم من حيث البرمجة. لا ليس بالفعل كذلك. إذا كنت لا تعرف لغة C أو C ++ أو Pascal أو أي لغة أخرى مناسبة تمامًا ، بما في ذلك معالجة المؤشر ، ومعالجة البتات منخفضة المستوى ، وتنظيف البتات ، وتفاصيل لغة التجميع ، وما إلى ذلك ، فلن تكون مستعدًا لتطوير نظام تشغيلي.
  • إذا كنت تريد طريقة بسيطة ، ففكر في توزيعات Linux مثل Fedora Revisor أو Custom Nimble X أو Puppy Remaster أو PCLinuxOS mklivecd أو SUSE Studio و SUSE KIWI. ومع ذلك ، فإن نظام التشغيل الذي تنشئه ينتمي إلى الشركة التي بدأت الخدمة الأولية (على الرغم من أن لديك الحق في توزيعها بحرية ، يمكنك تعديلها وتشغيلها كما يحلو لك بموجب ترخيص GPL).
  • بعد اكتمال جميع عمليات التطوير ، حدد ما إذا كنت تريد تحرير التعليمات البرمجية المصدر كتطبيق مفتوح المصدر أو جعلها ملكية.
  • استخدم مواقع مثل OSDev و OSDever كطريقة للمساعدة في تطوير نظام التشغيل الخاص بك. ومع ذلك ، يرجى تفهم أن مجتمع OSDev.org يفضل أن تستخدم ويكي المشروع ، وليس الانضمام إلى المنتدى. إذا كنت ترغب في الانضمام إلى المنتدى ، فهناك بعض المتطلبات الأساسية التي يجب مراعاتها. يجب أن يكون لديك فهم شامل للغات البرمجة C أو C ++ و x86 Assembly. تحتاج أيضًا إلى فهم مفاهيم البرمجة العامة والمعقدة مثل القوائم المرتبطة وقوائم الانتظار وما إلى ذلك. ينص مجتمع OSDev ، في قواعده ، صراحة على أن المجتمع ليس هناك ليكون مربية أو مدرسًا للمبرمجين المبتدئين. إذا كنت تحاول تطوير نظام تشغيل ، فغني عن القول أنه من المتوقع أن تكون نوعًا من "الرب". من الضروري أيضًا قراءة أدلة المعالج لفهم بنية المعالج الذي اخترته ؛ سواء كان ذلك x86 (Intel) ، ARM ، MIPS ، PPC ، إلخ. يمكن العثور بسهولة على كتيبات لهندسة معالج معينة باستخدام محرك بحث Google ("أدلة Intel" ، "أدلة ARM" ، إلخ). لا تنضم إلى منتديات مجتمع OSDev.org وابدأ في طرح أسئلة واضحة. سيؤدي هذا فقط إلى ردود مثل "اقرأ الدواء من الدليل". يجب أن تحاول قراءة ويكيبيديا وكتيبات الأدوات المختلفة التي تريد استخدامها.
  • قد يكون اختيارًا جيدًا لإنشاء قسم جديد تمامًا لتطوير نظام التشغيل.
  • تحقق من المآزق المحتملة وغيرها من الأخطاء أو العيوب. ستؤثر الأخطاء والمآزق والمشاكل الأخرى على مشروع نظام التشغيل الخاص بك.
  • لمزيد من المعلومات ، تحقق من هذه المصادر:
    • دليل: Linux From Scratch
    • إدارة التمهيد: GRUB
    • تطبيقات المحاكاة الافتراضية: Bochs و VM Ware و XM Virtual Box.
    • كتيبات المعالج: أدلة إنتل
    • مواقع تطوير أنظمة التشغيل: OSDev، OSDever

تحذيرات

  • لن يكون لديك نظام كامل خلال أسبوعين. ابدأ بنظام تشغيل يمكنه التمهيد ، ثم انتقل إلى الأشياء الرائعة.
  • إذا فعلت شيئًا غبيًا حقًا ، مثل كتابة وحدات بايت عشوائية لمنافذ الإدخال / الإخراج العشوائية ، فسوف "تتعطل" نظام التشغيل لديك ، ويمكن (من الناحية النظرية) إتلاف أجهزتك. للحصول على عرض توضيحي ، قم بتشغيل "cat / dev / port" على Linux كمستخدم أساسي. جهاز الكمبيوتر الخاص بك "سوف" يتعطل.
  • تأكد من تطبيق ميزات الأمان كأولوية قصوى إذا كنت ترغب في استخدام نظام التشغيل الخاص بك لأي شيء.
  • يمكن أن يؤدي وجود نظام التشغيل المكتوب بإهمال على محرك الأقراص الثابتة إلى إتلافه تمامًا. احرص.
  • لا تتوقع أن يكون تطوير نظام تشغيل مناسب مهمة سهلة. غالبًا ما يكون هناك ترابطات معقدة. على سبيل المثال ، من أجل جعل نظام التشغيل قادرًا على التعامل مع معالجات متعددة ، ستحتاج إدارة الذاكرة إلى آليات "قفل" لمنع معالجات متعددة من الوصول إلى نفس المورد في نفس الوقت. ستتطلب "الأقفال" المستخدمة لهذا الغرض وجود مُجدول زمني أو منظم للتأكد من أن معالجًا واحدًا فقط يمكنه الوصول إلى مورد مهم في أي وقت وأن جميع الآخرين في وضع الانتظار. يعتمد هذا المجدول على وجود مدير الذاكرة. هذه حالة من الجمود أو التبعية المأزق. لا توجد طريقة قياسية لحل مثل هذه المشكلات ، يجب أن يتمتع كل مبرمج نظام تشغيل بالمهارات اللازمة لإنشاء طرق خاصة به للتعامل معها.

المواد اللازمة

  • كمبيوتر جيد
  • معالج معماري تريد تطويره
  • ذاكرة RAM كافية لجهاز افتراضي
  • نظام تشغيل "مضيف" (يُستخدم لتطوير كود مصدر المجمع (وغيره) بالإضافة إلى تجميعه وحزمه في مراحله الأولى ؛ وفي النهاية ، قد يكون نظام التشغيل الخاص بك هو مضيفك الخاص)
  • محرر كود مع بناء جملة اللون (استخدم إذا لم يكن لديك IDE)
  • مترجم
  • محرك أقراص مرنة (غير مطلوب)

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

ستعلمك هذه المقالة كيفية ضبط المنبه باستخدام أمر صوتي على الأجهزة المتصلة بتطبيق Google Home أو Google A i tant. يمكنك أيضًا تسمية إنذاراتك ، وجعل الإنذارات متكررة ، والسؤال عن التنبيهات النشطة ، واخت...

مثيرة للاهتمام على الموقع