Exportar (0) Imprimir
Expandir todo

Trasladar de UNIX a Win32

Existen varias opciones de migración de aplicaciones de UNIX a Windows:

  • Utilizar bibliotecas UNIX para trasladar aplicaciones desde UNIX a Win32

  • Trasladar aplicaciones de UNIX a Win32 de forma nativa

  • Ejecutar aplicaciones UNIX en Windows NT y Windows 2000 por medio del subsistema POSIX

Una opción que suelen tener en cuenta los programadores de UNIX es el uso de bibliotecas de otros fabricantes similares a UNIX, para permitir que se compile su código UNIX como archivo ejecutable de Win32. Algunas bibliotecas comerciales (y por lo menos una de dominio público) pueden conseguir esto. Esta opción es idónea para algunas aplicaciones. La ventaja de estas bibliotecas de traslado es que reducen al mínimo el trabajo inicial del traslado. Su principal inconveniente, para un producto de software competitivo, es que el traslado nativo a Win32 de una aplicación generalmente es más rápido e, inevitablemente, aporta más funcionalidad. No sería práctico que la aplicación tuviera que salirse de su shell UNIX para efectuar llamadas de Win32 a fin de mejorar el uso de las funcionalidades de Windows NT y Windows 2000.

La lista siguiente proporciona los recursos de Microsoft y de otros fabricantes para la adaptación y compatibilidad de la migración de UNIX a Visual C++:

Guías de migración de UNIX

La Guía de migración de código UNIX (UNIX Code Migration Guide) proporciona ayuda técnica para la migración de código de UNIX al entorno de Win32.

UNIX Code Migration Guide

La Guía de migración de proyectos de Unix (Unix Project Migration Guide) es el complemento de la Guía de migración de código UNIX (UNIX Code Migration Guide) ya que proporciona una ayuda muy completa para la migración de proyectos importantes de UNIX a Win32. Esta guía proporciona consejos sobre temas que se deben considerar en cada fase de migración de un proyecto. La guía puede descargarse desde:

http://go.microsoft.com/fwlink/?linkid=20012

Servicios de Microsoft Windows para UNIX (SFU)

Servicios de Microsoft Windows para UNIX (SFU) versión 3.0 proporciona una gama completa de servicios multiplataforma para integrar Windows en los entornos basados en UNIX. Estos servicios para UNIX incluyen: uso compartido de archivos, acceso remoto y administración, sincronización de contraseñas, administración común de directorios, un conjunto común de herramientas y un shell.

http://www.microsoft.com/windows/sfu/default.asp

InteropSystems.com

http://www.interopsystems.com/

El sitio de otro fabricante que proporciona software compatible con la adaptación de UNIX a Win32.

Sitio Web Boost de C++

Otra opción es la adaptación de las aplicaciones UNIX directamente a Win32. El uso de bibliotecas ANSI C/C++, así como de bibliotecas comerciales de compilación de C, pone a disposición de las aplicaciones de Win32 las llamadas al sistema tradicionales que necesitan las aplicaciones UNIX.

No es necesario modificar el modelo de salida de las aplicaciones basadas en stdio, puesto que las API de consola de Win32 imitan el modelo stdio, y existen versiones de curses que utilizan estas API. Para obtener más información, vea SetConsoleCursorPosition.

Las aplicaciones de Berkeley basadas en sockets apenas necesitan modificaciones para su ejecución como aplicaciones Win32. La interfaz Windows Sockets fue diseñada con miras a su portabilidad con sockets BSD, con un mínimo de cambios, que se documentan en las secciones de introducción de la especificación WinSock.

Windows NT y Windows 2000 admiten RPC compatible con DCE; por tanto, las aplicaciones basadas en RPC se pueden utilizar sin problemas. Vea RPC Functions.

Una de las áreas con diferencias más importantes es el modelo de proceso. UNIX utiliza fork, pero Win32 no. Dependiendo del uso de fork y de la base del código, Win32 cuenta con dos API posibles: CreateProcess y CreateThread. Una aplicación UNIX que bifurque varias copias de sí misma puede modificarse en Win32 de forma que tenga varios procesos o un solo proceso con varios subprocesos. En el segundo caso, existen varios métodos de IPC que facilitan la comunicación entre los procesos (y, probablemente, la actualización del código y los datos del nuevo proceso de forma que se parezcan al primario, si se necesita la funcionalidad suministrada por ese fork). Para obtener más información sobre IPC, vea Interprocess Communications.

Los modelos gráficos de Windows y UNIX son muy distintos. UNIX utiliza la GUI del sistema X Window, mientras que Windows usa GDI. Aunque las API X y GDI son similares en concepto, no existe una asignación sencilla entre ellas. No obstante, OpenGL puede facilitar la migración de las aplicaciones UNIX basadas en OpenGL. Y existen clientes y servidores X para Windows. Vea Device Contexts para obtener información sobre GDI.

Las aplicaciones básicas de UNIX, incluidas numerosas aplicaciones CGI, deben adaptarse fácilmente a Visual C++ si se ejecuta bajo Windows NT y Windows 2000. Funciones como open, fopen, read, write, etc. están disponibles en la biblioteca en tiempo de ejecución de Visual C++. Asimismo, existe una correlación de uno a uno entre las API de C UNIX y las API Win32: open con CreateFile, read con ReadFile, write con WriteFile, ioctl con DeviceIOControl, close con CloseFile, etc.

Otra opción que contemplan los programadores de UNIX es el subsistema POSIX de Windows NT y Windows 2000. No obstante, éste sólo admite POSIX 1003.1, la única versión estandarizada de POSIX existente cuando se creó Windows NT. Desde entonces, la demanda de ampliación de este subsistema ha sido escasa, puesto que la mayoría de las aplicaciones se han convertido a Win32. El sistema 1003.1 tiene un interés reducido para las aplicaciones de versión completa, puesto que no incluye muchas prestaciones (por ejemplo, las de 1003.2, compatibilidad con redes, etc.). Las aplicaciones completas que se ejecutan bajo el subsistema POSIX de Windows NT y Windows 2000 no tienen acceso a las funciones de Windows NT ni Windows 2000 disponibles para las aplicaciones de Win32; por ejemplo, archivos asignados a la memoria, funciones de red y gráficos. Las aplicaciones como VI, LS y GREP son los destinos principales del subsistema POSIX de Windows NT y Windows 2000.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft