سؤال

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

معلومات إضافية: لغة البرمجة هي C ++ ، أنا أستخدم GCC ، مع بعض المكتبات المحمولة: Boost و WxWidgets.

هل كانت مفيدة؟

المحلول

OpenBSD و FreeBSD و Dragonflybsd و Netbsd و Open Solaris ، وما إلى ذلك ، كلها أنظمة تشغيل UNIX مفتوحة ومجانية ، لا يمكنك الاقتراب من ذلك.

للتحايل على تقييد التثبيت ، فكر في المحاكاة الافتراضية بأداة مثل Sun's مربع افتراضي.

نصائح أخرى

اعتمادًا على ما يفعله برنامجك ، وما هي اللغة التي كتبها وما إلى ذلك ، يمكنك كتابة رمز محمول على أي منصة. على سبيل المثال ، أقوم بشكل روتيني بتنفيذ أحد تطبيقاتي المكتوبة بـ C ++ من Windows ، حيث أقوم بتطويره ، إلى Linux ، مع تغيير بسيط واحد (أقوم بإزالة دعم ODBC). لذا فإن اختيار نظام التشغيل للقيام بالتطوير ليس أمرًا بالغ الأهمية - كتابة التعليمات البرمجية المحمولة بوعي.

ينظر الى Posix اساسي. إنها واجهة برمجة التطبيقات المحمولة التي يدعمها معظم أنظمة التشغيل UNIX.

انظر مواصفات UNIX واحدة. إذا قمت بعمل الافتراضات الواردة فقط في صفحات MAN التي توفرها المجموعة المفتوحة في مواصفات UNIX الفردية الخاصة بها ، فيجب أن يعمل الكود الخاص بك على جميع OSS المتوافقة مع UNIX.

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

يجب أن أشير أيضًا إلى أنه إذا قمت بتقييد نفسك بشكل أكبر على استخدام الميزات فقط التي يوفرها معيار ISO C ++ ، ومكتبات Boost C ++ ، ومن خلال WXWidgets ، فيجب أن تكون قادرًا على استهداف ليس فقط جميع المتغيرات من UNIX ، ولكن أيضًا Windows أيضًا. ومع ذلك ، إذا كنت بحاجة فقط إلى استهداف UNIX ، فيجب استخدام أي من واجهات النظام في مواصفات UNIX الواحدة على النحو المحدد فيه.

فيما يتعلق ببيئة التطوير ، أوصي بتثبيت نسخة من Ubuntu Linux في VirtualBox, ، نظرًا لأن إنشاء بيئة تطوير عمل على هذا التوزيع الخاص لـ Linux يكون بسيطًا مثل الاحتجاج الواحد sudo apt-get install, ، و Linux متوافق مع UNIX. الأمر الوحيد sudo apt-get install build-essential pkg-config g++ automake autoconf cmake doxygen libboost1.40-dev libwxgtk2.8-dev يكفي الحصول على بيئة تطوير C ++ تعمل بالكامل على Ubuntu مع WXWidgets ومكتبات Boost C ++ المثبتة.

ما هي البرامج التي تكتبها وما هي اللغة التي تستخدمها؟ سواء كنت تستخدم FreeBSD أو Solaris وما إلى ذلك ، يمكنك كتابة التعليمات البرمجية المحمولة إلى حد ما باستخدام C ++/Python/Perl وما إلى ذلك. يمكن لغات البرمجة أن تعمل في منصات مختلفة ولا أعتقد أنك ستواجه مشكلات كبيرة في ذلك.

معظم الأنظمة المذكورة أعلاه لها دعم (محدود) لتشغيل ثنائيات Linux. يمكنك محاولة بناء وتوزيع ثنائي Linux. إذا قمت بإنشائها على شيء مثل RHEL4 ، فإن معظمهم سيدعم ABI اللازمة لتشغيل البرنامج.

على سبيل المثال ، FlashPlugin على معظم BSD هو في الواقع Linux-flashplugin.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top