Introdução ao Linux para Executivos André Alexandre Gaio Consultor em soluções Linux, Unix, Novell e Microsoft O Unix Para que possamos melhor entender o Linux, vamos citar algumas características do Unix. O Unix é um sistema operacional multiusuário e multitarefas que foi desenvolvido tendo-se em mente um sistema operacional multiplataforma, ou seja portável. O Unix é dividido em duas partes que são: o kernel e os aplicativos e serviços, onde o kernel fornece toda a infraestrutura para suportar as aplicações e serviços. Breve Histórico Por volta de 1965, a Bell Labs, o MIT e a General Eletric (na época um importante fabricante de computadores) decidiram criar um sistema que suportasse centenas de usuários de tempo compartilhado simultaneamente e o batizaram de MULTICS (Multiplexed Information and Computing Service). Breve Histórico O MULTICS não funcionou como o esperado, e a Bell Labs retirou-se do projeto e a General Eletric saiu do ramo de computadores. Um dos cientistas da Bell Labs que havia trabalhado no projeto MULTICS, Ken Thompson, descobriu um pequeno computador PDP-7 que ninguém estava usando e começou a escrever uma pequena versão simplificada e monousuária do MULTICS. Este trabalho mais tarde desenvolveu-se no UNIX, que se tornou popular no mundo acadêmico, entre órgãos do governo e entre muitas empresas. Em 1973 o UNIX foi reescrito em linguagem C pelo próprio criador da Linguagem Denis Ritchie. Breve Histórico O uso do Unix dentro da AT&T cresceu tanto que foi criado um grupo de suporte interno. Nesta época a AT&T não comercializava o sistema e fornecia cópias do código fonte às universidades para fins educacionais. Com o código fonte amplamente disponível, várias empresas desenvolveram suas próprias versões (incompatíveis) que levaram ao caos. Para tornar possível criar programas que poderiam executar em qualquer sistema Unix, o IEEE desenvolveu um padrão para o Unix chamado POSIX, que qualquer versão do Unix agora suporta. O POSIX define uma interface mínima de chamadas de sistema que sistemas compatíveis com o Unix devem suportar. Breve Histórico O uso do Unix dentro da AT&T cresceu tanto que foi criado um grupo de suporte interno. Nesta época a AT&T não comercializava o sistema e fornecia cópias do código fonte às universidades para fins educacionais. Com o código fonte amplamente disponível, várias empresas desenvolveram suas próprias versões (incompatíveis) que levaram ao caos. Para tornar possível criar programas que poderiam executar em qualquer sistema Unix, o IEEE desenvolveu um padrão para o Unix chamado POSIX, que qualquer versão do Unix agora suporta. O POSIX define uma interface mínima de chamadas de sistema que sistemas compatíveis com o Unix devem suportar. Breve Histórico Entre 1977 e 1982 a Bell Labs combinaram várias versões do Unix da AT&T num único sistema chamado de System III. Tal sistema evoluiu até chegar ao System V, para o qual a AT&T comprometeu-se em dar suporte em 1983. Enquanto isso na Universidade de Berkeley na Califórnia, partindo-se da versão anterior do System III, desenvolveram o seu próprio UNIX chamado de BSD. Breve Histórico Não demorou para que a AT&T percebesse o grande valor do Unix e o comercializasse. Desta forma lançou uma licença proibindo que o código fonte fosse usado em cursos. Para corrigir esta situação, Andrew Tanenbaum, decidiu escrever um sistema operacional do zero que fosse inteiramente compatível com o Unix, mas não tivesse nenhuma linha de código do mesmo. Nasce então o Minix, um Unix para fins didáticos. O Linux Linux é o nome dado a um Kernel, inicialmente criado como hobby por um então jovem estudante chamado Linus Benedict Torvalds da Universidade de Helsinki na Finlândia. Torvalds se inspirou no Minix para criar o seu kernel, mas o seu objetivo era criar um “Minix melhor que o Minix”. Depois de algum tempo trabalhando ele enviou para a lista de discussão comp.os.minix a seguinte mensagem: O Linux “...Você sente saudades dos bons dias do minix-1.1, quando os homens eram homens e escreviam seus próprios device drivers? Você está sem um bom projeto e morrendo de vontade de colocar as mãos num sistema operacional que você possa modificar de acordo com as suas necessidades? Você acha frustrante quando tudo funciona bem no Minix? Sem mais noites em claro para fazer com que um programa funcione? Então esta mensagem pode ser exatamente para você. :-) Como mencionei há um mês, estou trabalhando em uma versão livre de um sistema operacional similar ao Minix para computadores AT-386. Ele finalmente alcançou o estágio onde possa ser utilizado ( ou não, dependendo do que você deseja), e eu estou disposto a colocar os fontes disponíveis para ampla distribuição. Ele está apenas na versão 0.02, mas eu tenho executado nele sem problemas programas como bash, gcc, gnumake, gnu-sed, compress, etc. ...” O Linux No dia 5 de outubro de 1991 Linus Torvalds anunciou sua primeira versão oficial do Linux. Desde então muitos programadores espalhados pelo mundo têm respondido o seu chamado e contribuído para fazer do Linux o que ele é hoje. A história do GNU No início da década de 80, com a crescente popularização do Unix e com as licenças de software cada vez mais rígidas, que proibiam a cópia do software, Richard Stallman sentia a necessidade crescente de soluções de softwares que fossem livres para serem usadas e distribuídas livremente. Ele aspirava por ferramentas como compiladores, editores de textos, utilitários que pudessem ser usados em várias máquinas sem que se tivesse que pagar licenças para cada uma delas. A história do GNU Tal frustração resultou na criação do Projeto GNU (GNU is Not Unix) em 1984 e na Free Software Foundation, cujo propósito é criar versões com código livre destas ferramentas . A GPL As novas ferramentas desenvolvidas pelo projeto GNU precisavam de um meio que as tornasse permanentemente livres, criou-se então a GPL (GNU Public License), também chamada de “copyleft” (uma brincadeira em relação à palavra copyrigth). Os programas criados sob a GPL podem ser vendidos, porém qualquer código derivado de código GPL, estará automaticamente incluído nesta licença. Este esforço é necessário para que programas continuem livres mesmo que tenham sido modificados para fins comerciais. A GPL Geralmente as pessoas confundem o termo “livre” (free) com gatuíto. De acordo com Stallman, Free Software é uma questão de liberdade e não de preço. Software livre, refere-se à liberdade dos usuários de executar, copiar, distribuir, alterar e melhorar o software. Stallman ainda vai mais além, “Mais precisamente, refere-se a quatro tipos de liberdades para os usuários de software: A GPL Liberdade de executar o programa com qualquer propósito; ✔Liberdade para estudar como ele funciona e adaptá-lo às suas necessidades; ✔Liberdade para redistribuir cópias para colaborar com seus colegas e amigos; ✔Liberdade para melhorar o programa e divulgar as suas melhorias ao público, de forma a beneficiar toda a comunidade.” ✔ A GPL A GPL regulamenta as liberdades centrais, definindo as condições da cópia distribuição e modificação dos programas. Embora qualquer pessoa possa modificar uma cópia do programa, é obrigatório que: Exista um aviso, em destaque, em cada arquivo modificado, de que os dados originais foram alterados. Exista um aviso de que o trabalho distribuído ou publicado deriva totalmente ou em parte do programa original. A GPL Caso o programa seja executado de forma interativa, no início de sua execução deve ser apresentada a informação de copyright e de ausências de garantias (ou de que a garantia ocorre por conta de terceiros.). Em qualquer caso a licença não poderá ser alterada e o usuário sempre deverá ter acesso à mesma, na íntegra. Na distribuição de um software livre no formato de código objeto ou executável, é necessário que esteja disponível o código fonte do programa. Não é permitida a utilização de partes de um código GPL em um programa proprietário. O programa final passará a ser automaticamente GPL. GNU e o Open Source Embora mais popular, a licença GPL não é a única usada no desenvolvimento do Free Software. Bruce Perens, outro aficcionado por software livre formalizou o termo Open Source para se referir a qualquer programa que seja registrado sob os critérios do documento Open Source Initiative. Tais critérios se encontram em . Existem outros tipos de licença Open Source, como: GNU e o Open Source Artistic Licence (Usada pelo criador do PERL, Larry Wall) ✔Apache Licence ✔GNU Library Licence ✔ GNU e o Open Source Algumas são muito restritivas a comercialização. Como a GNU, outras são mais liberais como a Apache License e a GNU Library License que estabelece um meio termo permitindo que o código GNU possa ser utilizado comercialmente desde que o seja na forma de biblioteca. Filosofia do Linux A filosofia básica do Linux consistem em 3 diretrizes básicas: Filosofia do Linux 1-) Sistemas operacionais fechados não oferecem aos usuários o que eles realmente desejam, além disto o usuário fica incapacitado de melhorá-lo e distribuir estas melhorias à comunidade. Existem usuários de sistemas em tempo real que criaram uma versão do Linux chamada de RTLinux, este é baseado no código fonte do Linux padrão, mas foi adaptado às necessidades destes usuários. Mais informações em http://rtlinux.org. Filosofia do Linux 2-) Ênfase na eficiência, O Linux foi portado para uma vasta gama de plataformas, tanto grandes como pequenas. Muitas destas pequenas possui recursos limitados tornando o Linux ideal para quando se necessita fazer mais com menos. Filosofia do Linux 3-) Ênfase no uso de ferramentas Open Source, o Linux é desenvolvido puramente ustilizando-se ferramentas Open Source, para torná-lo o mais simples possível e não sobrecarregar os desenvolvedores com o pagamento de licenças, e outras questões do nível de licenciamento. Os padrões do linux O Linux adere aos padrões POSIX. Este padrão foi criado para padronizar os sitemas UNIX, onde em dado momento cada fabricante tinha as suas próprias API´s de software, e suas próprias características no kernel, etc. O POSIX define um conjunto de API´s que devem ser padrão em todos os sistemas compatíveis com este padrão. Linux Standard Base O Linux Standard Base é um padrão que dita que qualquer programa desenvolvido obedecendo-o, deverá rodar em qualquer distribuição Linux sem problemas ou adaptações. Principais distribuições Linux Debian GNU/Linux (Intel X86, MIPS, Sparc, PPC, e Motorola 680x0) Red Hat Linux (Intel X86, Dec Alpha,MIPS e Sparc) Slackware Linux (KISS – Keep it Simple, stupid!)(Dec Alpha e Sparc) S.U.S.E Linux Turbo Linux (O Linux Aisático) Conectiva Linux Yellow Dog Mandrake Linux Etc… Principais distribuições Linux O que distingue as várias distribuições, são os programas, protocolos, práticas de empacotamento, instalação e gerenciamento de pacotes instalados, combinado com ferramentas de instalação, manutenção, documentação e outros serviços. Hoje em dia podemos dizer que todas as distribuições atuais derivam de três principais, Debian, Slackware e Red Hat. Principais Aplicações Estações de trabalho gráficas (CAD/CAM); Servidores de impressão e arquivos (SMB, NCP, NFS, etc) Servidores de Internet (POP, IMAP, SMTP, NEWS, HTTP, FTP, DNS, etc) Servidores de Diretórios Ldap. Desktop de trabalho (Pacote Oficce, Navegadores, Processamento de imagens, emulação de DOS e Windows, Programas científicos, Multimídia, etc.) Plataforma de desenvolvimento de software (C, C++, Java, Python, Perl, PHP, Fortran, etc.) Palmtops e sistemas embarcados (P.ex. mpeg player para carro – http://www.empeg.com) Principais características técnicas 1-) O Linux implementa a maior parte das características que se encontram em outras implementações do Unix. Principais características técnicas 2-) O Linux é um sistema operacional completo com multitarefa e multiusuário (Como qualquer outro Unix), o que significa que podemos ter vários usuários simultâneos rodando várias aplicações simultaneamente. Principais características técnicas 3-) O Linux é compatível com os padrões IEEE POSIX, System V e BSD e foi desenvolvido buscando-se a portabilidade dos fontes, programas feitos para Linux podem rodar ou serem portados para o Unix com o mínimo de esforço e vice versa. Principais características técnicas 4-) O Linux também implementa o controle de processos POSIX (que se usa nos shells csh e bash), os pseudo terminais (dispositivos pty), e teclados de diversas nacionalidades através dos mapas de teclados carregados dinamicamente. Suporta ainda consoles virtuais, que permite que se tenha mais de uma console aberta na máquina local e chavear entre elas facilmente. Principais características técnicas 5-) O kernel é capaz de emular por si próprio as instruções de um coprocessador 387, quando se tem máquinas sem co-processador aritmético (386, 486SX, etc) Principais características técnicas 6-) O Linux suporta diversos tipos de sistema de arquivos para guardar os dados e acessá-los, como por exemplo: Fat 16, Fat 32, NTFS, JFS, UFS, XFS, iso9660, smbfs, ncpfs, nfs, etc. Principais características técnicas 7-) O Linux implementa todo o suporte necessário para trabalhar com TCP/IP nativamente no kernel. Principais características técnicas 8-) O kernel foi desenvolvido para trabalhar com as características do modo protegido dos processadores da família i386. Principais características técnicas 9-) O Kernel suporta executáveis com paginação por demanda, o que significa que somente os fragmentos dos programas que necessitam estar na memória são carregados à partir do disco. As páginas dos executáveis são compartilhadas mediante a técnica de copy-on-write contribuindo para reduzir a quantidade de memória requerida pelas aplicações. Principais características técnicas 10-) Com a finalidade de aumentar a memória disponível, o Linux implementa a paginação em disco. Quando o sistema necessita de mais memória, ele aloca nos disco blocos de memória para o disco liberando-as assim e as retornando para a memória quando forem novamente necessárias. Principais características técnicas 11-) Os executáveis fazem uso das bibliotecas dinâmicas. Isto significa que teremos executáveis menores ocupando menos disco e menos memória. Principais características técnicas 12-) Para facilitar a depuração dos erros dos programas, o kernel pode gerar dumps da área de memória dos programas que tem finalizações anormais (arquivos core). Principais características técnicas 13-) Suporte a nomes de arquivos com até 256. Principais características técnicas 14-) Suporte a várias arquiteturas como MIPS, PPC, Intel x86, S390, StrongArm, M68K, Dec Alpha, PaRisc, etc. Principais características técnicas 15-) entre outras muitas :-) Empresas envolvidas IBM, HP, Dell, e Oracle são quatro gigantes do mundo de tecnologia que abraçaram o Linux com investimentos de bilhões de dólares em todo o mundo e tem ganho dinheiro com isto. Empresas envolvidas A Intel tem investido milhões no intuito de que o código do Linux rode com mais performance em seus processadores. O Investimento que a IBM fez no Linux de 1 bilhão de dólares há dois anos já foi recuperado. E ainda segundo a IBM, o Linux é o único sistema operacional que roda em todas as soluções de hardware da empresa. Empresas envolvidas Cerca de 15% das vendas no Brasil de servidores da linha Proliant da HP são máquinas com Linux. Entre várias outras empresas além das distribuições como a Conectiva que teve um papel fundamental na divulgação e tradução da documentação do Linux no Brasil. Considerações econômicas Custo de equipamento + Sistema Operacional Máquina Power Edge 2600 Dell P4 2.4Ghz, 512MB DDR, Controladora Raid, disco de 36GB SCSI, CdRom, floppy, Sistema operacional Windows2000 advanced 25 licenças - em inglês. Valor: R$ 24.089,77. Considerações econômicas Custo de equipamento + Sistema Operacional Mesma máquina sem o Windows : R$ 11.561,10. Diferença (Sistema Operacional para 25 usuários): R$ 12.528,67 Fonte: Site da Dell Considerações econômicas Treinamentos Controle de Recursos Rede Win2000 750,00 Implement. Infraest. Redes Win2000 750,00 Config. e Adm. do Windows 2000 R$ 750,00 Config. do Active Directory Win2000 750,00 R$3.000,00 R$ R$ R$ TOTAL Considerações econômicas Linux - Linux Linux Linux - Treinamentos Fundamentos do Sistema R$ 750,00 Administração Sistemas I R$ 650,00 Administração Sistemas II R$ 700,00 Administração Redes R$ 700,00 R$2800,00 TOTAL Mercado e Principais Cases Segundo o Gartner em 2002 o Linux respondeu por 6% do mercado mundial de servidores e em 2003 chegará a 9% e até 2007 estima-se que chegará ao patamar de 18%, superando 9 bilhões de dólares em receita. Testes com diversas distribuições Linux em universidades, órgãos governamentais, e em empresas ao redor do mundo mostram que este sistema é seguro, escalável e estável. Mercado e Principais Cases Nos estados Unidos, A maioria dos bancos de Wall Street, como o Morgan Stanley Dean Witter adotou o Linus em suas operações, inclusive aplicações de missão crítica. Num estudo de fevereiro feito pela consultoria Boucinhas & Campos Consultores descobriu que 41% das empresas brasileiras já testaram ou adotaram o Linux em alguma aplicação. Mercado e Principais Cases No Brasil empresas gigantescas como Itaú, HSBC, Real/ABN Amro, Telemar, Unilever, Lojas Renner, Casas Bahia, Gol Linhas Aéreas, Lojas Colombo, Sonae (BIG, Candia, etc), UOL, Droga RAIA, Habib´s, utilizam Linux como plataforma. Em estatais o uso é ainda mais disseminado como no Banco do Brasil, Petrobrás, Procergs, Metrô de São Paulo e Banrisul. Bibliografia Revista Info Corporate Maio/Junho de 2003 Sistemas Operacionais - Andrew Tannenbaum Guia do usuário Conectiva Linux Linux System Administration – Caldera Open Learning Diversos sites na Internet, como: http://www.umsanet.edu.bo/sociedad/LINUX/CAR DSIS.HTML http://www-3.ibm.com/e-business/br/linux/ http://www.dell.com.br Entre muitos outros. Mercado e Principais Cases A Goldman Sachs diz que 39% das empresas americanas usam Linux. A Uol está trocando a sua base de servidores Solaris para equipamentos com Red Hat Linux. Mercado e Principais Cases A Operadora de Telefonia GVT trocou alguns de seus servidores RISC por Linux em plataforma Intel e tiveram uma economia de cerca de um milhão de reais e pretendem até o ano que vem migrar todo as instâncias de seu Banco de dados Oracle em máquinas Risc por Linux. Mercado e Principais Cases As lojas Colombo após o término da migração no ano passado possuem mais de 3200 PDV´s e 290 servidores rodando Conectiva Linux. FIM