2010-03-24 11 views
7

Mi objetivo final es escribir el programa que se puede ejecutar en el sistema operativo Unix. Sé que hay muchas versiones de Unix y, por ahora, no sé exactamente a cuál tengo que dar soporte. No puedo instalar ningún sistema operativo Unix ahora mismo. Lo único que puedo hacer es usar el sistema operativo libre que esté cerca de Unix tanto como sea posible. ¿FreeBSD es una buena opción para esto? Sé que también está OpenBSD, posiblemente algo más.Unix y FreeBSD

Información adicional: El lenguaje de programación es C++, estoy usando GCC, con algunas bibliotecas portátiles: Boost y wxWidgets.

+2

¿qué programa estás escribiendo? guiones de shell? Programa C? – ghostdog74

+0

Unix no es un sistema operativo, es una familia de sistema operativo. Estás haciendo la mayor parte del trabajo correcto al usar gcc. –

+0

@Andrew, el término UNIX está sobrecargado, por lo que su confusión es comprensible ... UNIX anteriormente era un sistema operativo y ahora es un estándar abierto para sistemas operativos, así como una familia de sistema operativo (es decir, aquellos que cumplen con los requisitos especulación). –

Respuesta

6

OpenBSD, FreeBSD, DragonFlyBSD, NetBSD, Open Solaris, etc. son todos sistemas operativos Unix abiertos y gratuitos, no se puede estar más cerca que eso.

Para evitar la restricción de instalación, considere la virtualización con una herramienta como Sun Virtual box.

+5

Los BSD no están certificados como Unix, pero Open Solaris sí lo es. – reinierpost

+0

Gracias, esta es la información que estoy buscando. Mi restricción es que el programa no es de código abierto. Necesito proporcionar binarios compatibles con el sistema operativo objetivo. Entonces, necesito instalar uno de estos SO y construir el programa allí, ¿es correcto? –

+0

@Alex: la compatibilidad binaria será difícil. Conozca más detalles sobre el sistema de destino. Sus binarios de FreeBSD x86 no funcionarán bien en Solaris que se ejecuta en el sistema Sparc. –

5

Según el programa, el idioma en el que está escrito, etc., puede escribir código portátil en cualquier plataforma. Por ejemplo, rutinariamente puerto una de mis aplicaciones escritas en C++ desde Windows, donde la desarrollo, a Linux, con un pequeño cambio (elimino el soporte ODBC). Por lo tanto, la elección del sistema operativo para realizar el desarrollo no es crítica: escribir conscientemente código portátil sí lo es.

2

¿qué programas estás escribiendo y qué idioma estás usando? Ya sea que use FreeBSD o Solaris, etc., puede escribir código bastante portátil usando C++/Python/Perl, etc. Estos lenguajes de programación pueden funcionar en diferentes plataformas y no creo que tenga mayores problemas con eso.

3

Mire POSIX estándar. Es API portátil compatible con la mayoría de los sistemas operativos de Unix.

3

Ver el Single UNIX Specification. Si solo hace las suposiciones dadas en las páginas de manual proporcionadas por OpenGroup en su especificación única de UNIX, entonces su código debería funcionar en todos los sistemas operativos compatibles con UNIX.

Si utiliza mi development/coding search engine, está muy predispuesto a favor de las fuentes de la Especificación UNIX única, y al hacer clic en "Especificación única UNIX" limitará la búsqueda a esa fuente. Siempre y cuando se limite a las garantías establecidas por la especificación, entonces debería funcionar en todas las variantes de UNIX.

Debo señalar también que si se restringe aún más al uso exclusivo de características proporcionadas por el estándar ISO C++, las bibliotecas de Boost C++ y WxWidgets, entonces debería ser capaz de orientar no solo todas las variantes de UNIX , pero también Windows. Sin embargo, si solo necesita apuntar a UNIX, entonces cualquiera de las interfaces del sistema en la Especificación de UNIX única tal como se especifica allí debe ser seguro de usar.

En términos de entorno de desarrollo, recomiendo que instale una copia de Ubuntu Linux en VirtualBox, ya que la creación de un entorno de desarrollo trabajando en ese particular distribución de Linux es tan simple como una sola invocación de sudo apt-get install, y Linux es de -facto compatible con UNIX. El único comando sudo apt-get install build-essential pkg-config g++ automake autoconf cmake doxygen libboost1.40-dev libwxgtk2.8-dev es suficiente para obtener un entorno de desarrollo C++ totalmente operativo en Ubuntu con las WxWidgets y las bibliotecas Boost C++ instaladas.

0

La mayoría de los sistemas mencionados anteriormente tienen soporte (limitado) para ejecutar binarios de Linux. Puede intentar construir y distribuir un binario de Linux. Si construyes algo como RHEL4, la mayoría de ellos soportaría la ABI necesaria para ejecutar el programa.

Por ejemplo, flashplugin en la mayoría de los BSD es en realidad un linux-flashplugin.

Cuestiones relacionadas