1 SANDRA REGINA DA LUZ INÁCIO LINUX X WINDOWS: AS VANTAGENS E DESVANTAGENS Flórida Christian University São Paulo, SP - 2004 1 2 SANDRA REGINA DA LUZ INÁCIO LINUX X WINDOWS: AS VANTAGENS E DESVANTAGENS Trabalho apresentado para aprovação da Matéria Informática como Conceito de Negócios, como exigência parcial para a conclusão do curso de Doutorado em Administração de Empresas da Flórida Christian University, sob orientação do Prof. Dr. Nelson Juniti Nakamura. Flórida Christian University São Paulo, SP - 2004 2 3 Este trabalho, como tudo de maior e melhor que fiz em minha vida, dedico à minha mãe Dirce (in memorian), que foi, é, e sempre será a razão de todas as minhas lutas e, principalmente, de minhas vitórias. “Aprendi a fazer da morte uma grande conselheira.” 3 4 AGRADECIMENTOS Ao Prof. Dr. Rafael Olivieri Neto, pela maravilhosa oportunidade que me deu de estar inserida neste magnífico programa de Doutorado.. Ao Prof. Dr. Nelson Juniti Nakamura, pelo brilhantismo demonstrado em sua disciplina, orientação, ajuda e sugestões que contribuíram de forma expressiva e gratificante para o desenvolvimento desse trabalho. À minha família, que sempre incentivou-me sob todos os aspectos e obstáculos que a vida nos impôs. À todos aqueles que foram, são e serão meus alunos. ”Cada um que passa em nossa vida, passa sozinho, mas não vai só, nem nos deixa só. Leva um pouco de nós mesmos e deixa um pouco de si mesmos”. (Autor desconhecido) 4 5 SUMÁRIO LISTA DE TABELAS ............................................................................................................VII LISTA DE FIGURAS ........................................................................................................... VIII RESUMO ................................................................................................................................. IX ABSTRACT .............................................................................................................................. X 1. INTRODUÇÃO .................................................................................................................... 11 1.1 - O Problema de Pesquisa 17 1.2 – Objetivos do trabalho 17 1.2.1 – Especifico 17 1.2.2 – Geral 17 1.3 – A Justificativa 17 1.4 - Metodologia de Pesquisa 20 1.5 – Sujeito de pesquisa, coleta e análise dos dados 21 1.6 – Limitações da pesquisa 21 1.7 - Hipótese do trabalho? 22 1.8 - As dificuldades encontradas 22 2. A HISTÓRIA DO LINUX 23 2.1 - Como Nasceu o Linux? 23 - 2.2 - Linha do Tempo do Linux 23 2.3 - História do Tux 24 3. SOFTWARE LIVRE 26 3.1.Uma nova visão econômica 26 3.2 - Justificativas iniciais 26 3.3 - Desenvolvimento cooperativo de software 29 3.4 - Comparação entre software aberto e fechado 30 3.5 – Liberdade 30 4. ARQUITETURA DO LINUX 32 4.1 - Desenvolvimento do Kernel 32 4.2 - A organização do kernel 33 4.3 - Compilação do kernel 34 5 6 4.4 - Tipos de dispositivos e módulos 34 4.5 - Sistema de Arquivos 35 4.6 - Métodos de Acesso 37 4.7 - Estrutura de Diretórios 37 4.8 - Proteção 40 4.9 - Sistema de Arquivos no Linux 41 5. A HISTÓRIA DO WINDOWS 44 5.1 - O primeiro IBM-PC, lançado em 1981 44 5.2 – Uma História dos Sistemas Microsoft e sua Relacão com os Sistemas Padronizados e Abertos 46 5.3 - O MS-DOS como caminho de migração para sistemas abertos 46 5.4 - O caminho do monopóliocom a IBM. 47 6. ARQUITETURA DO WINDOWS NT 50 6.1 - Estrutura de Processos no Windows NT 51 6.2 - Gerenciamento dos Processos 54 6.3 – Multithreading 56 6.4 - FAT (File Allocation Table) 57 6.5 - Arquivos do NTFS 59 6.5.1 - Estrutura do Volume NTFS 60 6.5.2 - Arquivos de Sistema do NTFS 60 6.5.3 - Master File Table (MFT) - $mft 61 6.5.4 - Master File Table2 - $mftmirr (or MFT2) 61 6.5.5 - Log File - $logfile 61 6.5.6 - Volume - $volume 61 6.5.7 - Attribute Definitions Table - $attrdef 61 6.5.8 - Cluster Allocation Bitmap - $bitmap 61 6.5.9 - Boot File - $boot 62 6.5.10 - Bad Cluster File - $badclus 62 6.5.11 - Upcase Table - $upcase 62 6.6 - Segurança no NTFS 62 6.6.1 – Recuperabilidade 63 6.6.2 - Arquivos pequenos 63 6 7 6.6.3 - Arquivos Grandes 64 6.6.4 - Arquivos extremamente grandes: 64 6.7 - Atributos do NTFS 65 6.8 - Herança de Controle de Acesso a Arquivos e Diretórios 66 6.8.1 - Movendo diretórios e arquivos 66 6.9 - Transações no NTFS 67 6.10 - Servidor de Arquivo de Log 69 7. CASOS DE MIGRAÇÃO DO WINDOWS PARA LINUX 70 7.1 – Caso 01 – Malharia Manz 70 7.2 - Caso 02 - Linux na escola 71 7.3 – Caso 03 - IBM inaugura laboratórios Linux em São Paulo 73 7.4 – Caso 04 - Fabrimar - sem perda de tempo 76 7.5 – Caso 05 – A Texto Editora migra para Linux 79 8. LINUX X WINDOWS 82 8.1 - Segurança: Windows x Linux 82 8.2 – A utilização do Linux e do Windows 84 8.3 - Experiência no mercado 86 8.4 - Reforço de peso 86 9. ESTUDOS COMPARATIVOS ENTRE LINUX E WINDOWS FEITOS PELA UNIVERSIDADE DE SÃO PAULO E A EQUIPE DE IWB 88 9.1 - Análise Técnica 90 9.2 - Metodologia da pesquisa 91 9.3 - Estudo do TCO de Servidores 109 10. CONCLUSÕES E RECOMENDAÇÕES 131 10.1 - Por que deu Errado? 131 10.1.1 - Hardware Ineficiente 131 10.1.2 - Simplesmente não funciona 132 10.1.3 – Evite Exageros 133 10.1.4 - Software não existe 133 10.1.6 - Documentação não existe 134 10.1.7 - Software e documentação existem, mas é impossível de usar 135 7 8 10.1.8 - Pessoal Técnico 10.8 - O beta-tester 135 135 10.9 - Custo de migração para Linux é "proibitivo", diz estudo da Folha Online 136 10.10 - Os mitos do sistema aberto 137 10.11 - Custo Zero: A Fama do Linux 141 11. REFERÊNCIAS BIBLIOGRÁFICAS 144 8 9 LISTA DE TABELAS Tabela 1 - Situações Relevantes para Diferentes Estratégias de Pesquisa 19 Tabela 2 – Objetos do Windows NT 49 Tabela 3 o que cada estado representa 53 Tabela 4 - Atributos dos arquivos criados no NTFS 64 9 10 LISTA DE FIGURAS Figura 1 – Tabela de objetos do Windows NT 51 Figura 2 - Diferentes estados de execução do thread 52 Figura 3 – Lista das prioridades 55 Figura 4 – Estrutura Multitheading 56 Figura 5 – Onde as informações são armazenas no FAT 57 Figura 6 – Blocos do FAT 58 Figura 7 – Small Diretores 62 Figura 8 – Arquivos Grandes 63 Figura 9 – Estrutura de dados não residentes 64 Figura 10 – Propriedades de segurança- 66 Figura 11 – Diagrama de blocos do NTFS 67 Figura 12 – Servidor de arquivo log 68 10 11 RESUMO Este trabalho, assim como a pesquisa teórica feita foram direcionados no sentido de identificar comportamentos específicos das variáveis que influenciam e são responsáveis pela escolha dos Sistemas Operacionais Windows e Linux, como melhor ferramenta para sua organização. O conjunto de informações obtidas permitem demonstrar algumas variáveis que podem auxiliar o leitor na tomada de decisão na compra de um sistema operacional, assim como no melhor gerenciamento das atividades relacionadas com a tecnologia necessária para o seu dia-a-dia. Resumidamente, este estudo tem como referencial teórico os fundamentos das características dos sistemas operacionais Windows e Linux, o atual cenário das empresas diante da tecnologia e os prós e contras, a história evolutiva destes assuntos e suas competências para dar suporte ao sucesso, assim como o desenvolvimento humano e suas necessidades únicas para atingir a excelência, utilizando a tecnologia como ferramenta para isso. 11 12 ABSTRACT This work, as well as the made theoretical research had been directed in the direction to identify specific behaviors of the variable that influence and are responsible for the choice of the Operational systems Windows and Linux, as better tool for its organization. The set of gotten information allows to demonstrate some variable that can assist the reader in the taking of decision in the purchase of an operational system, as well as in the best management of the activities related with the necessary technology for its day-byday. In brief, this study has as referencial theoretician the beddings of the characteristics of the operational systems Windows and Linux, the current scene of the companies ahead of the technology and the advantages and cons, the evolutiva history of these subjects and its abilities to give has supported to the success, as well as the human development and its only necessities to reach the excellency, using the technology as tool for this. 12 13 1. INTRODUÇÃO Competitividade, uma palavra que com certeza está no plano de todos os diretores e administradores de empresas, tornar a empresa mais competitiva possível é um grande desafio, a otimização dos processos são continuas, o nível de excelências dos produtos e serviços estão cada vez mais altos, conseguir um diferencial está cada vez mais difícil. Toda empresa tem suas particularidades e necessidades, porém quando falamos em tecnologia de software isso já não acontece, as empresas estão fardadas a utilizar o que e os fabricantes disponibilizam no mercado e os poucos software que se tem a possibilidade de customização são caros e a tecnologia fica em poder da empresa. Existe uma necessidade de adaptação e correção de falhas existentes além do domínio da tecnologia para se alcançar níveis até então nunca obtidos. Entra uma longa discussão sobre os Software Livres e Open Source, de um lado empresas que investem pesado no desenvolvimento de software, e esperam ganhar milhões defendendo o direito de serem proprietários dos softwares, do outro lado uma comunidade que defende a liberdade dos software e o compartilhamento de conhecimentos, empresas também investem pesado no desenvolvimento desses software e conseguem obter lucro, programadores de todo mundo desenvolvem, aperfeiçoam e adaptam-no as suas necessidades. Conforme a Conectiva (2004), nos anos 50, quem dissesse que Rockefeller um dia perderia toda a sua fortuna seria tido como um louco. Um cidadão da década seguinte não conseguiria imaginar nada mais assombroso que a TV em preto e branco. Imagine então com o computador!!! Os anos 80 e 90 viram surgir um dos maiores impérios empresariais de todos os tempos, dirigido por um pacato senhor chamado William Henry Gates III, que veio a tornar-se o homem mais rico do mundo. Sr. Gates conseguiu o feito graças a uma de suas invenções, um programa de computador que facilitava a operação desses intrincados aparelhos. As inegáveis qualidades da criação de Bill Gates foram notadas no mundo todo, e seu programa, chamado Windows, dominou 90% das máquinas em atividade. 13 14 Desde simples usuários, passando por programadores e analistas, chegando aos gerentes, todos só enxergavam uma solução para todos os problemas propostos pela computação: aquela que vem daquela empresa (diga-se Microsoft). Haviam naquela época (e ainda há!!!) outras opções de sistemas (Unix, Xenix, BSD, por exemplo), mas eram de custos inacessíveis, além de não ser aquilo que todo mundo sonhava. Todos procuravam alguma alternativa que fosse confiável, barata, adequada à situação, à prova de falhas e extensível para futuras mudanças de realidade. Até que um dia... Mais propriamente no mês de Agosto de 1991, um pacato e jovem geek de 21 anos de idade, iniciou o projeto "LINUX". Seu nome: Linus Torvalds, então estudante de Ciência da Computação da Universidade de Helsinque, capital da Finlândia, um mero "nerd". Usando o Assembler (ou Assembly, como queira...), Linus iniciou cortando(hacking) o kernel como um projeto particular, inspirado em sua paixão pelo Minix, um pequeno sistema UNIX, desenvolvido por Andy Tannenbaum. O estudante universitário desejava desenvolver uma versão do Unix que rodasse em micros PC AT e compatíveis, mas que fosse diferente dos sistemas Unix já existentes, cujo preço era exorbitante para o usuário comum. Linus chegou a divulgar a idéia num newsgroup de que participava (sem êxito...) e embalado pelo projeto, programou sozinho a primeira versão do kernel do Linux(núcleo do sistema operacional). Ele se limitou a criar, em suas próprias palavras, "um Minix melhor que o Minix" ("a better Minix than Minix"). Até que numa calma manhã do dia 05 de Outubro de 1991, Linus anunciou a primeira versão "oficial" do Linux, versão 0.02 . 14 15 Depois de finalizar o kernel, Linus deu ao seu filhote o rumo que desencadeou seu grande sucesso: passou a distribuir o código-fonte do kernel pela internet (comp.os.minix) para que outros programadores pudessem aprimorar o sistema. Ele colocava a seguinte mensagem: "Você suspira por melhores dias do Minix 1.1, quando homens serão homens e escreverão seus próprios "device drivers" ? Você está sem um um bom projeto e está morrendo por colocar as mãos em um S.O. no qual você possa modificar de acordo com suas necessidades? Você está achando frustrante quando tudo trabalha em Minix ? Chega de atravessar noites para obter programas que trabalhem correto? Então esta mensagem pode ser exatamente para você ? Como eu mencionei a um mês atrás, estou trabalhando em uma versão independente de um S.O. similar ao Minix para computadores AT-386. Ele está, finalmente, próximo ao estágio em que poderá ser utilizado(embora possa não ser o que você esteja esperando), e eu estou disposto a colocar os fontes para ampla distribuição. Ele está na versão 0.02..., contudo, eu tive sucesso rodando bash, gcc, gnu-make, gnu-sed, compressão, etc. nele." Assim, várias empresas e programadores de todo o planeta contribuíram com seus conhecimentos para melhorar o Linux. 1.1 - O Problema de Pesquisa: “Quais são os fatores que fazem com que uma empresa opte por um determinado sistema operacional? Seria devido aos custos, a opercionalização, a manutenção, treinamento, ou o quê?” 1.2 – Objetivos do trabalho 1.2.1 - Especifico 15 16 Discorrer sobre as reais vantagens de instalar ou migrar para um determinado sistema operacional, sendo o Windows ou Linux, os impactos na cultura da organização, a visão dos gestores e funcionários, as dificuldades de operacionalização e treinamento. 1.2.2 - Geral Fazer um levantamento sobre as vantagens do Linux e do Windows , história, tendências, relatos de empresas que utilizam, qual o impacto da redução de custo com licenças, como o governo está se posicionando em relação ao Software Livre, a sociedade em geral. 1.3 - A Justificativa Depois de comprar o mais moderno computador pessoal do mercado as empresas não sabem bem o que fazer com seu modelo mais antigo e ainda funcional? Uma opção seria tentar dar-lhe nova vida com o Linux, o padrão de sistema operacional que vem se oferecendo como alternativa ao Windows da Microsoft (Rodrigues, 1999). Com mais estabilidade, segurança e um preço mais baixo por um sistema operacional com aparência semelhante ao do Windows, os defensores do Linux dizem que estão preparando-se para encarar a Microsoft, que domina o mercado de computadores pessoais. Por menos de US$ 100, a maioria das versões do Linux oferecem um pacote de software que permite que os usuários enviem e recebam e-mails, naveguem pela Internet, escrevam documentos e editem planilhas. O Windows mais o sistema de produtividade Office da Microsoft custam centenas de dólares, juntos. O preço do Linux varia de acordo com o distribuidor - Red Hat, SuSE, Xandros e Mandrake, por exemplo - e cobre principalmente acordos de atualização regular de software, manuais e assistência técnica, bem como a gravação do software em CD, numa bela embalagem. 16 17 No passado confinado aos computadores de usuários bem familiarizados com a tecnologia, o Linux vem se tornando mais fácil de instalar, operar e manter, para o usuário médio. O Xandros Desktop, uma das versões do sistema, requer apenas cinco cliques, ou menos, para instalar o sistema. A Red Hat, mais visível das distribuidoras Linux, oferece um pacote de programas que inclui serviços de mensagens instantâneas, software de tratamento de fotos digitais, sons e vídeo, além de uma série de jogos. Muitos dos arquivos pessoais, documentos e imagens usados em um sistema Windows podem ser transferidos e usados no Linux. Alguns programas padrão Windows, como uma versão mais antiga do Office ou de seu rival, Lotus Notes, podem ser até instaladas com um sistema operacional Linux. E para aqueles que têm medo de depender exclusivamente do Linux, usar um computador mais velho é um bom teste, diz Frederick Berenstein, co-presidente do conselho da Xandros. Desenvolvido há apenas uma década pelo então estudante finlandês Linus Torvalds, o Linux foi criado como uma alternativa aberta aos sistemas operacionais baseados no Unix e fechados. Versões gráficas e baseadas em ícones do Linux passaram por um longo caminho desde as edições baseadas em comandos de texto do sistema que apenas os mais entendidos sabiam manejar. Números são difíceis de se conseguir, mas a maioria dos especialistas concorda que o sistema da Microsoft é executado em mais de 90% dos computadores pessoais do mundo, com o Linux representando uma minúscula parcela do total. Apesar disso, o sistema aberto conseguiu já 15% a 20% de participação no mercado de servidores. 17 18 Agora, os desenvolvedores do Linux criaram uma variedade de opções de gráficos que tornam o uso do sistema muito fácil para usuários que nunca vão querer digitar uma linha de comando para executar uma ação como a cópia de um disquete. Os usuários podem personalizar suas telas, fontes e conectar vários dispositivos aos seus PCs. A navegação por alguns sites de distribuição Linux leva o usuário a conhecer uma série de aplicativos disponíveis gratuitamente para download. Além disso, algumas versões do Linux podem trocar de idioma praticamente de forma instantânea, enquanto a Microsoft cria versões diferentes de seu sistema para cada idioma distinto. A edição padrão do Mandrake Linux, uma popular plataforma Linux, custa US$ 33, enquanto uma versão mais avançada com mais de 2 mil programas custa US$ 70. A última edição para usuários domésticos do Red Hat Linux custa US$ 30 e uma edição pessoal da tradicional distribuição SuSE custa US$ 27. Xandros está sendo vendida por US$ 99. "É cedo para afirmar que isso é uma ameaça à Microsoft e ao Windows, uma vez que as porcentagens de usuários ainda são baixas. Mas os números estão crescendo e em algum ponto será possível comprar computadores com o Linux pré-instalado, com impressoras e outros dispositivos com drivers para o sistema e aplicativos criados tanto para o Windows, quanto para o Linux", disse o vice-presidente de marketing da Red Hat, Mark Visser. "Uma vez que isso ocorra, a ameaça ao Microsoft Windows se tornará muito real." 1.4 - Metodologia de Pesquisa Há a preocupação em estabelecer os aspectos principais do método de pesquisa, ou seja, o tema, o tipo de pesquisa, as etapas percorridas na realização do estudo, a forma como foram obtidas e tratadas as informações, assim como o alcance e as limitações do trabalho, são aspectos esclarecidos. 18 19 A abordagem sistemática tem influenciado positivamente a compreensão de diversos assuntos em várias áreas de estudo, principalmente no tratamento de problemas complexos, como uma maneira de entendê-los ou procurar-lhes soluções. As idéias de Yin (1989), sobre as diversas possibilidades de pesquisa são relacionadas na Tabela 1, sendo mostradas comparativamente em função da bibliografia pesquisada e as questões que levanta. Tabela 1 - Situações Relevantes para Diferentes Estratégias de Pesquisa QUESTÃO DA CONTROLE SOESTRATÉGIAS PESQUISA BRE COMPORTAPOSSÍVEIS MENTO EXPERIMENTO Como, por que Sim FOCO EM EVEN- TOS CONTEM-PORÂNEOS Sim LEVANTAMENTO ANÁLISE ARQUIVOS HISTÓRIA Quem, qual, onde Quantos Quem, qual, onde Quantos Como, por que Não Sim Não Sim, Não Não Não ESTUDO DE CASO Como, por que Não Sim O estudo em questão se caracteriza como uma “dissertação”, na forma conceituada por Salvador (1980:35): “um estudo teórico, de natureza reflexiva, que consiste na ordenação de idéias sobre um determinado tema”. Para caracterização do problema, baseamo-nos em pesquisas bibliográficas, onde, selecionando-se uma bibliografia adequada ao tratamento que se pretendia dar ao assunto e; selecionando e organizando-se informações extraídas dessa bibliografia e dos conceitos passados em sala de aula. O estudo foi realizado em quatro etapas. Em primeiro lugar foi definido o tema, a partir da aula expositiva por intermédio da matéria Informática como Conceito de Negócios.. A próxima etapa, foi preciso identificar preliminarmente, uma bibliografia a respeito do assunto:“Windows x Linux”. 19 20 A etapa seguinte, foi aprofundar a análise da bibliografia, a fim de buscar uma maior compreensão dos inter-relacionamentos existentes entre os conceitos citados pela fundamentação teórica. Por fim, a quarta etapa consiste na confecção deste trabalho, para análise. 1.5 – Sujeito de pesquisa, coleta e análise dos dados A pesquisa foi elaborada a partir de alguns modelos de teóricos de empresas que migraram ou implantaram o Sistema Linux, feita a análise de desempenho, foi comparada às características do Windows NT, onde, por intermédio dstes dados e índices foi elaborado um modelo teórico comparativo entre ambos. Também foi extraído da internet através do site www.informationweek.com.br, estudos realizados pela Universidade de São Paulo e o grupo IWB. 1.6 - Limitações da pesquisa Alguns aspectos devem ser observados antes de assumir-se que se está propondo um modelo acabado ou universal. Não é esta a intenção do trabalho, assim como não está voltado para um tipo específico de instituição. A intenção é de iniciar o desenvolvimento de um modelo para um referencial teórico específico, que venha a ser testado através de uma futura aplicação. No âmbito deste trabalho, o modelo deve ser entendido como um instrumental teórico com intenção de aproximação do fenômeno estudado. Não estão descritos em nenhum momento resultados da aplicação do modelo é completo, que é uma sugestão para estudos posteriores. 1.7 - Hipótese do trabalho? Uma hipótese de trabalho serviu como base: 20 21 “O fato de um sistema operacional ser mais barato ou gratuito, não significa melhor desempenho, agilidade e principalmente que seja o melhor para sua empresa, devido aos fatores treinamento, tempo de implantação e cultura organizacional”. 1.8 - As dificuldades encontradas Tentamos entrar em contato com empresas que migraram do Windows para Linux por meio de e-mails, telefone e contato verbal, mas nenhuma respondeu as mensagens ou prontificou-se a dar depoimentos reais (talvez até pelo pouco tempo para a elaboração deste trabaho). Os livros sobre o assunto são voltados para área técnica e não abre uma discussão sobre o impacto social que o Linux causa ou pode causar. A nossa única opção foi através da Internet, pesquisarmos os estudos e resultados obtidos atra’ves da Universidade de São Paulo e a equipe IWB. 21 22 2. HISTÓRIA D0 LINUX 2.1 Como Nasceu o Linux? De acordo com a Conectiva Informática, a história do Linux começa no ano de 2001 representa um marco histórico para o sistema operacional Linux. Dez anos antes, no dia 3 de julho de 1991, Linux Torvalds comunicava oficialmente à comunidade de desenvolvedores do newsgroup comp.os.minix que estava trabalhando em um projeto em minix. Naquela ocasião, Linus buscava a indicação de um documento das regras posix mais recentes. O que não significa, necessariamente, que o Linux nasceu naquele dia. Há uma outra data, 25 de agosto de 1991, em que Linus divulga no mesmo news-group, que está fazendo um sistema operacional propriamente dito. E o mais importante de tudo: livre. Assim ficou mais explícito para o público a intenção dele em tornar sua obra disponível para todos que estivessem interessados. "Algumas pessoas até se ofereceram para fazer os beta-testes", disse Linus no seu livro mais recente, "Só por Prazer". Linus lembra-se da data exata da disponibili-zação da versão 0.01 do sistema operacional que dez anos mais tarde tornaria o Linux (17 de setembro de 1991). Portanto, deixamos a interpretação da data de aniversário do Linux para os leitores. 2.2 - Linha do Tempo do Linux Acompanhe os fatos mais marcantes de uma década com o Linux 1991: O estudante de Ciência da Computação da Universidade de Helsinque, Linus Torvalds, começa a desenvolver um SO que mais tarde seria chamado de Linux. 1992: Surgem as primeiras distribuições, como a SLS (Safe Landing System Linux). A SuSE é fundada. Criação da linguagem Java. Lançamento do Windows 3.1. 1993: Saem os primeiros CD’s com o Linux (Yggdrasil). Lançados o projeto Debian e a distribuição Slackware. Lançamento do Windows NT. 1994: A versão beta do RedHat e o kernel 1.0 são lançados. Caldera e Open Linux iniciam suas atividades. 22 23 1995: Fundação da Conectiva, a primeira distribuição Linux brasileira. Neste ano, é lançado o Windows 95. 1996: O projeto KDE é fundado. 1997: Linus Torvalds começa a trabalhar na Transmeta, no Vale do Silício, onde está até hoje. O projeto Gnome é criado por Miguel de Icaza, Bruce Perens anuncia o desenvolvimento do apt-get 1.1. 1998: A Netscape abre o código-fonte do seu browser. Alan Cox começa a trabalhar na RedHat. Linus é capa da revista Forbes. Lançado o Windows 98. 1999: É lançado o Samba 2.0. A Dell comercializa os primeiros computadores com Linux pré-instalado. Jon Maddog Hall é contratado pela VA Linux Systems. 2000: A Conectiva recebe investimentos da Intel, Latintech e ABN Amro Bank. A ABES dá a primeira "batida" geral contra a pirataria, impulsionando o Linux no Brasil. 2001: Lançamento do Kernel 2.4. A IBM anuncia que investirá US$ 1 bilhão em Linux. 2002: Versão beta do UnitedLinux atinge mais de 15 mil downloads no primeiro mês, isto significa mais de 500 downloads por dia, um percentual altíssimo para esse mercado. O United Linux é um sistema operacional padronizado e focado no segmento corporativo, resultado de uma iniciativa da indústria Linux para alavancar o desenvolvimento, certificação global e uniforme do Linux. O UnitedLinux potencializa os esforços coletivos de seus fundadores, com um resultado final projetado para prover uma infra-estutura sem precedentes para o mercado Linux corporativo. As empresas fundadoras do UnitedLinux, Conectiva S.A., Grupo SCO, SuSE Linux AG, e Turbolinux Inc., são líderes nessa indústria. 2003: UnitedLinux Libera Versão 1.0 2.3 - História do Tux 23 24 O simpático pingüim que se tornou ícone do Linux foi criado por Larry Ewing em meados de 1996, depois de um concurso de logotipos para o sistema operacional. A simpática criaturinha criada por Ewing venceu quase por aclamação de toda a comunidade. A idéia do pingüim foi casualmente sugerida pelo próprio Linus Torvalds, depois de mencionar publicamente que os achava engraçadinhos. Quando o concurso estava em andamento, Linus havia sugerido que o pingüim deveria ser gordinho e com um ar de satisfação depois de empanturrar-se com peixes. Para Linus, um pingüim como logotipo daria mais liberdade às pessoas que quisessem usar materiais relacionados ao sistema operacional. Outra razão que Linus salientou é que, usando algo parecido com o pingüim dá às pessoas a oportunidade de fazer modificações. Exatamente como acontece hoje, quando encontramos diferentes variantes do pingüim em boxes das distribuições espalhadas por todo o mundo. O nome "Tux" é uma variante de "tuxedo", mais conhecido entre nós como "smoking". E, para quem não sabe, há um Tux, em carne e osso, no Zoológico de Bristol, na Inglaterra. 24 25 3. SOFTWARE LIVRE 3.1.Uma nova visão econômica Será que o código aberto realmente reduz o Custo Operacional ou é apenas um "barato que sai caro"? É mais econômico porque é de graça ou é de graça porque é mais econômico? Até que ponto podemos apostar financeiramente em algo que tem revolucionado a indústria do software, quebrando antigos paradigmas existentes? Quais as razões técnicas e econômicas que justificam apostar em um projeto que utilize ferramentas open source ou seja efetivamente open source? Será que estávamos cegos ou é realmente uma "terceira via"? 3.2 - Justificativas iniciais A visão de código aberto é hoje algo forte dado aos seguintes fatores: 1. Rápida difusão de seu código – A utilização de produtos, como Linux e Apache, tem apresentado um crescimento a taxas de 100% a 200% ao ano; como podemos constatar através dos dados de sua participação no ambiente corporativo brasileiro, apresentados através da 13ª Pesquisa Anual de Administração de Recursos de Informática, da Escola de Administração de Empresas, da Fundação Getúlio Vargas, em São Paulo (EaespFGV). Segundo a pesquisa, o Linux hoje está presente em nada menos que 8% do parque instalado de máquinas no país. Este crescimento é evidenciado se compararmos os dados da mesma pesquisa efetuada no ano passado, onde sua participação era de apenas 3%. 2. Significativo investimento de capital – Pesos pesados da indústria como HP, IBM e Sun, por exemplo, investiram significativas quantias com o objetivo de estimular a difusão do código aberto, principalmente em versões do Linux. A gigante IBM, por exemplo, anunciou no ano passado um aporte de capital de US$ 1 bilhão, além do fato de estar portando o sistema para suas novas linhas de mainframes. Logo em seguida o mercado recebia a informação de mais um aporte de capital no valor de US$ 1 milhão, para um centro de tecnologia, – localizado no centro de Manhattan, em Nova Iorque –, onde os usuários poderão realizar testes de aplicações específicas para esta plataforma open source que rodam na linha eServers de servidores e em mainframes IBM. Estas políticas mostram, claramente, uma mudança de postura do mercado tradicional. 25 26 Ao mesmo tempo, no Vale do Silício, empresas de renome, como Cobalt Networks, Collab.Net, Scriptics e Sendmail (há mais de 300 dias rodando seus servidores em Linux, sem paradas), receberam aporte de capital em razão de seus projetos open source. 3. Nova estrutura organizacional de desenvolvimento – Em virtude do código aberto ser de natureza colaborativa, o seu desenvolvimento é efetuado em geral por vários programadores ao redor de todo o mundo, isto é, o potencial de inovação do produto está sujeito a um constante bombardeio de novas idéias, permitindo assim, um aumento na qualidade do resultado final. Isto nos faz lembrar que há alguns anos, uma instituição financeira brasileira, havia iniciado um projeto baseado em Linux. Porém, a equipe se deparou com um grave problema. Todas as placas de comunicação que utilizavam não dispunham de drivers para configuração. E agora o que fazer? Como resolver o problema, se na época não existia no Brasil "gente capacitada"? Não só conseguiram ajuda para o problema, como um colaborador da comunidade mundial Linux desenvolveu e ofertou o driver específico para as placas de comunicação utilizadas. E isto ocorreu em menos de uma semana. 4. Choque entre nova e velha economia – O processo de utilização do open source se baseia em vários fatores. No caso do fator econômico; como algo que é publico pode ser considerado de qualidade? A visão tradicional explica que neste caso, o aumento da qualidade deve vir da especificação de domínio privado. O código open source quebra este paradigma. Claro que o código aberto não é perfeito, mas qualquer projeto deve estar aberto para acrescentar algo que realmente atenda e supere as necessidades dos usuários a um custo menor. No que se refere ao medo; há algum tempo o mercado tradicional vivia das seguintes afirmações: não há gente capacitada para atendimento de suporte técnico, não há aplicativos comerciais suficientes, não é uma plataforma escalável, não é adequado para as empresas e não é seguro. Como já vimos, todos estes argumentos hoje praticamente caíram por terra. Podemos considerar que já estamos vivenciando a quebra deste paradigma, chegando ao ponto (hoje em dia) da Microsoft ter um programa para abrir parte de seu código (no caso o Windows) para empresas que tenham um número "X" de licenças. O velho problema continua 26 27 sendo: o open source parece ser o caminho; mas algumas corporações ainda continuam com um certo medo desta tendência. Aqui no Brasil, empresas, como Metrô de São Paulo, Vésper, Lojas Renner, Fundação Ruben Berta (controladora da Varig), Banrisul, Cosmoquimica, BrFree, Brasil Telecom, Lojas Colombo e Marabrás, Petrobras, Embraer e Bom Preço, são algumas das que já consideram este paradigma coisa do passado. Será que estamos vivendo uma "software revolution" com o open source como mártir e herói? Na esfera de governos internacionais, o Departamento de Informação e Defesa dos Estados Unidos (DISA), adotou o StarOffice, da Sun Microsystems, que estará sendo utilizado em mais de 25 mil unidades e em cerca de 10 mil estações de trabalho UNIX, além de 600 organizações-clientes em todo o mundo. A desenvolvedora afirma ainda, que um instituto governamental de pesquisa francês, o Departamento de Finanças da Alemanha e o Governo da China têm analisado o uso do StarOffice ou outro programa open source. O que contrapõe a teoria existente é que o StarOffice agora será "cobrado" (segundo as últimas notícias) por um preço extremamente baixo. Mas será isto um erro hilariante na estratégia de marketing ou uma brilhante jogada? Lembramos ainda, que todas as soluções de software utilizadas pelas forças armadas são baseadas em open source, justamente pelo alto teor de segurança que devem possuir. 5. Capacidade de oferecer vida útil longa aos equipamentos – Todos nós sabemos das dificuldades de investimentos para manter o parque instalado de hardware aderente aos requisitos das novas versões de software liberadas pelas corporações de códigos privados. Já os códigos open source, por possibilitarem o conhecimento interno e a sua customização, conseguem retirar o máximo da capacidade instalada, sem com isso incorrer em prejuízo operacional do negócio. Pois possibilitam o desenvolvimento de pacotes específicos de acordo com a característica de cada empresa. Em resumo: você e o seu vizinho são alfaiates um do outro, com lucro para ambos. 6. Capacidade de redução do custo de licenças – No ano passado, o Gartner Group e o Giga Information Group publicaram uma pesquisa onde afirmavam que o ambiente open source estava sendo visto como uma nova forma de pressão para as corporações na negociação com as empresas de sistemas de códigos proprietários. Como resultado disso, os custos com novas aquisições de licenças poderiam ser reduzidos drasticamente, além de 27 28 possibilitar uma independência na escolha de plataformas operacionais. Uma prova desta afirmativa é que cerca de dois terços dos maiores clientes da Microsoft ainda não assinaram o novo programa de licenças de software, que representa uma importante fonte de renda para a companhia. Pelo menos um terço dos clientes entrevistados não demonstraram a intenção de renovar a assinatura do programa. Isto mostra a "força" que existe no "open source". No início de julho, a taxa de empresas aderindo ao programa ainda era baixa. Conforme os estudos, muitas companhias estão fazendo uso do tempo restante (até o final de julho) para avaliar alternativas, como por exemplo o Linux e o StarOffice. 3.3 - Desenvolvimento cooperativo de software Para entendermos onde o código open source chegou, devemos olhar por onde ele caminhou através ao longo dos anos no processo de desenvolvimento cooperativo (compartilhado) de software. Para tanto, dividiremos o processo em três eras: a) Primeira era – Do início do anos 60 até o início dos anos 80 – Os primórdios dos sistemas operacionais nasceram em meio acadêmico, como em Berkley e MIT (Massachusetts Information Technology) e nos laboratórios da Bell e da Xerox, nos anos de 1960 e 1970. Nesta época, era comum programadores compartilharem um lugar-comum: o código fonte. Em meados dos anos 70, o foco voltou-se para o desenvolvimento multiplataforma, utilizando no desenvolvimento principalmente a linguagem C e o ambiente UNIX. Somente através da difusão da Usenet é que o desenvolvimento compartilhado ganhou mais adeptos; onde a computação em rede com a comunidade UNIX de programação acelerou o processo de compartilhamento de tecnologias. Ao mesmo tempo, nenhum esforço foi executado com o intuito de delinear os direitos de propriedade de softwares ou restringir o reuso destes. b) Segunda era – Do início dos anos 80 até o início dos anos 90 – Em função de vários litígios judiciais, iniciou-se um esforço de definição de regras de desenvolvimento compartilhado e cooperativo. Ao mesmo tempo, surgiram diversas reações através de instituições como a Free Software Foudation do MIT, que disseminava o software sem nenhum custo, contribuindo assim para a criação de licenças para uso, uma espécie de antecessor do GPL (GNU Public License, como é conhecida atualmente). 28 29 c) Terceira era – Do início do anos 90 até hoje – Com a difusão da Internet em ritmo acelerado, a utilização do software livre cresceu de maneira assustadora, onde o mais importante "filho" foi o surgimento do Linux (variante do UNIX, desenvolvido por Linus Torvalds, em 1991), seguido de outros como o StarOffice. 3.4 - Comparação entre software aberto e fechado Na visão dos programadores, o software aberto possui as seguintes vantagens econômicas: a) Efeito alumínio – Como é aberto e pode ser utilizado por todos, reluz para todos, mesmo não sendo ouro. b) Benefícios de customização e "bug-fixing" – Qualquer um pode ajudar a customizar o software aberto e se houver algum problema, qualquer um também pode ajudar a repará-lo. Na visão de desempenho (em linhas gerais), podemos citar as – significativas – algumas vantagens do open source: a) Medição aberta de performance – Se é aberto, podemos ver e medir não somente o desempenho do produto em si, mas do desenvolvimento do mesmo. b) Total iniciativa – O programador open source é seu próprio chefe e também o empregado, e isto aumenta a responsabilidade e a iniciativa. c) Grande fluência – O mercado é mais aberto ao programador open source, o interesse de divulgação é enorme e, neste caso, o potencial humano realmente faz a diferença. 3.5 - Liberdade Formalmente, Software Livre é todo software que oferece quatro tipos de liberdades aos seus usuários: A liberdade de executar o programa, para qualquer propósito A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades. Aceso ao código-fonte é um pré-requisito para esta liberdade. A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo. 29 30 A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para esta liberdade. 30 31 4. ARQUITETURA DO LINUX 4.1 - Desenvolvimento do Kernel Pessoas pelo mundo afora estão programando no kernel do Linux, especialmente para escrever drivers de dispositivos (device drivers), melhorando, aperfeiçoando e consertando o sistema. Esta é uma das inúmeras razões pelas quais o Linux se tornou um sistema com um rápido e estável desenvolvimento. Munidos de uma lista de discussão com alto tráfego de mensagens, os programadores do kernel do Linux (também conhecidos como kernel hackers) possuem uma grande integração entre si. A cada novo código, conserto ou aperfeiçoamento no kernel, tudo é intensamente revisado e discutido. O mundo do kernel do Linux gira em torno de duas palavras: device drivers. Um device driver (acionadores de dispositivos), como o nome diz, é um código que compreende o dispositivo e realiza uma comunicação com ele. O aperfeiçoamento, criaçatilde; o e conserto de device drivers é o principal trabalho dos atuais programadores do kernel do Linux. Como foi dito anteriormente, esses programadores fazem alterações no kernel, através da lista de discussões chamada linux-kernel. 4.2 - A organização do kernel O kernel do Linux é um código relativamente complexo, comparando-se a pequenas aplicações. O tamanho do código fonte do kernel atualmente é de aproximadamente 75 Megabytes, incluídos todos os device drivers oficiais. Para se compreender um código desse tamanho é necessária uma certa organização. O código do kernel do Linux é distribuído livremente conforme as regras da Licença Pública da GNU.O código fonte do kernel pode ser baixado por diversos meios, como ftp ou http. Você pode facilmente encontrar o código do kernel no endereço www.kernel.org, que é a distribuição oficial do kernel. Para um acesso mais rápido, sugiro utilizar o espelho brasileiro da distribuição, localizado no ftp no endereço ftp.br.kernel.org. A seguir, vou tentar exemplificar a organização assumida pelos programadores do kernel, virtualmente e fisicamente. Virtualmente, o kernel do Linux, assim como a maioria dos kernels dos Unixs atuais, é dividida em várias partes, para melhor compreensão, como vemos a seguir: 31 32 Gerência de processos: cuida da criação, eliminação e gerência dos processos. Um processo não é nada mais do que uma tarefa sendo executada continuamente. Comunicação e escalonamento de processos também são gerenciados por esta parte. Gerência de memória: gerência a memória do computador através de vários algoritmos para possibilitar o melhor uso da memória, que é o maior recurso do computador. Muitas partes do kernel interagem com o gerenciamento de memória, requisitando ou dispensando memória para utilização. Sistemas de arquivos: Todo sistema Unix é altamente baseado em arquivos. Quase tudo em Unix pode ser tratado como um arquivo. Através de um sistema de arquivos virtual, o Linux suporta vários sistemas de arquivos que possuem diversas formas de organizar a informação no meio físico. Veremos mais adiante mais detalhadamente os sistemas de arquivos. Drivers de dispositivos: uma das partes mais importantes do kernel. Com exceção do processador, memória e algumas outras pequenas partes, a maior parte do código é executada por drivers de dispositivos. O kernel necessita ter um driver para cada dispositivo integrado ao computador, de teclados a câmeras de vídeo. Interligação em redes: a interligação em redes é controlada pelo kernel. Recebimento, envio, transformação de pacotes são operações controladas pelo kernel, que possui mecanismos para repassar os pacotes a processos, conhecidos como sockets (soquetes). Além dessas partes, o kernel do Linux, principalmente, possui uma parte especial, que adiciona uma nova funcionalidade ao kernel: a habilidade de expandir seu código enquanto está em execução. Isso significa que você pode adicionar funcionalidades ao kernel enquanto o sistema está em execução. Cada pedaço de código adicionado ao kernel é chamado de módulo. Existem diversos tipos de módulos, como módulos que são drivers de dispositivos ou drivers de rede, ou apenas pequenas modificações no código do kernel. Fisicamente, o código do kernel do Linux é dividido em vários diretórios. Documentation/ documentação relativa ao kernel Arch - código dependente de arquitetura 32 33 Drivers - drivers de dispositivos Fs - sistemas de arquivos Include - definições e protótipos de funções Init - código de inicialização Ipc - comunicação entre processos Kernel - código base do kernel Lib - funções básicas Mm - gerenciamento de memória Modules - armazenamento de módulos compilados Net - código de interligação em redes Scripts - scripts diversos para configuração 4.3 - Compilação do kernel Dentro do diretório arch/ está contido o código dependente de arquitetura. O resto dos diretórios é o mais portável possível, tornando o Linux facilmente portável entre diversas plataformas. 4.4 - Tipos de dispositivos e módulos A maneira como os sistemas Unix oferecem seus devices (dispositivos), geralmente pode ser classificada em três categorias, cada uma dedicada a tarefas diferentes. O Linux pode carregar cada um desses tipos de devices em forma de módulos, permitindo que o usuário teste novos hardwares sem a necessidade de reinicialização total do sistema. Os três tipos de devices são especificados a seguir: 1. Dispositivos de caractere (char devices): Os devices de caractere são aqueles que podem ser acessados e manejados como um arquivo normal. Este tipo de driver geralmente implementa as funções primitivas como open(), close(), read() e write(). O console e a porta paralela são exemplos de char devices. Esses devices são acessados geralmente utilizando arquivos especiais, contidos no diretório /dev, como por exemplo: /dev/tty1, /dev/lp1. A grande e única diferença entre os char devices e arquivos é que em arquivos normais pode-se retroceder e ler os dados novamente, enquanto nos char devices não existe 33 34 esta possibilidade, pois geralmente são canais de informações, em que você apenas pode ler seqüencialmente. 2. Dispositivos de bloco (block devices): Os dispositivos de bloco são geralmente dispositivos que podem conter um sistema de arquivos, como por exemplo um disco rígido. Na maioria dos sistemas Unix, dispositivos de bloco somente podem ser acessados em múltiplos de um bloco, em que um bloco geralmente é 1 Kilobyte de informação. O Linux kernel permite que você escreva e leia de um dispositivo de bloco como se fosse um dispositivo de caracter. Como resultado, dispositivos de bloco e de caractere apenas diferem na forma como são gerenciados internamente pelo kernel. 3. Dispositivos de rede (network interfaces): qualquer transação entre redes é realizada através de uma interface (uma ligação). Geralmente uma interface é um dispositivo de hardware, mas pode ser qualquer software, como por exemplo a interface de loopback (que representa a própria máquina). Uma interface geralmente gerencia o envio e recebimento de pacotes entre a rede, processando-os através de um subsistema do kernel. Os sistemas Unix costumam nomear as suas interfaces por seus nomes, como por exemplo: eth0, que seria a primeira interface ethernet do sistema. A comunicação entre o kernel e as interfaces é completamente diferente dos dispositivos anteriores. Basicamente, em vez de utilizar primitivas como read() ou write(), ele gerencia a transmissão de dados através do recebimento e envio de pacotes em uma fila. Esses são os principais tipos de dispositivos existentes no kernel do Linux. De fato existe mais uma classe de dispositivos, os dispositivos SCSI. 4.5 - Sistema de Arquivos Para Michael (2001), o sistema de arquivos diz respeito à arquivos propriamente ditos, diretórios e partições. Os arquivos são conjuntos de dados. Os diretórios contém arquivos e são úteis em termos de organização das informações. As partições separam logicamente e fisicamente os diretórios e arquivos. O conceito de arquivo, os dados precisam necessariamente estar em um arquivo para que eles possam ser escritos na memória secundária. O arquivo é a forma de armazenamento de dados em dispositivos de memória secundária, como disquetes, discos rígidos, CD-ROMs e fitas magnéticas. Os arquivos guardados nesses dispositivos podem ser 34 35 manipulados através do sistema operacional. Geralmente, os arquivos contêm programas ou dados e são seqüências de bits, bytes, linhas ou registros. Muitos tipos de dados podem ser armazenados em arquivos. Os arquivos podem representar um texto, uma imagem, um programa executável, sons, e assim por diante. São atributos de um determinado arquivo: nome, tipo, localização, tamanho, proteções e data e horário de criação e/ou última modificação. Para manipularmos corretamente um arquivo, dispomos de operações que podem ser realizadas em arquivos: criação de arquivos, escrita em arquivos, leitura de arquivos, reposicionamento em arquivos ("seek", procura em arquivos), remoção de arquivos e truncamento de arquivos (remoção apenas do conteúdo do arquivo, mantendo intactos o próprio arquivo e seus atributos). Essas são as operações em arquivos necessárias, mas podemos incluir outras operações menos importantes como a alteração de nomes e outros atributos de arquivos e a anexação ("append") em arquivos, ou seja, acrescentar novos dados aos arquivos sem excluir os dados anteriores. As operações citadas até aqui podem ser combinadas para realizarem operações complementares. Por exemplo, a cópia de arquivos consiste na criação de um novo arquivo, a leitura dos dados de um arquivo que já existia previamente e a escrita dos mesmos dados no novo arquivo. Algumas operações em arquivos implicam em procura em diretórios. A fim de evitar essa busca repetidamente, muitos sistemas operacionais irão abrir ("open") um arquivo quando esse é referenciado, mantendo uma tabela ("open-file table") contendo informações sobre todos os arquivos abertos. Desse modo, usa-se um índice da tabela quando houver necessidade de uma operação em arquivos, eliminando a busca em diretórios. Quando um arquivo aberto não é mais utilizado, ele é então fechado ("closed") e perde a sua referência na tabela. Dependendo do tipo do arquivo, esse pode conter uma planilha, um vídeo ou um texto. Através do tipo do arquivo, o sistema operacional poderá manipular o arquivo de diferentes maneiras. Uma técnica geralmente usada é acrescentar uma extensão ao nome do arquivo. Assim, o nome do arquivo estaria seguido por um ponto e em seguida uma extensão que identificaria o tipo de arquivo. Nesse caso, arquivos que contêm texto podem possuir a 35 36 extensão "txt" e arquivos executáveis, a extensão "exe", por exemplo. Os diversos tipos de arquivos também podem ser utilizados para indicar a estrutura interna do arquivo. Internamente, um arquivo é dividido em registros lógicos que são armazenados em blocos físicos de mesmo tamanho que existem nos dispositivos de memória secundária. Esse encapsulamento pode ser realizado pelo programa usado para lidarmos com os dados de um arquivo ou pelo sistema operacional. Um arquivo pode ser considerado como uma seqüência de blocos. Geralmente, algum espaço do último bloco em que é armazenado um arquivo é desperdiçado devido à fragmentação interna. Exemplificando, um arquivo cujo tamanho é 700 bytes será armazenado em dois blocos se cada bloco possuir 512 bytes; porém o segundo bloco conterá 188 bytes de dados referentes ao arquivo e os 324 bytes restantes desse último bloco não serão necessários e representarão um desperdício (188 + 324 = 512). 4.6 - Métodos de Acesso Para utilizarmos aquilo que é armazenado em um arquivo, é necessário acessar esse arquivo e ler seus dados. Há várias maneiras de acessarmos os dados de um arquivo. O acesso seqüencial a um arquivo é o método mais simples de acesso. Nesse tipo de acesso, os dados de um arquivo são acessados na ordem em que eles estão dispostos, ou seja, para acessarmos um dado em um arquivo devemos primeiramente acessar todos os dados que estão localizados antes desse dado, assim como em uma fita cassete. O acesso direto permite que os dados sejam lidos ou que dados possam ser escritos sem uma ordem particular. O acesso direto a um arquivo é baseado em um modelo de disco. Em bancos de dados, o acesso direto é de grande utilidade pois agiliza a procura por dados. Existem também outros métodos de acesso a dados em arquivos. Em geral, tais métodos utilizam a construção de um índice para o arquivo. Esse índice contém apontadores para os blocos. (Michael, 2001) 4.7 - Estrutura de Diretórios 36 37 Podemos ter milhares de arquivos armazenados em memória secundária. O bom gerenciamento desses arquivos necessita de organização, que geralmente é feita em duas partes. Em primeiro lugar, o sistema de arquivos é dividido em partições. Cada disco possui no mínimo uma partição. A partição é a estrutura de mais baixo no sistema de arquivos. Os diretórios e os arquivos estão contidos em partições. Algumas vezes, as partições são usadas para criar áreas diferenciadas no disco e essas áreas podem ser tratadas como diferentes meios de armazenamento. Também é possível fazer com que dois ou mais discos formem uma única partição. Em seguida, cada partição contém informações sobre os arquivos. Tais arquivos são guardados em diretórios. O diretório contém informações sobre os arquivos contidos nele, como nome, tipo, tamanho e localização dos arquivos. Procurar por um arquivo, criar um arquivo, remover um arquivo, alterar o nome de um arquivo e listar o conteúdo de um diretório são algumas operações que podem ser realizadas em diretórios. Existem alguns esquemas para definir a estrutura lógica de um diretório. A estrutura mais simples em se tratando de diretórios é aquela em que temos apenas um nível. Todos os arquivos se encontram em um único diretório. Essa estrutura é simples, mas pode se tornar problemática quando há um número muito grande de arquivos e/ou mais de um usuário, pois dois ou mais arquivos não podem possuir o mesmo nome e os sistemas operacionais geralmente limitam o comprimento do nome do arquivo em um número máximo de caracteres. E com um número de arquivos muito extenso, torna-se muito difícil ao usuário lembrar-se de todos os arquivos contidos em um único diretório. A principal desvantagem na estrutura descrita acima é a perplexidade que ocorre quando há vários usuários. Uma solução seria criar um diretório para cada usuário. Nessa estrutura que possui dois níveis de diretórios, cada usuário possui o seu próprio diretório e esses diretórios possuem uma estrutura similar, porém cada diretório pertencente a um usuário lista apenas os arquivos de propriedade de seu usuário. Quando um usuário se conecta ao sistema, o diretório "mestre" (primeiro nível de diretório) é buscado. O diretório 37 38 "mestre" é indexado pelo nome do usuário ou número da conta e cada entrada do diretório "mestre" aponta para um diretório de usuário. Nesse esquema, vários arquivos poderão ter o mesmo nome, desde que dois ou mais arquivos com o mesmo nome não pertençam a um mesmo usuário. Cada usuário possui poder de criar ou remover arquivos em seu próprio diretório de usuário. Os diretórios de usuários podem ser criados ou removidos, mas tais operações devem se restringir aos administradores do sistema. Uma desvantagem dessa estrutura é a impossibilidade de existir a união entre mais de um usuário caso dois ou mais usuários queiram realizar uma tarefa em conjunto em sistemas que não permitem que um usuário acesse o diretório e os arquivos de um outro usuário qualquer. Por outro lado, existem sistemas em que é permitido a um usuário acessar um arquivo de um outro usuário. Para realizar o acesso, deve ser informados o nome do usuário e o nome do arquivo. A estrutura de dois níveis de diretórios pode ser vista como uma árvore invertida de altura 2; a raiz da árvore é o diretório "mestre". O nome de um usuário e um nome de um arquivo desse usuário define uma rota, um caminho ou um "path" (/usuário/arquivo). Pode-se estender a árvore de altura 2 existente na estrutura de dois níveis de diretórios em uma árvore de qualquer tamanho desejado, criando-se um número arbitrário de níveis. Desse modo, um usuário possui a liberdade para criar os seus próprios subdiretórios e organizar melhor os seus arquivos, podendo resultar em diretórios distintos para arquivos associados a diferentes temas. Um diretório ou subdiretório contém arquivo ou subdiretórios. Um diretório é um arquivo tratado de maneira especial e todos os diretórios possuem o mesmo formato interno. Toda entrada de um diretório possui um bit que possuirá o valor "0" (zero) caso se trate de um arquivo e esse mesmo bit terá o valor "um" (1) se tivermos um subdiretório nessa entrada. Outra estrutura possível é a estrutura de diretórios dispostos em grafo acíclico, que é uma evolução da "árvore" de diretórios. Nessa estrutura, dois ou mais usuários podem compartilhar arquivos, fazendo com que arquivos ou subdiretórios sejam referenciados por mais de um usuário simultaneamente. Não se tratam de cópias, mas sim de arquivos ou subdiretórios únicos que são compartilhados por mais de um usuário. Desse modo, alterações nos arquivos ou subdiretórios realizadas por um usuário serão automaticamente visíveis a outros usuários que utilizam o que é compartilhado. Assim, um arquivo pode estar em dois ou mais diretório diferente. Um modo de implementação desse compartilhamento de subdiretórios e arquivos é através de links, que são apontadores para um outro arquivo ou 38 39 subdiretório. Uma outra implementação é a duplicação de informações, porém todas essas cópias precisam estar sempre consistentes, ou seja, não pode haver diferenças entre as cópias em nenhuma hipótese. Na estrutura de grafo acíclico, um arquivo pode possuir várias rotas ("paths"). Um problema na estrutura de grafo acíclico é garantir que não há ciclos. Ciclos são problemáticos quando desejamos procurar algo no sistema de arquivos ou remover um subdiretório. Busca de arquivos ou subdiretórios pode causar "loops" infinitos quando ocorrem ciclos no grafo. Uma solução seria estabelecer um limite com relação ao número de subdiretórios percorridos pelo algoritmo de busca. A remoção de subdiretórios que resultam em ciclos pode ser controlada armazenando-se temporariamente o que será removido e, caso não haja ciclos, realizando-se a real remoção no sistema de arquivos. É válido lembrar que os algoritmos de detecção de ciclos em grafos são computacionalmente caros. 4.8 - Proteção Uma preocupação referente às informações contidas em arquivos diz respeito à proteção, seja proteção contra danos físicos ou proteção contra acessos impróprios. A proteção contra danos físicos consiste basicamente em criar cópias de segurança dos arquivos de tempos em tempos, a fim de evitar perda de dados devido à problemas de hardware, catástrofes naturais, acidentes, temperaturas elevadas, entre outros. Por outro lado, a proteção contra acessos indevidos pode ser bastante necessária em sistema multi-usuário contra espionagem e invasões. Os mecanismos de proteção permitem ou proíbem o acesso de arquivos e/ou diretórios. Um fator do mecanismo de proteção é o tipo de acesso requisitado. Alguns tipos de operações podem ser controladas como leitura, escrita, execução, anexação, remoção e listagem de arquivos. Uma maneira de lidarmos com o problema de proteção é tornar o acesso dependente ao usuário. Assim, vários usuários podem possuir diferentes tipos de acesso a um arquivo ou a um diretório. Uma implementação para isso é associar uma lista de acessos a 39 40 cada arquivo ou diretório, especificando o tipo de acesso para cada usuário. Desse modo, quando um usuário requer um acesso a um arquivo ou diretório, o sistema operacional verifica a lista de acesso referente ao arquivo ou diretório. Se o usuário estiver presente na lista, o acesso é permitido. Caso contrário, o acesso será negado a esse usuário. O principal problema com a lista de acessos é o seu tamanho. Se liberarmos o acesso de leitura de um arquivo para todos os usuários, será necessário listar todos os usuários para o acesso permitido para leitura. A fim de evitarmos problemas, podemos utilizar uma versão reduzida da lista de acessos. A versão reduzida da lista de acessos reduz o tamanho da lista e em muitos sistemas possui três classificações de usuários: proprietário ("owner", o usuário que criou o arquivo), grupo ("group", um conjunto de usuários que podem compartilhar um arquivo) e universo ("universe", todos os outros usuários do sistema). Assim, o proprietário pode, por exemplo, ler, escrever e executar um determinado arquivo, é permitido ao grupo executar e ler esse arquivo, mas não possui permissão para escrita e o universo tem a possibilidade apenas para leitura do arquivo. Uma outra forma de proteção é associar uma senha a cada arquivo. Essa pode ser uma boa alternativa, mas possui desvantagens. Associando-se uma senha a cada arquivo, o número de senhas que devem ser guardadas pelos usuários pode se tornar muito extenso. Porém, se apenas uma senha for utilizada para todos os arquivos, todos os arquivos ficarão vulneráveis caso a senha seja descoberta por um invasor. Alguns sistemas operacionais permitem a associação de uma senha para cada subdiretório. Em uma estrutura de diretórios com muitos níveis, geralmente não é necessário proteger arquivos individualmente, mas precisamos proteger grupos de arquivos que formam o conteúdo de um subdiretório. 4.9 - Sistema de Arquivos no Linux De acordo com Jack (2000), o Linux obedece ao modelo padrão de sistema de arquivo do Unix, onde um arquivo não tem necessariamente que ser um objeto estocado no disco ou ter que ser procurado numa rede de um servidor de arquivo remoto. Ao invés disso, os arquivos do UNIX podem ser qualquer coisa capacitada de manipulação da entrada e saída de um conjunto de dados. Os devices drivers podem aparecer como arquivos, e canais de comunicação entre processos ou conexões de rede também semelhante aos arquivos para usuário. O kernel do Linux manipula todos aqueles vários tipos de arquivos, simplesmente 40 41 por esconder detalhes de implementação de qualquer tipo de arquivo atrás de uma camada de software, o VFS ( virtual file system ). O VFS é projetado através dos princípios da programação orientada a objeto e possui dois componentes : um conjunto de definições que dizem qual objeto do arquivo tem permissão, e uma camada de software que manipula esses objetos. Os três principais tipos de objetos definidos pelo VFS são o objeto inode ( que são pré-alocados e espalhados no disco para aumentar a performance ) e as estruturas de objeto de arquivo, que representam arquivos individuais, e o objeto do sistema de arquivo, que representa integralmente o sistema. Para cada um desses três tipos são definidos um conjunto de operações que devem ser implementadas por aquela estrutura ora mencionada. Cada objeto de um desses tipos contém um ponteiro para uma tabela de função ( esta lista os endereços das funções reais que implementam essas operações para aqueles objetos em particular ). O objeto do sistema de arquivos representa um conjunto conectado de arquivos que forma uma hierarquia de diretórios auto-contidos. O kernel do SO mantém um único objeto do sistema operacional para cada dispositivo de disco. Os objetos de inode e de arquivo são mecanismo para acessar arquivos. O primeiro representa o arquivo por completo, e o segundo como um ponto de acesso a dados. Um processo não pode acessar um conteúdo dos dados do inode sem obter um objeto de arquivo apontando para o inode. Arquivos de diretórios são tratados como tipos diferentes de arquivos. A interface de programação do Unix define um número de operações nos diretórios. O ponto inicial do sistema de arquivos é um superbloco que contém informações tais como tamanho do bloco, número de blocos, lista de inodes, etc. O superbloco é replicado no disco, porque se ele não puder ser lido o sistema fica inacessível; e usa um conjunto de grupos de blocos aonde cada um é um pequeno sistema de arquivo, com isso tenta manter a descrição e dados próximos. 41 42 O sistema de arquivo no disco usado pelo Linux é o ext2fs ( second extended file system ). Ele estoca os arquivo de diretório no disco da mesma maneira que é feita em arquivos normais. Quando se aloca um arquivo, o ext2fs deve primeiramente seleta o grupo de bloco para aquele arquivo. Para cada bloco de dados, faz-se uma tentativa de escolher o mesmo grupo de bloco como aquele em que o inode do arquivo foi alocado. Para as alocações de inode, seleta-se o mesmo grupo de bloco como o diretório de arquivo como arquivos sem diretório. Os arquivos de diretório não são mantidos juntos, e sim espalhados através de grupos de blocos disponíveis. Essas políticas são projetadas para manter a informação dentro do mesmo grupo de bloco, mas também espalhado no disco para reduzir a fragmentação de qualquer uma das áreas deste. O VFS é bem flexível, permitindo implementar um sistema de arquivo que não estoca dados. O sistema de arquivo de processo do Linux, o proc, é um exemplo de um sistema de arquivo cujos conteúdos não são realmente estocados em qualquer lugar, e sim computados em demanda de acordo com as requisições de I/O do arquivo usuário 42 43 5. A HISTÓRIA DO WINDOWS Para Asturian (2004), os ambientes operacionais do tipo Windows ficaram tão comuns nos últimos anos, que pouca gente chega a pensar que eles também têm uma história, tão fascinante quanto qualquer outra. Ela envolve gênios, centros secretos de pesquisa, brigas na justiça, espionagem, o mundo rutilante das finanças internacionais, e dinheiro, muito dinheiro. Esse mundo, responsável, mais do qualquer outra coisa, pela enorme popularização dos computadores pessoais, foi agitado recentemente pelo lançamento, hiperanunciado e aguardado, do carro-chefe da poderosa Microsoft Corporation, a maior empresa de sofware do mundo: o Windows 95. No mundo dos PC s, o Windows 95 "briga", com outros dois concorrentes: o OS/2 Warp, produto desenvolvido e comercializado pela IBM, e o sistema operacional do Macintosh, pela Apple. Embora, em uma primeira comparação, o Windows 95 seja inferior aos seus concorrentes, a Microsoft tem chances praticamente absolutas de dominar o mercado mais uma vez. o OS/2, um excelente produto, tem o problema sério de ter poucos programas aplicativos realmente compatíveis, sendo que a maioria funciona no "modo Windows 3.1", o que é bastante estranho para uma plataforma que deseja se firmar como líder de mercado. Além disso, a IBM cometeu alguns erros de marketing, como basear a propaganda do OS/2 na afirmação de que ele "já oferece o que o Windows 95 ainda não tem". Uma coisa idiota, pois a frase e a força da propaganda morreram instantaneamente assim que o Windows 95 foi lançado... Quanto ao Mac, a frase de propaganda também se compara com o Windows 95, só que no passado ("o Windows 95 tem o que o Mac tinha em 88"). 5.1 - O primeiro IBM-PC, lançado em 1981 Paul Allen e Bill Gates, fundadores da Microsoft, em 1980. De acordo com Sabbatini (2004), tudo começou nos anos 70, quando um centro de pesquisas da Xerox Corporation, localizado em Palo Alto, Califórnia, perto da Universidade de Stanford, começou a investigar as interfaces de usuário do futuro. O PARC, como era chamado (Palo Alto Research Center), tinha entre seus pesquisadores verdadeiros gênios e pioneiros da computação, como Alan Kay e Douglas Engelberg. Engelberg liderou o desenvolvimento de uma nova estação de trabalho gráfica, chamada Xerox Star, cujo sistema operacional e interface de usuário eram inteiramente gráficas, baseadas em uma metáfora visual (a 43 44 organização e a forma de trabalho de uma pessoa em uma escrivaninha). Assim, os pesquisadores do PARC "só" inventaram: o mouse, o sistema de janelas, os menus do tipo "drop-down", e os ícones. (Sabbatini, 2004). Xerox 8010 Star Information Computer System (1981). Tinha até 6 terminais com 1.5 MB de memória e 40 MB de disco rígido em cada estação. Funcionava em rede. O servidor tinha 600 MB de memória. Comercialmente, a Xerox Star foi um fracasso. Era revolucionária demais, e foi muito mal divulgada pela Xerox (que, também, não era um fabricante muito conhecido e bem posicionado na área de computadores). O projeto foi arquivado e o PARC quase foi fechado. Mas, o brilho e a genialidade das invenções do grupo de "Doug"Engelberg viraram um mito na comunidade de Informática, e, assim, quando a empresa Apple Computer, fundada por Steve Wozniak e Steven Jobs, resolveu desenvolver o PC do futuro, ela foi buscar inspiração no PARC. A primeira tentativa da Apple, um microcomputador chamado LISA (Local Integrated System Architecture), de 16 bits, incorporava o primeiro sistema operacional baseado em janelas do mercado, e foi lançado mais ou menos na mesma época que o primeiro IBM-PC (1981). Também foi um fracasso comercial. Jobs, então, liderou um processo de reengenharia radical do produto, que levou ao famoso Macintosh, considerado por muitos uma das maiores revoluções da história da Informática, pois integrava de forma absolutamente brilhante a nova interface gráfica, o pequeno tamanho, a alta potência de memória, gráficos de alta resolução e memória, e o marketing competentíssimo. Muito antes do IBM-PC (que usava um sistema operacional muito antiquado, não gráfico, e sem mouse, o não menos famoso MS-DOS), já usava o disquete de 3 ½ ", por exemplo. Macintosh penetrou rapidamente o mercado acadêmico dos EUA, e, em menor extensão, o de automação de escritórios. Mas, foi imediatamente prejudicado pela política aberta da IBM em relação ao seu produto, que permitiu o surgimento dos clones. Em poucos anos, a participação do Macintosh no mercado mundial começou a declinar, indo de 30 %, em seu auge, a menos de 8 %, hoje. Outro erro da Apple foi ignorar a importância do software no futuro. A prova é que o hardware (o computador) fica cada vez menos importante, e surgem gigantes como a Microsoft, dedicadas a um conceito, ao invés de um produto eletrônico. 44 45 Uma coisa que nunca entenderemos completamente é essa cegueira da Apple. Se ela tivesse também desenvolvido o seu sistema operacional para o ambiente IBM PC, sete ou oito anos atrás, e o comercializasse, o Windows 3 nunca teria surgido e a história da Microsoft provavelmente seria muito diferente. Infelizmente, a Apple apegou-se ao esquema de "sistema proprietário", um filho bastardo do LISA, e que não funciona mais nos dias de hoje. Quis dar uma vantagem ao seu hardware, proibindo os clones e ligando o software ao hardware de forma exclusiva. O resultado: está condenada a mudar, ou desaparecer. 5.2 - Uma História dos Sistemas Microsoft e sua Relacão com os Sistemas Padronizados e Abertos Uma tendência perturbadora para os amigos dos sistemas livres, e inclusive para quem ainda acredita em sistemas abertos, é como se tem usado os termos "padrão" e "aberto" para descrever sistemas fechados e proprietários como o Windows em suas diversas encarnações e a arquitetura Intel em contraste com sistemas realmente padronizados como os diversos Unices e a arquitetura SPARC, por exemplo. Esse erro tem origens históricas relativamente antigas no meio da informática. Explicar cada detalhe dessa história seria um trabalho mais longo, em várias partes; aqui vamos somente delinear a história do Windows e como a Microsoft deliberadamente se afastou do ideal dos sistemas abertos, assim se colocando na posição de precisar espalhar desinformação sobre os sistemas realmente padronizados, além de semear confusão sobre o próprio conceito de sistemas padronizados ou abertos. Vamos passar direto sobre a história de como o DOS foi parar na Microsoft e na IBM, o que já dá uma história em si. 5.3 - O MS-DOS como caminho de migração para sistemas abertos. O MS-DOS da Microsoft é modo real. Isso significa que apenas um programa pode rodar ao mesmo tempo no sistema. O projeto original previa também um DOS multiusuário, que mixou logo no começo. Isso consta da história do DOS conforme a Introdução à MS-DOS 3.0. Então a Microsoft comprou com a AT&T uma licença do Unix, e lançou uma versão para Intel 80286, que era o Xenix. A idéia era migrar todos os usuários de DOS para 45 46 Xenix. Um dos piores problemas era o uso de "/" para designar opções para o COMMAND.COM, o interpretador padrão de linhas de comando do DOS, também conhecido como "Aviso de Comando MS-DOS" ou simplesmente "linha de comando". Por isso a versão 2.11 do DOS tinha um parâmetro do CONFIG.SYS chamado SWITCHAR que aceitava os valores "/" ou "-". O "-" era o padrão na 2.11. O plano era que na 3.0 o padrão seria "/", e aí a migração para Xenix seria facilitada, porque não haveria problemas mais com os nomes de caminho do Unix. Isso está documentado no manual "ITT XTRA MS-DOS 2.11 Reference", sendo que ITT XTRA era uma das versões OEM do DOS. 5.4 - O caminho do monopóliocom a IBM. Quando a Microsoft percebeu que junto com a IBM ela tinha poder para dominar o mercado sem precisar da compatibilidade com POSIX, vendeu o Xenix à SCO e partiu para o DOS modo protegido, num projeto conjunto com a IBM. O plano era lançá-lo como DOS 3.0, o que se provou impossível. Então o DOS modo real com acionadores de rede foi lançado como DOS 3.0, e o DOS protegido ia ganhar o nome de DOS 4 - por isso houve tanto tempo entre as versões 3 e 4 do DOS. Mas aí o projeto atrasou e o DR-DOS começou a ganhar mercado, aí lançaram uma nova versão do DOS modo real como 4.0; chegaram a pensar em ainda lançar o DOS protegido como DOS 5, mas decidiram simplesmente mudar o nome para OS/2, combinando com as novas máquinas PS/2 da IBM. Ao mesmo tempo criaram o Windows como um ambiente para rodar sobre DOS. A idéia era vender eventualmente o DOS protegido com o Windows. Mas a IBM achou que o Windows era ruim demais e não tinha conserto (no que ela tinha toda a razão), e forçou a Microsoft a trocar o Windows protegido pelo Presentation Manager, que é a interface gráfica do OS/2 até hoje. Até esse momento a Microsoft ia cuidar das versões ímpares do OS/2, e a IBM das pares - algo como o acerto entre a Intel e a HP sobre o IA-64 (Merced/Itanium, McKinley). O 1.0 foi lançado, mas a Microsoft não fez a tarefa de casa dos drivers. Além disso a compatibilidade com aplicações modo real era muito ruim, porque a IBM ia demorar a ter uma máquina 386 e queria que o OS/2 rodasse no 286, que não tinha modo virtual. O resultado é que a "caixa de compatibilidade DOS" do OS/2 ficou conhecida como "caixa de 46 47 tortura DOS". Finalmente, o OS/2 presumia uma configuração parruda de uma máquina de boa qualidade. Para quem tinha IBM, Compaq, Xerox ou coisa assim tudo bem, mas naquela época os /clones/ de IBM-PC eram ainda piores que hoje, e aí o OS/2 dava mensagens de erro de montão. Para complicar, essas mensagens de erro eram no formato padrão da IBM, que praticamente não tem informação útil nenhuma, somente um código que está muito bem explicado numa documentação enorme, cara e que ninguém tinha. Além disso o OS/2 custava US$ 500 ou coisa assim O resultado disso tudo é que a adoção do OS/2 não aconteceu nas versões 1.X. Antes de chegar à versão 2.0, a Microsoft percebeu que não precisava mais da IBM porque o MS-DOS já tinha um domínio muito grande do mercado. Então rompeu o acordo com a IBM, que previa também que o Windows ia ter uma versão modo protegido mas não modo virtual, enquanto o OS/2 2.0 ia rodar no 386 com modo virtual, facilitando a migração de aplicações DOS. Foi lançado então o Windows 3.1, que rodava aplicações DOS em modo virtual, portanto melhor que o OS/2 1.3. A IBM ainda lançou o OS/2 2.0, inclusive com uma interface melhorada, a WorkPlace Shell (WPS), mas rodando somente em 386 com 8MB de memória e uns 70 MB de disco. Na época isso era considerado excessivo, a WPS era muito diferente do que as pessoas esperavam, a configuração inicial era muito pobre e feia, e ainda não havia muitos acionadores de dispositivo, especialmente impressoras. Em contraposição o Windows modo virtual exigia apenas 4MB, o modo protegido 2MB e o modo real (que ninguém usava) 1MB. Tinha muitos acionadores, uma interface familiar (semelhante à interface do Windows 2 e OS/2 1), e a Microsoft logo cancelou o Word e Excel para o OS/2, se dedicando às versões para Windows 3.1. Por essa época a Microsoft já desenvolvia o OS/2 3.0, apelidado de OS/2 NT, que rodava em cima de Mach ou coisa parecida. O que ela fez foi arrancar fora o Presentation Manager e colocar o Windows por cima, e lançar com Windows NT. Dado o fracasso do OS/2 e do PowerPC no mercado de massa, e à preocupação com outros assuntos, a IBM acabou desistindo do OS/2 NT e a versão 3.0 (Warp) acabou sendo simplesmente uma otimização da 2.3 - até algumas telas diziam 2.3 em vez de 3.0 Warp. 47 48 Um dado interessante é que com o fim da mania de sistemas abertos e a consolidação do domínio da Microsoft ela deixou de falar que o NT era baseado em micronúcleo ou orientado a objeto, cancelou as versões RISC e as personalidades OS/2 e POSIX, e só lançou a versão multiusuário porque a Citrix fez sucesso. 48 49 6. ARQUITETURA DO WINDOWS NT A linguagem usada para escrever a maior parte do Windows NT foi C, mas alguns métodos foram escritos em C++ e assembly. O código referente ao sistema dependente do hardware foi isolada em uma biblioteca conhecida como HAL (Hardware Abstraction Layer). Estas duas características facilitam muito a portabilidade do Windows NT para diferentes plataformas de Hardware, como RISC ou CISC. O Windows NT é baseado em um modelo cliente-servidor. Nessa arquitetura, o sistema é dividido em processos (servidores), sendo cada um responsável por oferecer um conjunto de serviços, como, serviços de arquivos, criação de processos, serviços de memória, escalonamento, etc. No WNT qualquer recurso é representado por um objeto (tipo abstrato que são manipulados somente por um conjunto especial de serviços). Mesmo não sendo totalmente orientado a objetos, o WNT utiliza objetos para representar os recursos do sistema que possam ser compartilhados por mais de um processo. Isto leva a um menor impacto das mudanças que sistema venha sofrer, reduzindo o custo de manutenção, os recursos são acessados e manipulados de forma uniforme, o esquema de proteção do sistemas são comuns a todos os objetos, o compartilhamento de recursos entre processos fica simples e uniforme, etc. Vejamos alguns exemplos de objetos pertencentes ao WNT: Objetos Processo Thread Seção Arquivo Porta Token de acesso Evento Semáforo Temporizador Descrição Ambiente para execução de uma aplicação. Unidade de execução em um processo. Área compartilhada de memória. Instância de um arquivo ou dispositivo Caminho para a troca de mensagens entre os processos. Identificação de um processo. Anúncio da ocorrência de eventos. Contador de recursos alocados por um processo. Contador de tempo. Tabela 2 – Objetos do Windows NT 49 50 Podemos esquematizar a estrutura geral, interna e externa, do Windows NT em camadas: Aplicações: Camada pertencente ao modo usuário e possui as aplicações do cliente. Subsistema Protegido: executado sobre modo usuário, é formado por processos servidores que oferecem serviços para uma aplicação ou outro servidor. Cada servidor possui seu próprio espaço de memória virtual e a troca de informações entre eles é feita através de envio de mensagens. Inclui nele uma variedade de módulos para funções específicas, que fazem uso de serviços provenientes do Kernel. Executivo: é propriamente o modo Kernel. Kernel: é o responsável pelo controle das tarefas pertencentes ao gerenciamento do Sistema Operacional. Controla as interrupções e exceções, escalonamento de threads, sincronização em ambientes com múltiplos processadores e entre outras tarefas. HAL (Hardware Abstraction Layer): Camada do modo Kernel que faz a transparência da plataforma de hardware para o Kernel, com isso o WNT pode trabalhar com multiplataformas (Intel, Alpha, Power PC, DEC). O HAL faz com que todo o hardware, como o controle de DMA, sistema de BUS, controle de interrupção, entre outros, de outras plataformas se pareçam o mesmo para o Kernel. Uma observação muito importante em relação ao modo usuário e ao modo Kernel é que o modo usuário tem apenas acesso a camada “Serviços do Sistema”, pertencente ao modo Kernel. O acesso é feito através de Chamadas de Sistema. 6.1 - Estrutura de Processos no Windows NT Antes de começarmos a falar como o WNT trabalha com processos devemos falar sobre dois conceitos fundamentais, threads e processos: Threads: unidades de trabalho. São executadas em sequência e pode sofrer troca de contexto pelo escalonador. Do ponto de vista do escalonador, o conceito de thread é equivalente ao de um processo, na maioria dos sistemas operacionais. 50 51 Processos: são uma coleção de um ou mais threads e são também associados a ele recursos do sistema. Pode-se dizer também que um processo é um programa em execução. Do ponto de vista de tarefas ou aplicações, este conceito é equivalente a maioria dos outros sistemas operacionais. Devemos lembrar que estes dois conceitos se aplicam principalmente ao WNT e que todos os recursos do Windows NT são considerados como objetos. O corpo dos processos do Windows NT foi desenvolvido pensando em prover suporte a variados ambientes de Sistemas Operacionais. Desta forma, a estrutura nativa, proveniente do Kernel, de um processo no WNT é de forma simples e implementada para propósitos gerais, permitindo a cada subsistema (ver figura 1) emular as particulariedades e funcionalidades de um processo de outros sistemas operacionais. As características mais importantes dos processos em WNT são: - Os processos em WNT são implementados como objetos; - Um processo em execução pode conter um ou mais threads; - Ambos processo e thread são sincronizados; - O Kernel não mantém nenhuma relação com os processos criados por ele, incluindo relações de parentesco (pai à filho); Um processo no Windows NT envolve um espaço de endereçamento virtual, recursos do sistema (tais como semáforos, portas de comunicação, etc) e pelo menos um thread, assim, processos são apenas objetos criados e eliminados pelo gerente de objetos. O objeto do tipo processo armazena nele um header onde possui seus atributos e serviços a ele associados. Cada processo também possui uma tabela de objetos onde contém ponteiros para todos os objetos a que o processo tem acesso. Cada entrada da tabela é chamada de handle e ela aponta apenas para um único objeto. Um handle é criado quando um processo cria um novo objeto (por exemplo um thread) ou quando solicita o acesso a um já existente. Dois processos podem compartilhar um mesmo objeto quando ambos possuem um handle apontado para ele. Veja figura abaixo: 51 52 Figura 1 – Tabela de objetos do Windows NT Quando o WNT cria um novo processo, ele utiliza uma classe de objetos ou um tipo, definido para um processo WNT como um template, para gerar um objeto instânciado. Nesta hora da criação do processo é que são atribuídos seus atributos. Cada processo é criado com um único thread e pode gerar threads adicionais quando necessário e threads podem gerar outros threads também. Em sistemas multiprocessados um processo pode ter vários threads rodando em paralelo. Assim como um processo, um thread também possui uma estrutura interna contendo seus atributos e serviços atribuídos a ele. Neste caso os atributos dos threads são derivados dos atributos do processo que o gerou. Um dos atributos mais importantes dos threads é o “Thread Context”, pois é por este atributo que o escalonador trabalha. Durante o ciclo de vida de um processo, um thread pode passar por diferentes estados de execução, vejamos na figura abaixo: 52 53 Figura 2 - Diferentes estados de execução do thread Descreveremos o que cada estado representa na tabela abaixo: Estados Pronto Descrição O estado de pronto indica que o thread aguarda apenas por uma chance para ser executado. Standby Neste estado o thread é selecionado para execução e aguarda apenas que a troca de contexto ganhe a CPU. Somente um thread pode estar neste estado num processador. Execução Indica que o processo esta sendo executado. Espera Este estado indica que o processo aguarda por algum evento para ser executado. Transição O processo se encontra neste estado quando esta aguardando algum recurso do sistema para ser executado. Terminado É Quando o thread encerra sua execução. Ele pode ser eliminado ou não. Tabela 3 o que cada estado representa 6.2 - Gerenciamento dos Processos A gerência do processador para os processos determina a política de divisão da UCP para os diversos threads, incluindo threads do sistema ou do usuário. Esta seleção e divisão dos processos é feita por uma parte interna do Kernel chamada de dispatcher. A política de escalonamento é implementada através de prioridades associadas a cada thread e também possui o escalonamento de Round Robin, devido ao fato que a troca de contexto de um thread pode ocorrer caso o seu quantum de tempo do processador acabe. Inicialmente cada thread recebe a prioridade do processo que a criou, mas podendo sofrer alterações durante a sua existência. 53 54 O Windows NT implementa 32 níveis de prioridade para seus threads, sendo divididos em duas faixas: prioridade variável, que vai de 0 à 15 e a prioridade de tempo real, que varia entre 16 e 31. Desta forma o thread de maior prioridade estará sempre selecionado para execução. Um processo que esteja com prioridade na faixa de 0 à 15 (variável) poderá ter contexto mudado caso ocorra: - término da execução do thread; - thread de maior prioridade está em estado de pronto (preempção por prioridade); - solicitação de um evento ou recurso do sistema (estados de espera e transição); - término do seu quantum; Este tipo de prioridade ainda pode ser dividida em dois tipos: a base e a dinâmica. A prioridade variável base é igual ao do processo criador do thread e normalmente não sofre mudanças durante a sua existência, já a prioridade variável dinâmica pode variar durante sua existência e é controlada pelo sistema. O escalonamento dos threads de prioridade variável é realizada em função das prioridades dinâmicas. Podemos citar um exemplo para simplificar o funcionamento das prioridades variáveis dinâmicas: caso exista um thread que seja um grande consumidor de processamento (CPU-bound), ele tende a ter uma prioridade dinâmica menor que a de um outro que realize inúmeras operações de E/S (I/O bound), então, toda vez que o thread realiza uma operação que o faça ficar em estado de espera o thread CPU-bound pode ser executado, por outro lado toda vez que o thread I/O-bound termina sua espera, ele recebe um incremento em sua prioridade interrompendo o thread CPU-bound. Dessa forma enquanto o thread I/O-bound executa diversas vezes, utilizando apenas parte de seu quantum de tempo, o thread CPU-bound executa menos vezes, porém ele utilizando por completo o seu quantum. Esta é forma adotada pelo WNT para equilibrar o uso da CPU. Podemos então concluir que a prioridade dinâmica é determinada através da soma da prioridade base mais os incrementos recebidos no momento em que o thread sai do estado de espera ou transição para o estado de pronto. 54 55 Agora um thread em execução, trabalhando na faixa de tempo real poderá mudar seu contexto apenas quando: - terminou a execução do thread; - thread de maior prioridade entra em estado de pronto; - solicitação de um evento ou recurso do sistema; Observamos duas diferenças nesta política de escalonamento com a anterior: o de não haver o conceito de quantum de tempo e de existir prioridade dinâmica apenas. Estes dois níveis de prioridades apresentados acima permita ao WNT oferecer características de sistemas de tempo compartilhado e de tempo real dentro de um mesmo ambiente, possibilitando o seu emprego em diversas aplicações. Vejamos abaixo uma ilustração dos níveis de prioridade: 6.3 - Multithreading O WNT suporta concorrência entre os processos porque threads de diferentes processos podem ser executados concorrentemente. Além disso vários threads de um 55 56 mesmo processo podem ser executados paralelamente em múltiplos processadores ou concorrentemente, desta forma um processo multithreaded possui concorrência sem precisar usar múltiplos processos. Um thread de um mesmo processo pode trocar informações através de uma memória compartilhada ou acessando recursos do processo que o criou. Um ambiente multithread orientado a objetos pode ser muito eficiente para aplicações servidoras, por exemplo, um único servidor de processos pode servir a um número variado de clientes, onde estes através do envio de mensagens criam novos threads no servidor de processos, veja figura abaixo: 6.4 - FAT (File Allocation Table) A Tabela de Alocação de Arquivos (File Allocation Table) ou FAT foi desenvolvida e codificada em Fevereiro de 1976 por Bill Gates. Ele a desenvolveu para uma versão do basic que podia armazenar programas e dados em discos flexíveis. O desenho da FAT foi incorporado por Tim Patterson em uma versão prévia de sistema operacional para o chip 8086 da Intel. Gates comprou os direitos desse sistema, então reescreveu - o e criou a primeira versão do DOS. As principais características da FAT: 56 57 - Compatível com todos os sistemas operacionais - Uso mínimo de memória - Simples e confiável - Menos efficiente em partições acima de 32 Mega - Não aconselhável para Servidores de Arquivos A FAT é onde a informação sobre blocos do disco é armazenada. Cada bloco tem seu correspondente na FAT que descreve como ele é utilizado. É isso que diz ao sistema operacional quais partes do disco estão sendo utilizadas por arquivos e quais estão livres para serem utilizadas. A FAT é usada pelo sistema operacional para encadear os blocos. A tabela de alocação de arquivos é armazenada na área de disco imediatamente após o setor de boot. Cada volume possui duas cópias idênticas da FAT. Isto evita a perda de dados caso a primeira seja danificada. O problema é que essa cópia está localizada imediatamente após a primeira, então se setores ruins atingirem a primeira FAT, as chances de atingirem a segunda são consideráveis, conforme figura: 57 58 Figura 6 – Blocos da FAT Por natureza, a FAT suporta um máximo de 64K blocos por partição. Quando a partição do disco é de até 32 MB, os blocos possuem tamanho de 512 bytes. Se a partição for maior que 32MB e até 64MB, o tamanho dos blocos será de 1Kbyte. Para partições maiores que 64MB e até 128MB ele utilizará blocos de 2K. Quanto maior os blocos alocados, um maior número de pequenos arquivos desperdiça muito espaço do disco. A estrutura de diretório clássica da FAT (antes do WNT) limita o nome de arquivos a oito caracteres com mais três caracteres para a extensão. A entrada de diretório do FAT armazena um conjunto de atributos e detalhes do arquivo, como tamanho e última modificação. Também é apontado o primeiro bloco do arquivo, sendo que a FAT fornece o resto das informações para que todo o arquivo possa ser encontrada. 6.5 - Arquivos do NTFS 58 59 O NTFS foi um sistema de arquivos criado para fornecer o que a FAT-16 não possuia: segurança dos arquivos. Porém suas diferenças não são somente estas, outras grandes mudanças são: - A arquitetura é baseada em 64 bits o que permite o uso de grandes partições que podem ter mais de 2 Terabytes. - Os arquivos podem ter nomes longos com até 255 caracteres. - Estrutura de diretórios é organizada através de árvore B tornando a consulta de arquivos e diretórios mais rápida. - Não há clusters sendo que o maior unidade de alocação é o próprio setor, ou seja 512 bytes. Isto evita a fragmentação e a perda de espaço no disco. 6.5.1 - Estrutura do Volume NTFS Quando um disco é formatado para como uma partição NTFS a partição é inicializada para conter um volume NTFS. Mais precisamente cada instância de uma MFT(Master File Table) é um volume. Diferentemente da FAT e HPFS todo espaço alocado em uma partição NTFS faz parte de um arquivo incluindo o boot e os arquivos de sistema os quais são usados para implementar a estrutura do volume. O coração do NTFS é o MFT (Master File Table) o qual contém pelo menos uma gravação de todos os arquivos do volume incluindo uma gravação pra si mesmo, o que o faz parecido com um banco de dados relacional. Em um volume NTFS todos os arquivos possuem um número o qual é calculado pela sua posição na MFT e um número de seqüência o qual será discutido mais tarde. E cada arquivo e diretório em uma partição NTFS possui uma série de atributos. O setor de boot do NTFS fica localizado no começo do volume e possui uma réplica localizada no meio. O setor de boot contém os padrões do parâmetro de blocagem da BIOS (BPB – BIOS Parameter Block), a quantidade de setores no volume, e os números do cluster inicial do MFT (Master File Table) e MFT2 (Master File Table Mirror). 6.5.2 - Arquivos de Sistema do NTFS 59 60 Os arquivos de sistema do NTFS são criados durante a formatação do disco e contém informações sobre o número de arquivos na MFT, inclusive a própria MFT e residem no diretório raiz do volume NTFS. Abaixo segue uma relação de arquivos de sistema do NTFS: 6.5.3 - Master File Table (MFT) - $mft Contém uma gravação de entrada para cada arquivo do volume NTFS incluindo uma para si mesmo, e suas 16 primeiras entradas são reservadas para a gravação de entradas de arquivos do sistema. 6.5.4 - Master File Table2 - $mftmirr (or MFT2) Este é uma cópia da MFT e seu tamanho depende do tamanho do volume, a MFT2 contém apenas um pedaço da MFT por isso seu tamanho deve ser bem calculado para que caso ocorra uma falha no volume ele possa ser recuperado. 6.5.5 - Log File - $logfile Este arquivo contém atributos de dados e é usado pelo NTFS e pelo serviço de Log de Arquivos para recuperação do volume se necessário. 6.5.6 - Volume - $volume Este arquivo contém informações tais como nome do volume, versão etc. 6.5.7 - Attribute Definitions Table - $attrdef Contém definições de todos os atributos do sitema. 6.5.8 - Cluster Allocation Bitmap - $bitmap 60 61 Este arquivo contém um mapa do volume, mostrando quais unidades de alocação estão sendo usados. Cada bit no mapa de bits representa um cluster. O uso de mapa de bits aumenta a performance no NTFS na busca de espaços livres. As grandes idéias de sucesso foram criadas por pessoas que reconheceram um problema e o transformaram em uma oportunidade. Joseph Sugarman 6.5.9 - Boot File - $boot O arquivo de boot contém informações básicas sobre o volume. A vantagem de se fazer este arquivo é que ele pode estar localizado em qualquer lugar do volume, e pode estar como leitura somente ou protegido pela ACL. 6.5.10 - Bad Cluster File - $badclus Os atributos dos dados deste arquivo contém informação de todos os cluster defeituosos do volume. 6.5.11 - Upcase Table - $upcase Este arquivo é uma tabela usada para fazer a conversão de nomes de arquivos com maiúsculos e minúsculos caracteres. Ele é utilizado para aplicações que utilizam somente caracteres maiúsculos como no MS-DOS. 6.6 - Segurança no NTFS A segurança é armazenada sobre o NTFS no mesmo lugar onde toda a segurança no Windows NT é armazenada, ou seja na Access Control Lists (ACL). Esta lista é formada por várias entradas denominadas Access Control Entries (ACE). Estas entradas de controle de acesso são checadas em ordem para saber se um usuário tem ou não permissão para executar determinada ação. 61 62 Os ACEs são ordenadas por restrições e permissões. O Windows NT checa primeiro as restrições e depois as permissões de acesso de um determinado usuário. As restrições de acesso sempre sobrescrevem as permissões. 6.6.1 - Recuperabilidade A recuperação de um volume é importante para se evitar a possível perda dos dados e por isso a maioria dos sistemas de arquivo possuem técnicas de recuperação de dados. Com NTFS a consistência de um volume é garantida contra quedas que venham a acontecer, pois ele utiliza logs de transação e tecnicas de recuperação. A performance é aumentada pois o usuário não precisa esperar um arquivo ser copiado para realizar outras tarefas e também a recuperação de dados é rápida. Os arquivos do NTFS são gerados pelo menos com os seguintes atributos: - Header (H) – cabeça - Standard Information (SI) - informação padrão - Security Descriptor (SD) - descrição da segurança - File Name (FN) - nome do arquivo - Data - dados 6.6.2 - Arquivos pequenos: Quando um arquivo é muito pequeno, é possível que ele caiba totalmente em uma entrada de gravação da MFT junto com seus atributos, por exemplo uma MFT que possui entradas de 2Kbytes podem armazenar arquivos com menos de 1500 bytes, veja a figura 7 – Small Diretores 62 63 6.6. 3 - Arquivos Grandes: Quando um arquivo é grande o bastante para que não possa ser gravado em uma entrada da MFT o atributo de dados (Data) torna-se não residentente de forma que passa a guardar outra informações tais como Virtual Cluster Number (Vnc) que possui o número do primeiro cluster de uma seqüência de de dados, e o número de clusters contínous de cada seqüência. Conforme figura: Figura 8 – Arquivos grandes 6.6.4 - Arquivos extremamente grandes: Quando um arquivo é muito grande e o atributo de dados não residente não consegue armazenar (Vnc) suficientes para comportar os dados então um novo tipo de entrada de arquivo é criado. Este tipo de entrada contém invés de conter um atributo de dados contém um campo de atributos externos que apontam para entradas na MFT formadas por estruturas de atributos de dados não residentes. Desta forma os dados do arquivos podem ser divididos em várias estruturas de dados não residentes, sendo que um arquivo pode chegar até 2 GB. 63 64 Figura 9 – Estrutura de dados não residentes 6.7 - Atributos do NTFS Attribute List File Name MS-DOS Name Version Security Descriptor Volume Version Volume Name Volume Information Data Index Root Index Allocation MFT Bitmap External Attributes (Eas) External Attribute (EA) Information User Defined Attributes Standard Information (SI) Attribute Header define os atributos válidos para este arquivo. este atributo contém o nome do arquivo e o número do diretório arquivo pai. Quando há múltiplas entradas de diretório para um mesmo arquivo, então haverá um número correspondente de atributos File Name. Este atributo deve estar na forma residente. este attributo contém o nome do arquivo na versão DOS bem como o nome na escrito em case-insensitive. este atributo especifica a versão de atualização do arquivo. este atributo contém as informações de segurança de acesso ao arquivo (contem a lista de acessos ao arquivo (ACL)). este atributo é usado somente nos arquivos de sistema do volume este atributo contém o nome da unidade. este atributo é usado somente nos arquivos de sistema do volume e contém a maior e a menor número de versão do NTFS no volume. este atributo contém os dados dos arquivos, tamanho do arquivo, e tamanho de todos seus atributos. Ele pode ser armazenado de forma não residente este atributo é usado para construir o índice de um atributo particular sobre uma série de arquivos para o propósito de indexar estes arquivos pelos valores de seus atributos. se o índice for encontrado na raiz do índice o atributo poderá se tornar gigantesco, então um atributo não residente, índice de alocação é gerado para o resto da informação do índice. este atributo contém um mapa que representa os setores que estão em uso no volume. quando todos os atributos de um arquivo não cabem na MFT daquele arquivo, os atributos adicionais poderão ser movidos para uma nova gravação e guardados em uma forma não residente. este atributo contém informações sobre atributos externos este atributo permite que atributos de usuários sejam adicionados a arquivos e diretórios. este atributo guarda informações que não são associadas facilmente com qualquer outro atributo, tais com data de criação, data da última modificação, hora de Quando foi acessado a última vez, atributos do arquivo (somente leitura, oculto, etc.), estes atributos são guardados de forma residente. este atributo é definido pelo sistema e portanto é guardado em um espaço separado e contém o seguinte: Update Sequence array – este é usado na detecção de transferência incompleta entre setores Sequence Number – este número é incrementado toda vez que a gravação sobre um arquivo é realizada Reference Count – este número é incrementado a cada gravação de referência feita a ele por um índice, ou seja, ele contém o número de diretórios que contém este arquivo em particular. Root File Record Segment – se esta não é a primeira vez que o arquivo é gravado na MFT então ele contém o ponteiro para a entrada raiz do arquivo na MFT. Se é a primeira vez que o arquivo é gravado então ele possuirá valor zero (0). First Attribute Offset – this is the offset, from the beginning of the Master File Table (MFT), to the first attribute for this file record. Tabela 4 - Atributos dos arquivos criados no NTFS 64 65 6.8 - Herança de Controle de Acesso a Arquivos e Diretórios Para saber o que é herança de controle de acesso é deve-se saber primeiro o que é um container e um não-container objeto, um objeto container é um objeto que contém outros objetos que podem ou não ser containers, por exemplo um diretório, e um não-container é um objeto que lógicamente não pode conter outros objetos, que por exemplo pode ser um arquivo, desde que não contenha outros objetos. Quando um objeto é criado, uma ou mais ACLs são usadas para o novo objeto. A herança da ACLs é usada para manter o controle de acesso quando um objeto é criado. Existe três tipos de ACLs: - ACL efetiva: É quando a ACL é Permanente para o objeto container. - Herança de ACL do objeto: É a ACL a ser herdada por um objeto não sub-container. - Herança de ACL do container: É a ACL a ser herdada por um objeto sub-container. Estas heranças denominam as ACL que serão passadas de objeto para objeto na criação de um arquivo ou diretório, e são melhores representadas nos diagramas abaixo. Os efeitos da herança de ACL são mostrados logo abaixo: - Novos arquivos e diretórios - Novos sub-diretórios sempre herdam as propriedades de segurança do diretório pai - Novos arquivos sempre herdam as propriedades de segurança do diretório no qual foi criado. Copiando arquivos e diretórios - Se um diretório é copiado ele herda as propriedades de segurança do novo diretório pai - Se um arquivo é copiado ele herda as propriedades de segurança do novo diretório pai. 6.8.1 - Movendo diretórios e arquivos 65 66 Se um diretório é movido, ele geralmente herda as propriedades de segurança do novo diretório pai. Não é documentado mas ele deve manter suas propriedades de segurança. Se um arquivo é movido, ele mantém suas propriedades de segurança. Figura 10 – Propriedades de segurança 6.9 - Transações no NTFS Uma transação é uma coleção de pequenas ações na qual todas devem ocorrer ou não. Cada modificação utilizando I/O é considerada uma transação, e ela é realizada com sucesso ou abortada quando ocorre um erro. 66 67 O log de transações contém o seguinte - Criação e remoção de arquivos - Criação de atributos, remoção de atributo e modificações de atributos - Criação e remoção de índices (diretórios) - Gravações consertados, por exemplo um novo Virtual cluster number (Vcn) para mapeamento de Logical cluster numbers (Lcn) - Periódicos checkpoints de gravações. Toda operação de I/O que modifica um arquivo em um volume NTFS faz com que o Serviço de log de Arquivos mantenha informações para fazer e desfazer a transação. O log da transação é mandado então para o Gerenciador de Cache que verifica no gerenciador de memória por recursos de memória livre. Se os recursos de memória podem ser utilizados, o Gerenciador de Cache envia as instruções de transação para o NTFS para fazer as mudanças no arquivo. Se a transação tiver sucesso então ele é gravada (commit). Se ela não é completada, o NTFS poderá fazer um roll back da transação seguindo as informações de desfazer transação. Figura 11 – Diagrama de blocos do NTFS 67 68 6.10 - Servidor de Arquivo de Log O servidor de arquivo de log (LFS) trabalha com um arquivo circular denominado log de arquivo. O log de arquivo é composto por um campo denominado Restart Areas e campos chamados de Updates Records. O campo Restart Areas contém um monte de checkpoints que indicam gravações de atualização que podem fazer ou desfazer. O servidor de logs de arquivo grava todas as informações sobre transações feitas e desfeitas neste campo. Os campos updates records guardam informações físicas e logicas, as informações fisicas são informações de bytes que foram alterados entre outras coisas e as informações lógicas são informações de operações tais como “delete readme.txt”. Observação: O Serviço de arquivo de log mantém duas restart areas para garantir sempre que há pelo menos uma boa restart area. Figura 12 – Servidor de arquivo log 68 69 7. CASOS DE MIGRAÇÃO DO WINDOWS PARA LINUX 7.1 – Caso 01 – Malharia Manz “A implantação do Linux proporcionou estabilidade a baixo custo” Elvis Pfützenreuter De acordo com Pfützenreuter (2004), desde o início de 1998, a Malharia Manz estudava soluções para desenvolvimento de sistemas em arquitetura cliente/servidor, bem como ferramentas para acesso e serviços Internet. O projeto de longo prazo do departamento de informática consistia em usar a Internet como principal meio de comunicação de dados até meados de 1999, e migrar seus sistemas corporativos para cliente/servidor até o início de 2001. O caminho natural parecia ser a migração progressiva da plataforma Netware para Windows NT. Mesmo assim, a área de informática resolveu fazer alguns testes com o Linux, motivada pelo recente lançamento do Interbase 4 para Linux. Também tornou-se o Linux responsável pelo compartilhamento de um link discado à Internet. Devido ao grande sucesso dessas experiências, ainda em 1998 usou-se o Linux para converter um sistema de informações gerenciais para a arquitetura cliente/servidor, trabalho concluído em setembro do mesmo ano. O ganho de performance, de até trinta vezes em algumas consultas, bem como a confiabilidade, que evoluiu de falhas semanais na versão anterior, para nenhuma falha em catorze meses de operação da nova versão, coroaram definitivamente o Linux como plataforma de escolha para quaisquer projetos futuros. Não obstante, o uso do Linux continuou restrito a um servidor até meados de 1999. Nesse meio tempo, o link discado à Internet foi substituído por um link permanente síncrono. Desde o final de 1998, já se sabia que os diversos servidores Netware 3.12 utilizados pela Manz eram sensíveis ao "bug do milênio". Eles teriam de ser atualizados para Netware 4, ou substituídos por outra plataforma. A atualização dos servidores custaria bastante caro, e seria um contra-senso investir em Netware se a intenção era migrar para Linux em no máximo dois anos. Por outro lado, seria impossível migrar todos os sistemas para cliente/servidor até a virada do milênio, tampouco substituir o grande número de estações DOS com boot remoto. 69 70 Começou-se então a fazer testes com o Mars-NWE, o emulador de Netware para Linux. Uma vez determinado que o Mars funcionava bem com os softwares e máquinas em uso na Manz, os servidores foram, um a um, convertidos para Linux, num lapso de quatro meses. A migração gradual visava o acompanhamento da confiabilidade do Mars nos ambientes de produção. Os dois últimos servidores Netware foram desativados em agosto de 1999. Assim, foi possível resolver o problema do bug do milênio com um custo mínimo, manter a compatibilidade com softwares e equipamentos de legado, e de quebra, preparar antecipadamente os servidores para a inexorável adoção da arquitetura cliente/servidor. Para Cesar Rodrigo Tomporoski, gerente de sistemas da Manz, a substituição do servidor Novell para Linux foi uma grata surpresa. "Nós não achávamos que a migração poderia ser tão tranqüila, a ponto de ter passado quase despercebida pelos usuários da Manz", diz ele, acrescentando que fora isso, a estabilidade do Linux realmente impressionou. "Sem traumas e com ganhos efetivos, passamos então a planejar a completa conversão de toda a nossa plataforma. Para portar alguns sistemas, desenvolvidos por nós, estamos testando o WinLinux e, com a experiência adquirida em instalação e configuração Linux, julgamos ser esta a melhor solução para a estabilidade, custo e facilidade de implantação", completa. Hoje, a Manz usa Linux em todos os servidores, exceto por uma máquina Netware da área industrial, cujo sistema de gestão ainda depende do Btrieve for Netware, embora o fornecedor do sistema já estude o Linux como plataforma alternativa de servidor. Também há grande interesse em se adotar o Linux nas estações de trabalho. 7.2 - Caso 02 - Linux na escola Colégio Albert Sabin monta uma rede de comunicações que muito em breve deve ser 100% baseada em Softwares Livres O Colégio Albert Sabin, localizado no bairro do Butantã em São Paulo-SP, está obtendo vários benefícios com a implantação de uma rede de comunicação com ambiente Linux. A escola, por meio da direção do Centro de Pesquisa e Desenvolvimento, em conjunto com a PL Tecnologia, integradora de São Paulo responsável pela implantação de toda a rede, optou pelo sistema Linux por três características: estabilidade, baixos custos e alta 70 71 performance. De acordo com Natanael Gomes de Almeida, coordenador do CPD do Albert Sabin, esses benefícios vêm sendo comprovados desde a instalação do sistema. A rede do colégio conta com seis servidores (sendo um gateway, três servidores Linux, um de arquivo e um servidor de e-mail) que administram mais de 80 estações de trabalho. Os servidores Linux estão instalados em três laboratórios, dois de pesquisa e um de consulta (biblioteca). Esses laboratórios estão interligados ao gateway por meio de fibra óptica. Entre os sistemas que rodam na rede está o Acadêmico, software customizado para o Albert Sabin que oferece recursos específicos para área da Educação ~V que, segundo o coordenador do CPD, é o único em toda a solução tecnológica implantada na instituição que ainda roda em Windows NT. De acordo com Almeida (2004), as funções dos servidores Linux que rodam na escola são as mais diversas. São criadas as restrições de acesso aos alunos, de forma que só podem acessar o que os professores autorizam, e, com o auxílio do Samba, trabalho com o Scua, que é um programa que restringe o acesso às configurações internas do Windows NT, explica. Ele enumera ainda um servidor de gateway principal que distribui o acesso à Internet aos laboratórios, servidores e rede acadêmica, e o servidor de suporte, que faz o armazenamento de arquivos para backup, drivers do Windows para manutenção e DNS backup. A solução tecnológica em operação no colégio ainda não está concluída, e mudanças estão previstas. Após a conclusão de testes com o Samba e o Acadêmico, estaremos eliminando o único servidor Windows NT~T. Todo o processo de migração dos servidores para Linux não foi fácil. Para Almeida, o Windows está arraigado nos hábitos, na rotina das pessoas. Passei por uma fase de desintoxicação com a implantação do Linux. Hoje, vejo que o Linux é amigável e permite às estações de trabalho os mesmos recursos que os sistemas operacionais concorrentes (editor de texto, editor de imagem, planilhas, entre muitos outros), comenta. O coordenador de CPD pretende implantar o Linux também nas estações de trabalho dos laboratórios do Colégio Albert Sabin. Esse é um trabalho de médio prazo, conta. Ele explica que a mudança de plataforma de trabalho deve ser gradual. Para isso, devo ministrar instruções para os funcionários da biblioteca e alguns professores, acrescenta. 71 72 Quanto ao processo de adaptação dos usuários finais (no caso, os alunos do Colégio Albert Sabin), Almeida prevê que os problemas seriam pequenos, e que, ao disponibilizar o Linux como estação de trabalho, seria permitido apenas logar e executar o StarOffice e um navegador, entre outras aplicações, como impressão de arquivos. Por ser um sistema operacional de código aberto, temos a facilidade de modelá-lo de acordo com nossas necessidades, complementa. O Modelo inaugurado no dia 3 de outubro de 1993, o Albert Sabin, localizado no bairro do Butantã em São Paulo, atende aos alunos da educação infantil, ensino fundamental e médio. O colégio conta com 17.500 metros quadrados distribuídos em três prédios principais com 43 salas de aula no total, laboratórios, bibliotecas, ginásio poliesportivo e pátio externo. O espírito humanitário e perseverante do Dr. Albert Sabin é o modelo inspirador das diretrizes de ensino propostas pelos fundadores do Colégio que leva o seu nome. 7.3 – Caso 03 - IBM inaugura laboratórios Linux em São Paulo Em São Paulo, no dia 04 de dezembro de 2003 - A IBM Brasil inaugura hoje dois centros técnicos dedicados inteiramente ao desenvolvimento da tecnologia Linux. São eles o Linux Technology Center, em parceria com a Unicamp e baseado em Campinas, e o Linux Integration Center, na IBM em São Paulo, capital. Esta iniciativa amplia as ações da empresa no Brasil relacionadas a Linux, que inclui a assinatura, em outubro, de uma carta de intenções com o governo federal, visando disseminar o uso do sistema operacional aberto. Embora os dois centros tenham por objetivo difundir Linux, eles terão objetivos distintos. "A abertura destes dois centros no Brasil, onde Linux é amplamente aceito e apresenta grande crescimento, é um marco para a IBM" - comemora Rogério Oliveira, presidente da IBM Brasil. "Estamos comprometidos com Linux e orgulhosos por poder ajudar no aculturamento dos nossos clientes, através do Linux Integration Center, e também em contribuir com futuros programadores, alunos da Unicamp, que conduzirão o futuro deste sistema operacional" - acrescenta Oliveira. O LTC brasileiro terá como missão treinar desenvolvedores de software para a melhoria do kernel do Linux. Os LTCs têm fornecido contribuições ao código fonte e 72 73 funcionalidades para a comunidade mantenedora do núcleo do Linux em diversas áreas, como suporte à rede, segurança, gerência de sistemas e de clusters, entre outras. O Linux Integration Center (LIC) tem como sede o IBM Austin Research Lab, localizado em Austin, Texas, e faz parte do Grupo de Software da empresa. O LIC mantém laboratórios em Boeblingen, na Alemanha; em Benjin, na China; em Tóquio, no Japão; em Singapura, na Malásia e agora em São Paulo, Brasil. Espalhados pelo mundo, os Linux Technology Centers são centros virtuais, conectados via internet. Atualmente eles contam com mais de 300 profissionais dedicados, cujo objetivo é aprimorar o sistema operacional. O Brasil será o único país onde um Linux Technology Center é estabelecido em parceria com uma universidade. Membros do LTC estão espalhados por cidades como Adelaide, Austin, Bangalore, Beaverton, Benjin, Boeblingen, Boston, Boulder, Cambridge, Canberra, Cedar Rapids, Chicago, Denver, Endicott, Fishkill, Hawthorne, Hursley, Kirkland, Mt. Laurel, Nova Iorque, Portland, Poughkeepsie, Raleigh, Rochester, San Jose, Somers, Southbury, UrbanaChampaign, Yamato, Yorktown e agora no Brasil, em Campinas, São Paulo. "A IBM é uma empresa famosa não apenas por seus produtos e serviços, mas também pela qualidade de seus centros de pesquisa -- declara o Prof. Ricardo Anido, Diretor do Instituto de Computação da Unicamp --. A Unicamp, por sua vez, é reconhecida pela qualidade dos profissionais que forma, especialmente nos seus cursos de computação. Assim, a parceria entre IBM e Unicamp para a criação de um centro conjunto na área de Linux é uma iniciativa importante e inovadora, que permitirá a junção das competências existentes para o desenvolvimento de software livre de alta qualidade. Esperamos no futuro ampliar essa parceria com a inclusão de projetos em outras áreas de interesse mútuo, como a de economia digital". Missão do LTC O LTC brasileiro contará com 10 estudantes selecionados pela Unicamp e pela IBM, um professor da universidade trabalhando como coordenador e um profissional IBM gerenciando os trabalhos a serem desenvolvidos pelo centro alinhado com as diretrizes dos 73 74 LTCs em todo o mundo. A Unicamp contribuirá com o espaço e as conexões de rede, enquanto a IBM entrará com mão-de-obra e bolsas de estudo para alunos escolhidos. A empresa também fornecerá toda a infra-estrutura de máquinas e software necessários para os trabalhos. As primeiras contribuições de código para a comunidade Linux poderão ser dadas já nas primeiras semanas de implantação do Linux Technology Center. Em todo o mundo os integrantes dos LTCs trabalham como membros da comunidade Linux, utilizando a experiência de programação da IBM, bem como sua tecnologia de software, para acelerar o crescimento do Linux como um sistema operacional corporativo cada vez mais estável. Atualmente, o LTC tem programadores envolvidos em diversos projetos, como escalabilidade, segurança, capacidades de rede, sistemas de arquivos, gerenciamento de volumes, performance, entre outros, necessários para tornar Linux totalmente maduro e pronto para tarefas de missão crítica. Além disso, os LTCs fornecem diversos serviços à crescente comunidade técnica de Linux dentro da IBM, gerenciando uma rede mundial de sites FTP para downloads de Linux, além de canais de discussão. Missão do LIC O Linux Integration Center será um centro de referência no Brasil para clientes interessados na implantação de soluções de software que incluem o middleware IBM em Linux. Ele terá como missão criar e validar arquiteturas de soluções baseadas no sistema operacional aberto. Neste centro, a IBM conseguirá reproduzir o ambiente tecnológico de seus clientes e auxiliá-los em suas migrações, desenvolvendo todos os componentes que farão parte de suas soluções finais. É a primeiro laboratório da IBM desta natureza na América Latina. O LIC trabalha para fornecer soluções e suporte técnico de pré-vendas, de forma global, apoiando as equipes de negócios e trazendo a tecnologia Linux para o mercado. Além disso, o Linux Integration Center visa aproximar o portfólio de middleware da IBM das oportunidades de negócios relacionadas ao sistema de código aberto. Este centro também auxiliará clientes a identificar produtos disponíveis em Linux, assim como instalar, configurar e integrar produtos durante "testes de conceito". Funcionários IBM poderão compartilhar as melhores práticas aplicáveis ao Linux e aos mais 74 75 de 120 produtos de middleware IBM compatíveis com Linux e encontrar soluções para problemas de clientes, replicando diversos ambientes previamente testados em outras situações. Um exemplo brasileiro é a Voxline, empresa do grupo Alsaraiva, que presta serviços de contact center para a rede Habib's. A empresa utilizou os recursos do Linux Integration Center de Austin no seu projeto de implementação do sistema operacional aberto. "Instalamos duas máquinas xSeries 350 trabalhando em alta disponibilidade para ser o coração do serviço de delivery Habib's 28" - explica Francisco Viana, diretor de Tecnologia da Informaçõa da Voxline. "O LIC nos ajudou a configurar Linux neste ambiente altamente crítico, onde rodam o banco de dados IBM DB2 e o software WebSphere. Técnicos de Austin acessaram remotamente nossos servidores e configuraram toda a solução"- complementa Francisco. O trabalho foi remoto, eliminando a necessidade de viagens dos técnicos da IBM até o Brasil ou dos especialistas da Voxline para o Texas. 7.4 – Caso 04 - Fabrimar - sem perda de tempo Uma das maiores fabricantes de metais para cozinhas e sanitários no Brasil alia versatilidade com baixo custo de implantação com o Linux Facilidade na administração de servidores, aumento da produtividade, segurança e estabilidade. Esses fatores, aliados a baixos investimentos no processo de implantação de aplicativos e no treinamento das equipes de informática, fizeram com que a Fabrimar, fabricante de metais para banheiros e cozinhas, empresa sediada no Rio de Janeiro, com cerca de 900 funcionários, optasse popr instalar o Linux em seus servidores. A empresa atua no mercado nacional há 40 anos e investiu R$ 150 mil em informática no ano passado. Para este ano, a previsão de investimentos na área é de R$ 100 mil. O faturamento da Fabrimar no ano 2000 foi de R$ 60 milhões. Na década de 60, a atividade principal da empresa era a fabricação de peças usinadas e, posteriormente, botijões de gás, passando para a produção de metais sanitários a partir da década de 70. A preocupação atual da empresa é garantir em todo o território nacional um atendimento de qualidade com reposição imediata de peças para seus pontos- de- vendas e, conseqüentemente, seus consumidores. A Fabrimar tem escritórios em São Paulo, Rio de Janeiro, Minas Gerais e Pernambuco, além de representantes em todos os demais estados. Para atingir níveis de eficiência satisfatórios, o 75 76 sistema de tecnologia da informação da empresa teria de atingir níveis satisfatórios de confiabilidade, aliados a robustez e segurança. Todos os processos logísticos de abrangência nacional, por mais complexos que fossem, deveriam ter baixa margem de falhas e delays que atrapalhassem a produtividade da empresa. O projeto inicial do sistema de informática da Fabrimar havia sido projetado com base na tecnologia Windows NT 4.0 em servidores para arquivos, Web, correio eletrônico e fax, além do firewall. Mas os técnicos da empresa não estavam satisfeitos. "Tivemos muitos problemas de compatibilidade do Windows NT com os servidores HP, até então homologados para NT" salienta Victor Zucarino, engenheiro de redes e responsável pela rede interna da empresa desde maio do ano passado. Zucarino ressalta que horas de trabalho foram perdidas com o trabalho de restauração de arquivos, quando o servidor caía. Até que, no final do ano passado, Zucarino sugeriu a implantação do Linux em seus servidores ao gerente da área de Tecnologia da Fabrimar, Waldyr Neto, responsável pela infra-estrutura de tecnologia da informação da empresa. A sugestão foi aceita. "O MS Windows NT 4.0, em conjunto com o servidor LC3 da HP, apresentou problemas de compatibilidade e estabilidade", diz Zucarino. A Fabrimar contou com o apoio de seu provedor de acesso, PC Solution, do Rio de Janeiro, para a elaboração de um projeto orientado para soluções Linux, com servidores utilizando as aplicações Samba, Sendmail, Apache e Ipchains. Antes, porém, tinham sido avaliadas várias opções até chegar ao Linux. De início, havia sido escolhida a plataforma Win NT com aplicativos de redes da Computer Associates em servidores Intel da HP. "Com o tempo e os problemas, partimos para a plataforma Linux", completa Victor Zucarino. Outro fato que pesou na decisão da empresa para adoção do Linux foi a fiscalização de software que a Fabrimar sofreu no ano passado. "Chegamos a conclusão de que não poderíamos ter a Microsoft como parceira nessa empreitada." Em termos de economia hoje, o servidor de arquivos Samba está no ar em perfeito funcionamento, o servidor Apache é que guarda a intranet da empresa e não há reclamações quanto ao firewall e o servidor de correio Sendmail. Os benefícios não se resumem apenas na economia com o modelo open source. "Estamos felizes com o Linux não apenas pelo dinheiro economizado em licenças, mas pela estabilidade e facilidade na 76 77 administração, que serviu de alavanca para o crescimento tecnológico da empresa", ressalta o engenheiro da Fabrimar. O resultado mais visível de todo o processo de modernização da rede de dados é a forma rápida e de custos baixos com que os funcionários da empresa acessam o e-mail e a Web. Uma aplicação baseada na plataforma Linux para entrada de pedidos pela Web a ser utilizada pelos escritórios de vendas da Fabrimar em todo o país está em fase final de desenvolvimento. "A comunicação na empresa ficou mais ágil e informal e a integração com nossa força de vendas é o passo mais importante para a empresa atualmente", complementa Waldyr Neto. Para implantação do sistema e treinamento dos funcionários da empresa, foram investidos R$ 4,5 mil, e o tempo gasto para instalação e configuração dos servidores foi de apenas uma semana. A plataforma HP Intel usa as distribuições Red Hat e Conectiva nos servidores de arquivos, Web, correio e firewall. Na aplicação ERP da Fabrimar, está sendo utilizado o banco Informix e na aplicação de entrada de pedidos pela Web, em fase final de testes, a empresa usa Linux com MySQL. "Temos certeza de que o retorno será bem superior a nossas expectativas", conclui satisfeito Victor Zucarino. Problemas com o servidor definiram a migração. Em maio de 2000, o engenheiro de redes da Fabrimar, Victor Zucarino, descobriu que o servidor LC3 da HP e o WinNT instalado nele estavam com um comportamento estranho. Quando foi iniciada a migração de arquivos das estações para o servidor, começaram a aparecer problemas de estabilidade. "Muitas vezes dois discos Scsi do RAID paravam e perdíamos muitas horas de trabalho para recuperar os dados, isso quando estava apenas havia duas semanas na Fabrimar". Passaram-se seis meses e vários técnicos da HP estiveram na empresa, mas os problemas persistiam. "Testei compatibilidade com Service Packs da MS, drivers atualizados etc. mas os problemas sempre voltavam". O trabalho se tornou mais difícil quando os usuários passaram a não confiar mais nos servidores e começaram a guardar seus arquivos em suas estações de trabalho. "O problema passou de técnico a político e somente uma solução política poderia resolvé-lo", declara. 77 78 A Micromídia, empresa parceira da Fabrimar, que fora a responsável pela venda dos equipamentos, entrou em contato com a HP, que atendeu prontamente às solicitações da empresa. Um novo servidor LC2000 foi fornecido. "Eu já havia instalado o Linux no outro servidor LC3 para trabalhar como servidor intranet e e-mail, como teste", diz Zucarino. E, com muita satisfação, complementa. "Com esse servidor, não tivemos problemas, ele está no ar até hoje. Acho que até homologamos o equipamento para o Linux!". O novo servidor foi instalado com o Linux e tem se comportado muito bem. "O Linux se encaixou perfeitamente em nossas necessidades e o resultado é o retorno na confiança dos usuários e progresso no projeto da rede Fabrimar", conclui. 7.5 – Caso 05 – A Texto Editora migra para Linux Apesar de ser adepta do Unix, a empresa preferiu adotar o software de Linus Torvald devido ao seu baixo custo O Unix foi sempre o sistema operativo de referência no ambiente tecnológico da Texto Editora. Todas as aplicações do seu core business trabalhavam com Unix, desde as aplicações de faturação e de stock às de contabilidade. No entanto, a empresa cedeu aos encantos do Linux, nomeadamente ao baixo preço das licenças, e decidiu adaptar todos os seus sistemas à tecnologia de Linus Torvald. Carlos Santiago, responsável de sistemas da Texto Editora Segundo nos revelou Carlos Santiago, responsável de sistemas da Texto Editora, a decisão de migrar todos os sistemas para Linux esteve também diretamente relacionada com a versatilidade e a fiabilidade do software, dado que as diferenças em termos de qualidade do Unix para o Linux “são praticamente inexistentes”. Atualmente, todas as aplicações da Texto Editora operam em Linux, sejam as aplicações core como as de Internet. Outra das vantagens do novo sistema prende-se com o tempo de instalação. A título de exemplo, a instalação de um servidor Linux “leva cerca de 12 horas, enquanto a de um Windows NT para a mesma finalidade demora praticamente uma semana». De referir também que o Linux «necessita de uma máquina menos veloz para executar o mesmo tipo de aplicação, o que acarreta muitos menos custos no momento de aquisição”. A empresa passou a ter um conjunto de servidores que funciona com as aplicações core business da empresa, estando o sistema de gestão central distribuído por duas 78 79 máquinas com Linux. Possui igualmente um servidor de base de dados de imagens digitalizadas, que armazena até 8 terabytes de informação (sendo a base de dados em Oracle), para além de servidores de ficheiros, de impressão e de tratamento de imagem, entre outros. «São cerca de 30 as máquinas a correr Linux», revelou o técnico da empresa. A responsável pelo fornecimento da nova tecnologia foi a Memosis, parceira que também já havia implementado servidores na editora há cerca de 15 anos. Como nos adiantou Carlos Santiago, a estrutura informática interna da Texto «não possuía as competências necessárias para instalar um sistema de raiz na altura, o que fez com que o arranque de qualquer sistema fosse sempre feito por empresas contratadas». A Memosis também ficou encarregue de toda a infra-estrutura de rede, desde o desenho à sua implementação em todas as instalações da companhia em Portugal e nas suas delegações nos PALOP. O primeiro contato da Texto Editora com o Linux deu-se há cerca de cinco anos, altura em que instalou um Linux Enterprise Server, uma implementação que, segundo o responsável de sistemas, «foi de grandes dimensões». As instalações agora levadas a cabo são o estado mais evoluído das instalações Linux, tendo sido implementados dois enterprise servers com a versão de Linux da Red Hat. A experiência que a Texto Editora já tinha com o Unix da SCO fez com que a instalação de sistemas Linux fosse bastante mais simples. A decisão de avançar para o SO de código aberto “coincidiu com a abertura do mercado Internet, sendo que quase todos os servidores Web eram Linux”, disse o mesmo responsável ao Semana. A empresa começou, assim, por instalar quatro servidores Web em Linux. Posteriormente, veio a implementação dos servidores de core business, que sofreram a migração de UnixWare, da SCO, para Linux, e que «estão a apresentar, até agora, resultados bastante positivos». Instalação sem problemas As fases mais complicadas relacionaram-se com as instalações efetuadas pela primeira vez. Mesmo quando se trabalha com empresas como a Memosis, que têm técnicos competentes nesta área, “existe sempre um certo nível de ansiedade no que respeita a 79 80 primeiras implementações”, mencionou Carlos Santiago. No entanto, «não se pode dizer que essa ansiedade fosse um problema», acrescentou. Como já é hábito na Texto, aproveitou-se este projeto para mudar algumas máquinas, mas não nos foi revelado quais foram as novas aquisições. Sabemos, no entanto, que a editora possui cerca de 30 servidores de média gama, dos quais 90 por cento são Compaq. Segundo Santiago, o motivo que levou à escolha desta fornecedora foi simples: «A assistência técnica da Compaq permite que as peças avariadas sejam substituídas num período máximo de 48 horas, algo que mais ninguém faz e que é imperativo para a Texto Editora.» A empresa tem igualmente três servidores Hewlett-Packard e outros tantos de linha branca. Os técnicos contratados para fazer a migração para Linux já vinham formados. As pessoas que vão utilizar as máquinas, essas, «aprenderão com a prática», disse o responsável de sistemas. A Texto Editora conta também com um system administrator. O projeto arrancou em 1998 e, desde então, tem instalado entre sete e oito máquinas por ano, trocando-as em cada três anos. Segundo Carlos Santiago, os sistemas da Texto em Portugal estão praticamente definidos, pelo que não se farão mais aquisições a curto prazo. Os projetos para o futuro passam agora pelas delegações no estrangeiro da companhia, os quais serão levados a cabo de acordo com as especificidades e com o crescimento de cada uma delas. 80 81 8. LINUX X WINDOWS 8.1 - Segurança: Windows x Linux De acordo com Cortapasso (2004), quando se reúnem vários profissionais do ramo de Informática, algumas vezes se fala sobre segurança nos vários sistemas operacionais existentes. Entre os mais citados estão as famílias Windows e Linux. Neste caso, uma pergunta fica no ar: Em qual sistema operacional você mais confia? Alguns respondem que Linux é mais seguro, outros dizem que é o Windows NT/2000. Mas no fim conclui-se que mesmo que estes dois sistemas estejam bem protegidos, sempre existe a maneira de "burlar" a segurança dos mesmos. Como? Utilizando um disquete de inicialização de Windows ou Linux é possível copiar, apagar ou alterar arquivos e pastas no disco rígido. Tão simples que qualquer pessoa com o mínimo de conhecimento consegue. Particularmente, um disquete de inicialização do Linux permite o acesso a todas as partições do disco rígido, sejam elas formatadas com o sistema de arquivos FAT 16/32 ou NTFS. Uma vez acessando as partições, é possível, por exemplo, alterar a senha do administrador e com isso, fazer um grande estrago. Com a tecnologia de Proteção de Boot desenvolvida pela SCUA, este tipo de procedimento não é mais possível nos sistemas operacionais Windows 9x/Me e NT/2000, pois as partições ficam inacessíveis quando a inicialização é feita por disquete. Além dessa proteção, existe ainda a possibilidade de criptografar as partições que contenham dados confidenciais, tornando praticamente impossível o acesso a esses dados sem uma devida identificação e autenticação. Tudo isso, sem contar que a SCUA sempre incorpora a seus produtos as novidades que o mercado de segurança da informação traz freqüentemente, como novos algoritmos de criptografia, formas alternativas de autenticação (smart cards, dispositivos biométrico etc.). 81 82 Há muitos anos somos massacrados pelo monopólio do Sistema Operacional e nem percebemos. Só falamos no Windows, só compramos o Windows, só usamos o Windows. Sabemos o que ele nos oferece e somos gratos por isso. Esquecemos de conferir o que os concorrentes têm a oferecer. E assim Bill Gates abusou de nossa boa vontade lançou produtos inacabados e colocou os preços nas nuvens - se tornou o homem mais rico do mundo e foi feliz para sempre. Mas talvez as coisas estejam prestes a mudar... Em 1991, o finlandês Linus Torvalds lançou o Linux, um sistema operacional revolucionário que prometia bater o Windows. Hoje, no Brasil, segundo a Istoé, ele funciona em 27% dos servidores de rede e em 5% dos micros domésticos. Na maioria das Procuradorias, inclusive na nossa, o Linux é o sistema operacional escolhido para hospedar as páginas (Internet e Intranet) da instituição. Conforme Paula (2004), as principais diferenças entre os dois são : 1) O Windows tem código fonte fechado, isto é, ninguém pode alterá-lo, só o fabricante tem acesso para corrigir os erros ou aperfeiçoá-lo. Ao contrário, o Linux não tem segredos e há vários grupos trabalhando em seu desenvolvimento e criando versões de acordo com as diversas necessidades do mercado. 2) Uma única cópia do Windows está sendo vendida em média por R$500,00 (quinhentos reais) enquanto o Linux é distribuído, sem limite de instalações, cobrando-se apenas os preços dos manuais e da mídia. 3) O Linux é estável, praticamente não trava, trabalha como um verdadeiro sistema operacional multitarefa. No Windows freqüentemente temos que pressionar Ctrl+Alt+Del e reiniciar o computador. 4) Há uma grande oferta de aplicativos para o Windows, principalmente jogos, o que o torna o preferido dos usuários domésticos. No Linux há programas para editar imagens, digitar textos, acessar a Internet, mas quanto aos jogos ele deixa a desejar. 82 83 5) O Linux tem procedimento de instalação potencialmente mais difícil e só é recomendável a usuários experientes fazê-lo sem assistência. Certamente, a grande motivação para quem quer trocar o Windows pelo Linux é o preço. Estima-se, segundo o Correio Braziliense, de 27/03/2001, que o Governo Federal gasta anualmente na aquisição de software proprietários (derivados da Microsoft basicamente) R$ 4 bilhões por ano. Na PR/GO gastaremos R$ 25.000,00 reais na compra de programas este ano. Claro que as coisas não são tão simples assim, não podemos trocar nossas ferramentas, de uma hora para outra, sem antes elaborar refinado programa de treinamento e sem um largo período de transição. Mesmo assim, as resistências seriam enormes. A inércia e o comodismo, próprios de nossa rotina de trabalho, inibe inovações. Porém, as vantagens, a longo prazo, são gigantescas. 8.2 – A utilização do Linux e do Windows Pesquisa indica que 39% das empresas norte-americanas utilizam Linux em suas aplicações. E no Brasil, como é a participação do pingüim no mercado corporativo? (Carvalho, 2004). Em dezembro de 2002, uma pesquisa do Goldman Sachs Group realizada nos Estados Unidos revelou que 39% das empresas daquele país fazem uso de Linux para alguma aplicação em suas atividades, principalmente em ambientes mainframe, data center, banco de dados e servidores. E no Brasil, como anda a utilização do Linux no mercado corporativo? Uma pesquisa realizada em 2002 pela Fundação Getúlio Vargas indica que o Windows é líder disparado no mercado de desktops no Brasil, sendo usado por 97% das empresas consultadas. Em relação aos servidores, esse número cai para 57%, enquanto que o Linux fica com 8%. O que faz a empresa migrar? A velha discussão Windows x Linux sempre gera polêmica, pois os dois têm fiéis defensores de suas vantagens e aplicações no mercado. Para o analista de suporte da 83 84 Mastery Consulting - especializada em infra-estrutura para ambientes de missão crítica -, Rodivaldo Marcelo, a escolha entre Linux e Windows depende das necessidades de cada empresa. Não defendemos nem um nem outro. Tudo depende de como a empresa usa o sistema para que ele acabe com problemas e traga soluções. Às vezes, a escolha pode estar relacionada a uma questão de gosto, mesmo reconhecendo as qualidades de um outro - opina. De acordo com o estudo do Goldman Sachs, as empresas americanas que adotaram o Linux levaram diversos fatores em consideração. Entre eles estão redução de custos, estabilidade e segurança do sistema. Neste ponto, os motivos que levam empresas brasileiras a optarem por Linux são muito semelhantes. Um dos principais motivos é redução de custos, que é absurda em relação ao que se gasta com a utilização do Windows. A controvérsia surge quando se fala em TCO (Total Cost of Ownership/Custo Total de Propriedade), pois há quem diga que o uso do Linux sai caro em longo prazo, devido aos gastos com suporte e treinamento de pessoal – analisa. O barato sai caro? O TCO é um dos pontos abordados em outro estudo, este feito pelo IDC em 2002, a pedido da Microsoft. A análise mostra que as empresas que adotam Linux têm, em um prazo de cinco anos, um aumento nos gastos relacionados a contratação de pessoal; treinamento e manutenção. Em relação ao Windows 2000 Server, a pesquisa mostra que o sistema requer menos tempo para instalação e configuração, o que representaria uma economia entre 11% e 22%. Embora reconheça que o custo de suporte e manutenção do Linux seja menor, considerando-se fornecedores como RedHat e SuSe, o estudo do IDC diz que isto representa apenas 10% do TCO de uma empresa, admitindo, porém, que o Linux leva vantagem no ambiente Web. 84 85 Para nós, o Linux é mais um competidor que tenta mostrar seu valor alegando que tem um custo menor. Mas apesar do custo ser baixo, sua manutenção é mais difícil. É como botar o filho para estudar em uma escola pública, buscando uma economia, e depois descobrir que a escola está a 50 Km de distância de sua casa – compara o gerente de Produtos da Microsoft, Eduardo Campos de Oliveira. 8.3 - Experiência no mercado Mas há casos conhecidos e amplamente divulgados pela mídia de empresas que migraram para Linux e só lucraram com isso. Algumas delas são o Metrô de São Paulo, a rede varejista Casas Bahia e a rede de lojas Renner, que começou a migrar para Linux em 1997. Na Renner, essa migração teve início nos pontos de venda e hoje a empresa utiliza o Linux em todas as suas estações de trabalho e servidores, resultando num aumento de 40% na produtividade da equipe de vendas. A Conectiva, principal distribuidora Linux no Brasil, não tem estudos sobre a utilização do pingüim no mercado corporativo brasileiro. Mesmo assim, o diretor de Produtos e Soluções da empresa, Rodrigo Stulzer, ressalta que o sistema é confiável para atender a todas as necessidades das empresas. No mercado de servidores, podemos dizer que já atendemos a 90% dos casos quanto ao uso desses aplicativos. Em relação aos desktops, também temos soluções para o usuário. Hoje, ele pode facilmente usar um aplicativo semelhante ao Office, além de um browser, um leitor de e-mails, entre outros. 8.4 - Reforço de peso A utilização do Linux no mercado corporativo promete ganhar impulso com a criação do UnitedLinux, uma iniciativa de algumas das principais distribuições do pingüim em todo o mundo com o objetivo principal de aumentar e fortalecer a penetração do Linux no mercado corporativo. 85 86 Com a iniciativa, Conectiva, Caldera, SuSE e Turbolinux desenvolveram e lançaram, juntas, uma versão padronizada do Linux, exclusivamente voltada para o mercado corporativo. E o UnitedLinux conta com outras importantes adesões, como IBM e AMD, que uniram-se à iniciativa como parceiros de tecnologia. Além disso, o Linux há tempos vem conquistando adeptos no setor público, como o governo do Rio Grande do Sul, que tem várias iniciativas relacionadas ao uso de software livre. As escolas do estado, por exemplo, foram informatizadas com a utilização de Linux, o que significou uma economia de 50%, segundo o site oficial do governo do Rio Grande do Sul. 86 87 9. ESTUDOS COMPARATIVOS ENTRE LINUX E WINDOWS FEITOS PELA UNIVERSIDADE DE SÃO PAULO E A EQUIPE DE IWB Todas as informações abaixo foram observadas e seguem fielmente as pesquisas realizadas, conforme site www.informationweek.com.br. A Equipe de IWB, com apoio da Universidade de São Paulo, analisa o custo total de propriedade do Linux e do Windows em servidores, sob a coordenação de Nicolau Reinhard e Nivaldo Foresti A “guerra” entre os sistemas operacionais Windows e Mac OS data da década de 80. No começo dos anos 90 teve início a disputa entre navegadores, envolvendo Internet Explorer e Netscape. Em ambas as ocasiões a Microsoft saiu vitoriosa. Como a História se repete, eis que estamos presenciando, em pleno começo do século 21, uma nova “guerra” dos sistemas operacionais, dessa vez envolvendo Windows e Linux (Open Source). Indícios existem que ela tenha recomeçado, agora com argumentos diferentes. Estaria a Microsoft, depois das vitórias passadas, sendo ameaçada? A tática usada por seus adversários, talvez mais por uma convicção do que por uma estratégia de marketing, é similar à que ela usou no passado: dar de graça o que os concorrentes vendem. Institutos de pesquisa independentes têm realizado estudos comparativos, alguns deles patrocinados por empresas do mercado, como a Microsoft. Como ocorre em toda guerra, as informações são usadas de modo estratégico. Quando os resultados privilegiam o oponente, o estudo é recebido com consternação e dúvida. Por exemplo, se os resultados são favoráveis à empresa que patrocinou o estudo, há quem até questione o instituto que a realizou. Isto pode levar os institutos até a mudarem suas políticas comerciais, apesar de serem empresas com credibilidade indubitável. Veja o caso envolvendo Forrester/Giga no endereço http://www.forrester.com/Info/0,1503,355,00.html. Quando INFORMATIONWEEK Brasil pensou em realizar uma bancada de testes comparando o custo de propriedade dos sistemas operacionais para servidores Windows e Linux para ser apresentado durante o IT Conference, esse era exatamente o cenário. Para não deixar dúvidas quanto ao resultado do trabalho, a equipe de IWB convidou e coordenou professores de duas entidades que pudessem ser isentos e ao mesmo tempo ter a capacidade 87 88 de realizar tal tarefa: a FEA (Faculdade de Economia e Administração) da USP, para todo o arsenal econômico e de análise de custo, e o ICMC (Instituto de Ciências Matemáticas e Computação) da USP de São Carlos, para os benchmarks e análises técnicas. Apesar do estudo usar o conceito de Custo Total de Propriedade (TCO), já que o objetivo era comparar os ambientes, não foram considerados itens de custo comuns, como infra-estrutura física. Tampouco outros custos como o ambiente de desenvolvimento e disponibilidade de produtos, que podem ser específicos para cada aplicação, foram considerados. A análise dos ambientes focou os seguintes itens de custo: hardware, licenças de software, pessoal, treinamento e consultoria e custo de downtime. O objetivo era não somente comparar os custos entre os produtos, mas também ajudar as corporações a verificar e analisar seus próprios números. Para isso foi construída uma planilha que permite o cálculo daqueles itens do custo de propriedade para uma empresa em particular. A pesquisa realizada previamente ao estudo deixa claro que está crescendo o uso corporativo do Linux. A tecnologia está sendo adotada em ambientes de produção e sendo incorporada pelos técnicos, o que fica aparente quando se encontra uma mesma equipe de suporte mantendo os dois sistemas operacionais dentro da empresa. É importante frisar que o perfil de uso dos softwares é diferente, com evidências de que o ambiente Linux é mais usado em serviços de infra-estrutura do que em aplicações integradas. Da totalidade dos sistemas operacionais dentro das companhias pesquisadas, 80% das aplicações de Linux estão em infra-estrutura ou servidor de Web. Os demais 20% se dividem entre banco de dados e ferramentas de groupware. Já na utilização do Windows estas últimas são mais freqüentes, com participação de 33%, contra 67% para as primeiras. Em ambos os ambientes, o componente de custo mais significativo é o pessoal de suporte. Ainda que os testes de laboratório tenham identificado diferenças de tempo entre as plataformas na execução de atividades específicas, não se observaram diferenças significativas no custo total. A pesquisa não identificou diferenças no perfil e salários das equipes, embora se devam considerar as diferenças de complexidade das aplicações nos dois 88 89 ambientes. Um indicador interessante é que os gastos com treinamento e consultoria representam apenas 6% do custo total. Para empresas de pequeno porte, a participação do custo de pessoal nos itens analisados é de 88% a 94%, contra índices de 65% a 77% nas grandes companhias. Já o custo de licenças associadas, como banco de dados e antivírus, tem grande peso no valor total da solução. Por isso a vantagem financeira do Linux se torna mais significativa apenas no caso em que a empresa também opta pelo uso de software livre gratuito para todo o ambiente. Na pesquisa, como também no painel de apresentação dos resultados no IT Conference, ficou evidente que a decisão quanto à plataforma a ser usada não pode ser baseada apenas nas diferenças de custo (que podem ser pequenas), devendo levar em consideração aspectos técnicos, de estratégia e cultura da empresa e mercado. A dinâmica do mercado de software, refletidas em políticas de preços, disponibilidade de serviços e recursos humanos, deve levar a mudanças rápidas nos valores, razão pela qual esta análise deve ser refeita por cada empresa por ocasião de novas decisões. A pesquisa ainda revelou outros dados interessantes. Um deles é o custo médio mensal de pessoal por servidor, levando em conta salários, encargos e benefícios: 2.653 reais, sem diferença significativa entre ambientes ou tamanho de empresa. 9.1 - Análise Técnica O ICMC participou do estudo ajudando nos testes de desempenho, que se não se mostraram conclusivos, pois as ferramentas existentes não comparam adequadamente os recursos dos sistemas operacionais. Os principais itens identificados são os seguintes: - Os dois sistemas já suportam plataformas de 64 bits - Os sistemas de cluster padrão e comerciais dos dois sistemas suportam até oito servidores, mas o Linux tem versões com um número ilimitado de nós em um cluster, caso da ferramenta de busca Google, que utiliza 15 mil máquinas - Os sistemas de arquivos e criptografia existem nas duas plataformas, com mais integração no Windows e mais variedade no Linux, que conta uma maior complexidade de instalação e configuração 89 90 - O sistema de terminais é muito mais gráfico no Windows, mas muito mais antigo no Linux - O Windows tem uma limitação de 64 processadores em uma configuração SMP, o que não acontece com o Linux 9.2 - Metodologia da pesquisa Para iniciar o trabalho foi realizada uma pesquisa em mais de 240 empresas. A constatação é que existe uma grande diversidade nas condições de uso dos ambientes. Além da escolha do sistema operacional, há um grande número de outras decisões e situações da empresa que influem no custo e desempenho de operação dos servidores. Para uniformizar os dados e facilitar a generalização das conclusões, solicitouse às companhias informarem os recursos (humanos, hardware, software e serviços) usados, que foram valorados pela equipe da pesquisa a partir de custos obtidos junto a fornecedores idôneos e com marcas conhecidas. Para a comparação foram usados os valores presentes dos investimentos e despesas no período de cinco anos, descontados a um valor usual de taxa interna de retorno em empresas. A depreciação dos investimentos é feita no mesmo prazo. Para permitir uma comparação em condições similares, a pesquisa procurou controlar as seguintes fontes de variação: - Tamanho de empresa: a amostra foi classificada em três classes de tamanho, de acordo com o seu faturamento (pequena, média e grandes). As análises foram feitas em separado para cada classe - Arquitetura e dimensão: foram identificadas as arquiteturas e dimensão do parque de servidores para classe de tamanho de empresa. As análises comparativas foram feitas para a configuração mais freqüente (modal) em cada classe - Custo de hardware e licenças de software: foram feitas pesquisas de preço junto a fornecedores de primeira linha para as configurações modais - Custo de treinamento: foram pesquisados os custos em empresas especializadas - Custo de mão-de-obra: as empresas informaram o seu quadro técnico para suporte aos servidores e sua dedicação a cada plataforma. Para o custo desta mão-de-obra em cada configuração modal foram usados dados de remuneração de mercado fornecidos por empresa de recrutamento e seleção 90 91 - Eficiência da equipe técnica: Os tempos unitários para atividades típicas de suporte foram obtidos a partir de experimentos no laboratório da IT Mídia e do tempo usado em cada plataforma pelas empresas pesquisadas Abaixo,o leitor tem todas as apresentações, planilhas, cálculos e resultados. do estudo em questão. 91 92 92 93 93 94 94 95 95 96 96 97 97 98 98 99 99 100 100 101 101 102 102 103 103 104 104 105 105 106 106 107 107 108 9.3 - Estudo do TCO de Servidores Autor do Estudo: Márcio Augusto Madeira - Gerente de Desenvolvimento de TI - IT Midia S.A. Comparativo dos sistemas operacionais Linux e Windows Para este estudo, procuramos abordar o maior número de fatores possível que influenciassem o custo de propriedade dos sistemas operacionais nos servidores. Para tanto, levamos em conta o tamanho da empresa, período, crescimento médio anual da empresa, custos com software, hardware, treinamento, suporte e pessoal. Todos os dados utilizados foram extraídos da pesquisa elaborada pela IT Mídia ou de institutos com autoridade reconhecida sobre tais dados. Segue uma breve descrição sobre os dados utilizados e a forma de inseri-los na planilha. TCO servidores do período Calculado a partir da soma simples de Licenças, Hardware, Treinamento e Consultoria, Pessoal e Downtime 108 109 Porte da empresa Apenas informativo e baseado no número de usuários Período de análise (em anos) Influencia diretamente o cálculo do TCO e é usado para calcular valores de upgrade de servidor, licenças baseadas em número de clientes, horas de consultoria, upgrades de treinamento, depreciação de hardware etc. Crescimento médio anual Utilizado para calcular o número de clientes no final do período de análise. O número utilizado para pequena, médias e grandes empresas foi extraído de pesquisa realizada pela Escola de Administração de Empresas de São Paulo, da Fundação Getulio Vargas. 7 Licenças As células preenchidas em cinza serão calculadas automaticamente. Para cada linha da tabela informar o seguinte: o Software: tipo de software utilizado o Produto: produto utilizado para atender a configuração o Total: total da linha considerando custo da licença no período, upgrades do software e custo de licenças de cliente baseado no período e crescimento médio anual o Licenças de servidor o Valor unitário: informar o valor de uma única licença. No caso de compra de um pacote de software, colocar o valor total do pacote na primeira linha e repetir os softwares incluídos na coluna produto das linhas seguintes o Quantidade: informar a quantidade de licenças necessárias para o produto ou pacote em questão. Pode ser necessária uma licença para cada servidor ou uma para cada processador ou somente o valor da mídia, no caso de software livre o Upgrade de licenças do servidor 109 110 o Tempo (anos): tempo estimado para ocorrer o upgrade do produto em questão o Custo do upgrade: custo do upgrade de uma licença. Será aplicado para a mesma quantidade informada em Licenças de servidor o Total do upgrade: custo total de upgrade para o período de análise informado. o Poderá ser zero se o tempo de upgrade for maior que o período de análise. o Licenças de cliente: alguns softwares servidores, como antivírus, podem usar um modelo de licenciamento do software servidor pelo número de clientes, neste caso, informar os dados individuais abaixo. Caso o produto tenha um modelo de licenciamento baseado em quantidades fixas, i.e. 50, 100, 150 etc., registrar como pacote em Licenças de servidor o Valor unitário: custo da licença de servidor para um cliente o Quantidade: quantidade atual de licenças necessárias o Quantidade upgrade: quantidade de licenças necessárias atualizada pela taxa de Crescimento médio anual acima o Valor total: custo total das licenças de cliente para o software em questão Hardware Listar somente os hardwares utilizados como servidor. o Configuração: descrição da configuração do hardware adquirido o Custo total: calculado automaticamente a partir da quantidade, custo do hardware e custo da garantia estendida. Leva em conta o Período de Análise informado acima para descontar o valor residual calculado com base na depreciação contábil do hardware, trazida para valor presente pelo Custo de oportunidade anual informado na planilha Dados o Quantidade: número de servidores do mesmo tipo e com o mesmo Uso indicado mais à direita. Se for utilizado o mesmo tipo de servidor para duas plataformas diferentes ou para aplicações diferentes, colocar uma linha para cada combinação de uso e plataforma o Garantia (anos) e Garantida Estendidas (anos): apenas informativo o Custo hardware: custo de uma unidade da configuração informada à esquerda o Custo garantia estendida: custo da garantia estendida comprada para o hardware à esquerda 110 111 o Índice de desempenho: funciona como um deflator do custo do hardware. Quanto maior o índice, menos custo será contabilizado no TCO, simulando uma necessidade menor de hardware o Plataforma: marcar o sistema operacional utilizado no servidor (Windows ou Linux) o Banco de dados, Arquivo e Impressão, Groupware, Web: marcar com um ‘x’ o tipo de aplicação utilizada no servidor o Treinamento e Consultoria de Suporte Consultoria o Horas/ano: informar o número de horas de consultoria estimado para cada plataforma o Custo/hora: informar o custo da hora de consultoria para a plataforma Treinamento o Quantidade de treinamentos full: informar a quantidade de treinamentos necessários para cada sistema abaixo. No estudo, demos treinamento de sistema operacional para todo o pessoal de TI e os demais treinamentos para cargos acima de estagiário o Quantidade de treinamentos upgrade: será calculado com base na quantidade de treinamentos full e o tempo em anos para o upgrade de treinamento. Poderá ser zero se o tempo de upgrade for menor que o período de análise Custo do treinamento para administração Refere-se ao custo dos treinamentos para a administração e operação de Sistemas operacionais, Bancos de dados e Groupware o Treinamento completo: informar o valor do treinamento para os softwares indicados em cada plataforma o Upgrade de treinamento: informa o valor do treinamento complementar para a nova versão de software. No estudo, consideramos 50% do treinamento inicial 111 112 o Upgrade de treinamento (tempo em anos): informar após quanto tempo do treinamento completo deve ser realizado um upgrade de treinamento o Software considerado: listar os softwares considerados para referência Pessoal O cálculo do custo de pessoal deverá levar em conta somente o tempo utilizado para administração e operação de servidores e será trazido para valor presente à taxa de 1/12 do Custo de oportunidade anual informado na planilha Dados. Para cada cargo da tabela, informar o seguinte: o Quantidade de funcionários no cargo referido o % utilização: percentual do tempo de trabalho desses funcionários destinado à administração e operação dos servidores o Custo: valor pago mensalmente a cada funcionário do cargo referido, em média. Os cargos listados sob o tipo de contrato CLT serão corrigidos de acordo com os Encargos CLT listados na planilha Dados Downtime Neste estudo, mantivemos o custo de downtime em zero por considerar que downtimes com custos significantes no TCO se refletem em acréscimo na segurança dos sistemas servidores, seja em hardware ou em software A seguir a planilha com o resumo do estudo em questão: 112 113 TCO Servidores Personalizado Linux (software livre) Linux Windows Taxa de Crescimento Anual Funcionários Equipe de TI Estagiário Analista suporte JR Analista suporte PL Analista suporte SR Administrador rede Servidores Hardware Pentium 4,2.4GHz,256MB RAM,HD ATA 40GB - instalação - extensão de Garantia Pentium 4,2.4GHz,256MB RAM,HD ATA 80GB - instalação - extensão de Garantia Dual Xeon,2.4GHz,1GB RAM,RAID-5 200GB - instalação - extensão de Garantia External Storage 2TB - instalação - extensão de Garantia Licenças Linux Conectiva Linux Enterprise Basic Conectiva Linux Enterprise Standard Conectiva Linux Entreprise Master Vexira Antivirus for Mail Servers Oracle Database Standard Edition Oracle Database Enterprise Edition Lotus Notes R5 with Messaging Licenças Windows 2 Windows Srv Std 2003 + 5 CAL 1 Windows Srv Web 40 Windows Server CAL 1 MSDE - Microsoft Database Engine serviço de e-mail nativo do Windows 5 Windows 2003 Server Standard Edition 1 Windows 2003 Server Web Edition 1 ISA Server Standard Edition 1 SQL Server Standard Edition 1 Exchange Server Standard Edition 175 Windows Server CAL Device 175 Exchange Server CAL 20 SQL CAL Symantec Mail Security 4 Windows 2003 Server Enterprise Edition 4 Windows 2003 Server Web Edition 6 Windows 2003 Server Standard Edition 1 SQL Server Enterprise Edition 1 Exchange Server Standard Edition 1 ISA Server 2000 600 Exchange Server CAL 600 Windows CAL + 60 SQL CAL Consultoria Linux Windows Downtime Windows Linux Grande Média Pequena R$ 0,0% R$ 1.538.332,90 81,9% R$ 1.878.503,75 ####### R$ 1.744.669,93 92,9% 5,90% 600 10 % util 3 70% R$ 0,0% R$ 471.154,99 78,8% R$ 598.140,65 ####### R$ 533.644,58 89,2% 6,56% 175 4 % util 2 70% R$ 0,0% R$ 217.993,90 93,1% R$ 225.103,90 96,2% R$ 234.063,83 ####### 7,20% 50 3 % util 1 80% 1 70% 3 3 1 1 1 80% 60% 85% 14 Aplicação 2 Arquivo e Impressão 2 Banco de Dados 2 DNS, DHCP, diretório nomes 1 Firewall 1 Groupware 1 Intranet 1 VPN / Proxy 1 Web 3 Valor Qtd R$ 3.421,00 R$ 271,00 R$ 363,00 R$ 23.600,00 R$ 271,00 R$ 599,50 R$ 204.600,00 R$ 11.786,88 R$ 11.797,44 R$ 366.616,32 Valor R$ R$ 7.950,00 900,00 R$ 118.608,00 R$ 256,50 Valor 10 10 10 4 4 4 1 1 1 Qtd 14 1 2 600 Qtd 100% 50% 6 Arquivo, Impressão e1Web Banco de Dados 1 DNS, DHCP, diretório1nomes Firewall 1 Groupware 1 Intranet 1 Valor R$ R$ R$ R$ R$ R$ Qtd 3.421,00 271,00 363,00 23.600,00 271,00 599,50 R$ 65.161,00 Valor Qtd 3.990,00 6 R$ R$ 900,00 44.478,00 1 1 256,50 80% 3 Arquivo, Impressão e1E-mail Banco de Dados 1 Internet, DNS, DHCP1 Valor R$ 2.699,00 R$ 271,00 R$ 363,00 Qtd 3 3 3 R$ 9.999,00 Valor R$ 2.370,00 Qtd 3 4 4 4 2 2 2 R$ R$ Valor 1 175 Qtd R$ R$ 900,00 44.478,00 R$ Valor R$ R$ R$ 110.074,65 R$ / Hora R$ 150,00 R$ 150,00 2,56% 1,66% 34.910,51 256,50 5.821,93 1 1 50 Qtd 1 1 1 Horas / anoR$ / Hora 14 R$ 150,00 7 R$ 150,00 Horas / anoR$ / Hora 30 R$ 150,00 15 R$ 150,00 2,06% 1,72% 3,28% 2,49% 113 Horas / ano 7 13 114 Objetivo Oferecer um modelo, que permita avaliar o custo de propriedade dos sistemas operacionais para servidores UnitedLinux, da Conectiva, e modelos do Windows 2003 para servidores (exceto a versão DataCenter), da Microsoft. A intenção é cobrir pequenas, médias e grandes empresas, nas formas mais comuns de sua aplicação na plataforma Intel, usado nas aplicações de infra-estrutura, Web, banco de dados e groupware. Para tanto, foi criada uma equipe multidisciplinar de técnicos e economistas para avaliar os aspectos econômicos por meio de uma parceria com a FEA-USP (Faculdade de Economia de Administração), na pessoa do Prof Nicolau Reinhard, para análise dos resultados do questionário e a criação da planilha comparativa. Os aspectos técnicos foram analisados pelo ICMC (Instituto de Ciências Matemáticas e de Computação) da USP São Carlos, por meio dos professores Odemir Bruno e João Batista, que criaram técnicas para análise do esforço de administração e suporte nas plataformas e dos testes de benchmark. Definições e Premissas Os dados desse estudo foram levantados a partir de várias origens: pesquisas realizadas pela IT Mídia, pesquisas de outras entidades, universidades, pesquisa em sites dos fornecedores, pesquisas salariais, cotações de produtos, treinamento e suporte e metodologias para determinar variáveis que afetaram o custo. Origem das informações Estudo inicial – Uma pesquisa abrangendo 242 empresa, sendo 77 pequenas, 76 médias e 89 grandes empresas foi realizada no período de 20 de julho a 6 de setembro para conseguir dados estatísticos sobre quantidade de servidores por tipo de empresa, tempos gastos no gerenciamento, instalação e controle de problemas, tempo médio de atualização dos servidores, quantidade de pessoas para a operação e suporte de servidores por tipo de empresa, tempo de downtime por tipo de sistema operacional, entre outros dados. Foram realizadas 47 entrevistas, por telefone, nas empresas modais para o detalhamento das informações com a quantidade de horas trabalhadas, o gasto detalhado de tempo nas operações mais comuns de operação, suporte e administração, tipos de servidores 114 115 (configurações) mais utilizadas nas diversas aplicações, custo das paradas por downtime divididos por tipo de servidor (infra-estrutura, banco de dados, Web e groupware). Cotações e dados de outras pesquisas – Como forma de complementar o levantamento inicial foram identificados dados sobre custo das licenças de software, hardware e treinamento com empresas ou suas distribuidores/revendas, tais como HP, Fast Tranning, Microsoft, Conectiva e Oracle. Foi feita, ainda, uma pesquisa salarial pela Manager, empresa de assessoria em recursos humanos, para se descobrir os salários médios dos cargos usados pelas empresas. Benchmarks e outros testes de trabalho – Foram realizados avaliações do esforço de instalação e manutenção nas diversas plataformas com pessoas de mercado e especialistas designados pelas duas empresas (Microsoft e Conectiva). Foram idealizadas baterias de testes de desempenho nas configurações identificadas nos perfis para determinar um possível deflator para a fórmula de cálculo de custo desde que as pesquisas indicassem tais desvios. Premissas O modelo proposto seguiu algumas premissas básicas e, para tanto, se deve definir corretamente o que significa o termo custo de propriedade, além de determinar qual é o seu impacto nas empresas. Essas premissas têm impacto direto no custo e pequenas variações em qualquer uma delas podem afetar o resultado final substancialmente. A primeira definição que se faz necessária é a do objeto desse estudo: o custo de propriedade. Custo Total de Propriedade, ou TCO, é uma visão holística dos custos da tecnologia de informação (TI) na empresa durante um determinado período de tempo, levando em conta também a oportunidade do investimento de capital realizado. Pela própria definição, o período de tempo é uma variável crítica na determinação do TCO, pois variáveis que afetam o custo em longos períodos podem não ter a mesma importância em períodos menores. Assim, foi definida a premissa que o período de análise será o tempo médio de troca de servidores para cada tamanho de empresa analisada. Os custos foram colocados em Reais, trazidos a valor presente usando a técnica do custo de oportunidade. Como essa análise pode ser muito abrangente, foi escolhida a metodologia 115 116 modal para análise dos custos, ou seja, por perfil de empresa. Foi para descobrir esses perfis que se realizou a pesquisa com pequenas, médias e grandes empresas. Os perfis e as configurações que mais apareceram para cada tamanho de empresa é que foram analisados e comentados. O estudo leva em conta somente as variáveis que têm maior influência no TCO, deixando de lado assuntos como ambientes de desenvolvimento, aderência a padrões, existência de aplicações e profissionais, escalabilidade dos sistemas, lista de recursos, portabilidade, dentre outras menos relevantes. Os itens considerados foram: custos das licenças de software; custo do hardware e sua manutenção; custo do treinamento e serviços de terceiros; custo de pessoal composto de salários para a operação; administração e suporte do software com o adicional de encargos/benefícios, e custo de downtime dos servidores na parte que cabe ao sistema operacional e os aplicativos analisados. A definição de como trabalhamos com cada uma dessas variáveis está descrita a seguir. Custo das licenças de software Windows sistema operacional – usamos a menor métrica para os diversos tipos de aplicação, utilizando os descontos por quantidade praticados normalmente pela área comercial da Microsoft para cada um dos tamanhos de empresa analisados. Esses dados foram parametrizados pela quantidade de usuários concorrentes em cada uma delas e quantidade de servidores utilizados. Foi acrescido a isso um custo de atualização. O tempo de upgrade foi computado proporcionalmente à média de tempo que novas versões do sistema operacional são lançadas pela Microsoft no mercado (http://www.microsoft.com/windows/winhistorysrvrgraphic.mspx). Esse tempo é de dois anos e 4 meses e será acrescido um valor proporcional a um inteiro ou fração no período de análise. As atualizações foram computadas pelo preço atual de mercado. A isso foi acrescida uma taxa de crescimento anual de usuários/licenças média no período. Essa média foi determinada pela mais recente edição da pesquisa Administração de Recursos de Informática, do Prof. Fernando S. Meirelles, da Escola de Administração de Empresas de São 116 117 Paulo da Faculdade Getulio Vargas (Eaesp-FGV), ajustada aos tamanhos de empresas estudados. Os índices de ajuste usados foram, para pequenas empresas, de 7,2%, para médias empresas, de 6,56%, e, para as grandes empresas, de 5,9%. Linux sistema operacional – foi usado o valor do site da Conectiva para venda do produto para empresas. Para as pequenas empresas foi considerada a versão Basic, para as médias a versão Standard e para as grandes a versão Master. A atualização do sistema foi calculada como anual, pela existência do suporte agregado. Outros produtos Windows e Linux – foram usados os preços de cotações feitas para os softwares necessários para a operação de cada uma das aplicações. Comparamos custos de softwares cobrados e gratuitos para as duas plataformas. As atualizações e o aumento de usuários também foram computados usando as médias do estudo da FGV. Os custos de tempo da instalação inicial foram calculados no custo de pessoal. O treinamento necessário para operação e instalação está no item Treinamento & Serviços de Terceiros. Para equiparar os dois sistemas teve-se como premissa a maximização do TCO e dos recursos oferecidos. Assim, a tabela abaixo mostra como foi analisado cada perfil de empresa selecionado: SOP/Tamanho Linux Pequena Os recursos que acompanham o sistema Windows Os recursos que acompanham o sistema + opção de softwares agregados Microsoft Média Os recursos que acompanham o sistema + Oracle Standard + Lotus Domino Os recursos que acompanham o sistema + SMB Grande Os recursos que acompanham o sistema + Oracle Enterprise + Lotus Domino + servidor de aplicação Oracle Os recursos que acompanham o sistema + SQL Server Enterprise + Exchange Enterprise Custo do Hardware Windows e Linux – foram feitas cotações no mercado para as configurações definidas para cada tipo de empresa em fornecedores reconhecidamente de primeira linha 117 118 (HP), usando a plataforma Intel por questões de custo e tamanho do mercado. Foram feitos testes de desempenho com as configurações de instalação, sem otimização. Os cenários foram montados e ajustados de acordo com a quantidade de servidores e aplicações detectadas nas pesquisa para cada tamanho de empresa. Os testes foram feitos com clientes Windows 95/98/2000/XP, maioria nas empresas brasileiras, segundo a tabela abaixo: Tamanho empresa Pequena Média Grande da Configuração 1 Usos 3 servidores Pentium 4 2.4GHz, 1 servidor para banco de dados, 1 256MB RAM, HD ATA 40GB. para arquivo, impressão/infraestrutura e groupware e 1para Web 1 servidor Pentium 4 2.4GHz, O primeiro usado para infra256MB RAM, HD ATA 80GB e 2 estrutura e arquivo e impressão e os servidores Pentium Xeon 2.4Mhz outros dois para banco de dados e Dual, 1GB RAM, 200GB HD RAID- groupware 5 2 servidores Dual Xeon, 2.4GHz, Os dois primeiros foram usados 1GB RAM, RAID-5 200GB em para o banco de dados e os demais cluster, External Storage 2TB e 10 para o resto das funções da empresa Pentium 4, 2.4GHz, 256MB RAM, (Web, groupware, infra-estrutura, HD ATA 80GB arquivo e impressão) A análise do teste de desempenho ajustaria o valor de hardware conforme a diferença das transações por segundo em cada plataforma a um máximo de 10% do custo. No entanto, devido a problemas de definição sobre de quem é a responsabilidade sobre o desempenho de um sistema – se do sistema operacional ou dos softwares acima dele –, esse índice foi mantido em 1 para todos os sistemas operacionais e será revisto em uma próxima versão deste trabalho. Colocamos os custos de manutenção propostos pelo fabricante para atendimento no campo para o período pós-garantia. Pedimos também, durante o prazo de garantia, a extensão do prazo para termos um nível de serviço adequado a uma empresa. A quantidade de servidores por tipo de empresa foi a seguinte: Pequena empresa – 3 servidores 1 banco de dados 1 e-mail + impressão e arquivo + diretório de nomes 1 compartilhamento de Internet + DNS + DHCP Quantidade de licenças: 50 (sistema operacional, banco de dados e e-mail) 118 119 Aplicações cliente-servidor Média empresa – 6 servidores 1 banco de dados 1 groupware 1 firewall 1 impressão e arquivo + Web 1 intranet 1 DNS + DHCP + diretório de nomes Quantidade de licenças: 175 (sistema operacional, banco de dados, groupware) Aplicações cliente-servidor e uma parte em Web Grande Empresa – 14 servidores 2 banco de dados em cluster 2 servidores de aplicação em cluster 1 groupware 1 infra-estrutura (compartilhamento internet, VPN e proxy) 1 DNS + DHCP + diretório de nomes 2 impressão e arquivo 1 firewall 3 Web (internet) 1 intranet Quantidade de licenças: 600 (sistema operacional, banco de dados, groupware) Aplicações cliente-servidor e Web Custo Treinamento & Serviços de Terceiros Foram feitas cotações de mercado em empresas especializadas sobre o valor dos custos dos treinamentos certificados necessários para a operação e suporte dos sistemas. Esse valor será multiplicado pelo tempo médio para reciclagem (lançamento de novas versões do Windows – http://www.microsoft.com/windows/winhistorysrvrgraphic.mspx – e Linux – fornecido pela Conectiva) referentes ao período de análise do TCO e da quantidade de pessoas necessárias para a operação. Além disso, foi acrescido um custo de suporte externo cotado em empresas do mercado em São Paulo. As horas de suporte adicionais foram obtidas pela pesquisa por telefone. 119 120 Custo de Downtime Os custos de downtime foram retirados do cálculo pois não podem ser calculados a partir das pesquisas desenvolvidas. Apesar de existirem perguntas específicas para esse item, as empresas não conseguem e não controlam o efeito do downtime nos seus custos. Quando o fazem, fazem de forma preventiva, aumentando os recursos necessários para diminuir os efeitos de uma parada nos negócios. Em futuros trabalhos será criada uma metodologia específica para determinar tais custos. Custo de Pessoal Os custos e a necessidade de pessoal foram fornecidos pela somatória da quantidade de funcionários por nível existentes nas empresas (determinados pela pesquisa) x o custo dos funcionários com encargos e benefícios. Os valores salariais foram fornecidos pela empresa Manager Assessoria de Recursos Humanas. Análise das Informações Levantadas As empresas pesquisadas As empresas pesquisas se dividiram da seguinte forma: Tipos de empresa 77 89 Grande Empresa Média Empresa Pequena Empresa 76 120 121 Além disso, as quantidades médias de usuários por tipo de empresa foram as seguintes: Quantidade de usuários médio por tipo de empresa 50 175 Grande Empresa Média Empresa Pequena Empresa 600 Custo do Hardware O peso no estudo demonstrou que o hardware varia, dento do custo total, de 3% a 15% do TCO no período analisado. O tempo médio da atualização de hardware varia muito pouco por tamanho de empresa: a pequena empresa troca de servidor a cada 2,4 anos, a média a cada 2,7 anos e a grande empresa a cada 2,9 anos. Outro fato relevante encontrado na pesquisa foram os motivos que levam uma empresa a atualizar seu sistema operacional. A tabela abaixo mostra isso: Motivo/Tipo Empresa Lançamento de uma nova versão do sistema operacional Implementação de uma nova aplicação (ERP, CRM etc.) Aumento na quantidade de usuários simultâneos Melhora no desempenho Obsolescência do hardware existente Grande 5,13% 34,62% 11,54% 35,90% 12,82% Média 4,29% 24,29% 18,57% 31,43% 21,43% Pequena 12,16% 14,86% 9,46% 39,19% 24,32% Observações: A obsolescência só é relevante na pequena empresa A melhora do desempenho é o motivo preponderante para justificar a troca do hardware do servidor O segundo principal motivo é o da implantação de novas aplicações, o que nos leva a concluir que as aplicações – e não o sistema operacional da máquina – são a prioridade das áreas de TI 121 122 Custo das licenças de software Baseado na quantidade de usuários por tipo de empresa foi solicitada cotações aos diversos fornecedores de soluções de software do mercado. De um lado, Conectiva, Oracle e IBM (Lotus) e de outro a Microsoft. O custo das licenças teve um peso que variou entre 3 e 21% nos diversos tamanhos de empresas analisadas. As empresas, independente do tamanho, têm como prioridade ao trocar de sistemas somente fazê-lo quando uma nova versão já está estável ou quando precisa de um novo recurso disponível somente no novo sistema operacional. Motivo/Sistema operacional Nova versão é lançada Nova versão já está estável Precisa um recurso da nova versão SO não tem mais suporte SO já vem com um novo servidor Outros motivos Linux 8,2% 36,1% 36,9% 0,8% 1,6% 16,4% Windows 4,0% 36,6% 37,7% 6,3% 6,9% 8,6% O que a pesquisa nos trouxe foi o resultado esperado. Já o custo de licenças associadas, como banco de dados e antivírus, tem grande peso no valor total da solução. Por isso a vantagem financeira do Linux se torna mais significativa apenas no caso em que a empresa também opta pelo uso de software livre gratuito para todo o ambiente. Na pesquisa, como também no painel de apresentação dos resultados durante o IT Conference, ficou evidente que a decisão quanto à plataforma a ser usada não pode ser baseada apenas nas diferenças de custo (que podem ser pequenas), devendo levar em consideração aspectos técnicos, de estratégia e cultura da empresa e mercado. A dinâmica do mercado de software, refletida em políticas de preços, disponibilidade de serviços e recursos humanos, deve levar a mudanças rápidas nos valores, razão pela qual esta análise deve ser refeita por cada empresa por ocasião de novas decisões. É importante frisar que o perfil de uso dos softwares é diferente, com evidências de que o ambiente Linux é mais usado em serviços de infra-estrutura do que em aplicações integradas. Da totalidade dos sistemas operacionais dentro das companhias pesquisadas, 80% das aplicações de Linux estão em infra-estrutura ou servidor de Web. Os demais 20% se dividem entre banco de dados e ferramentas de groupware. Já na utilização do 122 123 Windows, as últimas são mais freqüentes, com participação de 33%, contra 67% para as primeiras. As diferenças quando a empresa opta apenas pelo sistema operacional Linux é de no máximo 7% e vai depender da negociação com os fornecedores, podendo ser maior em alguns casos. O sistema só vale a pena com uma diferença de até 20% quando a empresa opta por uma iniciativa de usar somente softwares livres. Sistema Operacional # servidores* Linux 36 Windows 125 *nas empresas modais Infra+ web(A) BD + groupware (B) 80% 20% 67% 33% (A)/(B) 4 2 Na pesquisa geral, para grandes empresas, o uso do Windows como servidor é 3 vezes maior do que o Linux, mas somente 30% maior do que todos os tipos de Unix reunidos. Isso mostra que existe uma grande margem de crescimento para o Linux, já que a necessidade de troca das aplicações e treinamento é menor do que quando confrontado com a migração para o Windows. Uso Linux Windows Windows Server Datacenter Server Impressão e arquivo / 13 55 2 diretório de nomes Banco de dados 16 55 5 Web e streaming 19 39 5 Servidor aplicação 23 65 7 Servidor segurança 31 47 4 Servidor groupware 5 41 4 Total 107 302 27 Windows Web Server 1 Solaris Outros Outros Unix SOs 3 9 14 4 13 7 3 3 31 11 3 13 7 1 38 44 8 36 10 4 111 14 4 11 5 10 58 Já na empresa média, a diferença cai para menos de 20%, o que demonstra a maior penetração do Linux no mercado. Vale ressaltar que nas aplicações de banco de dados e servidor de aplicação, ditas de missão crítica, o Linux continua em menor número. No entanto, quando computamos o Solaris e os outros Unix vemos que, no caso de banco de dados, ele chega a ultrapassar o Windows. 123 124 Uso Linux Windows Windows Server Datacenter Server Impressão e arquivo 16 51 1 / diretório de nomes Banco de dados 17 49 1 Web e streaming 27 21 1 Servidor aplicação 14 56 1 Servidor segurança 33 21 servidor groupware 12 30 1 Total 119 228 5 Windows Web Server 2 Solaris Outros Unix Outros Sos 2 4 6 1 13 1 16 3 9 7 1 38 11 1 9 5 4 34 11 2 9 2 3 33 17 Nas pequenas empresas existe também um empate técnico no uso dos sistemas operacionais e, nesse caso, o Linux é que está apenas a 30% de uso do Windows. Uso Linux Impressão e arquivo / diretório de nomes Banco de dados Web e streaming Servidor aplicação Servidor segurança servidor groupware Total 20 Windows Windows Server Datacenter Server 48 1 26 17 19 32 9 123 39 23 34 17 24 185 Windows Web Server 2 9 3 2 3 14 Solaris Outros Unix Outros Sos 2 2 9 8 2 6 5 1 24 4 1 2 4 2 15 4 1 4 3 5 26 Treinamento e suporte O peso desse item no total do custo varia entre 1% e 6%. Consistentemente, pela pesquisa, o Linux requer mais suporte que o Windows, exceto nas pequenas empresas. O tempo médio mensal de suporte é de 7 horas, 30 horas e 14 horas para o Linux nas pequenas, médias e grandes empresas, respectivamente. Para a plataforma Windows, os índices são 13 horas, 15 horas e 7 horas. Isso denota um maior amadurecimento do sistema Windows no mercado e uma maior quantidade de profissionais disponíveis. No entanto, o valor não é representativo dentro do custo total. Custo de pessoal Em ambos os ambientes, o componente de custo mais significativo é o pessoal. Ainda que os testes de laboratório tenham identificado diferenças de tempo entre as 124 125 plataformas na execução de atividades específicas, não se observaram diferenças significativas no custo total. A pesquisa não identificou diferenças no perfil e salários das equipes, embora se devam considerar as diferenças de complexidade das aplicações nos dois ambientes. Um indicador interessante é que os gastos com treinamento e consultoria representam apenas 6% do custo total. Para empresas de pequeno porte, a participação do custo de pessoal nos itens analisados é de 88% a 94%, contra índices de 64% a 69% nas grandes companhias. A pesquisa ainda revelou outros dados interessantes. Um deles é o custo médio mensal de pessoal por servidor, levando em conta salários, encargos e benefícios: R$ 2.653, sem diferença significativa entre ambientes ou tamanho de empresa. No geral, o esforço para a operação de cada plataforma, segundo a pesquisa, é a seguinte: Linux/Tamanho Empresa (%) Operação4 Administração Suporte dos Servidores Windows/Tamanho Empresa (%) Operação Administração Suporte dos Servidores Grande 28 39 33 Grande 24 37 40 Média 41 38 21 Média 25 50 25 Pequena 36 51 14 Pequena 33 38 29 A utilização de serviços terceirizados ainda não é comum e não foi percebido com ênfase nas empresas pesquisadas. A pesquisa também revelou que a utilização de pessoal na administração, operação e suporte de servidores não é feita com 100% do tempo das pessoas. A tabela abaixo mostra os números médios encontrados por tamanho de empresa: Tamanho da empresa Cargos Estagiário Analista suporte JR Analista suporte PL Analista suporte SR Administrador rede e/ou Gerente e/ou supervisor Total Pessoal Grande Qtd. % útil 3 70% Média Qtd. 2 % útil 70% 3 3 1 1 1 100% 50% 10 80% 60% 85% 4 Pequena Qtd. % útil 1 80% 1 70% 1 80% 3 Existem várias condicionantes que foram descobertas durante as pesquisa, muitas delas óbvias e esperadas: 125 126 o Equipes realizam atividades de operação e desenvolvimento o Equipes atendem diversas plataformas o Existe uma integração de ambientes Também se conseguiu calcular o custo médio mensal de pessoal por servidor, conforme mostra a tabela abaixo: Custo de pessoal CLT (R$/mês) Linux Windows Global da amostra Média mensal/servidor 2802 2633 2653 Desvio padrão da média 2535 2012 1919 Como se vê, as diferenças não são significativas do ponto de vista estatístico. Uma abordagem inovadora, mas que não se traduz em uma forma de diferenciação de custo direto foi o teste de unidades de trabalho. Desenvolvida juntamente com a USP de São Carlos, foram levantadas as atividades mais comuns executadas na operação e administração de um servidor. As atividades foram divididas em instalação de softwares, configurações e trabalhos administrativos. No quesito instalações foram efetuadas as instalações do sistema operacional com diretórios, banco de dados, groupware e softwares acessórios (Samba e NFS) para o uso pelos aplicativos. Foram configurados e testados em seu funcionamento o DNS, DHCP, VPN, rotas e gateway e a utilização de clusters para balanceamento de carga e redundância. Os sistemas foram testados também em suas atividades administrativas em criar usuários, grupos, configurar troca de senhas e tamanhos, quotas de espaço em disco, instalação e teste de impressoras, configurar um hosting virtual, dar acesso a diretórios e arquivos, permitir a publicação de conteúdo na intranet, controlar as versões de documentos, executar backup e restore de diretórios e arquivos, criar perfis de análise de desempenho para acompanhamento, manusear os logs de registro de informações dos sistemas, bloquear portas de acesso, acessar sistemas remotamente de forma segura, aplicar correções aos sistemas operacionais e administrar remotamente o sistema. Os testes foram realizados com dois tipos de profissionais: iniciantes, com cursos informais e experiência prática de pelo menos um ano com os sistemas, e experts, profissionais indicados pela Conectiva e Microsoft para realizarem as mesmas tarefas. A tabela abaixo mostra a diferença encontrada nos três tipos de trabalho. Os índices indicam, percentualmente, o tempo gasto em cada uma das atividades. 126 127 Tarefa/Expertise Instalação Configuração Administração Iniciante Linux 100 100 100 Iniciante Windows 100 65 85 Expert Linux 100 100 100 Expert Windows 100 85 95 Custo de downtime O custo de downtime não foi computado nesse estudo por um motivo muito simples: não existe um modelo coerente que capte esse número nas empresas. Ora a empresa não se preocupa com o tamanho desse risco e não sabe computá-lo, ora ela faz processos que já objetivam evitá-lo. Os possíveis efeitos de um downtime imprevisto são a perda de receita e/ou o aumento das despesas. A pergunta que se faz é: o downtime é uma fatalidade ou resultado de decisões da empresa? Abaixo, mostramos as médias encontradas na amostra: SO / Tamanho empresa Windows Linux L/W Grande 2,6% 1,7% 65% Média 2,1% 1,7% 83% Pequena 3,3% 2,5% 76% Há algumas formas para reduzir os efeitos do downtime na infra-estrutura, nos processo de TI e nos processos de negócio: o Reduzindo o risco de ocorrências imprevistas o Aumentando a eficiência de Pessoal, infra-estrutura e processo de TI Nos processos de negócio da empresa o Aumentando a redundância de recursos o Reduzindo os requisitos de desempenho dos processos de negócio Essa tabela mostra que, na média, o sistema operacional é responsável por apenas 1/3 (exceto na média empresa) das paradas imprevistas dos servidores quando a queda foi causada por software. Opção/Tamanho empresa No sistema operacional Nos aplicativos (BD ou groupware) Aplicações que rodam no servidor (SAP, Baan etc.) Outros programas Média Grande 31,8 31,0 46,8 31,3 36,2 Média 41,4 32,7 42,5 34,1 37,9 Pequena 29,1 30,8 43,0 38,8 35,5 127 128 Outras descobertas O estudo também descobriu como as empresas agem quando uma nova versão do sistema operacional de servidor é lançada e que características estão na sua ordem do dia. Quando uma nova versão do sistema operacional de rede ou uma atualização é lançada pelo fornecedor qual é o seu procedimento em geral? Instala em um servidor de teste e homologa com suas aplicações Só atualiza quando existe a necessidade de um novo recurso que vem com a nova versão Instala, mexendo em parâmetros de desempenho, em um servidor de teste e homologa com suas aplicações Instala direto no servidor de produção Outros Instala, mexendo em parâmetros de desempenho, direto no servidor de produção Grande Média Pequena Geral 31 18 14 63 14 23 19 56 15 0 0 16 1 2 17 3 0 48 4 2 0 0 1 1 Classifique as seguintes características de um sistema operacional de rede em ordem de importância Grande Empresa Disponibilidade: Segurança: Desempenho: Custo das licenças: Automaticidade na realização de tarefas de operação: Tenha utilitários de recuperação de disco e de arquivos: Custo de pessoas para a sua manutenção: Facilidade de gerenciamento: Tenha alguns aplicativos integrados (email, banco de dados e anti-vírus): Escalabilidade: Muito Importante 52% 50% 50% 24% 24% Importante 21% 32% 21% 40% 39% Pouco Importante 27% 18% 29% 35% 37% 21% 39% 40% 19% 16% 13% 26% 58% 32% 55% 26% 55% 11% 63% 26% 128 129 Média Empresa Desempenho: Disponibilidade: Segurança: Escalabilidade: Automaticidade na realização de tarefas de operação: Custo das licenças: Tenha utilitários de recuperação de disco e de arquivos: Custo de pessoas para a sua manutenção: Tenha alguns aplicativos integrados (email, banco de dados e anti-vírus): Facilidade de gerenciamento: Pequena Empresa Disponibilidade: Desempenho: Segurança: Automaticidade na realização de tarefas de operação: Custo das licenças: Tenha utilitários de recuperação de disco e de arquivos: Custo de pessoas para a sua manutenção: Tenha alguns aplicativos integrados (email, banco de dados e anti-vírus): Escalabilidade: Facilidade de gerenciamento: Muito Importante 58% 58% 55% 27% 19% Importante 21% 18% 26% 50% 45% Pouco Importante 21% 24% 19% 23% 35% 16% 13% 37% 40% 47% 47% 13% 11% 31% 24% 56% 65% 8% 69% 23% Muito Importante 52% 47% 45% 19% Importante 16% 24% 23% 45% Pouco Importante 32% 29% 32% 35% 19% 19% 37% 37% 44% 44% 18% 18% 32% 29% 50% 53% 11% 10% 40% 61% 48% 29% 129 130 10. CONCLUSÕES E RECOMENDAÇÕES 10.1 - Por que deu Errado? Vemos em revistas, nos sites da internet, em palestras, etc... todos estão migrando para o Linux. Porém, ao lado destas histórias de sucesso, temos vários casos em que tudo deu errado. A pergunta que fica é "porquê?" Pensamos que todos nós conhecemos histórias de migrações que deram errado. Infelizmente essas histórias são mais numerosas do que deveriam ser e, pior, boa parte delas poderia ser evitada com alguns cuidados. Talvez por culpa do modo como o Linux começou a ganhar o seu espaço, se esgueirando e infiltrando nas organizações, falta um planejamento em boa parte dessas histórias de horror. É muito importante lembrar que cada usuário insatisfeito tem um grande poder de multiplicação e pode causar grandes estragos ao Linux. Alunos de uma faculdade hoje, podem ser os gerentes de TI amanhã, e a opinião de um gerente de TI pode vetar todo um projeto. Devemos aprender com nossos erros, ou estaremos fadados a repeti-los à exaustão. Os tópicos a seguir mostram os principais e mais repetitivos fatores de desastre, e que devemos tomar cuidado: 10.1.1 - Hardware Ineficiente É o que mais acontece na implantação de Linux em instituições de ensino, quando os computadores não conseguem fazer mais nada resolvem colocar Linux, com a alegação de que o Linux funciona bem em hardware antigo. Então é instalada a novíssima distribuição "x", com KDE 3.1 e OpenOffice, em alguns Pentium 100 com 32MB. Resultado: usuários insatisfeitos e fracasso total. É muito importante dimensionar corretamente o hardware a ser utilizado. Antes de instalar Linux nesses tais computadores, faça a instalação em um deles e tente utilizá-lo. Muitas vezes um pouco de bom senso resolveria todo o problema, mas alguns "administradores", instalam o software e depois desaparecem, não o utilizam e não tem a mínima idéia de que o Mozilla demora exatos 4 minutos para aparecer na tela. 130 131 Isso sem contar com as próprias precariedades e inconstâncias do hardware antigo. Pentes de memória defeituosos, mal-contatos, fontes estranhas, coolers desregulados, HDs com badblocks e outros problemas que, se não conhecemos, podemos imaginar. Se você for reaproveitar hardware considerado obsoleto, faça dúzias de testes. Teste bem a memória, verifique poeira nos coolers e na fonte, limpe os contatos, enfim, faça um serviço de manutenção completo. Você pode saber que as máquinas ficam travando porque a placa de vídeo está com um mal contato, os seus usuários vão achar que a culpa é do Linux. Se a sua organização quer realmente aproveitar esses computadores antigos, aproveite-os onde podem ser realmente eficientes. Utilize-os como terminais remotos, roteadores, servidores de e-mail, servidores web... coloque-os onde possam fazer diferença. Uma sala com 20 computadores 486 sendo terminais remotos de um computador mais potente traz uma imagem muito mais bonita ao Linux do que esta mesma sala com todos os computadores rodando localmente o XFree86 4.3.0 e Mozilla. 10.1.2 - Simplesmente não funciona Tudo está pronto, agora basta instalar a única impressora do departamento, uma XYZ-Laser1234, que não funciona!!! Hoje em dia esse problema é menos comum, quase todos os dispositivos de hardware são suportados pelo Linux. Porém, ser menos comum não quer dizer que não ocorra. Antes de começar toda a migração, antes de solicitar aquele novíssimo periférico de US$2000, verifique se ele funciona no Linux. Se não funcionar, apesar da culpa ser sua por não haver prestado atenção, quem vai levar a culpa é o Linux em si. Verifique em mecanismos de busca, fóruns e listas de discussão se o tal dispositivo é suportado e só depois comece instalar. Se o dispositivo não for suportado, pode-se pensar em algumas correções mas é importante já ter essas possibilidades em vista e deixar os seus usuários avisados. Manter um computador com "aquele" sistema proprietário para poder baixar as fotos da câmera digital e depois colocá-las na rede via samba é uma solução plausível (enquanto isso você pode correr 131 132 atrás do suporte à tal câmera). O importante é não deixar os seus usuários sem o acesso ao tal dispositivo. 10.1.3 – Evite Exageros Este é um problema que vem se tornando cada vez mais comum. O gerente que migrar os servidores da empresa para Linux e pergunta o que precisa ser alterado, o administrador olha e pede para trocar os servidores atuais por alguns QuadriXeon com HDs SCSI U360 e 4GB de RAM, para poder usar como servidor de web, ftp e e-mail. Obviamente o gerente prefere continuar com o sistema antigo, mais um tiro n'água. Um dos principais fatores para a adoção do Linux nas empresas tem sido a redução de custos. Depois de implantado é que se costuma verificar a sua estabilidade e segurança (e quem sabe ganhar um "parabéns" do chefe). Pedir um hardware irreal e extravagante no momento da implantação apenas vai afastar a sua empresa do Linux. Se o sistema atual funciona no hardware que a sua empresa já tem, ela dificilmente vai trocar por outro sistema que precisa de 3 vezes mais hardware. Garante-se que depois de funcionando, será bem mais fácil pedir um pouco de memória para funcionar melhor ainda. Em caso da implementação de novos sistemas, use o bom senso. Escolha peças de qualidade, que possam fazer o serviço que o cliente pediu, mas não exagere. Você não precisa de um Pentium IV para ser o gateway da sua rede. Economize onde puder para poder gastar onde precisar. 10.1.4 - Software não existe Isso acontece. Em uma lista de discussão, alguém postou uma mensagem dizendo que havia migrado uma agência de publicidade para Linux e que agora queria saber onde encontrar um Corel Draw ou equivalente para Linux. Sejamos sinceros, na área de editoração o Linux deixa muito a desejar e quem fez esta migração deveria saber disso. Muito mais útil para a tal agência deveria ser um servidor de arquivos e impressão, para facilitar a vida dos usuários e não n computadores sem os softwares de que eles precisam para trabalhar. 132 133 Outra área em que isso acontece com uma certa freqüência é em laboratórios, onde muitas vezes não existem drivers para os dispositivos de aquisição de dados e sequer um programa para conseguir coletar estes dados. Em alguns casos é vantajoso ao próprio laboratório desenvolver seu próprio driver e software de controle e coleta, o que não pode acontecer é descobrir isso depois de tudo instalado e com várias medidas esperando para ser feitas. Imagine que após uma migração, alguém descobre que o banco de dados que se utilizava antes é totalmente incompatível com os bancos de dados existentes para Linux? E aí? Como a empresa trabalha? 10.1.5 - Documentação não existe O software necessário existe (ou um equivalente), porém ninguém sabe como usá-lo! O "administrador" instala tudo e some, qualquer dúvida é respondida com "Dá uma procurada por aí..." Com certeza essas atitudes não ajudam nem um pouco na popularização do Linux. É importante verificar a documentação do software antes de disponibilizá-lo aos seus usuários. Se não houver documentação, é necessário criá-la e torná-la disponível de maneira acessível. Vamos lembrar que nem todos precisam ser profissionais de informática para usar o computador, a secretária está querendo apenas escrever uma carta. Além da documentação, dependendo da extensão da migração e do conhecimento dos seus usuários, é interessante ministrar cursos de treinamento para que possam exercer corretamente suas funções. 10.1.6 - Software e documentação existem, mas é impossível de usar Outras vezes existe tanto o software quanto a documentação porém, por algum motivo a utilização do tal software é totalmente improdutiva. Um bom exemplo disso é o próprio OpenOffice quando o hardware disponível deixa um pouco a desejar, a lentidão de uso torna o trabalho impossível. 133 134 Ou o software pode ser simplesmente muito mais difícil do que o anterior. Nem todo mundo acha interessante utilizar o vi e LaTeX para escrever um documento, e você pode entregar todos os livros de LaTeX e cartões de referência do vi, a pessoa não vai gostar e vai voltar correndo para o processador de textos que conhece, e espalhando aos quatro ventos que o Linux é muito difícil. 10.1.7 - Pessoal Técnico Muitos dos profissionais do Linux começaram sua carreira profissional assim, sendo o "curioso" que acaba se tornando administrador de uma rede e, depois de muito sofrer, se tornou um profissional de verdade. Uma história bonita, mas infelizmente na trilha do sofrimento, haviam muitos usuários que sofreram junto e atualmente devem odiar o Linux. Afinal, quem agüenta um sistema estável em que não se pode imprimir, deve ser reinstalado toda semana, o firewall barra absolutamente todos os pacotes entre outros terrores que podem haver acontecido. Acredite, administrar uma rede é bem diferente de cuidar do computador da sua casa. O simples fato de haver instalado o Linux e visto uma página do Apache com "It Worked!" não o torna um administrador de redes e muito menos um especialista em webservers. Instalar o sistema em casa é um bom começo, mas antes de pegar a responsabilidade de cuidar de uma rede ou mesmo de alguns servidores é importante saber de verdade o que estará fazendo. Ler a documentação disponível e treinar em casa é um ótimo caminho a seguir, depois que conhecer como funciona é a hora de dar o passo seguinte e assumir responsabilidades. 10.8 - O beta-tester Normalmente este tipo de administrador conhece o sistema e sabe como mantêlo funcionando. Porém, sua ânsia por novidades e um certo espírito audacioso põem tudo a perder. Talvez deixando os usuários uma semana sem poder usar a rede enquanto tenta trocar o NIS por LDAP, ou quando instala o Apache 2.0 em todos os servidores e depois descobre que um módulo utilizado por todas as páginas da empresa não é suportado. 134 135 Mais importante que possuir todas as últimas e mais interessantes tecnologias e todos os softwares em sua última versão é manter o sistema funcionando! Os usuários não querem saber se o método "x" é muito mais seguro que o método "y" o que eles querem é o sistema no ar e querem agora. Se o método "x" não permite isso, mantenha o método "y". Trocar de servidor de e-mail e métodos de autenticação a cada semana não é agradável, muito menos ficar trocando o gerenciador de janelas padrão de seus usuários toda vez que você acha algo interessante (uau! o Afterstep deixa ter barra de título transparente!) Se a nova feature é realmente tão interessante, implemente-a primeiro na sua máquina, ou em casa, ou talvez em uma ou duas estações selecionadas para testes. O que interessa é não prejudicar seus usuários. Nós sabemos que em alguns momentos a interrupção do serviço é inevitável, mas estas interrupções devem ser raras e quando ocorrerem durar apenas o tempo necessário. Para concluir, o principal erro, por detrás de todos os outros é a falta de planejamento. Através de testes controlados e alguns estudos feitos antes da implantação do Linux em sua organização, boa parte destes erros pode ser eliminada, ou pelo menos minimizada. Muitos dos que atualmente são profissionais Linux cresceram através destes (e outros) erros e alguns acertos; está na hora de pensar se vale a pena para cada bom profissional criarmos vários usuários anti-Linux. 10.9 - Custo de migração para Linux é "proibitivo", diz estudo da Folha Online A Microsoft não precisa temer o impacto do Linux, sistema operacional de código aberto, que tem ganhado espaço em empresas e tem o apoio de companhias como a IBM, HP e Sun. Segundo um estudo do Yankee Group divulgado nesta segunda-feira, o custo da migração do Windows para o Linux é "proibitivo" para as companhias. Cerca de 90% das 300 companhias com 10 mil funcionários ou mais entrevistadas disseram que uma mudança "significativa" ou "total" do Windows para o Linux seria muito cara, extremamente complexa e levaria muito tempo para ser implementada. A 135 136 pesquisa também afirma que a mudança para o sistema operacional de código aberto não traria nenhum ganho para as grandes empresas. Para fazer o estudo, o Yankee entrevistou mil executivos de tecnologia do mundo inteiro. "Em grandes empresas, uma mudança total ou significativa para o Linux seria três ou quatro vezes mais cara e levaria três vezes mais tempo para ser implementada do que uma atualização do Windows", disse Laura DiDio, analista do Yankee. A pesquisa ainda afirma que o Linux tem realmente ganhado bastante espaço, mas nos próximos dois anos ele não vai ameaçar o Windows nos segmentos de servidores e de estações de trabalho. 10.10 - Os mitos do sistema aberto Foi publicado em 2003 no site ComputerWorld um artigo muito interessante desmistificando mitos em relação ao software livre levando em conta o software livre como solução para empresas, sem considerar aspectos técnicos. Mostra que o principal atrativo do Linux não é o seu preço baixo (as empresas não estão preocupadas só com o preço e muitas vezes estão dispostas a pagar caro pela solução de um problema) e sim sua estabilidade e qualidade. Desmistifica a velha história de que software livre não tem suporte e também que o Linux não está pronto para o desktop. Com acesso irrestrito ao código-fonte, para execução ou modificação à vontade, o modelo de sistema aberto é muito diferente de software proprietário. E essas diferenças têm se provado atrativas o suficiente para fazer muitos CIOs mudarem. Mas, nessa briga que tem entre seus principais protagonistas a gigante e onipresente Microsoft, o resultado está longe da conclusão. E possivelmente não repousará em nenhum dos modelos que hoje estão disponíveis no mercado. Para tirar o foco passional da discussão, COMPUTERWORLD ouviu empresas dos Estados Unidos e Europa que já adotaram sistemas abertos em várias aplicações. As respostas são surpreendentes — e acabam com alguns mitos que rodeiam essa discussão. 136 137 Mito 1 - O Atrativo é o Preço: Um dos benefícios mais alardeados dos sistemas abertos é o preço. Baixe o software e instale-o sem pagar um centavo. Essa é a teoria. Para um número surpreendente de empresas usuárias, porém, o preço do sistema aberto — ou a falta de — é irrelevante. “Não se trata de ser barato”, insiste John Alberg, CIO, CTO e vice-presidente de engenharia da Employease, administradora de benefícios de empregados de mais de mil organizações nos Estados Unidos. “Tem a ver com funcionar eficazmente – e estamos dispostos a pagar bastante por isso. Queremos software estável que faz o que promete.” O que Alberg acha fascinante na mudança para sistema aberto é a melhoria de desempenho resultante. A migração para Linux, por exemplo, reduziu drasticamente o índice de falha de servidor da empresa. Normalmente, sob o NT, um servidor da empresa falhava a cada dia. “Agora, temos no máximo duas falhas por mês e freqüentemente não temos nenhuma em um mês”, diz o executivo. Mesmo assim, Alberg tem o cuidado de deixar claro que seu compromisso com sistema aberto não é um comportamento de compra cego de um fanático. Ele não recorreria a sistema aberto se fosse mais caro do que código proprietário, por exemplo. “O Solaris é um sistema operacional comercial forte. Nós o teríamos escolhido em vez de sistema aberto se fosse mais barato”, completa o executivo. Mito 2 - A Economia não é Real : O software de sistema aberto foi descrito como “gratuito”, como um animal de estimação dado de presente. Ou seja, é fato sim que existe ausência de taxas de licenciamento, mas que elas têm de ser contrabalançadas com custos de treinamento, suporte e manutenção. Por outro lado, os proponentes de sistema aberto também citam custos reduzidos das mudanças exigidas pelo fornecedor, em que os fabricantes requerem que os usuários migrem para uma nova versão ou paguem por suporte extra. A maioria dos usuários que contatamos para esta reportagem afirmou ter uma economia líquida com software sistema aberto – freqüentemente, substancial. Na Sabre Holdings, dona do sistema mundial de reservas aéreas Sabre, está em andamento uma importante migração para sistema aberto, impulsionada pela projeção de uma 137 138 economia de dezenas de milhões de dólares nos próximos cinco anos. A companhia possui dois grupos distintos de computadores, explica o CTO, Craig Murphy. Onde a confiabilidade é essencial, como as aplicações para venda de produtos (ou “dados de registro”), a Sabre Holdings usa sistemas HP tolerantes a falhas. Mas aplicações de compra — em que clientes e agentes de viagens pesquisam os melhores negócios — rodam em um data center de máquinas mais baratas. Nesse ambiente, cada computador tem seu próprio banco de dados aberto MySQL, sincronizado por uma aplicação da GoldenGate com as regras, tarifas e informações sobre disponibilidade no sistema de dados de registro tolerante a falhas. Os sistemas de compras estavam em HP-UX, mas todos esses servidores foram passados para um sistema operacional sistema aberto — Red Hat Enterprise Linux AS. “O grande atrativo nesse caso foi o custo de escala zero porque sistema aberto não requer licenças adicionais à medida que uma instalação cresce”, diz Murphy. Mito 3 – Não Existe Suporte: De acordo com Gary Hein, analista da empresa de consultoria em tecnologia Burton Group, o suporte técnico é a principal preocupação do usuário potencial de sistema aberto. “Para quem você telefona quando as coisas dão errado?” Na prática, a situação é complexa. A maioria dos projetos de sistema aberto tem um grande corpo de desenvolvedores, mailing lists na internet, arquivos e bancos de dados de suporte — tudo disponível sem custo. Esta é a boa notícia. A notícia não tão boa é que não existe uma fonte única de informação. “Uma pergunta pode resultar em múltiplas respostas conflitantes sem uma fonte oficial”, completa Hein. Ainda assim, múltiplas fontes de suporte podem ser melhores do que ficar preso a um fornecedor. “Principalmente quando este oferece suporte ruim ou se recusa a continuar suportando software de uma determinada safra”, diz Klaus Weidner, consultor sênior da empresa de consultoria em tecnologia Atsec. Mito 4 - É um Campo Minado Legal: Existe uma variedade de licenças de sistema aberto e ajudar os CIOs a entender suas implicações é um bom negócio para advogados – aliás, muito bom negócio. “As preocupações dos CIOs giram em torno principalmente das implicações de utilizar código que eles não podem verificar seu direito legal de usar”, diz Jeff Norman, sócio de prática de 138 139 propriedade intelectual do escritório de advocacia Kirkland & Ellis. “Só porque você tem um pedaço de papel dizendo que você é proprietário da ponte do Brooklyn, não significa que você a possua realmente.” Para alguns usuários, a indenização de terceiros é uma opção. No dia 17 de novembro de 2003, por exemplo, o JBoss Group anunciou que vai indenizar e defender seus clientes em ações judiciais de violação de copyright ou patente do JBoss. Outros fornecedores de softwares de sistema aberto — incluindo HP, Red Hat e Novell — também oferecem indenização de vários tipos. Mito 5 - Sistema Aberto Não é para Aplicações de Missão Crítica: As aplicações de missão crítica não poderiam ser mais cruciais do que no segmento bancário, onde os sistemas de transação têm que funcionar e ponto final. Experimentar sistema aberto, com seus riscos inerentes de violação, segurança e manutenção, pode ser considerado um anátema. “Os bancos tendem a ser instituições mais conservadoras primeiros seguidores, se você preferir, em vez de líderes”, diz Clive Whincup, CIO do banco italiano Banca Popolare di Milano. Avesso a descartar as aplicações de operações bancárias legadas, que totalizam cerca de 90 milhões de linhas de Cobol, mas incapaz de mantê-las rodando sob o sistema operacional OS/2 Presentation Manager, da IBM, Whincup utilizou uma ferramenta de integração proprietária da Jacada para conectar Cobol ao WebSphere da IBM — rodando em uma partição Linux no mainframe do banco. O resultado: aplicações antes desconexas agora rodam rapidamente em um navegador web, proporcionando maior velocidade de transação, menos tempo de treinamento de caixas de banco e muito mais oportunidades para venda cruzada de serviços do banco. Mito 6 – Sistema Aberto não está Pronto para o Desktop: Na Baylis Distribution, empresa de transporte e distribuição, o diretor de TI Chris Helps deparou com o banco de dados MySQL quatro anos atrás quando a empresa quis criar um data warehouse. E sua experiência posterior em rodar o Red Hat Linux em um 139 140 ambiente de produção, com usuários se conectando ao servidor Linux principal a partir do que ele descreve como “thin clients com um sistema operacional Linux enxuto”, levou-o a reavaliar a política desktop da empresa. No final, a empresa optou por substituir a Microsoft em desktops por ferramentas de produtividade pessoal de código aberto e Linux para atividades como processamento de texto e planilhas. “Não fizemos uma avaliação formal da economia, mas um cálculo superficial é de que custa cerca de US$ 1,8 mil por estação para instalar todas as ferramentas Microsoft de que um usuário precisa. Com ferramentas sistema aberto e Linux, fica metade disso”, estima Helps. Moral da História: Sistema aberto é ideal para todas as organizações? No fim das contas, argumenta Andy Mulholland, CTO da Cap Gemini Ernst & Young, é uma questão de atitude. “Os argumentos a favor e contra software de sistema aberto, com freqüência, são muito banalizados”, afirma. “Não é uma questão de tecnologia; é mais uma questão de modelo de negócio.” Isso significa que empresas com um foco externo, acostumadas a trabalhar em colaboração com outras organizações e talvez já usuárias de tecnologias colaborativas, estão posicionadas para usufruir muito mais de ambientes abertos do que empresas com um foco interno, que vêem a tecnologia em termos de economia de custo. 10.11 - Custo Zero: A Fama do Linux Um dos maiores problemas que se enfrenta no mercado de pequenas e médias empresas para vender soluções em Linux é sua fama de CUSTO ZERO. Os argumentos sobre o valor e preços dos serviços em Linux normalmente estão referenciados aos custos de licenciamento de outros sistemas operacionais, já que os custos são os principais motivadores por possíveis substituições de sistemas como Windows ou Novell. No entanto, se observarmos os preços que se cobram pelos serviços em Linux, normalmente desenvolvidos por profissionais de maior valor no mercado, é fácil verificar que são altos o suficiente para fazer o cliente pensar se é melhor pagar licenças ou migrar para Linux, onde não há custo de licenciamento, mas há custo de mudança de cultura, muito 140 141 embora as soluções em Linux apresentem novas possibilidades jamais vislumbradas em outros sistemas, mas que se tornam mais evidentes somente no médio prazo. Considerando que cerca de 58% dos PC em empresas possui Windows pirata (em 2001, segundo a ABES), o custo da migração para Linux poderia ser considerado um custo de legalização, representando um custo NOVO, e não uma economia de licenças, como normalmente se argumenta. Daí a expectativa de que se troque o custo ZERO ILEGAL (pirata) pelo custo ZERO LEGAL (Linux). Se este fosse o único argumento para convencer o cliente, as vendas não ocorreriam para cerca de 58% das empresas, que já trabalham com software gratuito (piratas) sem terem pago nada para ninguém, mesmo que em situação ilegal. Estes estão apostando na chance muito pequena, ainda, da ABES bater em suas portas! No entanto, como hoje a grande maioria das empresas trabalham em rede e em aplicações via Internet, a linha de raciocínio que deve ser analisada é o custo operacional de se utilizar um sistema que não funciona bem em redes e em aplicações via Internet, como o Windows, por não ter sido projetado para isto, com diversas vulnerabilidades a ataques e vírus, e a redução que pode ser obtida trabalhando com um sistema estável, projetado especialmente para este tipo de aplicação, como é o caso do Linux. Neste sentido, é preciso conhecer melhor os custos operacionais envolvidos, tais como: - Quantidade de profissionais e tempo dedicado no suporte para cada sistema; - Média de indisponibilidades por falhas, infecções por vírus ou reinstalações freqüentes por instabilidade ou erros de projeto em cada sistema; - Tempo dedicado em rotinas de atualização e instalação de anti-virus; - Tempo dedicado em pesquisa, download e instalação de correções de falhas; - Queda de produtividade nas atividades dependentes da rede ou da Internet, devido ao baixo desempenho de redes com protocolos diferentes de TCP/IP, não otimizados para redes ou Internet; 141 142 - Tempo investido em medidas para contornar a insegurança do sistema (backups mais freqüentes, duplicidade de arquivos, etc). A estes custos devem ser somados os custos de hardware, muito mais exigentes em outros sistemas, incluindo não somente o custo mais elevado na implantação como também as atualizações muito mais freqüentes, normalmente anuais, totalmente dispensáveis em Linux. Mas como obter estas informações? É facil, basta conversar com qualquer empresa que migrou ou está migrando para Linux. Hoje já são muitas. O Linux já domina cerca de 30% dos servidores no mundo, segundo o IDC. Somente no Brasil, cerca de 9% dos servidores em empresas de todos os portes já migraram para Linux. 142 143 11. REFERÊNCIAS BIBLIOGRÁFICAS ALMEIDA, Marcus Garcia. Linux - Sistema Operacional II . São Paulo: Brasport, 2001. ASTURIAN, Rodrigo. Revista do Linux. Disponível em < [email protected]> . Acesso em 27 Ago 2004. BORGES, Araujo Jackson. Comandos do Linux – uso eficiente e avançado. São Paulo: Ciência Moderna, 2001. CARDOSO, Adilson da Silva. Desvendando os Segredos do Linux – Comandos e Serviços. São Paulo: Brasport, 2003. CERVO, A. L.; BERVIAN, P. A. Metodologia Científica. 4ª edição. São Paulo: Makron Books, 1996. COLÉGIO ALBERT SABIN. Pl Tecnologia. Disponível em www.pl.com.br. Acesso em 28 Ago 2004. CRAIG, Hunt. Windows NT TCP/IP Network Administration. EUA: O’Reilly, 1998. FERREIRA, Rubem E. Linux Guia do Administrador do Sistema. São Paulo: Novatec, 2003. GALEOTE, Sidney. Windows NT. Respostas e perguntas. São Paulo: Érica, 1994. GIL, Antônio C. Como Elaborar Projetos de Pesquisa. 3ª edição. São Paulo: Atlas, 1996. JACK, Tackett. Usando Linux - Edição Especial. Rio de Janeiro: Campus, 2000. LAKATOS, E. M.; MARCONI, M. A. Metodologia Científica. 2ª edição. São Paulo: Editora Atlas, 1991. MAGRIN, Maria Heloiza. Pocket Guia do Profissional Linux. São Paulo: Digerati, 2004. 143 144 MENDONÇA, Nelson; BOAS, Vilas Tiago. Cursando GNU/Linux. São Paulo: Brasport, 2004. MICHAEL, Tobler J. Desvendando Linux. Rio de Janeiro: Campus, 2001. MORIMOTO, Carlos. Entendendo e Domingo o Linux. São Paulo: Digerati, 2004. PFÜTZENREUTER, Elvis. A Revista do Linux. São Paulo: Conectiva. Disponível em <[email protected] >. Acesso em 01 Set 2004. PUNK, Piter. Por que deu Errado?. Disponível em <http://computerworld.terra.com.br/AdPortalV3/adCmsDocumentoShow.aspx?documento=2 7900&Area=1> Acesso em 27 Ago 2004. RODRIGUES, José Arnaldo. Windows NT Server. São Paulo: Celta, 2003 RODRIGUES, M. A. Migrando para o Linux. São Paulo: Conectiva Informática, 1999. RUSSEL, Charlie; CRAWFORD, Sharon. Guia autorizado Microsoft Windows NT Server 4.0. São Paulo: Makron Books, 2003 SABBATINI, Renato M. E. Jornal Correio Popular. Caderno de Informática. Disponível em www.epub.org.br/correio/corr308i.htm Acesso em 02 Set. 2004. SEVERINO, A. J. Metodologia do Trabalho Científico. 21ª edição. São Paulo: Cortez, 2000. SHAH, Steve; GRAHAM, Steven. Linux – Administração – Teoria & Prática. São Paulo: Alta Books, 2003. STINSON, Craig. Windows NT. Guia autorizado Microsoft. São Paulo: Makron Books, 1996. 144