Exportar (0) Imprimir
Expandir Tudo
Expandir Minimizar
Este tópico ainda não foi avaliado como - Avalie este tópico

Migrando aplicativos UNIX para Windows usando o Microsoft Services for UNIX

Atualizado em: 26 de março de 2004
Por Charlie Russel, MVP da Microsoft para InteropStudio B

Resumo

O Microsoft Windows, com sua arquitetura robusta, capacidade de utilizar servidores da família de produtos Intel e um conjunto de ferramentas para migração e interoperabilidade, é uma escolha atraente para as empresas que querem migrar os aplicativos UNIX para uma plataforma moderna e econômica. Este documento aborda os motivos comerciais para migrar aplicativos UNIX para Microsoft Windows e apresenta alguns dos recursos e tecnologias específicos que facilitam essa migração. Os recursos de interoperabilidade do Microsoft SFU (Services for UNIX) facilitam todo o processo de migração, e o Microsoft Windows Server 2003 e o SFU juntos oferecem uma excelente plataforma de destino para a migração.

Nesta página

Introdução
Services for UNIX
Problemas de migração
Comparação entre Windows Server 2003 com SFU e Linux
Interoperabilidade com Windows e UNIX
Problemas de portagem
Resumo
Links relacionados

Introdução

No passado, o UNIX foi a plataforma de aplicativos padrão de muitas empresas. No entanto, dois fatores combinados levaram as empresas a analisar alternativas: a potência cada vez maior dos servidores Intel e seu custo consideravelmente menor em comparação aos servidores RISC (Reduced Instruction Set Computing) e seus UNIX proprietários.

A potência das CPUs com arquitetura Intel individuais continuou aumentando, seguindo e até mesmo superando a Lei de Moore. Com a inclusão de processadores com tecnologia hyper-threading (hipersegmentados) e a disponibilidade de servidores com vários processadores simétricos e com um sistema operacional para aproveitar esses recursos, é fácil ver que os servidores Intel são capazes de executar aplicativos comerciais essenciais.

Historicamente, os servidores Intel sempre foram consideravelmente mais baratos que os servidores UNIX (RISC). Embora isso ainda seja verdade, com a capacidade crescente dos processadores Intel atuais, os servidores Intel para grandes volumes são uma opção atraente para as empresas quando comparados aos produtos RISC proprietários com capacidade para pouco volume dos representantes UNIX.

A primeira vista, a economia proporcionada pela plataforma Intel parece ser compensada pelo custo provável de migração dos aplicativos UNIX para uma plataforma Intel. No entanto, não é a plataforma que oferece a funcionalidade necessária para a continuidade dos negócios, mas sim os aplicativos incorporados a ela. Se a primeira etapa para adotar uma alternativa mais barata for uma migração complexa e dispendiosa de todos os aplicativos, talvez muitas empresas não estejam dispostas a encarar esse tipo de mudança.  

Algumas empresas vêem o Linux como uma forma de reduzir esse custo. A justificativa é que o Linux é um tipo de UNIX, portanto o processo de migração deve ser direto e simples. Contudo, embora Linux e UNIX tenham alguns comandos em comum, eles não são a mesma coisa. Prova disso é que nem todas as distribuições do Linux e nem todos os produtos UNIX são iguais. Na verdade, a migração de aplicativos UNIX envolve um trabalho considerável.  

A Microsoft possui uma solução criada especialmente para ajudar as empresas que estão tentando migrar os aplicativos UNIX. Ela inclui Windows Server 2003, Microsoft SFU e um conjunto de ferramentas e serviços que, combinados, realmente tornam o processo de migração para o Windows mais fácil que para o Linux. Este documento explora as questões envolvidas na migração de aplicativos UNIX tanto para Linux como para Windows Server 2003 com SFU.

Services for UNIX

O Windows Server 2003 oferece vários serviços que interoperam bem com os sistemas UNIX, incluindo um cliente e um servidor Telnet, serviços de impressão lpr e lpd que possibilitam a impressão entre plataformas e recursos básicos de conexão e transferência de arquivos de TCP/IP. No entanto, para oferecer total interoperabilidade e uma plataforma de migração robusta e rica em recursos, a inclusão do SFU disponibiliza todos os recursos e todas as ferramentas para simplificar a migração do aplicativo UNIX LOB.

