domingo, 6 de enero de 2008

Linux y Foxpro

El primer problema que se tenia que resolver era que los sistemas desarrollados en Foxpro 2.6 puedan ejecutarse en Linux, logeandose al servidor Novell Netware para su funcionamiento. Esto se tenia que hacer de esa manera, Novell Netware tenia un rendimiento bastante bueno como servidor de archivos, un buen manejo de colas de impresión y poco requerimiento de Hardware.
Con el mismo Hardware Frente a Windows NT o Windows 2000 no hay comparación Novell Netware se desempeña mucho mejor.
Las configuraciones que realice en esa época han cambiado a las configuraciones que se deben realizar para problemas similares en la actualidad, así que los ejemplos y configuraciones las realizare con el software mas actualizado del momento (Inicios del 2008 al escribir estas lineas).

Antes que nada explicare algo que yo considero un principio para solucionar problemas, las soluciones deben estar orientadas a lo que técnicamente es lo mas adecuado no a lo que nosotros conozcamos, esto es muy cierto ya que en muchas oportunidades optamos por soluciones solo en función de lo conocemos no en función de lo que técnicamente es lo correcto me explicare mejor con un ejemplo:
Si yo conozco en la practica solo Windows y el problema seria instalar un cortafuegos tendría las siguientes alternativas:
  • Buscar un software Cortafuegos (El mejor para esta Plataforma) para Windows y realizar la instalación.
  • Analizar diferentes plataformas y realizar una comparación Objetiva.
Si solo me encasillo en la primera alternativa dejo un enorme abanico de posibilidades para la solución de mi problema, si analizo la segunda se que es el mejor camino para la solución de mi problema. Si al analizar las diferentes plataformas todo me llevaría a trabajar con el Sistema Operativo mas seguro del Mundo el cual es OpenBsd, y la pregunta es pero yo solo conozco Windows , llegue a la conclusión que OpenBsd es el camino adecuado pero nunca lo he trabajado a que cosa me estaré metiendo? son preguntas que nos plantearemos al tratar de dar una solución, he allí en asumir el reto y del capital humano con el que contemos para ello. Asumiendo que todos estamos metidos en el mundo informático y tomando como ejemplo a los grandes Gurus de informática tenemos una característica común a todos que es ser autodidactas.

Si tomamos esta formar de pensar para la solución de problemas siempre estaremos aprendiendo y mejoraremos nuestro conocimientos mientras mas problemas resolvamos.

Alternativas de Solución para ejecutar aplicaciones Foxpro Bajo Linux:
  • Buscar una Versión de Foxpro Para Linux
  • Emular DOS
La primera alternativa me llevo a conocer que efectivamente existía una versión de Foxpro para el mundo Unix el SCO Foxpro 2.6, procedí a realizar la instalación primero de los emuladores que me permitan ejecutar aplicaciones para SCO en Linux Aqui una dirección que se explica de manera detallada la instalación de SCO Foxpro.
Empece a ejecutar los aplicativos en SCO Foxpro y funcionaban salvo unos cambios que se tenia que efectuar en los sistemas con respecto a las rutas de los archivos y otras cosas no tan relevantes. Bueno eso no era problema se hubiera cambiado era sencillo realizar eso, el gran problema fue que en sistemas Foxpro complejos SCO Foxpro se colgaba y me arrojaba resultados inesperados, busque toda la información que encontré pero ninguna me dio luces de como corregir el problema, así que esta primera alternativa para ejecutar aplicativos Foxpro en Linux la descarte.

Me quedaba la segunda alternativa utilizar Dosemu para ejecutar los aplicativos de Foxpro así que aquí detallo el procedimiento:

Las capturas de pantalla y los procesos de compilación se han realizado sobre un Linux Fedora 8.0 64 bits.
Primero descargamos los fuentes de dosemu y también descargamos el binario de Freedos (dosemu-freedos-1.0-bin.tgz) para dosemu. Descomprimimos los fuentes de dosemu en una carpeta y copiamos el binario comprimido de Freeedos(dosemu-freedos-1.0-bin.tgz) al directorio donde están descomprimidos los fuentes de dosemu, renombramos el binario a dosemu-freedos-bin.tgz tal como nos muestra la siguiente pantalla:
En esta captura vemos el listado de archivos fuentes descomprimidos, y también vemos el binario de Freeedos ya renombrado. Luego ejecutamos las siguientes instrucciones:

[root@oscar dosemu-1.4.0]# ./configure
[root@oscar dosemu-1.4.0]# make
[root@oscar dosemu-1.4.0]# make install

