6.6 Servicios de compatibilidad con sistemas y plataformas legadas

Existen diversas razones por las que una empresa puede desear conservar parcial o totalmente sus sistemas y plataforma aún cuando esté embarcada en un proyecto de cambio a la plataforma GNU/Linux.

Por ejemplo, desea conservar su sistema y agregarle otro con el que su sistema deba interactuar, conservar la plataforma legada para correr programas que no funcionan aún para GNU/Linux, conservar el sistema legado y los datos como respaldo, o conservarlo mientras se migra a sistemas nuevos (para garantizar la correctitud de los nuevos sistemas y conservar datos históricos), o simplemente la empresa desea mantener un software que se adecúa muy bien a sus necesidades y al que está muy acostumbrado (p.ej. Software de Microsoft para el desktop y servidores Linux, o viceversa).

A continuación veremos las herramientas más populares y maduras para estos fines y algunas aplicaciones concretas.

6.6.1 DOSEMU

DOSEMU [163] es un emulador de PC, emula la ISA (Instruction Set Architecture) x86 para permitir correr un sistema operativo DOS sobre un sistema operativo host. De esta manera se pueden ejecutar muchas aplicaciones de DOS sobre Linux.

Virtualiza toda la entrada y salida y las instrucciones de control del procesador; soporta el tamaño de palabra y los modos de direccionamiento de los procesadores x86 en modo real, aunque corre en modo protegido; captura todas las llamadas a DOS y a la BIOS y emula esas llamadas para garantizar su funcionamiento y buena performance; simula un ambiente de hardware (ya que los programas de DOS acostumbran acceder al hardware directamente); provee servicios de DOS a través de servicios nativos de Linux (p.ej. un disco duro virtual no es otra cosa sino una jerarquía de directorios en Linux).

Puede usarse tanto en una consola como en una terminal de X, tanto en modo texto como en modo gráfico (aunque requiere suid-root). Incluye drivers de EMS y XMS, mouse, joystick, permite usar dispositivos como tarjetas de sonido (incluyendo DMA y Midi), CD-roms, CD writers, scanners, cintas, etc. Además, cualquier directorio de Linux puede montarse como un directorio de DOS con el comando lredir. Se puede bootear directamente de un directorio Linux que contenga todos los archivos de DOS. Incluye soporte de conectividad con Netware.

Para usarlo es necesario instalar un DOS, pero no hace falta que sea MS-DOS. DOSEMU suele venir acompañado de FreeDOS1 que funciona bien con muchos programas. Una excepción es Windows 3.x; la manera de hacer funcionar Windows 3.x con DOSEMU es booteando WINOS2 (la versión modificada de Windows 3.1 que usa OS/2), pero en ese caso sí requiere MS-DOS. Obviamente este procedimiento requiere tener las licencias de Windows, OS/2 y MS-DOS.

6.6.2 Wine

Wine [164], a diferencia de los otros programas considerados, no es un emulador, como su nombre lo indica: Wine is not an emulator. Permite correr aplicaciones de Windows traduciendo llamadas a la API Win32 a llamadas al kernel de Linux y a X.

Wine implementa una capa de compatibilidad para correr programas Windows, pero no requiere instalar Microsoft Windows porque no incluye código de Microsoft.

Consiste en un programa cargador que carga y ejecuta un binario Windows, y de un conjunto de bibliotecas que implementa las llamadas a la API de windows usando las equivalentes de Unix y X. Esas bibliotecas también se pueden usar para portar código Win32 a ejecutables nativos de Unix (x86) casi sin cambios en los fuentes.

Wine, opcionalmente, puede usar DLLs nativas de Windows si éstas están disponibles.

La ventaja de no emular la CPU es que las aplicaciones Windows corren a la velocidad normal, salvo en los casos en que las aplicaciones hayan sido optimizadas para correr en Windows. Las desventaja es que las aplicaciones solamente corren sobre procesadores compatibles x86.

Además de la versión estándar de Wine (con licenciamiento LGPL), hay otras versiones de Wine:

TransGaming's Wine (con licenciamiento AFPL para la mayoría del código) con mejor soporte de Direct3D, requerido para juegos. TransGaming incluye otra versión en forma binaria por un monto de suscripción con soporte para juegos con 'copy protection'.

CodeWeavers' CrossOver Office es una versión de Wine que asegura que la mayoría de aplicaciones de ofimática funcionen bien. Hay dos versiones, la estándar y la profesional. CodeWeavers es la empresa que hostea el sitio de Wine y uno de los principales desarrolladores. CodeWeavers también ofrece una versión servidor de Crossover Office, para correr las aplicaciones en thin-clients bajo Linux contra un servidor.

Este es otro ejemplo de una práctica frecuente que las empresas que desarrollan software Open/Free. Intentan financiarse o bien mediante la venta de servicios (llegando, como RedHat, a restringir el acceso directo a sus distribuciones salvo a quienes estén dispuestos a pagar un contrato de soporte), o bien mediante versiones comerciales de sus productos al lado de las versiones Open/Free (como el caso de MySQL), ramas diferentes en el árbol de desarrollo.

