تنزيل المقالتنزيل المقال

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

  1. How.com.vn العربية: Step 1 تعلّم البرمجة قبل البدء.
    تعلّم لغة التجميع أمر أساسي ويُنصح بشدة بتعلّم لغات برمجة مساعدة مثل لغة سي.
  2. How.com.vn العربية: Step 2 حدّد أنواع الوسائط التي ترغب بتحميلها على نظام التشغيل.
    يمكن أن تشمل هذه الأنواع محرّكات اسطوانات سي دي أو دي في دي أو الأقراص الصلبة أو أجهزة الكمبيوتر الأخرى.
  3. How.com.vn العربية: Step 3 حدّد الفكرة الرئيسية لنظام التشغيل.
    الفكرة الرئيسية في نظام التشغيل ويندوز مثلًا هي وجود واجهة استخدام بسيطة وسهلة والتركيز على جوانب الأمان.
  4. How.com.vn العربية: Step 4 استهدف بيئة المعالجات التي سوف يدعمها نظام التشغيل.
    معالجات IA-32 و ARM و x86_64 هي أكثر المعالجات شيوعًا في الأجهزة الشخصية ويفضّل أن تكون هي المعالجات التي تختارها.
  5. How.com.vn العربية: Step 5 حدّد ما إن...
    حدّد ما إن كنت ترغب ببناء نظام التشغيل من أوله لآخره بنفسك أو ما إن كانت هناك نواة ترغب بالبناء عليها. مشروع "لينكس فروم سكراتش" أو لينكس من الصفر، على سبيل المثال، أحد المشاريع المخصصة للأشخاص الذين يرغبون بتصميم توزيعة لينكس خاصة بهم.
  6. How.com.vn العربية: Step 6 حدّد ما إن...
    حدّد ما إن كنت ستستخدم محمّل إقلاع خاص بك أم محمّل إقلاع موجود بالفعل، مثل: جراند يونيفاير بووت لودر (GRUB). يمكن أن تؤدي برمجة محمّل إقلاع خاص بك إلى تعطيل جدول برمجة النواة الفعلية حيث أن برمجة محمّل إقلاع خاص يحتاج إلى معرفة هائلة بالمكونات المادية لجهاز الكمبيوتر.
  7. How.com.vn العربية: Step 7 حدّد لغة البرمجة التي ستستخدمها.
    يفضّل استخدام لغة سي أو لغة التجميع على الرغم من إمكانية إنشاء نظام تشغيل باستخدام لغات برمجة، مثل: باسكال وبيسيك. لغة التجميع مهمة للغاية حيث أن بعض الأجزاء الحيوية من نظام التشغيل تتطلب استخدامها في حين أن لغة سي بلس بلس تحتوي على كلمات مفتاحية تحتاج إلى نظام تشغيل كامل لاستخدامها.
    • ستحتاج إلى استخدام مترجم (كومبيلر) من نوع ما بالتأكيد حتى تتمكن من ترجمة نظام تشغيل مبرمج بواسطة لغة سي أو سي بلس بلس ويجب لذلك قراءة دليل/أدلة استخدام مبرمج لغة سي/سي بلس بلس الذي اخترته، سواءً أكان المترجم مجموعًا مع برنامج أو متاحًا عبر موقع موزّع ما. ستحتاج إلى معرفة العديد من الأشياء المبهمة حول المترجم ويجب كذلك معرفة مخطّط التقطيع وواجهة التطبيق الثنائية في لغة سي بلس بلس. يفترض كذلك أن تفهم الصيغ التنفيذية المختلفة (إي ال اف وبي إي وسي أو اف اف والصيغة الثنائية وغير ذلك) ومعرفة أن صيغة بي إي (إي اكس إي) تخضع لحقوق ملكية فكرية.
  8. How.com.vn العربية: Step 8 حدّد واجهة برمجة التطبيق.
    من واجهات البرمجة الجيدة التي يمكن اختيارها POSIX، حيث أنها تمتلك مستندات دعم غنية وتدعم كل أنظمة يونكس واجهة POSIX بشكل جزئي على الأقل مما يسهّل نقل برامج أنظمة يونكس إلى نظام تشغيلك.
  9. How.com.vn العربية: Step 9 اختر تصميمك.
    هناك أنوية أحادية وأنوية مصغّرة وتقوم الأنوية الأحادية بتطبيق كل الخدمات في النواة، بينما تقوم الأنوية المصغّرة بدمج نواة صغيرة مع عوامل المستخدم لتطبيق الخدمات. بشكل عام، الأنوية الأحادية أسرع في حين أن الأنوية المصغّرة تتعامل مع عزل الأخطاء بشكل أفضل وهي أكثر اعتمادية.
  10. How.com.vn العربية: Step 10 فكّر بتطوير نظام التشغيل والعمل في فريق.
    يؤدي ذلك إلى تقليل الوقت اللازم لحل المشكلات مما يمكن أن يؤدي إلى إنتاج نظام تشغيل أفضل في وقت أقصر.
  11. How.com.vn العربية: Step 11 لا تحذف محتويات القرص الصلب بالكامل.
    تذكّر أن حذف محتويات القرص الصلب سيؤدي إلى حذف كل البيانات! استخدم محمّل الإقلاع GRUB أو أي محمّل إقلاع آخر لتشغيل نظام التشغيل الخاص بك مع نظام تشغيل آخر حتى يصبح نظامك مستعدًا للعمل تمامًا.
  12. How.com.vn العربية: Step 12 ابدأ بشكل صغير.
    ابدأ بأشياء صغيرة، مثل: عرض النصوص والقواطع قبل الانتقال إلى أشياء أخرى، مثل: إدارة الذاكرة وتعدّد المهام واحرص على إنتاج إصدار 32 بت وآخر 64 بت.
  13. How.com.vn العربية: Step 13 احتفظ بنسخة احتياطية من آخر مصدر عامل.
    يقدّم ذلك نوعًا من الأمان عند اختلال أي شيء بشكل كبير في نظام تشغيلك الحالي أو في النظام الذي تطوّره. يفضّل وجود نسخة أخرى يمكن العمل عليها لاكتشاف المشاكل وإصلاحها في حالة انهار جهاز الكمبيوتر ولم تتمكن من الإقلاع لأي سبب.
  14. How.com.vn العربية: Step 14 فكّر باختبار نظام تشغيلك الجديد في بيئة افتراضية.
    عوضًا عن إعادة تشغيل جهاز الكمبيوتر في كل مرة تُحدث فيها تغيّرات أو الاضطرار لنقل الملفات من الجهاز المستخدم لتطوير نظام التشغيل إلى جهاز الاختبار، يمكنك استخدام بيئة افتراضية لتشغيل نظام التشغيل مع إبقاء نظام تشغيلك الحالي قيد العمل. تتضمّن برامج البيئة الافتراضية في ام ويير (الذي يمتلك أيضًا منتج خادم مجاني) وكذلك البديل مفتوح المصدر بوشس ومايكروسوفت فيرتشوال بي سي (غير متوافق مع لينكس) وأوراكس فيرتشوال بوكس.
  15. Step 15 أصدر "نسخة تجريبية".
    يسمح ذلك للمستخدمين بإعلامك بشأن المشكلات المحتملة في نظام التشغيل.
  16. How.com.vn العربية: Step 16 يُفضل أن يكون...
    يُفضل أن يكون نظام التشغيل سهل الاستخدام، لذا احرص على تضمين خصائص سهلة الاستخدام بالنسبة للمستخدمين وجعلها جزءًا أساسيًا من تصميم نظام تشغيلك.

