2010-03-24 14 views
7

मेरा अंतिम लक्ष्य यूनिक्स ओएस पर चलने वाले प्रोग्राम को लिखना है। मुझे पता है कि कई यूनिक्स संस्करण हैं, और अभी बिल्कुल नहीं जानते कि मुझे किसके समर्थन की आवश्यकता है। मैं अभी कोई यूनिक्स ओएस इंस्टॉल नहीं कर सकता। एकमात्र चीज जो मैं कर सकता हूं वह मुफ्त ओएस का उपयोग करना है जो यूनिक्स के करीब जितना संभव हो। क्या फ्रीबीएसडी इस के लिए एक अच्छा विकल्प है? मुझे पता है कि ओपनबीएसडी भी संभवतः कुछ और है।यूनिक्स और फ्रीबीएसडी

अतिरिक्त जानकारी: प्रोग्रामिंग भाषा सी ++ है, मैं कुछ पोर्टेबल पुस्तकालयों के साथ जीसीसी का उपयोग कर रहा हूं: बूस्ट और WxWidgets।

+2

आप किस प्रोग्राम को लिख रहे हैं? खोल स्क्रिप्ट्स? सी कार्यक्रम? – ghostdog74

+0

यूनिक्स ओएस नहीं है, यह ओएस का एक परिवार है। आप जीसीसी का उपयोग कर सही काम कर रहे हैं। –

+0

@ एंड्रयू, यूनिक्स शब्द अधिभारित है, और इसलिए उसका भ्रम समझ में आता है ... यूनिक्स पहले एक ऑपरेटिंग सिस्टम था और अब यह ऑपरेटिंग सिस्टम के साथ-साथ ऑपरेटिंग सिस्टम के परिवार के लिए एक खुला मानक है (यानी जो अनुपालन करते हैं कल्पना)। –

उत्तर

6

OpenBSD, FreeBSD, DragonFlyBSD, NetBSD, ओपन सोलारिस, आदि सभी खुले और मुक्त यूनिक्स ऑपरेटिंग सिस्टम हैं, तो आप वास्तव में नहीं है कि तुलना में करीब प्राप्त कर सकते हैं।

दरकिनार करने के लिए स्थापना प्रतिबंध सूर्य की Virtual box जैसे उपकरण के साथ वर्चुअलाइजेशन पर विचार करें।

+5

बीएसडी यूनिक्स प्रमाणित नहीं हैं, लेकिन ओपन सोलारिस है। – reinierpost

+0

धन्यवाद, यह वह जानकारी है जिसे मैं ढूंढ रहा हूं। मेरा प्रतिबंध यह है कि कार्यक्रम ओपन सोर्स नहीं है। मुझे लक्ष्य ओएस के साथ संगत बाइनरी प्रदान करने की आवश्यकता है। इसलिए, मुझे इन ओएस में से एक स्थापित करने और प्रोग्राम बनाने की आवश्यकता है, क्या यह सही है? –

+0

@Alex: बाइनरी संगतता कठिन होगी। लक्ष्य प्रणाली के बारे में और जानें। आपकी फ्रीबीएसडी x86 बाइनरी स्पार्क सिस्टम पर चल रहे सोलारिस पर अच्छी तरह से नहीं चलेंगी। –

5

आपके कार्यक्रम के आधार पर, यह किस भाषा में लिखा गया है, इस पर निर्भर करता है कि आप किसी भी प्लेटफ़ॉर्म पर पोर्टेबल कोड लिख सकते हैं। उदाहरण के लिए, मैं नियमित रूप से विंडोज़ से सी ++ में लिखे गए अपने अनुप्रयोगों में से एक को पोर्ट करता हूं, जहां मैं इसे एक छोटे बदलाव के साथ लिनक्स में विकसित करता हूं (मैं ओडीबीसी समर्थन को हटाता हूं)। इसलिए विकास करने के लिए ओएस की पसंद महत्वपूर्ण नहीं है - जानबूझकर पोर्टेबल कोड लिखना है।

