جائني في بالي هذا السؤال و عن انضمة التشغيل و كيفية عملها وبرمجتها
ماهي اللغة يتم برمجة بها انضمة التشغيل ?
assembly وحدها أو مع C - C++
مع العلم ان جميع المكتبات التي تريد استخدامها في سي عليك بناؤها بنفسك
لا تستعمل لغة السي++ في برمجة أنظمة التشغيل ،ففي هذا النوع من البرمجة لا نحتاج إلى البرمجة كائنية المنحى
ومن قال انه لا يمكن؟ ممكن حتى بالجافا!
أجل هناك نظام تشغيل بالجافا،
فليستعمل الطريقة التي تناسبه، وليست c++ سيئة، بل جيدة جدا
لا يمكن بأى حال من الاحوال كتابة نظام تشغيل بالجافا, هذا مستحيل تماما لأن الجافا تحتاج الى ماكينة جافا الافتراضية و هى أصلا برنامج يعمل على نظام تشغيل! سوف تقوم بتصميم نظام تشغيل يحتاج الى نظام تشغيل اخر كى يعمل!
حتى لو افترضنا أنه تم بطريقة ما كتابة Compiler للغة جافا يقوم بترجمة اكواد الجافا لnative code, فسوف تصطدم بعدم قدرة الجافا على ادارة الذاكرة بشكل مباشر و هى شىء أساسى لكتابة نظام تشغيل.
لا يمكن بأى حال من الاحوال كتابة نظام تشغيل بالجافا, هذا مستحيل تماما لأن الجافا تحتاج الى ماكينة جافا الافتراضية و هى أصلا برنامج يعمل على نظام تشغيل! سوف تقوم بتصميم نظام تشغيل يحتاج الى نظام تشغيل اخر كى يعمل!
هذا ما قلت أول مرة
حتى لو افترضنا أنه تم بطريقة ما كتابة Compiler للغة جافا يقوم بترجمة اكواد الجافا لnative code, فسوف تصطدم بعدم قدرة الجافا على ادارة الذاكرة بشكل مباشر و هى شىء أساسى لكتابة نظام تشغيل.
أتفق معك ، لكن مبرمجيه كانوا ينوون إبراز قدرات جافا لا أكير ولا أقل
JNode هو Java Virtual Machine مدمجة داخل Kernel مكتوب على الأسمبلى , هذا ما فهمته من الdocumentation,
أى ان Jnode يحتاج الى نظام تشغيل (فى Jnode اسمه n-kernel) اخر لكى يعمل.
جميع البرامج الاخرى الملحقة لنظام التشغيل تم برمجتها على الجافا,
الجزء الاساسى و هو النواة تم برمجته بالأسمبلى على ما يبدو.
نظم التشغيل تبدأ من Boot Sector, و هو برنامج صغير على الSector 0 من القرص و له حجم محدد و غالبا ما تتم كتابته على الاسمبلى, يقوم فقط بتحميل الLoader, و هذا قد يكون مكتوبا بالسى او الاسمبلى, و وظيفته تحميل الكيرنل, يقوم الLoader بتحميل الكرنل و التى تبدأ بالعمل, و الكرنل غالبا تكون مكتوبة بالكامل على السى.
الكيرنل كما قال الأخ @فادى لا يمكن بناؤها بالجافا أما البرامج عمومًا فيمكن بأي لغة فأي نظام تشغيل هو مكون من برامج + الكيرنل فالبرامج مثل : الرسام ، الواجهة الرسومية ، نوتباد وغيرها وهذه بأي لغة برمجة ويمكن استبدالها في حال أن النظام يسمح بذلك أما الكيرنل فهي التي تشغل هذه البرامج وتصل بينها وبين المكونات الداخلية للحاسب
يمكن ذلك، لكن بعد التخلي عن بعض الخدمات
أشهر مثال هو نظام Haiku المكتوب بـ ++C (مع الإسمبلي طبعًا)
كود النواة
التعليقات