O SFU oferece um único pacote abrangente para atender a todos os requisitos de interoperabilidade descritos acima e implementa os seguintes recursos:

  • Compartilhamento de arquivo entre UNIX e Windows usando o NFS (Network File System). O SFU oferece:

    • Cliente para NFS

    • Servidor NFS

    • Gateway para NFS

  • Acesso remoto por linha de comando entre Windows e UNIX.  O SFU  oferece:

    • Cliente Telnet

    • Servidor Telnet

  • Recursos abrangentes de script entre plataformas. O SFU oferece uma implementação consistente de:

    • Shell Korn

    • Shell C

    • Mais de 350 comandos e utilitários UNIX usados com freqüência

  • Administração de rede comum com a funcionalidade de servidor NIS (Network Information System) usando o serviço Active Directory™ do Microsoft Windows Server 2003

  • Sincronização de senha entre Windows e UNIX

  • Instalação usando o Microsoft Windows Installer

  • Administração de serviços para os componentes e serviços UNIX usando o MMC (Microsoft Management Console).

  • Gerenciamento de componentes do SFU usando o WMI (Windows Management Instrumentation)

Além desses recursos, o SFU pode ser instalado em computadores com Windows 2000, Windows XP ou Windows Server 2003 e pode interoperar com diversos computadores com UNIX. O SFU 3.0 também oferece suporte ao Microsoft Windows NT 4.0 SP6a e às versões anteriores do UNIX com relação à sincronização de senha. É fornecido o código-fonte dos componentes UNIX PAM/SSOD de sincronização de senha, como são pré-compilados os binários para Solaris 7 ou 8, HP-UX 11i, Red Hat Linux 8.0 e IBM AIX 5L 5.2.

Problemas de migração

A grande preocupação da maioria das empresas ao considerar a migração de RISC/UNIX para Intel é a possibilidade de os aplicativos, atualmente hospedados no servidor UNIX, não funcionarem no novo ambiente e precisarem ser reescritos ou substituídos. Esse processo pode ser caro, tanto em termos de custo real como dos riscos de uma migração, pois uma mudança nos aplicativos principais pode alterar consideravelmente o modo de operação da empresa. Além disso, a maior parte das empresas investiu muito em scripts de gerenciamento do UNIX e em treinamento e não quer perder tal investimento.

Existem três áreas principais com que se preocupar ao considerar esse tipo de migração:

  • Migração de aplicativos, que é a transferência real dos aplicativos

  • Migração de recursos, que move os recursos de suporte, incluindo arquivos, contas e bancos de dados

  • Migração de conhecimentos, que pode exigir que toda a equipe adquira um novo tipo de conhecimento para poder trabalhar no novo ambiente

A idéia padrão é de que o Linux resolverá facilmente esses problemas mas, na verdade, essa idéia é infundada. As migrações de aplicativos e de conhecimentos apresentam diferenças sutis e pouco claras entre as diversas variantes do UNIX e do Linux. Especificamente, as diferenças nas bibliotecas disponíveis e no modo exato como elas são implementadas exigirão modificações em muitos aplicativos, enquanto as diferenças entre utilitários, ferramentas e shells precisarão de um ajuste considerável para administradores, desenvolvedores e usuários. A migração de recursos do UNIX para o Linux deve ser menos trabalhosa quando se usa o sistema de arquivos NFS e muitos dos arquivos de configuração iguais. No entanto, a Red Hat e outras versões do Linux não tratam ou não configuram seus grupos da mesma forma como a maioria das versões do UNIX mas, em vez disso, criam um grupo distinto para cada usuário, usando o nome de usuário como nome de grupo. Aplicativos nos quais se prevê a utilização de permissões de grupo e participação precisarão ser alterados ou ter o ambiente subjacente modificado.

O SFU oferece uma excelente solução de migração que atende a esses três tópicos. Ele apresenta um ambiente de alto desempenho que torna a portagem de aplicativos e scripts fácil e cômoda para o desenvolvedor ou administrador de sistemas do UNIX. O SFU contém um conjunto rico com mais de 1.900 APIs UNIX que funcionam exatamente como no UNIX. Ele também inclui um ambiente UNIX completo com centenas de aplicativos UNIX e os shells Korn e C para que as empresas possam facilmente portar seus aplicativos e scripts personalizados no ambiente Windows com pouca ou nenhuma alteração. Não se perde o investimento feito em conhecimentos e scripts porque eles poderão ser utilizados no ambiente Windows.

Por exemplo, a LBM Systems, LLC usou o SFU para portar seus aplicativos de gerenciamento de saída UniQue e ClusterQue no Windows. Como explica Steven Bardwell, presidente da LBM, “A portagem no Interix foi realmente bem fácil. Certamente, não foi mais difícil nem mais demorada do que seria em qualquer outro UNIX“. Para obter mais detalhes sobre o estudo de caso da LBM Systems, consulte: http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=13486 (site em inglês).

Migração de aplicativos