El comando ./configure nos permite crear el archivo Makefile en función de la configuración de nuestro sistema.
El comando make realiza la compilación de los fuentes para obtener el ejecutable final.
El comando make install instala los ejecutables en el sistema.
El archivo de configuración de dosemu se encuentra localizado en /etc/dosemu/dosemu.conf, aquí se pueden realizar ciertas configuraciones como especificar el tipo de microprocesador a utilizar, la cantidad de Ram memoria extendida y memoria base, así como el directorio de las imágenes de disco para el arranque de dosemu, por defecto dosemu utiliza el directorio del usuario por ejemplo /home/oscar/.dosemu en caso contrario busca los archivos de arranque en /var/lib/dosemu/drives.
Cabe hacer una aclaración en el año 2001 dosemu estaba probando el soporte para ejecutables que hacían uso de memoria extendida y solo podíamos ejecutar foxpro.exe y no fox.exe lo cual suponía una limitación ya que solo estábamos utilizando la memoria base (640kb), este nos obligo a modificar los programas para realizar una optimización en el uso de la memoria y puedan ejecutarse con esta limitación.
En la siguiente captura vemos a dosemu en ejecución:
en la siguiente captura podemos visualizar foxpro ejecutándose:







11 comentarios:

sofhouse dijo...

Muy interesante el trabajo que realizaste, quiero compartir lo que Yo hice: http://www.sofhouse.net

Anónimo dijo...

Hola estamos tratando de correr una aplicación desarrollada en foxpro con un entorno de red mixto win/linux.
La aplicación se encuentra ubicada en un win2k, usamos samba y dosemu.
Quería saber si tuviste algún problema al ejecutar el sistema desde dos estaciones de trabajo al mismo tiempo? Te lo pregunto porque el dosemu nos bloquea el .FXP de foxpro y no deja que otro proceso acceda a ejecutarlo.

Te mando un saludo y si pode ayudarme te lo voy a agradecer muchísimo.

Oscar Zelada Pozo dijo...

Te comento, tuve una experiencia como menciono en mi publicación con sistemas en Foxpro sobre redes Novell y Linux.
Las estaciones tenían diferentes sistemas operativos :como DOS, Widows 95, Windows 98, Windows 2000 y Linux. Los sistemas se encontraban en el servidor Novell, desde las estaciones Linux logeaba Novell y ejecutava los aplicativos en Foxpro, los cuales tuvimos que modificar en ese tiempo (2001) Dosemu solo podía trabajar con memoria base 640KB, pero actualmente eso no es problema. Los sistemas funcionaban.
En el 2003 migramos el servidor Novell por un servidor Linux (Samba) Los sistemas funcionaban correctamente nunca tuve problemas de bloqueos ni nada. El único problema que se me presento fue con las colas de impresión de Novell para lo cual desarrolle un programa en C++ (QT) para gestionar las colas y que los sistemas fox puedan realizar sus impresiones.

La única diferencia que veo con tu problema es que los sistemas se encuentran en un windows eso es correcto ?

Yigo dijo...

Aunque el tema es bastante antiguo, no deja de ser interesante para mi, puesto que me veo en la necesidad de ejecutar un sistema que fue programado en foxpro 2.6. En mi caso el problema que tengo al momento de hacer ./configure es que me indica que no se encuentra sdl-config. Lo estoy tratando de hacer funcionar bajo ubuntu 11.10 32 bits kernel 3.0.0-16 generic, ¿alguna idea de como solucionar? desde ya muchas gracias

Pedro Encarnación dijo...
Este comentario ha sido eliminado por el autor.
Anónimo dijo...

HOla Oscar, eh estado investigando por la red, como instalar FoxPro 2.6 en linux y ninguna opcion me a resultado, si me pudieras ayudar te lo agradeceria.

Oscar Zelada Pozo dijo...

Hola, tienes que instalar dosemu, sobre la distyribucion linux que tienes ybasicamente foxpro se ejecuta sin problemas

sofhouse dijo...

Buenas tardes, Yo tengo funcionando SCO FoxPro 2.6 en Linux desde hace varios años. puedo enviare la información a quien lo necesite; mi istalación se basó en las instrucciones de: http://fox-populi.com/ix/readfpu.htm y funciona perfectamente. atentamente efraincastrop@gmail.com

Abisai Cruz Valdez dijo...

En mi trabajo estamos intentando migrar algunos equipos a linux y tenenmos aplicaciones corriendo en fox dos estoy tratando de configurar dosemu pero al momento de correr la aplicación algunas veces se cierra la aplización o a veces todo el dosemu me imagino que son problemas de memoria pero ni idea como configurar los parametros de memoria me podras ayudar?

Oscar Zelada Pozo dijo...

Que distribución de Linux utilizas ?

Anónimo dijo...

Buenas noches.
Tengo el siguiente problema:
Hice un aplicativo de facturación, utilizando Foxpro 2.6 para DOS. Ahora quisiera ejecutarlo en Linux (quisiera que me recomiendes qué versión de Linux es mejor), pero actualmente ya no tengo la licencia de foxpro. Tengo los fuentes de todo el aplicativo. Lo que quisiera es poder utilizar todo el aplicativo en Linux, sin tener que reescribir el código, tan solo adecuándolo.
Asimismo, el aplicativo escribía los reportes directamente a LPT1, pero ahora las PC ya no traen puerto paralelo, pero necesito imprimir por impresora matricial.
¿Podrías ayudarme?