Obviamente, para correr aplicaciones de Windows usando Wine se requiere la licencia de esas aplicaciones.

A modo de ejemplo de la difusión en el uso de este software incluímos una tabla que muestra la cantidad de paquetes reportados por usuarios que los ejecutan sobre WINE clasificados por categorías (de la que damos solo algunas). Esos datos fueron extraídos de la base de datos de aplicaciones que corren sobre WINE.

Tipo de Aplicación

Descripción

Cantidad de Aplicaciones Reportadas

Bases de Datos

Bases de Datos Relacionales

31

Publicación de escritorio

Aplicaciones de composición de paginado, impresión y publicación.

10

Finanzas/Contabilidad/Proyectos/CRM

Finanzas personales y empresarial. Manejo de proyectos y de clientes

62

Suites de Oficinas

Aplicaciones de productividad

8

CAD/CAE

Diseño e Ingeniería asistida por Computador

30

6.6.3 Samba

6.6.4 MARS NWE (MARrtin Stovers NetWare Emulator)

Martin Stover desarrollo mars_nwe para poder proveer desde Linux servicios de impresión y de archivo a clientes NetWare [165]. Mars_nwe implementa un subconjunto de Novel NCP para servicio de archivo, Bindery y también servicios de impresión.

Contiene algunos bugs2 pero el número de personas que lo utilizan es alto y el número de estos errores decrece constantemente en cada distribución.

Este software se puede obtener desde ftp.gwdg.de o desde ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/.

6.6.5 LWARED ( LinWare Daemon)

Fue desarrollado por Ales Dryak para funcionar como un servidores de archivos basado en NCP. Provee un subconjunto de funciones de Novell NCP pero no provee facilidades de impresión.

Lwared [165] se basa en programas externos para construir y actualizar las tablas SAP y de ruteo IPX.

Puede obtenerse del sitio ftp anónimo ftp://klokan.sh.cvut.cz o desde sunsite.unc.edu or mirror sites.

6.6.6 Aplicaciones concretas de la tecnología y su posible alcance

Aún en casos de que la empresa cuente con los fuentes, emular puede ser mejor que portar. Por ejemplo, es posible recompilar software escrito en Clipper para que corra bajo Linux (p.ej. mediante FlagShip), pero no siempre es posible garantizar los mismos niveles de servicio de los que se disponen actualmente.

Ese es el caso con los programas en Clipper, los cuales mediante DOSEMU correrán sin modificaciones sobre una nueva plataforma. No hay interrupción del servicio ni trabajo extra, hasta se mantienen los mismos archivos con los mismos datos.

Si además de la plataforma se migra todo el aplicativo a otro lenguaje, DB, etc. la emulación sirve para permitir un cambio paulatino. En lugar dejar de usar el sistema actual y empezar a usar el sistema nuevo al día siguiente, es una práctica estándar al menos durante algún tiempo, tener corriendo ambos sistemas en paralelo.

Tener ambos sistemas corriendo, permite testear la adecuada funcionalidad del nuevo e ir incorporando el nuevo sistema de forma incremental. Es una buena prueba práctica asegurarse que los listados y reportes den lo mismo.

Otra razón interesante para emular es que muchas veces, p.ej. con sistemas contables en donde hay heterogeneidad aún en el modelo de datos, en lugar de resolver el problema de interoperabilidad se elige un cambio de ejercicio y se empieza con el sistema nuevo. En estos casos se mantiene activo el sistema viejo para poder acceder a la información histórica.

El motor del movimiento Linux en Brasil reemplazar Novell + DOS por Linux+MARS+FreeDos, esto es, reemplazar una plataforma obsoleta por una actual, preservando la inversión del cliente en software.

Existen diversos motivos se desearía reemplazar una plataforma por otra, desde averías de hardware hasta problemas de performance. Una empresa que lleva un historial por cliente de información y le interesa poder revisar dicho historial en línea, cada mes que pasa el historial solamente crece y se hace cada vez más lento recorrer el archivo DBF para obtener todas las intervenciones con esa empresa. Cuando un listado para atención telefónica demora dos minutos se hace importante la performance, porque la operativa lo requiere. Entonces no es una opción saturar la tarjeta de red de un servidor Novell transmitiendo 500 MB para que el proceso clipper pueda aplicar un criterio de búsqueda sobre algún campo de texto.

Obviamente que se menciona un caso "límites" de los DBF, porque con índices es posible trabajar adecuadamente.

1FreeDOS (www.freedos.org). Es una reimplementación de MS-DOS, por lo tanto es un sistema operativo compatible con MS-DOS bajo licencia GPL.

2Bug en la jerga informática significa error.

Estudio del Open/Free (GNU/Linux) como plataforma de servicios de red en entornos empresariales
Daniel Caraballo - Mario Madera - Marcelo Odin
Tutor: Ariel Sabiguero Yawelak
2004 - 2005.