Com o SFU, a migração real de um aplicativo UNIX, seja ele de caractere puro, curses ou com base em X-Window, geralmente é mais fácil e a parte menos arriscada de todo o processo de migração. Essa tecnologia funciona no kernel como um subsistema Windows completo e inclui outros utilitários para proporcionar um ambiente que se pareça e funcione como qualquer outro sistema UNIX. Ele oferece um único sistema de arquivos na raiz e suporte completo para nomes de arquivos com diferenciação entre maiúsculas/minúsculas, controle de tarefas, ferramentas de compilação, scripts de shell e mais de 300 comandos e utilitários UNIX. Como esse subsistema faz parte do kernel do Windows, ele oferece a funcionalidade UNIX verdadeira sem emulação nem degradação de desempenho. Esse único sistema de arquivos na raiz mascara o sistema de arquivos do Windows com base em volume ("C:", "D:”, etc.) a partir do ambiente UNIX e permite que os utilitários e os arquivos de configuração residam no mesmo lugar em que um usuário ou administrador de sistemas do UNIX espera encontrá-los.

Migração de recursos

Com a migração dos aplicativos do UNIX, os recursos de sistema de arquivos, impressão e contas que suportam os aplicativos também precisam ser migrados. Tentar migrar aplicativos e recursos ao mesmo tempo aumenta consideravelmente o risco da migração e dificulta a resolução de problemas.

A Red Hat e outras variantes do Linux oferecem um bom conjunto de ferramentas de interoperabilidade, incluindo cliente e servidor para NFS e suporte para NIS para gerenciamento de contas. Devido às diferenças no modo como os grupos são definidos na versão da Red Hat, os administradores provavelmente terão que modificar a abordagem de contas subjacentes para criar grupos mais genéricos, mas essa etapa não é significativa na mudança para um novo ambiente Linux.

O SFU também oferece um conjunto completo de ferramentas de interoperabilidade, incluindo produtos cliente e servidor NFS e suporte total a NIS. Essas ferramentas simplificam muito a migração e permitem que o desenvolvedor e o administrador de sistemas façam uma migração de teste. Os desenvolvedores podem migrar o aplicativo real e deixarem os arquivos e dados dos quais ele depende hospedados no UNIX, ou podem mover os recursos de dados e arquivos primeiro e migrar o aplicativo real depois. O SFU oferece as ferramentas de interoperabilidade para que o desenvolvedor e o administrador de sistema tenham controle sobre o cronograma e o processo de migração sem terem que se preocupar com a localização dos recursos.  

Migração de conhecimentos

Um fator freqüentemente esquecido, mas muito importante em qualquer plano de migração é a migração de conhecimentos. O conhecimento e as habilidades dos desenvolvedores, usuários e administradores de sistemas do UNIX representam um investimento substancial para a empresa. Costuma-se pensar que a versão da Red Hat e outras variantes do Linux, por serem similares ao UNIX, proporcionarão uma migração de conhecimentos tranqüila, mas isso não é uma verdade absoluta. Os vários utilitários e ferramentas que compõem o ambiente apresentam diferenças significativas nas opções de comando suportadas e na saída. Além disso, falta ao shell bash do Linux alguns recursos do shell Korn, embora o bash tenha alguma semelhança com o Korn do UNIX, e os scripts geralmente não podem ser migrados sem uma quantidade considerável de alterações. Ao fornecer um ambiente UNIX completo no Windows, a tecnologia Interix do SFU permite também a migração desses conhecimentos, mantendo seu valor para a empresa ao mesmo tempo em que reduz bastante a curva de aprendizado de novas habilidades.

O SFU usa os mesmos arquivos de configuração e utilitários administrativos com os quais o administrador do UNIX está acostumado, incluindo inetd.conf e resolv.conf, além de estarem onde ele espera encontrá-los: no diretório /etc. Esse recurso possibilita uma transição fácil e com poucos riscos ao mesmo tempo em que maximiza a migração de conhecimentos. O administrador do UNIX não precisa de um novo treinamento intensivo. Com as ferramentas comuns em um ambiente conhecido, a transição é semelhante à de um UNIX para outro. E com os arquivos nas localizações comuns, diminui-se a quantidade de alterações necessárias nos scripts e códigos, reduzindo o risco total da migração. Esses recursos podem tornar a portagem de um aplicativo UNIX no Windows realmente mais fácil que a portagem do mesmo aplicativo no Linux, pois as ferramentas e o ambiente apresentam diferenças sutis, mas fundamentais.

Os componentes a seguir do ambiente UNIX são amplamente utilizados por administradores e desenvolvedores.

Shells

Red Hat e outras variantes do Linux oferecem o shell bash como shell predominante, com um shell C (tcsh) também disponível. O shell bash é flexível e poderoso, compatível com versões anteriores do shell básico UNIX Bourne (/bin/sh) ao mesmo tempo em que compartilha vários recursos e aprimoramentos do shell Korn. Os scripts criados para utilizar os recursos do shell Korn (/bin/ksh) podem precisar de alguma alteração e o comportamento da linha de comando do bash não é idêntico ao ksh. A versão de domínio público do shell Korn (pdksh) está disponível para Red Hat Linux mas não é usado por padrão.

O SFU inclui o shell pdksh, /bin/ksh, um shell compatível com POSIX.2 e a implementação tcsh do shell C como /bin/tcsh (e /bin/csh como link simbólico). O SFU não oferece um shell Bourne puro mas, em vez disso, usa um link simbólico para /bin/ksh para oferecer a scripts que esperam encontrar /bin/sh. Com pdksh proporcionando um grau muito alto de compatibilidade com versões anteriores para scripts do shell Bourne, qualquer script criado para o shell Bourne precisará de pouca ou nenhuma modificação. Para usuários do SFU que queiram o shell bash, ele está disponível para download em Interop Systems (http://www.interopsystems.com/tools) (site em inglês).

O shell C, embora não seja o ambiente principal para criação de scripts, há muito é o favorito de muitos usuários interativos e administradores, e tanto o Red Hat Linux e o SFU oferecem o /bin/tcsh para esses usuários.

Utilitários

A maioria dos aplicativos UNIX, e praticamente todos os scripts UNIX, esperam e utilizam o rico ambiente de linha comando disponível no UNIX. Embora a Red Hat e outras variantes do Linux ofereçam muitas dessas mesmas ferramentas, cada versão diferente do Linux tem uma mistura um pouco distinta. Muitas das ferramentas aceitam opções de linha de comando um pouco diferentes e podem apresentar diferenças sutis no resultado final, causando problemas para programas e scripts que esperam um determinado resultado. Em muitos casos, o objetivo da criação de um utilitário em particular não foi tanto a compatibilidade com versões anteriores do UNIX, mas sim oferecer mais opções e flexibilidade.  

Por outro lado, o objetivo de criação do SFU foi fornecer compatibilidade total com o UNIX e ele inclui mais de 300 utilitários UNIX nativos para fornecer a usuários, administradores ou desenvolvedores as ferramentas esperadas. Esses utilitários UNIX são aplicativos UNIX completos e nativos que se comportam exatamente como o usuário do UNIX espera e incluem tudo, de tar e cpio a awk, sed e tr.

Aplicativos, scripts e shell interativo estão onde os usuários esperam encontrá-los. Esse ambiente UNIX padrão simplifica muito a migração, pois as empresas podem aproveitar o investimento atual em treinamento e conhecimentos e também reutilizar scripts e aplicativos personalizados sem gastar muito com portagem.

Telnet e utilitários r

A versão Red Hat atual e outras variantes do Linux geralmente oferecem um servidor e um cliente Telnet, bem como um conjunto completo de utilitários r, embora algumas versões anteriores da Red Hat excluíam o Telnet. O SFU inclui servidores e clientes Telnet para Win32 e Interix, bem como suporte total para os “utilitários r”, oferecendo compatibilidade completa e manutenção entre plataformas e recursos de criação de scripts. O servidor Telnet Win32 possibilita conexão total e limita o número de sessões somente pelo número de conexões licenciadas permitidas no servidor. O daemon telnetd da Interix oferece compatibilidade total com o UNIX e usa /bin/ksh ou /bin/tcsh como shell padrão, apresentando aos usuários do UNIX aparência e comportamento comuns com suporte aos scripts UNIX padrão.  

O suporte do SFU aos utilitários r do UNIX inclui cópia remota (rcp), cliente e servidor para distribuição remota (rdist e rdistd), login remoto (rlogin) e shell remoto (rsh). Embora algumas empresas possam optar por não usar essas ferramentas em seu ambiente ou limitá-las estritamente por motivos de segurança, elas podem servir como uma ferramenta simples e eficiente entre plataformas. Essas empresas podem usar o SSH comercial da F-Secure ou a versão da Open Source, OpenSSH. A OpenSSH também está disponível para download em Interop Systems.

Outros componentes

Tanto o Linux como o SFU disponibiliza uma grande variedade de utilitários, shells e ferramentas de outros fabricantes e Open Source, e ambos possibilitam uma fácil compilação dos programas Open Source disponíveis. Para o SFU, a melhor fonte de utilitários Open Source pré-compilados é a Tool Warehouse em Interop Systems (http://www.interopsystems.com/tools/warehouse.htm) (site em inglês). A Interop Systems oferece um depósito de ferramentas pré-compiladas e listas de discussão nas quais os desenvolvedores podem discutir problemas de migração.  

Diretrizes para migração

Se você está planejando migrar aplicativos UNIX para o Windows, poderá aproveitar a experiência dos desenvolvedores que já realizaram essa migração. A Microsoft reuniu uma grande quantidade de material para ajudar você a portar aplicativos UNIX no ambiente Windows, desde a avaliação da necessidade de migração até um guia de migração completo que orientará você nas etapas específicas necessárias para o sucesso da migração.  

Para obter informações mais detalhadas, visite http://www.microsoft.com/windows2000/migrate/unix/default.asp (site em inglês). É possível encontrar uma discussão detalhada sobre os padrões e as práticas de migração de código UNIX ANSI C/C++/Fortran em http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnucmg/html/ucmglp.asp (site em inglês).

Comparação entre Windows Server 2003 com SFU e Linux

O Windows Server 2003 com SFU oferece um ambiente completo de desenvolvimento e implantação do UNIX, incluindo os shells Korn e C, mais de 300 utilitários do UNIX e mais de 1900 APIs do UNIX, além de ferramentas de interoperabilidade completas. A Red Hat e outras variantes do Linux dependem basicamente do shell bash, embora haja versões dos shells Korn e C disponíveis. Além disso, embora várias versões do Linux ofereçam APIs e utilitários similares aos do UNIX, eles não são exatamente iguais e podem exigir um trabalho considerável de portagem. No mais, a portagem no Linux não é um objetivo comum. Embora diversos fornecedores do Linux estejam tentando atingir uma meta de portagem comum, esse esforço não inclui todos os fornecedores e ainda está engatinhando, ou seja, qualquer portagem em uma distribuição específica do Linux pode precisar de um trabalho adicional para funcionar com outras distribuições.

Não há nada de anormal nas diversas distribuições do Linux; o próprio UNIX evoluiu em versões distintas com suporte de fornecedores diferentes. Para cumprir a promessa de portabilidade do UNIX, o padrão POSIX foi criado. As variantes do UNIX suportavam o padrão POSIX, ou seja, elas aceitavam aplicativos que também eram escritos para esse padrão. O SFU é verdadeiramente compatível com POSIX. Se os seus aplicativos LOB foram criados para usar esse padrão passível de portagem, você poderá usufruir as vantagens desse trabalho quando migrar para o Windows, mas não se migrar para o Linux, que não é compatível com POSIX.

A maior diferença entre as duas plataformas surge na comparação do valor agregado que cada uma oferece. Feita a portagem no Linux, você ainda não terá acesso aos excelentes recursos do ambiente Windows. Com uma portagem no Linux, você simplesmente passou de uma plataforma subjacente para outra. A mudança para o ambiente Windows traz uma quantidade significativa de valor agregado, desde a coordenação com o ambiente de área de trabalho a uma infinidade de aplicativos novos e recursos de serviços Web do .NET Framework. E por fim, a Microsoft oferece um nível muito mais alto de suporte para o Windows que os fornecedores do Linux a suas distribuições, desde comunidades online a suporte por telefone ao representante e o guia de migração já citado.

Interoperabilidade com Windows e UNIX

Mesmo que você decida migrar alguns ou todos os aplicativos principais, convém criar um ambiente com servidores Windows e UNIX, seja por um curto período de migração ou por um período mais longo de plataformas duplas. O SFU oferece as ferramentas de interoperabilidade para reduzir a carga e o risco de se manter os dois ambientes. A migração para Red Hat ou qualquer outra variante do Linux apresenta os mesmos desafios da migração para o Windows, mais o fato de que você, provavelmente, terá que manter três ambientes operacionais durante a migração porque o Windows provavelmente será pelo menos parte do ambiente.

Ferramentas de interoperabilidade

A Red Hat e outras variantes do Linux dependem basicamente do SAMBA para oferecer interoperabilidade com clientes e servidores Windows. O SAMBA usa o protocolo SMB (Server Message Block), nativo na rede do Windows, para proporcionar a interoperabilidade entre o sistema de arquivos e clientes e servidores Windows. No entanto, o SAMBA deixa a desejar quando comparado ao Windows Server 2003 em termos de compatibilidade com Active Directory e Volume Shadow Copy, limitando sua utilidade em ambientes que usam os recursos avançados disponíveis no Windows Server 2003.

O Windows Server 2003 com SFU oferece um ambiente de interoperabilidade completo e com possibilidade de expansão, com ferramentas para permitir que o UNIX e o Windows coexistam sem conflitos e compartilhem recursos. Estão incluídas ferramentas para interoperabilidade do sistema de arquivos, como Client para NFS, Server para NFS e Gateway para NFS, a fim de fornecer total interoperabilidade do sistema de arquivos em toda a rede. O SFU ainda oferece ferramentas para autenticação e interoperabilidade de contas, incluindo Server para NIS, User Name Mapping (UNM) e sincronização de senha bidirecional. Além disso, foram incluídos Serviços de impressão para UNIX (parte do sistema operacional Windows Server 2003 básico) para oferecer compatibilidade e ferramentas de impressão para administração e compatibilidade de scripts, como Telnet, Perl e os shells Korn e C.

Sistema de arquivos da rede

O NFS foi o padrão do UNIX por anos, oferecendo uma maneira simples e eficiente de compartilhar sistemas de arquivos pela rede. O SFU inclui o NFS cliente e servidor para uma interoperabilidade completa com os sistemas UNIX. O Gateway para NFS também faz parte do SFU e fornece acesso a recursos de NFS da rede para todos os computadores Windows da rede sem a inclusão de qualquer outro software nos computadores Windows de downstream.

O módulo Cliente para NFS do SFU fornece um cliente NFS flexível e compatível que torna o acesso aos recursos do sistema de arquivos armazenado em servidores UNIX legados fácil e praticamente consistente ao usuário do Windows. O Cliente para NFS está completamente integrado à interface do Windows Explorer e inclui suporte total a linha de comando, permitindo que os usuários acessem os arquivos armazenados em servidores UNIX de forma transparente. O suporte a linha de comando oferece ao administrador de sistemas a flexibilidade de executar facilmente scripts entre os limites da plataforma usando a sintaxe do Windows ou do UNIX a partir da linha de comando.

O módulo Server para NFS do SFU oferece suporte total a conexões UDP e TCP e aceita NFS 2 e NFS 3, proporcionando compatibilidade total com uma grande variedade de clientes UNIX. Os usuários dos sistemas UNIX podem ter acesso total aos sistemas de arquivos dos servidores Windows de forma transparente, facilitando bastante a transição e a migração dos aplicativos.

O módulo Gateway para NFS do SFU oferece um mecanismo que permite acesso total aos recursos do sistema de arquivos do UNIX para clientes Windows de downstream sem a necessidade de se comprar nem de instalar nenhum software adicional nos clientes Windows. Os recursos do NFS são mapeados como letras de unidade no computador Gateway e, em seguida, são compartilhados nos clientes Windows usando-se os compartilhamentos SMB padrão do Windows. Embora usuários avançados prefiram um cliente para NFS instalado localmente, o uso do Gateway para NFS pode simplificar bastante a migração e reduzir os problemas de interoperabilidade durante o período de transição ao assegurar o acesso ininterrupto para todos os usuários com um mínimo de alterações na configuração.

Observação: o Gateway para NFS só pode ser instalado em produtos do tipo servidor e não pode ser instalado no mesmo servidor como cliente para NFS. Ambos são mutuamente exclusivos. No entanto, o Gateway para NFS incorpora acesso cliente aos recursos do NFS do UNIX para o servidor onde o Gateway para NFS está instalado.

APIs

Os desenvolvedores do Windows estão acostumados com as APIs que fazem parte do ambiente de desenvolvimento do Windows, enquanto os desenvolvedores do UNIX estão acostumados com as APIs do UNIX, incluindo aquelas que freqüentemente são específicas de uma determinada versão do UNIX. O SFU inclui o SDK (Software Development Kit) Interix e o SDK gnu, oferecendo aos desenvolvedores acesso a mais de 1.900 APIs UNIX que fazem parte do SDK Interix ao mesmo tempo em que suportam o compilador Microsoft Visual C++ para programas em C e os compiladores e as ferramentas de desenvolvimento gnu, incluindo gcc, g++, e gdb. Os desenvolvedores de Windows nativo podem usar o IDE e o compilador com que estiverem mais acostumados, enquanto os desenvolvedores de UNIX têm à disposição inúmeros compiladores e ferramentas gnu, incluindo gnu debugger, gdb.

Além disso, a ampla gama de ferramentas e utilitários Open Source já estão portados e disponíveis (via Interop Systems) ou podem ser portados no SFU, oferecendo aos desenvolvedores o ambiente e as ferramentas de sua preferência. A parceria da Microsoft com a Interop Systems (http://www.interopsystems.com - site em inglês) também oferece bibliotecas e APIs novas e atualizadas para o ambiente do SFU.

Administração de usuários

Foi incluída no SFU a sincronização de senha bidirecional. Esse mecanismo permite que os usuários troquem suas senhas do UNIX e do Windows em qualquer um dos dois ambientes, simplificando bastante a interoperabilidade durante uma migração de UNIX para Windows.

O SFU suporta o NIS para autenticação de usuários e seu próprio serviço UNM, bem como disponibiliza um servidor PCNFS para oferecer suporte a outros aplicativos que precisam dele. O UNM pode usar seu próprio NIS com base no Active Directory ou um NIS existente com base no UNIX para autenticação, ou pode usar arquivos do tipo PCNFS.

Problemas de portagem

Existem inúmeros problemas relacionados à portagem de um aplicativo UNIX tanto no Red Hat ou outra variante do Linux como no ambiente Windows. Entre eles, a migração de contas de usuários, a migração do aplicativo real e a migração dos dados e dos recursos que suportam o aplicativo.

Migração de contas

Mover os aplicativos é somente parte de uma solução completa. Você também precisa mover a comunidade de usuários e o esquema de segurança dos aplicativos.

O NIS é usado entre uma grande variedade de plataformas UNIX para oferecer um único mecanismo de autenticação e sign-on em rede. O SFU aceita o NIS como mecanismo de autenticação para acesso ao NFS e oferece um Servidor para NIS completo que permite que os administradores de sistemas UNIX movam o banco de dados principal do NIS para o Active Directory e migrem as contas UNIX existentes para o Windows. A Red Hat e outras variantes do Linux suportam OpenLDAP, mas ele não oferece um single sign-on completo e requer administração adicional, que não está integrada ao resto da administração da Red Hat. Além disso, como a maioria das empresas contém usuários do Windows, a falta de suporte ao Active Directory no Red Hat limita as opções.

Contas UNIX, Linux e Windows são diferentes por natureza e usam mecanismos de autenticação distintos. Essa diferença pode causar problemas consideráveis e com freqüência sutil durante a fase de migração quando usuários, desenvolvedores e administradores precisarem acessar recursos em servidores UNIX e Windows. Mesmo que haja um cuidado especial e as contas sejam criadas com logins iguais, elas ainda serão diferentes; o usuário jdoe em um computador com UNIX não é igual ao usuário DOMAIN\jdoe no Windows. Para facilitar a transição e a migração, o SFU inclui o serviço UNM, como citado na seção anterior. O UNM oferece um mecanismo para mapear contas do UNIX como contas do Windows e vice-versa, mesmo que elas tenham logins diferentes. Esse recurso simplifica muito a manutenção de contas durante o período de transição de uma migração do UNIX para Windows, proporcionando aos usuários acesso total de acordo com o conjunto de credenciais apropriado dos mesmos. Apenas um único servidor UNM precisa ser estabelecido e mantido no domínio, o que diminui os problemas relacionados a manutenção e configuração.

POSIX

Diferente da Red Hat e de outras distribuições do Linux, que não são totalmente compatíveis com POSIX, o SFU contém um subsistema compatível com POSIX.1 que inclui suporte para a especificação POSIX completa e também para extensões e recursos adicionais, incluindo soquetes, interfaces BSD (Berkeley Software Distribution) 4.4, mecanismos de comunicação entre processos System V (IPC), pseudo-terminais e arquivos mapeados na memória que não fazem parte do POSIX.1 padrão.

Ambos os aplicativos foram criados de acordo com a especificação do POSIX.1 puro, e os que usam alguma combinação de compilação condicional (comandos de pré-processador #ifdef) ou funções de wrapper para lidar com possíveis alternativas, podem ser portados sem modificação no subsistema do SFU. A portagem de software no subsistema do SFU envolve:

  • Tornar o fonte o mais portável possível. Se você estiver criando um aplicativo POSIX puro, ele deve simplesmente ser recompilado no Interix, mas poucos aplicativos são POSIX puro. Entender qual é a diferença entre seu aplicativo e o POSIX e usar as diretrizes para migração fornecidas podem ser úteis para uma migração tranqüila.

  • Usar as extensões para POSIX que são suportadas. Embora o SFU ofereça suporte a POSIX, ele também oferece suporte a extensões e APIs comuns de outros padrões, incluindo Single UNIX Specification e extensões provenientes de sistemas UNIX tradicionais, como BSD ou derivados do System V.

  • Resolver os problemas específicos do subsistema do SFU, usando o UNIX Application Migration Guide localizado em http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnucmg/html/ucmglp.asp (site em inglês).

Extensões

O SFU oferece suporte a inúmeras extensões além do padrão POSIX.1, incluindo a especificação XPG4.2. Para aproveitar essas extensões, você precisa usar um #define _ALL_SOURCE 1 no início do código antes da inclusão de qualquer arquivo de cabeçalho com uma instrução #include. Caso contrário, será utilizado o _POSIX_SOURCE mais restritivo.

As extensões incluídas no SDK Interix são:

  • Arquivos mapeados na memória

  • Mecanismos System V IPC, como memória compartilhada, filas de mensagens e semáforos

  • Soquetes do estilo Berkeley

  • Seqüência de caracteres e funções de memória do BSD, como bcopy() e strncasecmp() que fazem parte da Single UNIX Specification, bem como strsep() e strcasestri() do BSD 4.4

  • Curses e rotinas de terminal do pacote ncurses e rotinas termcap

  • Pseudo-terminais — ambos os métodos BSD e System V são suportados

Problemas específicos do SFU

Existem algumas práticas de código que podem causar mais problemas no subsistema do SFU se comparado ao UNIX tradicional. Especificamente, remover a referência de um ponteiro que não foi inicializado pode passar despercebido em um sistema UNIX tradicional, mas resultará em uma falha de segmentação no SFU. Mesmo quando despercebida, essa prática gera problemas sutis e, por esse motivo, é considerada uma codificação ruim e desaconselhada para o aplicativo. Embora isso signifique algum trabalho durante a portagem inicial, o aplicativo final será mais robusto.

O sistema de segurança usado no Windows pode ser mais restringente que aquele usado em sistemas UNIX tradicionais. O conceito de um par identificação de usuário (UID)/identificação de grupo (GID), definido nos arquivos /etc/passwd e /etc/group, é substituído por uma única identificação de segurança (SID) que contém um único par nome_de_domínio/nome_de_logon e um par nome_de_domínio/nome_do_grupo que fazem parte de um único espaço para nome. Como não existem os arquivos /etc/passwd e /etc/group, os desenvolvedores precisam tratar struct passwd de maneira diferente. Por exemplo, as chamadas getpwnam() e getgrnam() só aceitam o par nome_de_domínio+nome_de_usuário em lugar do nome de usuário ou do nome do grupo, e pw_gecos é preenchido com o texto do campo Descrição da conta de usuário do Windows.

X Windows

O SDK Interix contém bibliotecas X11, arquivos de cabeçalho e várias ferramentas para a criação de aplicativos X Windows. No entanto, o SFU não inclui um servidor X Windows, ou seja, os aplicativos X Windows que precisam ser exibidos na estação de trabalho local precisarão de um servidor X Windows instalado. Existem inúmeros e ótimos produtos de servidor X Windows disponíveis, incluindo uma versão criada especialmente para Interix, o Interop X Server 8.0 para SFU/Interix da Interop Systems.

A maior parte do código escrito para X Windows assume uma estrutura de diretório de /usr/X11, mas o Interix usa uma versão de estrutura de diretório específica, /usr/X11Rn, sendo que n é substituído pelo nível da versão do X11. Essa diferença é mais bem tratada pela criação de um link simbólico para apontar para o novo diretório e não precisa de nenhuma alteração nos aplicativos. A versão 3.0 do SFU incluía somente X11R5, mas o X11R6.6 é enviado de forma nativa na versão 3.5 do Services for UNIX (com lançamento previsto para janeiro de 2004) e já está disponível para download no Interop Systems Tool Warehouse em http://www.interopsystems.com/tools/warehouse.htm (site em inglês) para os aplicativos que precisam de uma versão mais nova do X11 que aquela enviada originalmente com o SFU 3.0.

Curses

Para aplicativos em modo de caractere que usam curses, o SDK Interix contém a implementação de curses ncurses criada por Eric S. Raymond e Zeyd M. Ben-Halim. Essa implementação de curses robusta e altamente compatível está detalhada, junto com a documentação completa sobre a criação de aplicativos curses e as especificações da implementação ncurses, no aplicativo de Ajuda do SFU.

Resumo

Atualmente, os sistemas Intel atingiram os níveis de desempenho exigidos para aplicativos comerciais. Esse fator, combinado com o baixo custo desses sistemas, está fazendo com que as empresas procurem migrar aplicativos para uma plataforma Intel.

Embora a Red Hat ou outras variantes do Linux pareçam ser o destino natural de migração para aplicativos UNIX que estão sendo transferidos para plataformas Intel, essa opção não está livre de custos e problemas:

  • Falta integração entre aplicativos e gerenciamento, o que aumenta o custo geral de desenvolvimento e manutenção de aplicativos Linux

  • Não existe uma fonte exclusiva de suporte abrangente

  • Amplo suporte para hardware, mas a qualidade dos drivers é irregular e não existe certificação nem verificação de drivers

O Microsoft Windows Server 2003 com SFU oferece as ferramentas e o ambiente que podem suportar aplicativos UNIX nativos com menos trabalho de conversão que o exigido com o Linux. Além disso, a portagem no Windows Server 2003 oferece oportunidades após a migração para ampliar os aplicativos para que eles aproveitem os recursos do ambiente Windows Server 2003, incluindo o .NET Framework e a pilha de aplicativos Microsoft. O Microsoft Windows Server 2003 com SFU é a plataforma de sistema operacional ideal para hospedar aplicativos do ambiente UNIX legado.

O Windows Server System oferece muitas vantagens como um destino de migração, incluindo:

  • Uma solução integrada, com gerenciamento consistente de aplicativos, servidores, clientes e plataforma

  • Recursos de gerenciamento centralizado eficientes por meio do MMC, sua arquitetura snap-in expansível e o sistema de distribuição da Diretiva de Grupo

  • As maiores organização e comunidade de suporte do mundo, com respaldo de testes intensivos, desenvolvimento e serviços de verificação e um único ponto de falha e resolução para a maioria dos problemas

  • Uma plataforma robusta e expansível, com ferramentas de desenvolvimento sofisticadas, uma ampla gama de aplicativos disponíveis e um caminho fácil até serviços da Web através da arquitetura .NET

Links relacionados

Consulte os recursos a seguir para obter mais informações:

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2014 Microsoft. Todos os direitos reservados.