ويندوز لا يعمل على جميع المعالجات. ويندوز محدود جدا.
في الواقع جافا تعمل على جهاز وهمي، يتطلب منك تخصيص برنامج يشغل يشغل برامج جافا على كل معالج و نظام...
هل يمكن برمجة نظام تشغيل أو برنامج يشتغل علي جميع المعالجات
لا. ليس مباشرة، لأن كل معمارية معالج تتطلب تخصيص خاص في النظام، يعني لما تريد جعل نظامك و أحيانا حتى برنامج عادي أن يعمل على معالج آخر يجب أن تعدل فيه، تضيف أجزاء تجعله متوافق معه.
دبيان (Debian GNU/Linux) تعمل على معالجات كثيرة و متنوعة.
بالطبع لا يمكن برمجة نظام تشغيل على لغة جافا بأى حال من الاحوال, لأن لغة جافا تحتاج الى Virtual Machine لتشغيلها, و الvirtual machine يحتاج الى نظام تشغيل أصلا ليعمل! و حتى لو افترضنا ان أحدهم كتب مترجما للغة جافا, فان بنية اللغة نفسها لا تصلح لكتابة نظم التشغيل,
نظم التشغيل تحتاج الى لغات أقرب الى الألة, و غالبا ما تكتب على السى (ويندوز, لينكس, و غيرهم), أو الباسكال (ماك او اس ما قبل 2001).
نظم التشغيل يمكن نقلها من معالج لأخر بسهولة نسبيا, نظرا لأن معظم المعالجات تتشابه فى طريقة عملها, عبر اعادة ترجمة الكود و اعادة كتابة الأجزاء المكتوبة بلغة التجميع (و التى تكون أجزاء صغيرة عادة).
الأسمبلى تختلف من معالج لأخر (و لكنها تتشابه فى معظم الافكار الاساسية),
و لكن الاجزاء التى تكتب بالأسمبلى حاليا أجزاء صغيرة تتناول الاجزاء الاكثر حساسية من نظام التشغيل, و غالبا الBoot sector, لذا فان اعادة كتابتها لا تأخذ الكثير من الوقت.
أخي الكريم لا يمكن ويمكن في نفس الوقت ودعني اشرح لك كيف ذلك
كل معالج له اوامر assembly مختلفة لاختلاف التركيب structure الخاص بالمعالج وبالتالي يجب ان يتم "بناء" build او compile حسب خصائص المعالج
لذلك مسألة ان يتم تشغيل نظام التشغيل علي اكثر من نوع معالج امر ممكن في الحالة التالية
1- المعالج يوفر نفس الاوامر او ال instructions المطلوبة لتشغيل نظام التشغل هذا والتي تم بناء نظام التشغيل ليعمل عليها ولا يمكن ان يعمل بدونها.
2- يتم اعداة بناء build او compile لنظام التشغيل وفقا لنوع المعالج (بمعني ان الكود المصدري source code قد يكون واحد بلا اي اختلاف لكن يجب عمل build حسب نوع المعالج)
مثال ذلك مثلا
1- انظمة mac تحتاج الي instructions معينة في المعالج الخاص بك اذا توفرت فنظريا يمكن تنصيب نظام mac OS علي جهازك.
2- يمكنك تحميل انظمة Linux اعتقد Ubuntu مثلا حسب نوع معالجك وستعمل معك سواء كان نوعه arm مثلا او 64 او 32.
3- انظمة ويندوز الحالية تدعم 32 bit و 64 bit وكلاهما ذو تركيب مختلف كما تدعم arm ايضا.
الفكرة انك وانت تقوم بكتابة كود نظام التشغيل يجب ان تحدد الخدمات التي ستتيحها وال instructions التي تحتاجها بشدة ولا يمكن الالتفاف حولها الخ.
اتمني تكون وضحة الفكرة ولو محتاج توضيح اكثر يمكنني ذلك باذن الله.
جافا لا تصلح لهذا الشيء ، أظن ان سي هي الخيار المناسب.
لست خبيرا في بناء أنظمة التشغيل لكن أظن ان الجزء الذي يتعامل مع المعالج يجب ان يتم كتابته اكثر من مرة ليتعامل مع المعماريات المختلفة مثل x86 ومعمارية ARM
حتى لو كان الأمر ممكننا فلن تحصل على نفس كفاءة نظام التشغيل على جميع المعالجات لإختلاف معماريتها هذا أولا
اما بالنسبة للغة الجافا فهي تعتمد على Virtual Machine تعمل كوسيط "طبقة اضافية" لتقوم بتحويل الأوامر الى لغة الالة وحتى ال Virtual Machine التي بنيت للعمل تحت بيئة ويندوز مختلفة عن تلك التي تعمل على Linux لإختلاف كلا النظامين عن بعضهما البعض.
ولكي تستخدم نفس الأسلوب في المساواة بين أنظمة التشغيل وما فعلته الجافا فأنت #إفتراضيا بحاجة لطبقة إضافية يتم وضعها ما بين نظام التشغيل الخاص بك وبين المعالج مما يعني زيادة في الوقت وبالتالي بطء في النظام.
أن كنت تريد لغة تستعمل لبرمجة لجميع المعالجات والمعماريات فهي لغة C/C++ والأسمبلي فهم يعملون علي الجميع المعالجات C/C++ تبرمج لجميع المعالجات بطريقة القياسية لكن الترجمة البرنامج تختلف من معالح إلي معالج
مرحبا اخي اعتقد ان الاسمبلي تختلف من platform لاخر اي لكل منصه لغة اسمبلي خاصه بها اما بلنسبه ل c /c++ فهما تعملان على كافة انضمة التشغيل لانهما يترجمان الى لغة الاله مباشره