2

आप कौन से प्रोग्राम लिख रहे हैं और आप किस भाषा का उपयोग कर रहे हैं? चाहे आप फ्रीबीएसडी या सोलारिस इत्यादि का उपयोग करें, आप सी ++/पायथन/पर्ल इत्यादि का उपयोग करके काफी पोर्टेबल कोड लिख सकते हैं। ये प्रोग्रामिंग भाषाएं विभिन्न प्लेटफार्मों में काम कर सकती हैं और मुझे नहीं लगता कि आपको इसके साथ बड़ी समस्याएं होंगी।

3

POSIX मानक देखें। यह पोर्टेबल एपीआई ऑपरेटिंग सिस्टम की तरह यूनिक्स के अधिकांश द्वारा समर्थित है।

3

Single UNIX Specification देखें। यदि आप ओपन ग्रुप द्वारा एकल एकल यूनिक्स विशिष्टता में प्रदान किए गए मैन पेजों में दी गई धारणाएं केवल तभी करते हैं, तो आपका कोड सभी यूनिक्स-अनुरूप ओएस पर काम करना चाहिए।

यदि आप मेरे development/coding search engine का उपयोग करते हैं, तो यह एकल यूनिक्स विशिष्टता के स्रोतों के पक्ष में भारी पक्षपातपूर्ण है, और "एकल यूनिक्स विशिष्टता" पर क्लिक करने से उस स्रोत को खोज सीमित कर दिया जाएगा। जब तक आप खुद को spec द्वारा गारंटी की गारंटी तक सीमित करते हैं, तो इसे सभी यूनिक्स रूपों पर काम करना चाहिए।

मुझे यह भी इंगित करना चाहिए कि यदि आप बूस्ट सी ++ पुस्तकालयों द्वारा और केवल WxWidgets द्वारा आईएसओ सी ++ मानक द्वारा प्रदान की गई सुविधाओं का उपयोग करने के लिए स्वयं को प्रतिबंधित करते हैं, तो आप न केवल यूनिक्स के सभी प्रकारों को लक्षित करने में सक्षम होना चाहिए , लेकिन विंडोज भी। हालांकि, अगर आपको केवल यूनिक्स को लक्षित करने की आवश्यकता है, तो उसमें निर्दिष्ट यूनिक्स विशिष्टता में सिस्टम सिस्टम इंटरफेस का उपयोग करने के लिए सुरक्षित होना चाहिए।

विकास के वातावरण के संदर्भ में, मुझे लगता है कि आप VirtualBox में Ubuntu Linux की एक प्रति स्थापित करें, लिनक्स के उस विशेष वितरण पर एक काम कर विकास के वातावरण की स्थापना के बाद से sudo apt-get install की एक एकल मंगलाचरण के रूप में सरल है की सिफारिश करेंगे, और लिनक्स डे है यूनिक्स के साथ -फैक्टो अनुपालन। एकल कमांड sudo apt-get install build-essential pkg-config g++ automake autoconf cmake doxygen libboost1.40-dev libwxgtk2.8-dev उबंटू पर WxWidgets और बूस्ट सी ++ लाइब्रेरीज़ के साथ पूरी तरह से काम कर रहे C++ विकास वातावरण को प्राप्त करने के लिए पर्याप्त है।

0

ऊपर वर्णित अधिकांश प्रणालियों में लिनक्स बाइनरी चलाने के लिए (सीमित) समर्थन है। आप लिनक्स बाइनरी बनाने और वितरित करने का प्रयास कर सकते हैं। यदि आप इसे आरएचईएल 4 जैसे कुछ पर बनाते हैं तो उनमें से अधिकतर कार्यक्रम चलाने के लिए आवश्यक एबीआई का समर्थन करेंगे।

उदाहरण सबसे बीएसडी के पर flashplugin के लिए वास्तव में एक लिनक्स flashplugin है।