تسمح أنظمة التشغيل للأشخاص بالتفاعل مع مكونات أجهزة الكمبيوتر وتتكون من مئات الآلاف من التعليمات البرمجية. عادة ما تتم برمجة أنظمة التشغيل باستخدام لغة C-Sharp و CC-Plus ولغة التجميع. تسمح أنظمة التشغيل بتصفح الكمبيوتر، وإنشاء مساحة تخزين، وتنفيذ الأوامر. لا تعتقد أن إنشاء نظام تشغيل جديد أمر سهل، فهو يتطلب الكثير من المعرفة.

خطوات

  1. 1 تعلم البرمجة قبل أن تبدأ. يعد تعلم لغة التجميع أمرًا ضروريًا ويوصى بشدة بتعلم لغات البرمجة المساعدة مثل C.

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

  3. 3 تحديد الفكرة الرئيسية لنظام التشغيل. الفكرة الرئيسية في نظام التشغيل Windows، على سبيل المثال، هي أن يكون لديك واجهة بسيطة وسهلة الاستخدام والتركيز على جوانب الأمان.

  4. 4 استهدف بيئة المعالج التي سيدعمها نظام التشغيل. معالجات IA-32 و ARM و x86_64 هي المعالجات الأكثر شيوعًا في الأجهزة الشخصية ويجب أن تكون المعالجات المفضلة.

  5. 5 قرر ما إذا كنت تريد بناء نظام التشغيل بنفسك من الصفر أو إذا كان هناك نواة تريد البناء عليها. مشروع Linux From Scratch، على سبيل المثال، هو واحد للأشخاص الذين يرغبون في إنشاء توزيعة Linux الخاصة بهم.

  6. 6 حدد ما إذا كنت ستستخدم محمل الإقلاع الخاص بك أو محمل الإقلاع الحالي، مثل Grand Unifire Bootloader (GRUB). يمكن أن تؤدي برمجة برنامج bootloader الخاص بك إلى تعطيل جدول برمجة kernel الفعلي لأن برمجة برنامج bootloader الخاص يحتاج إلى معرفة هائلة بأجهزة الكمبيوتر.

  7. 7 حدد لغة البرمجة التي ستستخدمها. يفضل استخدام لغة C أو لغة التجميع، على الرغم من إمكانية إنشاء نظام تشغيل باستخدام لغات البرمجة مثل Pascal و BASIC. تعد لغة التجميع مهمة جدًا حيث تتطلب بعض الأجزاء الحيوية من نظام التشغيل استخدامها بينما تحتوي C ++ على كلمات رئيسية تحتاج إلى نظام تشغيل كامل لاستخدامها.

    • ستحتاج بالتأكيد إلى استخدام مترجم من نوع ما من أجل تجميع نظام تشغيل مبرمج في C أو C Plus Plus وبالتالي يجب عليك قراءة الدليل (الكتيبات) لمبرمج C / C Plus الذي اخترته، سواء كان المترجم مدمجًا مع برنامج أو يتم توفيره من خلال موقع موزع. ستحتاج إلى معرفة العديد من الأشياء الغامضة حول المترجم ويجب أن تعرف أيضًا مخطط التقطيع والواجهة الثنائية للتطبيق في C +++. يجب عليك أيضًا فهم التنسيقات المختلفة القابلة للتنفيذ (ELF، و PE، و COFF، و Binary، وما إلى ذلك) ومعرفة أن PE (EXE) يخضع لحقوق الملكية الفكرية.
  8. 8 حدد API. واجهة برمجة جيدة للاختيار هي POSIX، لأنها تحتوي على وثائق دعم غنية وجميع أنظمة UNIX تدعم POSIX جزئيًا على الأقل، مما يجعل من السهل نقل برامج UNIX إلى نظام التشغيل الخاص بك.

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

  10. 10 ضع في اعتبارك تطوير نظام التشغيل والعمل ضمن فريق. يؤدي ذلك إلى تقليل الوقت المطلوب لحل المشكلات التي يمكن أن تؤدي إلى نظام تشغيل أفضل في وقت أقصر.

  11. 11 لا تحذف محتويات القرص الصلب بالكامل. تذكر أن حذف محتويات القرص الصلب سيؤدي إلى حذف جميع البيانات! استخدم محمل الإقلاع GRUB أو أي محمل إقلاع آخر لتشغيل نظام التشغيل الخاص بك بنظام تشغيل آخر حتى يصبح نظامك جاهزًا تمامًا للعمل.

  12. 12 ابدأ صغيرًا. ابدأ بأشياء صغيرة مثل عرض النص والقواطع قبل الانتقال إلى أشياء أخرى مثل إدارة الذاكرة وتعدد المهام وتأكد من إنتاج إصدار 32 بت وإصدار 64 بت.

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

  14. 14 ضع في اعتبارك اختبار نظام التشغيل الجديد في بيئة افتراضية. بدلاً من إعادة تشغيل جهاز الكمبيوتر الخاص بك في كل مرة يتم إجراء تغييرات أو الحاجة إلى نقل الملفات من الجهاز المستخدم لتطوير نظام التشغيل إلى جهاز الاختبار، يمكنك استخدام بيئة افتراضية لتشغيل نظام التشغيل مع الحفاظ على تشغيل نظام التشغيل الحالي. يشتمل برنامج المحاكاة الافتراضية على برنامج VMware (الذي يحتوي أيضًا على منتج خادم مجاني) بالإضافة إلى برنامج Bushes البديل مفتوح المصدر و Microsoft Virtual PC (غير متوافق مع Linux) و Orax VirtualBox.

  15. أصدر 15 “نسخة تجريبية”. يتيح ذلك للمستخدمين إخطارك بالمشكلات المحتملة في نظام التشغيل.

  16. 16 من الأفضل أن يكون نظام التشغيل سهل الاستخدام، لذا تأكد من تضمين ميزات سهلة الاستخدام وجعلها جزءًا أساسيًا من تصميم نظام التشغيل الخاص بك.

