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

صورة


تحية طيبة!



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



طوال هذا الوقت ، لاحظت أيضًا منشورات حول موارد مختلفة حول "تطوير نظام التشغيل" ، والتي اختتمت أساسًا بإخراج "hello world" في QEMU ، واشتكت من عدم وجود حاجة إلى الخلط بين نظام التشغيل و "برنامج يمكن تشغيله على المعدن العاري" ... لا يتعلق نظام التشغيل على الإطلاق بالعمل على الأجهزة ، فهو يتعلق في المقام الأول بالمزامنة وكل ذلك موسيقى الجاز.



يمكن للمرء أن يجادل بأن أي شخص مهتم بالتطوير "الأكاديمي" يجب أن يقرأ الكتب ، وليس منشورات HOWTO على الإنترنت. من ناحية أخرى ، فإن الكتب مثل أعمال E. Tanenbaum لديها أيضًا أوجه قصور ، مما يؤدي إلى حقيقة أن تدفق المشاركات المذكورة أعلاه لا يجف. لا يزال كتاب تانينبوم (حول MINIX) بمستوى "مرتفع" إلى حد ما ، والعديد من الأسئلة التي تطرح عمليًا لا يتم النظر فيها على الإطلاق. وهناك شيء آخر. ذهب تطوير أنظمة التشغيل للأغراض العامة و RTOS تاريخياً في اتجاهات متعاكسة: في أنظمة التشغيل الشبيهة بـ UNIX ، ظهرت العمليات ذات الخيوط الفردية لأول مرة ، وبعد فترة قصيرة أصبحت العمليات متعددة الخيوط ؛ في عالم RTOS ، كان العكس هو الصحيح ، أولاً كانت هناك أنظمة متعددة العمليات "عملية واحدة" ، وعندها فقط يمكن أن يكون هناك أكثر من عملية واحدة. هناك رأي بأن الحالة الثانية أفضل للدراسة ،لأنه يمكنك البدء بشيء أبسط وتعقيد الأشياء تدريجيًا ، وفي النهاية تصل إلى نفس الشيء. لكني أتطرق.



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



بالمناسبة ، من أجل الدعم المالي والمعنوي لهذا الحدث بأكمله ، أود أن أشكر شركة Eremex ، وكذلك الزملاء الذين أدوا العمل الفذ في شكل قراءة وتحرير المسودة الأولية.



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



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



أود مناقشة القضايا التي لا يواجهها المنظر الذي يدرس مسار أنظمة التشغيل في الجامعة ، ولكن من قبل المبرمج. لذلك ، أسئلة مثل "لماذا لا يعد تبديل السياق المتزامن فكرة جيدة بشكل عام؟" ، "ما التغييرات النوعية في النواة عندما يكون من الضروري دعم العمليات المعزولة؟" إلخ



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



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



يمكن استخدام المصادر المذكورة أعلاه لتوضيح المفاهيم حتى الفصل 6 وتضمينه ، ثم يمكنك الانتقال بسلاسة إلى MINIX.



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



يمكنك تنزيل الكتاب مجانًا بدون تسجيل ورسائل SMS هنا .



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



PS إذا تبين أن الموضوع مثير للاهتمام ، فسأكتب عن FX-RTOS نفسها لاحقًا.



All Articles