أفكار مفيدة

  • تفقّد حالات التجمّد والأخطاء الأخرى. تؤثر الأخطاء وحالات التجمّد والمشاكل الأخرى على مشروع نظام التشغيل الذي تطوّره.
  • احرص على تضمين خواص أمان كأولوية في نظام تشغيلك إن أردت أن ينتشر نظام التشغيل.
  • استخدم مواقع إلكترونية، مثل: أو اس ديف وأو اس ديفير لتطوير نظام تشغيلك الخاص. لاحظ أن مجتمع OSDev.org يفضّل التزامك بمقالات المساعدة وعدم الانضمام للمنتدى في معظم الحالات وهناك اشتراطات مسبقة للانضمام إلى المنتدى إن قررت أن تفعل ذلك، حيث يُشترط أن تمتلك معرفة واسعة بلغة سي أو سي بلس بلس وبلغة تجميع x86 وأن تفهم المفاهيم البرمجية العامة والمعقدة مثل القوائم المترابطة والمهمات وغير ذلك. يوضّح المجتمع بشكل صريح أيضًا، في القواعد، أنه غير مهتم بمجالسة المبرمجين المبتدئين.
  • لا تنضم لمنتديات OSDev.org وتبدأ بطرح أسئلة بديهية، حيث يؤدي ذلك إلى حصولك على إجابة مفادها "اقرأ الدليل الإرشادي". يجب تجربة قراءة ويكيبيديا والأدلة الإرشادية للأدوات المختلفة التي ترغب باستخدامها.
  • يفترض أن تكون "محترفًا" في البرمجة إن كنت ترغب بتطوير نظام تشغيل بالتأكيد.
  • يشترط أيضًا أن تقرأ الأدلة الإرشادية لبنية المعالج الذي اخترته، سواءً أكان x86 (إنتل) أو ARM أو MIPS أو PPC أو غير ذلك ويمكنك إيجاد الدليل الإرشادي للمعالجات بسهولة عن طريق البحث عنها في محرّك البحث جوجل.
  • بعد الانتهاء من عملية التطوير بالكامل، قرّر ما إن كنت ترغب بنشر الرموز البرمجية وجعلها مفتوحة المصدر أو الاحتفاظ بملكيتها.
  • لا تبدأ بمشروع برمجة نظام تشغيل إلا بعد أن تتعلّم البرمجة. لن تكون مستعدًا لتطوير نظام تشغيل إن لم تكن تعرف كيفية البرمجة بلغة سي أو سي بلس بلس أو باسكال أو لغة مناسبة أخرى بشكل موسّع، بما في ذلك التلاعب في الموجّهات والتلاعب في البت على مستوى منخفض وتحويل البت ولغة التجميع الداخلية وما إلى ذلك.
  • يمكن أن تستفيد من إنشاء جزء قرص صلب جديد تمامًا لتطوير نظام التشغيل.
  • فكّر في توزيعات لينكس، مثل: فيدورا ريفايزور أو كاستوم نيمبل اكس أو بابي ريماستر أو بي سي لينكس أو اس ام كي لايف سي دي أو سوسي ستوديو أو سوسي كيوي، إن كنت ترغب في الوصول إلى طريقة سهلة تمكنك من عمل نظام تشغيل، إلا أن ذلك يعني أن نظام التشغيل الذي ستطوّره ينتمي للشركة التي بدأت الخدمة أولًا (مع الاحتفاظ بحق توزيع نظام التشغيل بحرية وتغييره وتشغيله بالطريقة التي ترغب بها وفق رخصة جنو العمومية).

تحذيرات

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

مراجع إضافية

الأشياء التي ستحتاج إليها

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

المزيد حول هذا المقال

يُكتب المحتوى على ويكي هاو بأسلوب الويكي أو الكتابة التشاركية؛ أي أن أغلبية المقالات ساهم في كتابتها أكثر من مؤلف، عن طريق التحرير والحذف والإضافة للنص الأصلي. ساهم 118 فرد في إنشاء هذا المقال. تعاونوا سويًا، دون أن يهتم بعضهم بذكر هويته الشخصية، على تحرير المقال والتطوير المتواصل لمحتواه. تم عرض هذا المقال ١٩٬٢٤٨ مرة/مرات.
تم عرض هذه الصفحة ١٩٬٢٤٨ مرة.

هل ساعدك هذا المقال؟