أفكار مفيدة

  • تحقق من التجمد والأخطاء الأخرى. تؤثر الأخطاء والتجميد والمشكلات الأخرى على مشروع نظام التشغيل الذي تقوم بتطويره.
  • تأكد من تضمين ميزات الأمان كأولوية في نظام التشغيل الخاص بك إذا كنت تريد أن ينتشر نظام التشغيل.
  • استخدم مواقع الويب مثل OSDev و OSDever لتطوير نظام التشغيل الخاص بك. لاحظ أن مجتمع OSDev.org يفضل التزامك بمقالات المساعدة وعدم الانضمام إلى المنتدى في معظم الحالات، وهناك شروط مسبقة للانضمام إلى المنتدى إذا قررت القيام بذلك، حيث يلزم أن تكون لديك معرفة واسعة بلغة COC Plus ولغة التجميع x86 وفهم مفاهيم البرمجة العامة والمعقدة مثل القوائم المترابطة والمهام والمزيد. يوضح المجتمع أيضًا صراحة، في القواعد، أنه غير مهتم بمجالسة المبرمجين المبتدئين.
  • لا تنضم إلى منتديات OSDev.org وابدأ في طرح أسئلة واضحة، حيث سيؤدي ذلك إلى إجابتك “اقرأ الإرشادات”. يجب أن تحاول قراءة ويكيبيديا وأدلة الأدوات المختلفة التي تريد استخدامها.

  • إذا كنت ترغب في تطوير نظام تشغيل، فعليك بالتأكيد أن تكون مبرمجًا “محترفًا”.
  • مطلوب أيضًا أن تقرأ التعليمات الخاصة بهندسة المعالج الذي اخترته، سواء كان x86 (Intel)، أو ARM، أو MIPS، أو PPC، وما إلى ذلك. يمكنك العثور على الإرشادات الخاصة بالمعالجات بسهولة من خلال البحث عنها في محرك بحث جوجل.
  • بعد الانتهاء من عملية التطوير بأكملها، قرر ما إذا كنت تريد نشر الكود وجعله مفتوح المصدر أو الاحتفاظ به مملوكًا.
  • لا تبدأ مشروع برمجة نظام تشغيل حتى تتعلم البرمجة. لن تكون مستعدًا لتطوير نظام تشغيل إذا كنت لا تعرف كيفية البرمجة بلغة C ++ أو Pascal أو أي لغة أخرى مناسبة على نطاق واسع، بما في ذلك معالجة التوجيهات، ومعالجة البتات منخفضة المستوى، وتحويل البتات، ولغة التجميع الداخلية، و قريباً.

  • يمكن أن يستفيد من إنشاء قسم جديد للقرص الصلب لتطوير نظام التشغيل.
  • فكر في توزيعات Linux مثل Fedora Revizor أو Custom Nimble X أو Papy Remaster أو PC Linux أو Smk Live CD أو SOSE Studio أو SOCI Kiwi إذا كنت تريد طريقة سهلة لإنشاء نظام تشغيل، ولكن هذا يعني أن نظام التشغيل الذي ستقوم بتطويره ينتمي إلى الشركة التي بدأت الخدمة أولاً (مع الحق في توزيع نظام التشغيل بحرية، وتغييره وتشغيله كما يحلو لك بموجب رخصة جنو العمومية العامة).

تحذيرات

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

مراجع إضافية

  • كيف ترشد
  • محمل الإقلاع
  • تطبيقات البيئة الافتراضية،،
  • أدلة العلاج
  • مواقع تطوير أنظمة التشغيل

الأشياء التي سوف تحتاجها

  • جهاز الكمبيوتر.

  • معالج البنية التي قمت بتطوير نظام التشغيل من أجلها.

  • ذاكرة عشوائية كافية لتشغيل البيئة الافتراضية.

  • نظام تشغيل مضيف (يستخدم لتطوير وبناء وتجميع كود المجمع “إلخ” وبعد ذلك، سيصبح نظام التشغيل الخاص بك هو المضيف في النهاية).

  • محرر كود يقوم بتلوين السياق (استخدم محرر نصوص إذا لم يكن لديك IDE).

  • مبرمج.

  • محرك الأقراص المضغوطة أو محرك أقراص DVD.