2010-03-24 9 views
7

Il mio obiettivo finale è scrivere il programma che può essere eseguito sul sistema operativo Unix. So che ci sono molte versioni di Unix e non so esattamente per ora quale devo supportare. Non riesco ad installare nessun SO Unix in questo momento. L'unica cosa che posso fare è usare il SO libero che è il più vicino possibile a Unix. FreeBSD è una buona scelta per questo? So che esiste anche OpenBSD, forse qualcos'altro.Unix e FreeBSD

Ulteriori informazioni: Il linguaggio di programmazione è C++, sto usando GCC, con alcune librerie portatili: Boost e wxWidgets.

+2

quale programma stai scrivendo? script di shell? Programma C? – ghostdog74

+0

Unix non è un sistema operativo, è una famiglia di sistemi operativi. Stai facendo la maggior parte del lavoro giusto usando gcc. –

+0

@Andrew, il termine UNIX è sovraccarico, e quindi la sua confusione è comprensibile ... UNIX era un sistema operativo e ora è uno standard aperto per i sistemi operativi e una famiglia di sistemi operativi (ovvero quelli che sono conformi al spec). –

risposta

6

OpenBSD, FreeBSD, DragonFlyBSD, NetBSD, Open Solaris, ecc. Sono tutti i sistemi operativi aperti e liberi di Unix, non si può davvero avvicinarsi.

Per aggirare la limitazione dell'installazione, considerare la virtualizzazione con uno strumento come Sun's Virtual box.

+5

I BSD non sono certificati Unix, ma Open Solaris lo è. – reinierpost

+0

Grazie, questa è l'informazione che sto cercando. La mia limitazione è che il programma non è open source. Devo fornire binari compatibili con il sistema operativo di destinazione. Quindi, ho bisogno di installare uno di questi sistemi operativi e creare il programma lì, è corretto? –

+0

@Alex: la compatibilità binaria sarà dura. Ulteriori informazioni sul sistema di destinazione. I binari di FreeBSD x86 non funzioneranno correttamente su Solaris in esecuzione su Sparc. –

5

A seconda del programma, della lingua in cui è scritto, ecc. È possibile scrivere codice portatile su qualsiasi piattaforma. Ad esempio, porto regolarmente una delle mie applicazioni scritte in C++ da Windows, dove lo sviluppo, a Linux, con una piccola modifica (rimuovo il supporto ODBC). Quindi la scelta dell'OS su cui eseguire lo sviluppo non è critica: la scrittura consapevole del codice è.

2

quali programmi stai scrivendo e che lingua stai utilizzando? Sia che tu usi FreeBSD o Solaris ecc., Puoi scrivere codice abbastanza portatile usando C++/Python/Perl ecc. Questi linguaggi di programmazione possono funzionare su piattaforme diverse e non credo che tu abbia grossi problemi con quello.

3

Vedere POSIX standard. È un'API portatile supportata dalla maggior parte dei sistemi operativi Unix.

3

Vedere Single UNIX Specification. Se si apportano solo le ipotesi fornite nelle pagine man fornite da OpenGroup nella sua specifica UNIX UNICA, il codice dovrebbe funzionare su tutti i sistemi operativi compatibili con UNIX.

Se si utilizza il mio development/coding search engine, è fortemente distorto a favore delle origini dalla specifica UNIX singola e facendo clic su "Specifica UNIX singola" limiterà la ricerca a tale origine. Finché ti limiti alle garanzie fatte dalle specifiche, allora dovrebbe funzionare su tutte le varianti UNIX.

Vorrei anche sottolineare che se ti limiti ulteriormente a utilizzare solo le funzionalità fornite dallo standard ISO C++, dalle librerie Boost C++ e da WxWidgets, dovresti essere in grado di indirizzare non solo tutte le varianti di UNIX , ma anche Windows. Tuttavia, se è necessario utilizzare UNIX come destinazione, tutte le interfacce di sistema nella Specifica UNIX Unica specificata nello stesso devono essere sicure da utilizzare.

In termini di ambiente di sviluppo, vi consiglio di installare una copia di Ubuntu Linux in VirtualBox, dal momento che la creazione di un ambiente di sviluppo che lavora su quel particolare distribuzione di Linux è semplice come una singola invocazione di sudo apt-get install, e Linux è de -facto compatibile con UNIX. Il singolo comando sudo apt-get install build-essential pkg-config g++ automake autoconf cmake doxygen libboost1.40-dev libwxgtk2.8-dev è sufficiente per ottenere un ambiente di sviluppo C++ completamente funzionante su Ubuntu con WxWidgets e le librerie Boost C++ installate.

0

La maggior parte dei sistemi sopra menzionati ha il supporto (limitato) per l'esecuzione di file binari di Linux. Puoi provare a creare e distribuire un binario linux. Se lo costruisci su qualcosa come RHEL4 molti di loro supportano l'ABI necessario per eseguire il programma.

Ad esempio, il flashplugin sulla maggior parte dei BSD è in realtà un linux-flashplugin.