اود ان اعرف كيف يمكن لي ان اشغل برنامج على نظم متعددة .
البرنامج بسيط و بلغة اسمبلي او سي و لكن كيف يمكن ان لي ان احدد بيئة ال Run التي اريدها سواء كانت win 32 أو windows NT أو DOS و غيرها .:(
شاكرا لكم حسن تعاونكم :rolleyes:
تحياتي (f)
اود ان اعرف كيف يمكن لي ان اشغل برنامج على نظم متعددة .
البرنامج بسيط و بلغة اسمبلي او سي و لكن كيف يمكن ان لي ان احدد بيئة ال Run التي اريدها سواء كانت win 32 أو windows NT أو DOS و غيرها .:(
شاكرا لكم حسن تعاونكم :rolleyes:
تحياتي (f)
حسب بيئة التطوير فمثلا
اذا استخدمت الجافا فالبرنامج يستطيع العمل على اكثر من منصة
واذا استخدمت الفيجوال بيسك تستطيع العمل على ويندوز فقط
الباحث عن الحقيقة
:cool:
شكرا لك على ردك ،،،
لكن ممكن توضح كيف ممكن احدد البيئة المطلوبة،،، :confused:
اشكرك على حسن تعاونك (gift)
تحياتي (f)
بيئة التطوير مثل الجافا وغيرها من اللغات
سؤالك ليس له علاقة بالقسم ..... و لكن بما أن قوانين القسم لم اضعها بعد، فسجأوب على سؤالك، و لكن سأغير في صيغة السؤال إلى :
- لماذا البرامج المكتوبة للعمل على نظام تشغيل A لا تعمل على نظام تشغيل B؟
عندما تكتب برنامج بلغة الأسمبلي ( على سبيل المثال لغة x86 ) فأنت تحصر برنامجك للعمل على المعالجات التي تفهم لغة ال x86 مثل معالجات انتل و AMD و Cyricx و غيرها ....
عندنا اكتب برنامج بلغة السي مثلا، فبرنامجي ممكن ان انقلة لأي منصة .... مثل SPARC أو ال Alpha أو MIPS ألخ، لأن مترجم السي سيقوم بإنتاج كود الاسمبلي المقابل لهذه المنصات .
هذا على مستوى low- level .......
لنقفز قليلا إلى الإعلى .... إلى مستوى Linking و ال Loading ...
كل نظام تشغيل يعتمد تركيبة خاصة به للملفات التنفيذية، فنظام ويندوز يدعم ال COFF و لينكس يدعم A.OUT، فإذا كتبت برنامج بلغة السي أو الاسمبلي حتى فيجب ان تتأكد ان تستخدم ال Linker المناسب الذي ينتج لك برنامجك على الهيئة التي يدعمها نظام التشغيل ...
لنقفز إلى الأعلى قليل لنتحدث عن برامج التطبيقات ....
عندما تقوم بتصميم برنامج .... فأنت غالبا تحدد نظام التشغيل الذي سيعمل عليه ( طبعا يجب عليك تحديد المنصة ايضا، لانه على سبيل المثال نظام لينكس يعمل على منصات كثيرة، فيجب عليك تحديد المنصة ايضا، ولكن إذا حددت نظام التشغيل فقط فعملية نقلة البرنامج من منصة إلى منصة أخرى على نفس نظام التشغيل هي عملية سهله جدا و لا تتطلب غالبا تغيير في الكود الأساسي)، المشكلة هي انك لا تستطيع بناء برنامج لا يستفيد من خدمات نظام التشغيل ( إلا إذا كان برنامج عديم الفائدة بالتأكيد)، فعلى سبيل المثال: لو كان البرامج الذي كتبته برنامج يقوم بطباعة Hello World فقط، فأنت ستقوم بمناداة دالة خاصة في نظام التشغيل الذي قمت بتحديده سابقا ليقوم بطباعة على الشاشة كلمة Hello World ...... ولكن، لو أردنا الان نقل البرنامج إلى نظام تشغيل أخر، فهل برنامجنا سيعمل عليه ؟ بالطبع لا !!! لانه بالتأكيد نظام التشغيل الأخر يحتوي على دوال اخرى خاصة به تختلف عن النظام التشغيل السابق ..... فأسم دالة الطباعة على الشاشة يختلف اسمها في نظام التشغيل الأخر، لذلك يجب ان تهتم بالخدمات التي تستخدمها من نظام التشغيل عند كتابتك البرنامج .
أي سؤال على هذا الموضوع أسأل :)
تقبل تحياتي .....
Developer .NET
الحمد لله انك لم تضع القوانين بعد،،،
جزاك الله خير،،، (f)
لكن ممكن سؤال؟؟
اقتباسلو أردنا الان نقل البرنامج إلى نظام تشغيل أخر، فهل برنامجنا سيعمل عليه
اعرف انه لن يعمل و هذا هو سؤالي بالتحديد كيف يمكن ان انقل البرنامج إلى نظام تشغيل اخر :confused:
شكرا لك لحسن تعاونك وتفهمك (gift)
ارجو الرد في اقرب وقت ممكن (clock)
تحياتي (f)
النقطة الأولي:
لو كان لدي برنامج كتبته لكي يعمل على نظام التشغيل Y ما و يعمل على معالجات E ، فهذا البرنامج سيكون بلغة الاسمبلي الخاصة بمعالج E ..... فهذا يعني انه لو حاولت تشغيل البرنامج على نظام تشغيل Y و لكن على معالجات F فلن يعمل البرنامج !!!، لماذا ؟ لان لغة الاسمبلي الخاصة بالمعالج E تختلف عن لغة المعالج F !!!
هذه النقطة يجب ان تضعها في بالك دائما الا و هي اختلاف المنصات التشغيلية !!!
النقطة الثانية :
افرض انك تريد نقل برنامجك من نظام تشغيل Y إلى نظام تشغيل C يعملان على معالجات E، اول مشكلة سوف تواجهك هي الواجهات البرمجية التي توفرها هذه الأنظمة، فنظام التشغيل Y يوفر واجهة برمجية تختلف عن الواجهات البرمجية التي يوفرها نظام التشغيل C، على سبيل المثال: الواجهة البرمجية التي يوفرها نظام ويندوز تختلف عن الوجهة البرمجية التي يوفرها لينكس، فإذا كان برنامجك يقوم بصناعة مسلك Thread يإستخدام الدالة CreateThread في ويندوز، فإن برنامجك لن يعمل على لينكس لأن لينكس يوفر دالة بأسم اخر لصناعة المسلك thread !!!
و هذه نقطة مهمة : يجب ان تعرف الخدمات التي يوفرها كل نظام تشغيل .
النقطة الثالثة:
تركيبة ملف ال EXE، كل نظام تشغيل له تركيبة خاصة بملفاته التنفيذية .... فعلى سبيل المثال: فنظام ويندوز يدعم صيغة ال COFF بينما نظام لينكس يدعم ال A.OUT .....
اتمنى ان تكون الاجابة واضحة ...
أي سؤال على هذا الموضوع أسأل
تقبل تحياتي .....
شكراً جزيلاً ،،،
جزاك الله خير ،،،
على الفائدة و على جهودك المبذولة للاجابة على سؤالي ،، (gift)
تحياتي (f)
هذا الموضوع مغلق.