جائني في بالي هذا السؤال و عن انضمة التشغيل و كيفية عملها وبرمجتها
ماهي اللغة يتم برمجة بها انضمة التشغيل ?
فى الأغلب السى و القليل من الأسمبلى, معظم أنظمة التشغيل الحديثة مكتوبة بالسى مثل ويندوز NT و لينكس و ماك او اس اكس,
بعض أنظمة التشغيل كتبت بالباسكال مثل MAC OS القديم (ما قبل MAC OS X) كان معظمه على الباسكال و بعض الأسمبلى.
بعض الانظمة القديمة كتبت حصريا على الأسمبلى مثل الMS-DOS, و لكن لاحقا تمت اعادة كتابة بعض أجزاءه على لغة السى.
نظام CP/M كتب على لغة PL/M و هى لغة تم تصميمها حصريا ليتم كتابة CP/M عليها, تماما مثلما تم تصميم لغة سى فى الأصل لكتابة نظام Unix عليها.
مرحبا بك أخي @فادى إذن حسب كلامك لا يمكن برمجة أنظمة التشغيل بلغات مثل الجافا لأنها أصلا تعمل في نظام وهمي
على الجانب ،متى ستكمل سلسلتك حول الحرب العالمية التقنية لقد انتظرت لعدة أشهر و لم تقم بكتابة أي مقالة جديدة منذ مدة طويلة
مع تحياتي لك.
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 (مع الإسمبلي طبعًا)
كود النواة
حاولت التعمق في برمجة نظم التشغيل ولكن ما أوقفني عنها هو لغة الأسمبلي لا أريد تعلمها هل يمكن برمجة نظام تشغيل بدائي بدون أي كود أسمبلي وما هي المصادر
لست مضطرا حاليا الى التعمق فى الأسمبلى لبرمجة نظام تشغيل حاليا,
و لكن عليك ان تفهمها و تفهم معمارية المنصة التى تعمل عليها, لأنك سوف تستخدمها حتى فى السى, و أحيانا سوف تضطر الى تضمين سطر او سطرين من الأسمبلى فى اكواد السى. كما ان برمجة الBoot Sector غالبا ما تتم على الأسمبلى, يمكن برمجتها على السى لكن هذا غير عملى.
javascript !
Node OS هيهيهيهي ( ضحكة شريرة )
نظام تشغيل بواسطة NodeJs
بأكثر من 2300 نجمة على Github
نفس طريقة فايرفوكس أو إس وكروم أو إس
التعليقات