Portabilidade de UNIX para Win32

When migrating applications from UNIX to Windows, you have several options:

  • Usando bibliotecas de UNIX portar aplicativos a partir de UNIX para Win32

  • Porting applications from UNIX to Win32 natively

  • UNIX aplicativos em execução no Windows usando o subsistema POSIX

Bibliotecas de UNIX

Normalmente, os programadores de UNIX de uma opção considere está usando bibliotecas de tipo UNIX de terceiros para permitir que a sua compilação do código de UNIX como um executável Win32. Vários comerciais (e pelo menos um domínio do público) bibliotecas de fazer isso. Esta é uma opção para alguns aplicativos. A vantagem dessas bibliotecas de portagem é que eles minimizar o esforço de portagem inicial. A principal desvantagem de um produto de software competitivo, é que uma porta de Win32 nativa de um aplicativo geralmente será mais rápida e terá, inevitavelmente, mais funcionalidade. Pode ser inconveniente para o aplicativo para a etapa fora do seu shell UNIX se precisar fazer chamadas do Win32 para obter mais energia do Windows.

A lista a seguir fornece a Microsoft e recursos de terceiros para portar e suporte de migração de UNIX para o Visual C++:

Guias de migração de UNIX

O guia de migração do aplicativo personalizado UNIX fornece ajuda técnica sobre a migração de código de UNIX para o ambiente Win32.

https://go.microsoft.com/fwlink/?LinkId=95428

O guia de projeto de migração do Unix complementa o guia de migração do aplicativo personalizado UNIX fornecendo ajuda de alto nível em projetos de migração substanciais de UNIX para Win32. O guia fornece conselhos sobre questões a considerar em cada estágio de migração do projeto. O guia pode ser baixado em:

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

Microsoft Windows Services for UNIX (SFU)

Microsoft Windows Services for UNIX (SFU) oferece uma gama completa de serviços de cross-platform para integrar o Windows em ambientes UNIX. Serviços de UNIX fornece compartilhamento de arquivos, acesso remoto e administração, sincronização de senha, gerenciamento de diretório comum, um conjunto comum de utilitários e um shell.

Windows Services for UNIX

InteropSystems.com

http://www.interopsystems.com/

Um terceiro site para uma empresa, fornecendo suporte UNIX de portagem para Win32 de software.

Site do aumento de C++

http://Boost.sourceforge.NET/Regression-logs/

http://Boost.sourceforge.NET/Boost-BUILD2/

Portando aplicativos de UNIX diretamente para Win32

Outra opção é portar aplicativos de UNIX diretamente para Win32. Usando o ANSI C/C++ e bibliotecas do compilador c de comercial, muitas das chamadas dependiam por aplicativos de UNIX tradicionais do sistema estão disponíveis em aplicativos Win32.

O modelo de saída do stdio-baseado em aplicativos não precisa ser alterado, desde que o console do Win32 APIs imitam o stdio modelo e as versões do curses existe desse console de uso do Win32 APIs. Para obter mais informações, consulte SetConsoleCursorPosition.

Aplicativos baseados em soquetes do Berkeley necessitam muito poucas alterações para funcionar como aplicativos Win32. A interface do Windows Sockets foi projetada para portabilidade com soquetes BSD, com mínimas alterações são observadas nas seções introdução da especificação do WinSock.

O Windows oferece suporte a RPC compatível com a DCE, para que aplicativos baseados em RPC sejam facilmente utilizáveis. Consulte funções RPC.

Uma das maiores áreas de diferença está no modelo de processo. UNIX tem bifurcação; Win32, não. Dependendo do uso de bifurcação e a base de código Win32 tem duas APIs que podem ser usadas: CreateProcess e CreateThread. Um aplicativo de UNIX bifurcações várias cópias de si mesmo pode ser refeito no Win32 ter vários processos ou em um único processo com vários segmentos. Se vários processos são usados, existem vários métodos de IPC que podem ser usados para comunicação entre processos (e talvez para atualizar o código e os dados do novo processo como pai, se a funcionalidade que bifurcação fornece é necessária). Para obter mais informações sobre IPC, consulte Interprocess comunicações.

Modelos de gráficos de Windows e UNIX são muito diferentes. UNIX usa a GUI de sistema da janela do X, enquanto o Windows usa o GDI. Embora semelhante em conceito, não há nenhum mapeamento simple da API X para a API de GDI. No entanto, o suporte OpenGL está disponível para migração de aplicativos baseados em UNIX OpenGL. E há clientes e servidores do Windows. Consulte Contextos de dispositivo para obter informações sobre a GDI.

Aplicativos básicos de UNIX, incluindo vários aplicativos de CGI devem porta facilmente para o Visual C++ em execução no Windows. Funções como Abrir, fopen, Leia, gravar e outros estão disponíveis na biblioteca de tempo de execução do Visual C++. Além disso, há uma correlação entre as APIs do Win32 e de APIs de UNIX C: Abra para CreateFile, Leia para ReadFile, gravar para WriteFile, ioctl para DeviceIOControl, Fechar para CloseFilee assim por diante.

Subsistema POSIX do Windows

Outra opção UNIX programadores olhar é o subsistema POSIX do Windows. No entanto, só é compatível com POSIX 1003.1, qual foi a única versão POSIX padronizada quando Windows NT foi criado. Desde então, houve pouco demanda para estender esse subsistema, porque a maioria dos aplicativos foram convertidos em Win32. O sistema 1003.1 é de interesse limitado para aplicativos completos, porque ele não inclui muitos recursos (como aquelas em 1003.2, suporte de rede e assim por diante). Total destaque aplicativos executados sob o subsistema POSIX do Windows não têm acesso a recursos do Windows para aplicativos do Win32, como, por exemplo, arquivos de memória mapeada, redes e elementos gráficos. Aplicativos como, por exemplo, VI, LS e ' GREP ' são os principais alvos para o subsistema POSIX do Windows.

Consulte também

Referência

UNIX

Conceitos

Regras de inferência de tipos

Outros recursos

Portando e atualizando programas