Curso: Técnico Gestão e Programação de Sistemas Informáticos 2010/2013 Formador: Índice Introdução .................................................................................................................................... 4 O que é Open Source? .............................................................................................................. 5 1 O que é Open Source? ............................................................................................................ 5 2 Características dos Projectos Open Source ............................................................................ 6 Características de um Sistema Operativo Open Source ................................................... 10 Linux: ...................................................................................................................................... 10 Distribuições e versões de um Sistema Operativo Open Source ..................................... 12 1Sistema Operativo Unix ......................................................................................................... 12 Distinguir entre distribuições e versões ................................................................................ 16 2 Distribuições de Linux .......................................................................................................... 16 2 Versões de Linux................................................................................................................... 17 Descrever a evolução histórica de um Sistema Operativo Open Source........................ 20 Mas porque o Linux é gratuito? .............................................................................................. 21 Licença GPL.............................................................................................................................. 22 GNU ......................................................................................................................................... 22 Comandos básicos do Linux .................................................................................................... 23 Explicar os processos de instalação e configuração de um S. O. Open Source ........... 26 Pré-Requisitos....................................................................................................................... 26 Requisitos Mínimos: ......................................................................................................... 27 Requisitos Recomendados: ............................................................................................ 27 Faça download do Ubuntu Lucid Lynx! ............................................................................. 29 Verifique o MD5 ................................................................................................................ 30 Grave o Ubuntu num CD ou numa pen USB! .................................................................. 30 Configure a BIOS ................................................................................................................. 31 Arranque do Ubuntu pelo CD ou pela pen ....................................................................... 32 Particionamento do disco .................................................................................................... 34 Noções básicas................................................................................................................. 34 Tamanhos das partições do Ubuntu.............................................................................. 34 Reduza a partição do Windows! .................................................................................... 35 Crie as partições necessárias para o Ubuntu! ............................................................. 36 Instalação do Ubuntu ........................................................................................................... 38 Configurações Pós-Instalação............................................................................................ 43 Página 2 Explicar os processos de Instalação e configuração de dispositivos e device drivers num S. O. Open Source .......................................................................................................... 44 Device Drivers ......................................................................................................................... 44 Classificação de Drivers ........................................................................................................... 45 Implementação e Instalação de Device Drivers .............................................................. 46 Teste de Device Drivers ........................................................................................................... 48 Protecção e Segurança dos S. O. Open Source ................................................................. 49 Segurança ................................................................................................................................ 49 Protecção ................................................................................................................................ 51 Fiabilidade dos S. O. Open Source ....................................................................................... 53 Partilha de informação e comunicação entre computadores nos S. O. Open Source .. 55 Partilha de informação ............................................................................................................ 55 Comunicação ........................................................................................................................... 56 Como serão os S. O. Open Source na década 2020 ......................................................... 57 Conclusão .................................................................................................................................. 59 Bibliografia ................................................................................................................................. 60 Página 3 Introdução Eu neste trabalho falo sobre o Sistema Operativo Open Source. As características do Open Source, historiar, o seu funcionamento procesos de instalação, de configuração, Protecção e Segurança do Sistema Operativo Open Source, as fiabilidades, Partilha de informação e comunicação entre computadores nos S. O. Open Source, etc. Página 4 O que é Open Source? 1 O que é Open Source? Todo mundo já ouviu falar em Linux: A adoção deste sistema operacional é um fenômeno que está ganhando um grande impulso no mundo corporativo nos últimos anos, chegando a desafiar a gigante Microsoft. Mas por quê? Como softwares Open Source não têm custo de licença, é possível se investir mais em serviços e treinamento, e assim garantir melhor retorno dos investimentos em TI. Linux é um sistema desenvolvido sob o modelo Open Source: ele é um software de utilização livre, para quem quiser. E todos podem contribuir com ele, seja no seu desenvolvimento, seja na correção de erros, seja na documentação, desde que a condição de liberdade seja mantida. Este paradigma revolucionou a maneira com que softwares são desenvolvidos, baixou os custos de desenvolvimento e aumentou a agilidade, resultando em softwares de excelente qualidade e em constante evolução. E o Linux demonstrou que é possível levar este conceito até chegar a um sistema operacional completo, de qualidade superior aos disponíveis no mercado. Para saber mais sobre esta maneira de desenvolver software, leia o excelente texto de Eric Raymond "The Cathedral and the Bazaar". Mas o Linux é apenas um exemplo entre tantos outros de softwares complexos e de alta qualidade que este modo de desenvolver gerou. Outros exemplos são: Apache, o servidor Web mais utilizado no mundo Sendmail, o servidor de e-mail mais robusto e seguro BIND, servidor de DNS responsável pela quase totalidade dos servidores de nomes da Internet jBoss, servidor de aplicações compatível com JavaEE PostgreSQL, servidor de base de dados SQL gcc, o melhor compilador "C" que existe etc, etc e etc... Página 5 A lista é extensa, e cresce a cada dia, como podemos ver, por exemplo, no site SourceForge.net. Na verdade, os primeiros projetos de desenvolvimento de softwares livres datam de 1983 (veja no site do projeto GNU), e desde lá, universidades e empresas têm apoiado de maneira crescente este movimento. 2 Características dos Projectos Open Source O processo de desenvolvimento de software open source tem sido um assunto bastante discutido. Segundo Fuggeta (Fuggetta, 2003), este paradigma de desenvolvimento é visto como um dos mais promissores para garantir eficiência, qualidade e maturidade dos softwares. Mas o que é realmente um software open source? Um software open source é definido como: “Qualquer software cuja licença garanta ao seu usuário liberdade relacionada ao uso, alteração e redistribuição. Seu aspecto fundamental é o fato do código-fonte estar livremente disponível para ser lido, estudado ou modificado por qualquer pessoa” (Fuggetta, 2003). Os projectos open source possuem algumas características importantes que os diferenciam dos projectos de desenvolvimento convencionais, que são: • Trabalho voluntário: a maioria dos desenvolvedores trabalha sem nenhuma motivação financeira. A motivação dos colaboradores vem da busca pelo aprendizado, da satisfação pessoal, o interesse pelo desafio do projecto e o fato de compartilhar conhecimento com profissionais mais experientes. • Trabalho não é designado: as tarefas não são impostas a ninguém, devido ao desenvolvimento inicialmente anónimo, isto é, onde as pessoas não possuem vínculos nem se conhecem pessoalmente. As pessoas trabalham em partes do projecto nas quais têm mais aptidão e interesse. • Motivação dos desenvolvedores: o voluntário possui interesse e satisfação de trabalhar no projecto. Essa motivação pode vir da satisfação pessoal, da necessidade de aprendizado ou mesmo a necessidade de receber reconhecimento profissional. • Não existem horários ou listas de entrega: como o trabalho é voluntário, as pessoas trabalham em horários diversificados e contribuem da maneira que podem, visto que não possuem qualquer compromisso com o projecto. • Lançamento de versões: como o trabalho é voluntário e não há compromissos com prazos, o lançamento do produto ocorre quando a equipe de coordenação do projecto, a ser discutido mais adiante, acha que está adequado. Além disso, ainda pode existir imprevisibilidade do Página 6 conteúdo das releases, pois nesse tipo de desenvolvimento é difícil existir um cronograma bem definido do projecto. • Testes: actividade não considerada tão importante em alguns projectos, e quando existe, nem sempre está bem definida uma sistemática para os testes de software. • Planejamento: esta actividade nem sempre é possível, devido ao não determinismo da colaboração. A participação em projectos open source ocorre em diferentes níveis de participação e envolvimento. De acordo com (Reis, 2003), a classificação dos usuários pode ser: • Usuários não participantes: utilizam o software, mas não contribuem para sua melhoria, isto é, não têm interesse em discutir e ajudar no desenvolvimento do software mesmo quando encontram erros. • Usuários participantes: contribuem activamente para o projecto, informando erros e discutindo possíveis melhorias nas funcionalidades existentes. Estes usuários são responsáveis por boa parte da melhoria do software. • Desenvolvedores esporádicos: usuários que contribuem de vez em quando na implementação do projecto. Alguns membros da comunidade open source têm o papel de desenvolvedor esporádico em uma grande quantidade de projectos, contribuindo com soluções para problemas simples. • Desenvolvedores activos: contribuem activamente para o projecto, são responsáveis por módulos específicos. Equipe de Coordenação: esta equipe é responsável pelo agenciamento do projecto, isto é, por tomar as decisões sobre os rumos do projecto tais como: cronograma do projecto e dos lançamento das releases, entrada de colaboradores na equipe, dentre outras atribuições. Em projectos open source, existem vários níveis de participação e envolvimentos dos voluntários, como: Programação; Indicação de falhas e melhorias; Documentação; Divulgação. O desenvolvimento de software open source é visto como um estilo de desenvolvimento pouco convencional, pois na maioria dos projectos não estão definidos alguns mecanismos tradicionais para coordenação de projectos: horários, projecto do sistema, planos, um processo definido, como por exemplo, RUP (Rational Unified Process). Página 7 Em um projecto open source é de suma importância se ter um código legível e uma boa documentação, pois como o código fonte será distribuído muitas outras pessoas terão acesso e necessitarão tê-lo para poderem contribuir com alguma evolução. A qualidade do código nestes projectos é mantida geralmente por uma grande quantidade de testes paralelos (usuários testando o software e reportando bugs encontrados), ao invés de testes sistemáticos (Godfrey & Tu, 2000). A documentação é também parte importante no projecto e está intimamente relacionada ao seu sucesso, isto é, à satisfatória evolução do projecto. É de extrema importância que o projecto tenha uma boa documentação tanto para os usuários quanto para os desenvolvedores, para assim existir uma contribuição realmente activa de ambos. Em (Crowston, Annabi et al, 2003) são mostradas algumas medidas de sucesso para os projectos open source. Na Tabela 1 são exibidas algumas dessas medidas de sucesso apresentadas em (Crowston, Annabi et al, 2003). Medidas de Sucesso Indicadores Qualidade do Sistema Satisfação do usuário Uso Qualidade do Código (portatilidade, consistência, coesão, usabilidade, eficiência, manutenibilidade) Qualidade da documentação Participação nas listas de discussão Sugestões para melhoria do projecto Indicação de erros Número de usuários Reuso de código Downloads Tabela 1: Medidas de sucesso para projectos open source Página 8 Em geral, o ciclo de vida de um projecto open source é: • Os idealizados (autor) do projecto escreve a versão inicial e publica na Internet seu código fonte; • Caso o software desperte interesse dos desenvolvedores (usuários), os mesmos propõem modificações e melhorias ao autor; • Autor analisa, filtra e incorpora no código as modificações que considera melhores; • Caso o autor não concorde, os pedidos de modificações são discutidos pela comunidade; • É publicada uma nova versão; • Versão melhorada atrai novos usuários, novas sugestões; • Com isso o projecto vai ganhando espaço e atraindo cada vez mais colaboradores; • Se o projecto não consegue atrair usuários (colaboradores), o projecto “morre”. Página 9 Características de um Sistema Operativo Open Source Linux: Linux é um sistema operacional compatível com Unix, duas de suas características mais singulares que o diferenciam de outros sistemas é a sua acessibilidade, porque é livre, isto significa que não deve pagar qualquer licença para qualquer empresa que desenvolve software uso. Sua segunda característica é que este sistema é acompanhado pelo código fonte, este software foi projectado e programado por uma multidão de técnicos e engenheiros em todo o mundo e está em desenvolvimento contínuo e coordenado por Linus Torvalds, que criou o projecto. Essa é a ira do sistema operacional Linux está sendo desenvolvido por dia programas dia mais e mais aplicações para ser usada lá, as plataformas que permitem o uso do Linux são: 386 -, 486 -, Pentium, Pentium Pro, Pentium II, Amiga e Atari. Para aqueles que ainda estão perdidos e não entendem o que dizemos que é o sistema operacional Linux, como o Windows, que visa impulsionar o software livre com código fonte para que ele possa ser modificado por qualquer pessoa indulging criatividade. As principais funções do sistema operacional Linux são: multi-tasking, sistema multi-usuário, cascas de independência de dispositivos programáveis de comunicação e, com relação à primeira, dizemos que o Linux é capaz de rodar vários programas ao mesmo tempo, estão tendo que parar para realizar cada pedido. conchas programável ligar o comando de um usuário com Linux Kernel a ser programáveis e podem ser modificados para atender as necessidades de cada pessoa, o sistema multiusuário permite que vários indivíduos para aceder a aplicações e recursos do sistema, ao mesmo tempo, e sua uma vez que pode executar vários programas ao mesmo tempo. O sistema operacional Linux suporta qualquer tipo de dispositivo, esta é uma das principais vantagens que o software fornece uma altamente adaptável, sem limitação, como outros sistemas operacionais, e, finalmente, dizer que o Linux é o sistema mais flexível para conectar a qualquer computador o mundo é que a Internet foi criada e desenvolvida Página 10 no mundo do Unix e Linux, portanto, está velejando muito mais eficientes quando. Ele tem uma paginação de memória virtual em disco usando isso permite uma partição ou um arquivo, ou ambos com a capacidade de adicionar mais áreas de comércio on the fly lixões do estado são feitas para permitir a análise post mortem e depois usar em programas depuradores são executados e os que foram abortados. Vantagens de usar o sistema operacional Linux Existem três principais vantagens que nos dá o sistema operacional Linux, primeiro devemos notar que ele é robusto, estável e rápido, tornando-a ideal para servidores e aplicações distribuídas, para isto devemos acrescentar que ele não funciona perfeitamente em máquinas muito tecnológica. Outra vantagem é que o sistema esteja livre, o que significa que não só é livre, mas pode ser modificado e que possui uma grande quantidade de aplicativos gratuitos na Internet, o Linux não é restrita a pessoas com grande conhecimento de electrónica ou informática, este é que os programadores têm desenhado incorporando assistentes de configuração e de ajuda, e um sistema de gráficos. Um dos problemas que podem ocorrer com o sistema operacional Linux é a sua incompatibilidade com o Windows, por que não podemos ter instalado os dois sistemas e, segundo, dizemos que na maioria das distribuições Linux deve conhecer seu hardware quando você instala todos os programas. Página 11 Distribuições e versões de um Sistema Operativo Open Source 1Sistema Operativo Unix Desde que “fugiu” aos AT&T's Bell Laboratories, no inicio dos anos 70, o sucesso do sistema operativo Unix deu origem a inúmeras e diferentes versões: aqueles que tinham acesso (naquela altura gratuíto) ao sistema Unix começaram a desenvolver as suas próprias versões, consoante as suas necessidades. Universidades, institutos de pesquisa. Corpos governamentais e companhias de computadores, todas começaram a usar o poderoso sistema Unix para desenvolverem muitas das tecnologias que hoje fazem parte do próprio sistema Unix. Sistemas de controlo de produção, laboratórios de simulação e até mesmo a Internet conheceram o seu inicio de “vida” com e por causa dos sistemas Unix. Hoje em dia, sem estes sistemas, a Internet tornar-se-ia um pesadelo para os seus utilizadores. Grande parte das chamadas telefónicas não puderiam ser realizadas, o comercio electrónico seria extremamente lento e nunca teria existido o “Jurassic Park”. Nos finais dos anos 70, deu-se o auge da expansão do Unix. Por esta altura alunos não-e pós-graduados cujo trabalho de laboratório tornou pioneiro todas estas aplicações tecnológicas, alcançaram o poder de gerir o tomar decisões dentro das companhias de fornecimento de sistemas de computadores e entre os seus consumidores. Depressa, todos os grandes fornecedores, e muitos pequenos também, comercializavam os seus próprios sistemas Unix, optimizados para as especificidades dos seus computadores potencializando as suas características. Os consumidores descobriram que, embora os sistemas Unix estavam disponíveis em qualquer parte, raramente estavam disponíveis para uso de indivíduos singulares e que era necessário gastar muito tempo para que o sistema pudesse funcionar da melhor maneira, tendo em conta o uso que lhe seria dado. A marca Unix estava em todo lado mas ainda era incompatível com muitos produtos. No inicio dos anos 80, o mercado do Unix já tinha crescido o suficiente para que analistas e investigadores industriais começassem a ter em conta o seu potencial efectivo. Agora, a pergunta que se colocava já não era “O que é o sistema Unix?”, mas sim “Será que o sistema Unix é funcional no comercio e nos negócios?”. Entre o começo e os meados dos anos 80, o debate acerca do poder e das fraquezas do sistema Unix endureceu, muitas vezes alimentado pelo discurso dos próprios vendedores que procuravam proteger os seus valiosos sistemas operativos, dizendo que os outros Unix eram inferiores ao seu. E, num esforço para diferenciar cada vez mais os seus Unix dos restantes, continuavam a desenvolver e adicionar novas características. Página 12 Em 1984, outro factor veio trazer motivos de atenção para os sistemas Unix. Um grupo de fornecedores, preocupados com a continua invasão aos seus mercados e controlo de sistemas de interface pelas grandes companhias, desenvolveram o conceito de “sistemas abertos”. Sistemas abertos eram aqueles reuniriam especificações acordadas previamente acordadas. Isto resultou na formação da X/Open Company Ltd, cujo objectivo era a criação de um ambiente de sistemas abertos de fácil compreensão. Eles declaram que os sistemas abertos seriam mais baratos que os outros sistemas existentes, atraindo um vasto leque de aplicações e de competição com iguais condições. A X/Open escolheu o sistema Unix como a plataforma para a base dos sistemas abertos. Embora o Unix fosse ainda propriedade da AT&T, esta companhia pouco tinha ganho com a sua comercialização até meados de 1980. Foi então que a X/Open mostrou claramente que uma única versão standard do Sistema Unix seria o melhor para os interesses da indústria e seus clientes. A questão que agora se levantava era “Que versão?”. Numa acção com o intuito de unir o mercado em 1987, a AT&T anunciou um pacto com a Sun Microsystems. Este pacto levou a que as restantes indústrias vissem os seus mercados em perigo. Desta forma, a melhor solução passava pela fusão das pequenas indústrias por forma a criarem o seu próprio “novo” sistema operativo de sistema aberto. Esta fusão resultou numa nova organização denominada de Open Software Foundation (OSF). Em resposta a esta fusão, a facção AT&T/Sun formou a Unix Internacional. O problema “guerra do Unix” dividiu os fornecedores por estes dois campos que giram à volta dos dois principais sistemas operativos Unix: AT&T’s System V e o sistema OSF chamado OSF/1. Entretanto, a X/Open Company continuava a dominar todo o sistema, continuando o processo de standartização dos APIs necessários à especificação de um sistema operativo aberto. Mais, ela começou a estudar áreas do sistema que iam para além do nível de um sistema operativo, onde uma aproximação standard traria novas funções para os fornecedores e consumidores, desenvolvendo ou adoptando especificações para várias linguas, conectividade a base de dados e a trabalhos em rede. Os resultados deste trabalho foram publicados em sucessivas publicações da X/Open. O XPG 4 foi lançado em Outobro de 1992. Durante este período, a X/Open colocou no mercado um novo programa com alterações propostas pelos fornecedores. Desde a publicação do XPG 4, a X/Open continuou a alargar as especificações dos sistemas abertos, tendo em conta as necessidades do mercado. À medida que as vantagens dos produtos da X/Open se foram tornando conhecidos e entendidos, grandes organizações começaram a usar estes produtos como base para o design dos seus sistemas. Em 1993, mais de $7 biliões foram gastos em produtos da X/Open. No ínicio de 1997, esta quantia aumentou para mais de $23 biliões. No ínicio de 1993, a AT&T vendeu o seu UNIX System Laboratories à Novell, a qual andava à procura de um sistema operativo poderoso que pudesse associar ao alcance do seu NetWare. Ao mesmo tempo, a companhia Página 13 reconheceu que o trabalho nas especificações do sistema com um fornecedor neutro facilitaria de futuro o reconhecimento do valor do Unix como a base dos sistemas abertos. Desta forma, os diferentes constituintes do sistema Unix, que outrora eram da posse de uma única entidade, encontram-se agora separados. Em 1995, a SCO adquiriu o negócio do Sistema Unix à Novell, continuando a desenvolver o seu código de programação. Ainda em 1995, a X/Open introduziu no mercado a marca Unix 95 para sistemas de computadores destinados a receber a Single UNIX Specification. Durante mais de dez anos, desde o começo da X/Open, o Unix esteve intimamente ligado aos sistemas abertos. A X/Open, agora parte da The Open Group, continua a desenvolver o Single UNIX Specification e novos programas a este associados em prol da comunidade IT. As especificações dos interfaces das novas tecnologias tem vindo a permitirem que muitos sistemas possam suportar a filosofia do Unix de pequenas, muitas vezes simples ferramentas, que podem ser combimadas de várias maneiras para realizar tarefas muitas vezes complexas. A estabilidade do sistema tem possibilitado o desenvolvimento de uma gama variada de ferramentas. O movimento The Open Source está a criar uma base estável e um resurgimento do entusiasmo pela filosofia do Unix. De muitas maneiras, a Open Source pode ser vista como a verdadeira fornecedora dos Open Systems e como aquela que assegurará o seu desenvolvimento. 1969 O início A história do Unix começou em 1969 quando Ken Thompson, Dennis Richie e outros começaram a trabalhar no “little-used PDP-7 in a corner” nos Laboratórios Bell, projecto esse que mais tarde veio a originar o Unix. 1971 1ª Edição Esta 1ª edição tinha um programa de tradução para PDP-11/20, um sistema de ficheiros, fork(), roff e ed. Era usada para processamento do texto de documentos patenteados. 1973 4ª Edição O programa foi rescrito em C, o que o tornou portátil, alterando a história dos OS’s. 1975 6ª Edição Bastante conhecido como a versão 6, foi o primeiro programa a ser largamente disponibilizado fora dos Laboratórios Bell. A primeira versão BSD (1.x) foi feita a partir do V6. 1979 7ª Edição Da autoria de Bourne constituiu, segundo o mesmo, um melhoramento que superou todos os anteriores e posteriores Unices. Tinha C e UUCP, tendo sido conduzido para o VAX. O seu kernel tinha mais de 40 kilobytes (K). 1980 Xenix A Microsoft apresenta Xenix. 32V e introduz o 4BSD. 1982 System III AT&T's UNIX System Group (USG) lança o System III, que foi o primeiro lançamento público fora dos Laboratórios Bell. 1983 System V Computer Research Group (CRG), UNIX System Group (USG) e um terceiro grupo unem-se originando o Unix System Development Lab. O primeiro programa suportado por esta união, o Unix System V, é anunciado pela AT&T. 1984 4.2BSD A Universidade da Califórnia, em Berkeley lança o 4.2BSD. Esta inclui o TCP/IP e novos sinais, entre muitas outras coisas. 1984 SVR2 É lançado o System V Release 2. Nesta altura há 100,000 instalações de Unix em todo o mundo. Página 14 1986 4.3BSD O 4.3BSD é lançado, o qual incluía o nome de servidor de Internet. 1987 SVR3 É lançado o System V Release 3 incluindo STREAMS, TLI, RFS. Nesta altura há 750,000 instalações de Unix em todo o mundo. 1988 É publicado o POSIX.1. São formadas a Open Software Foundation (OSF) e a Unix International (UI). 1989 É formada a AT&T Unix Software Operation em ordem à preparação do arranque da USL. 1989 SVR4 Surge o Unix System V Release 4 ships, que tende a unificar o System V, o BSD e o Xenix. 1990 XPG3 A X/Open lança o XPG3 Brand. 1991 A Unix System Laboratories (USL) torna-se numa companhia maioritariamente possuída pela AT&T. Linus Torvalds começa a desenvolver o Linux. 1992 SVR4.2 A USL lança o UNIX System V Release 4.2. Em Outubro a X/Open lança o XPG4 Brand. Em 22 de Dezembro a Novell anuncia a sua intenção de adquirir a USL. 1993 4.4BSD É feito o ultimo lançamento vindo de Berkeler: o 4.4BSD. A 16 de Junho a Novell adquire a USL. Fins de 1993 SVR4.2MP A Novell transfere os direitos da marca registada “Unix” e o Single Unix Specification para a X/Open. Em Dezembro a Novell lança o SVR4.2MP, o lançamento final do System V pela USL OEM. 1994 4.4-Lite BSD 4.4-Lite eliminou toda a programação que infringia a USL/Novell. 1995 UNIX 95 A X/Open lança o programa Unix 95. A Novell vende o negócio da UnixWare à SCO. 1996 Forma-se o Open Group como fusão da OSF e a X/Open. 1997 2ª Versão do Single UNIX Specification O Open Group lança a 2ª Versão do Single UNIX Specification, o qual inclui suporte em tempo real, linhas de 64-bit e processadores mais largos. Este é disponibilizado livremente na Web. 1998 UNIX 98 O Open Group lança o UNIX 98 que inclui: Base, Workstation and Server. Os primeiros produtos registados Unix98 são lançados pela Sun, IBM and NCR. O movimento The Open Source começa a sair com os anúncios da Netscape e da IBM. 1999 UNIX chega aos 30 anos O sistema Unix alcança o 30º aniversário. É lançado o Linux 2.2. O The Open Group e o IEEE unem esforços no desenvolvimento do POSIX e do Single UNIX Specification. Dão-se as primeiras conferências mundiais de Linux. Várias companhias de Open Source lançam-se com sucesso no mercado do fornecimento. 2001 3ª Versão Single A 3ª versão do Single UNIX Se os esforços do IEEE POSIX, do UNIX The Open Group e de outras indústrias. É lançado o Linux 2.4. O Specification seu fornecimento passa um tempo difícil nos mercados. Página 15 Distinguir entre distribuições e versões 2 Distribuições de Linux Atualmente, um Sistema Operacional (em Portugal Sistema Operativo) Linux ou GNU/Linux completo (uma "Lista de distribuições de Linux ou GNU/Linux") é uma coleção de software livre (e por vezes não-livres) criados por indivíduos, grupos e organizações de todo o mundo, incluindo o núcleo Linux. Companhias como a Red Hat, a SuSE, a Mandriva (união da Mandrake com a Conectiva) e a Canonical (desenvolvedora do Ubuntu Linux), bem como projetos de comunidades como o Debian ou o Gentoo, compilam o software e fornecem um sistema completo, pronto para instalação e uso. Patrick Volkerding também fornece uma distribuição Linux, o Slackware. As distribuições do Linux ou GNU/Linux começaram a receber uma popularidade limitada desde a segunda metade dos anos 90, como uma alternativa livre para os sistemas operacionais Microsoft Windows e Mac OS, principalmente por parte de pessoas acostumadas com o Unix na escola e no trabalho. O sistema tornou-se popular no mercado de Desktops e servidores, principalmente para a Web e servidores de bancos de dados. No decorrer do tempo, várias distribuições surgiram e desapareceram, cada qual com sua característica. Algumas distribuições são maiores outras menores, dependendo do número de aplicações e sua finalidade. Algumas distribuições de tamanhos menores cabem num disquete com 1,44 MB, outras precisam de vários CDs, existindo até algumas versões em DVD. Todas elas têm o seu público e sua finalidade, as pequenas (que ocupam poucos disquetes) são usadas para recuperação de sistemas danificados ou em monitoramento de redes de computadores. De entre as maiores, distribuídas em CDs, podem-se citar: Slackware, Debian, Suse, e Conectiva. O que faz a diferença é como estão organizadas e pré-configuradas as aplicações. A distribuição Conectiva Linux, por exemplo, tinha as suas aplicações traduzidas em português, o que facilitou que usuários que falam a Língua Portuguesa tenham aderido melhor a esta distribuição. Hoje esta distribuição foi incorporada à Mandrake, o que resultou na Mandriva. Para o português, existe também a distribuição brasileira Kurumin (Essa distribuição foi descontinuada pelo seu mantedor), construída sobre Knoppix e Debian, e a Caixa Mágica, existente nas versões 32 bits, 64 bits, Live CD 32 bits e Live CD 64 bits, e com vários programas open source: OpenOffice.org, Mozilla Firefox, entre outros. Página 16 Existem distribuições com ferramentas para configuração que facilitam a administração do sistema. As principais diferenças entre as distribuições estão nos seus sistemas de pacotes, nas estruturas dos diretórios e na sua biblioteca básica. Por mais que a estrutura dos diretórios siga o mesmo padrão, o FSSTND é um padrão muito relaxado, principalmente em arquivos onde as configurações são diferentes entre as distribuições. Então normalmente todos seguem o padrão FHS (File Hierarchy System), que é o padrão mais novo. Vale lembrar, entretanto, que qualquer aplicativo ou driver desenvolvido para Linux pode ser compilado em qualquer distribuição que vai funcionar da mesma maneira. Quanto à biblioteca, é usada a Biblioteca libc, contendo funções básicas para o sistema Operacional Linux. O problema está quando do lançamento de uma nova versão da Biblioteca libc, algumas das distribuições colocam logo a nova versão, enquanto outras aguardam um pouco. Por isso, alguns programas funcionam numa distribuição e noutras não. Existe um movimento LSB (Linux Standard Base) que proporciona uma maior padronização. Auxilia principalmente vendedores de software que não liberam para distribuição do código fonte, sem tirar características das distribuições. Os sistemas de pacotes não são padronizados. 2 Versões de Linux Debian Especialistas em Linux dizem que, embora os desenvolvedores do Debian não façam questão de deixar o software com a cara que gostariam, eles permitem que o usuário faça isso tranquilamente. Programas para as actividades quotidianas podem ser baixados rapidamente pelo Debian Etch, a partir do repositório de aplicativos do desenvolvedor. O sistema tem uma interface simples e personalizável. Aplicativos (equivalência) OpenOffice.org Writer (Word), OpenOffice.org Cal (Excel), OpenOffice.org Impress (PowerPoint), Konqueror e Firefox (Internet Explorer), MPlayer (Windows Media Player), K3b (Nero) Página 17 Fedora Core 6 Mais conhecido como Zod, o sistema é fácil de ser instalado e conta com Desktop 3D. Netsa versão, o software traz gerenciadores de pacotes aperfeiçoados, aplicações desktop, avanços na segurança, facilidades de instalação do software e da gerência e ferramentas de localização. Aplicativos (equivalência) OpenOffice.org Writer (Word), OpenOffice.org Cal (Excel), OpenOffice.org Impress (PowerPoint), Gimp (Photoshop), K3b (Nero), Totem e Rythmbox (Windows Media Player), Firefox (Internet Explorer), Thunderbird (Outlook) Kurumin 7 Desenvolvido por brasileiros, é tido como uma das distros mais adequadas para usuários iniciantes. Possui expressiva comunidade de usuários no país e boas páginas de suporte na Internet, além de fórum para troca de dúvidas e informações em português. Possui também uma versão Light, mais leve, que ocupa menos memória — ideal para PCs antigos Aplicativos (equivalência) KOffice Office Suite (pacote Office), Konqueror (Internet Explorer), Clica-Aki (Painel de Controle centralizado) Mandriva Discovery De fácil instalação, o sistema permite dual boot e possui interface simples e amigável. Para os fãs de games, a versão inclui jogos e suporta os drivers do Windows. Traz softwares para uso diário, como mensagens instantâneas, navegador de Internet, e-mail e pacote de aplicativos, entre outros. Aplicativos (equivalência) OpenOffice.org Writer (Word), OpenOffice.org Cal (Excel), OpenOffice.org Impress (PowerPoint), Kontact, Evolution, Mozilla Thunderbird (Outlook), Mozilla Firefox, Konqueror (Internet Explorer), Kopete, Gaim (MSN Messenger), Kaffeine e Amarok (Windows Media Player), Gimp (Adobe Photoshop) Página 18 OpenSUSE 10.2 Esta distribuição é talvez uma das mais simples de usar. Após instalada, o usuário verá um desktop muito bem organizado — é possível organizar o Kickoff (equivalente ao Menu Iniciar, no Windows) da forma como melhor lhe convier. O Fedora Core traz um menu diferente, mas muito prático, que permite ao susuário fazer buscas por aplicativos em seu micro. O YaST (Yet another Setup Tool) também não pode passar em branco. O aplicativo reúne todas as tarefas de administração do sistema. O repositório de aplicativos do Fedora também traz soluções de sobra. Aplicativos (equivalência) O sistema operacional vêm sem nenhum aplicativo extra. Mas todos eles podem ser baixados facilmente no repositório oficial do SUSE Linux. Ubuntu 6.10 Interface muito parecida com a do Windows. Entre as distribuições, esta é, sem dúvidas, a de interface mais amigável e intuitiva. Traz sistema de ajuda, com dicas e um banco de dados com as dúvidas mais comuns — exatamente como acontece nas soluções da Microsoft. O sistema traz o pacote de aplicativo OpenOffice. Aplicativos (equivalência) Writer (Word), Calc (Excel), Gimp (Photoshop), Firefox (Internet Explorer), Rhythmbox Media Player (Nero), Totem (Windows Media Player) Página 19 Descrever a evolução histórica de um Sistema Operativo Open Source O nome Linux surgiu da mistura de Linus + Unix. Linus é o nome do criador do Linux, Linus Torvalds. E Unix, é o nome de um sistema operacional de grande porte, no qual contaremos sua história agora, para que você entenda melhor a do Linux. A origem do Unix tem ligação com o sistema operacional Multics, projectado na década de 1960. Esse projeto era realizado pelo Massachusets Institute of Technology (MIT), pela General Eletric (GE) e pelos laboratórios Bell (Bell Labs) e American Telephone na Telegraph (AT&T). A intenção era de que o Multics tivesse características de tempo compartilhado (vários usuários compartilhando os recursos de um único computador), sendo assim, o sistema mais arrojado da época. Em 1969, já existia uma versão do Multics rodando num computador GE645. Ken Thompsom era um pesquisador do Multics e trabalhava na Bell Labs. No entanto, a empresa se retirou do projecto tempos depois, mas ele continuou seus estudos no sistema. Desde então, sua ideia não era continuar no Multics original e sim criar algo menor, mas que conservasse as idéias básicas do sistema. A partir daí, começa a saga do sistema Unix. Brian Kernighan, também pesquisador da Bell Labs, foi quem deu esse nome. Em 1973, outro pesquisador da Bell Labs, Dennis Ritchie, rescreveu todo o sistema Unix numa linguagem de alto nível, chamada C, desenvolvida por ele mesmo. Por causa disso, o sistema passou a ter grande aceitação por usuários externos à Bell Labs. Entre 1977 e 1981, a AT&T, alterou o Unix, fazendo algumas mudanças particulares e lançou o System III. Em 1983, após mais uma série de modificações, foi lançado o conhecido Unix System IV, que passou a ser vendido. Até hoje esse sistema é usado no mercado, tornando-se o padrão internacional do Unix. Esse sistema é comercializado por Página 20 empresas como IBM, HP, Sun, etc. O Unix, é um sistema operacional muito caro e é usado em computadores poderosos (como mainframes) por diversas multinacionais. Qual a relação entre o Unix e o Linux, ou melhor, entre o Unix e Linus Torvalds? Para responder essa pergunta, é necessário falar de outro sistema operacional, o Minix. O Minix é uma versão do Unix, porém, gratuita e com o código fonte disponível. Isso significa que qualquer programador experiente pode fazer alterações nele. Ele foi criado originalmente para uso educacional, para quem quisesse estudar o Unix "em casa". No entanto, vale citar que ele foi escrito do “zero” e apesar de ser uma versão do Unix, não contém nenhum código da AT&T e por isso pode ser distribuído gratuitamente. A partir daí, “entra em cena” Linus Torvalds. Ele era um estudante de Ciências da Computação da Universidade de Helsinki, na Filândia e em 1991, por hobby, Linus decidiu desenvolver um sistema mais poderoso que o Minix. Para divulgar sua idéia, ele enviou uma mensagem a um grupo pela Usenet (uma espécie de antecessor da Internet). A mensagem pode ser vista no final deste artigo. No mesmo ano, ele disponibilizou a versão do kernel (núcleo dos sistemas operacionais) 0.02 e continuou trabalhando até que em 1994 disponibilizou a versão 1.0. Até o momento em que este artigo estava sendo escrito, a versão actual era a 2.6. O Linux é um sistema operacional livre e é uma re-implementação das especificações POSIX (padronização da IEEE, Instituto de Engenharia Elétrica e Eletrônica) para sistemas com extensões System V e BSD. Isso significa que o Linux é bem parecido com Unix, mas não vem do mesmo lugar e foi escrito de outra forma. Mas porque o Linux é gratuito? Linus Torvalds, quando desenvolveu o Linux, não tinha a intenção de ganhar dinheiro e sim fazer um sistema para seu uso pessoal, que atendesse suas necessidades. O estilo de desenvolvimento que foi Página 21 adoptado foi o de ajuda colectiva. Ou seja, ele coordena os esforços colectivos de um grupo para a melhoria do sistema que criou. Milhares de pessoas contribuem gratuitamente com o desenvolvimento do Linux, simplesmente pelo prazer de fazer um sistema operacional melhor. Licença GPL O Linux está sob a licença GPL, permite que qualquer um possa usar os programas que estão sob ela, com o compromisso de não tornar os programas fechados e comercializados. Ou seja, você pode alterar qualquer parte do Linux, modificá-lo e até comercializá-lo, mas você não pode fechá-lo (não permitir que outros usuários o modifiquem) e vendêlo. GNU Mas a história do Linux não termina por aqui. É necessário também saber o que é GNU. GNU é um projecto que começou em 1984 com o objectivo de desenvolver um sistema operacional compatível com os de padrão Unix. O Linux em si, é só um kernel. Linus Torvalds, na mesma época que escrevia o código-fonte do kernel, começou a usar programas da GNU para fazer seu sistema. Gostando da ideia, resolveu deixar seu kernel dentro da mesma licença. Mas, o kernel por si só, não é usável. O kernel é a parte mais importante, pois é o núcleo e serve de comunicador entre o usuário e o computador. Por isso, com o uso de variantes dos sistemas GNU junto com o kernel, o Linux se tornou um sistema operacional. Mas você pode ter ficado confuso agora. O que é o Linux então? O que é GNU? Simplesmente, várias pessoas uma versões modificadas dos sistemas GNU, pensando que é o Linux em si. Os programadores que trabalham com ele, sabem que o Linux, é basicamente o kernel, conforme já foi dito, mas todos, chamam esse conjunto de Linux (há quem defenda o uso de GNU/Linux). Finalizando, o projecto GNU é um dos responsáveis pelo sucesso do Linux, pois graças à “mistura” de seus programas com o kernel desenvolvido por Linus Torvalds, o Linux vem mostrando porque é um sistema operacional digno de habilidades insuperáveis por qualquer outro sistema. Página 22 Comandos básicos do Linux Alguns comandos que você verá nesta página, equivalem aos utilizados no DOS. Se você não conhece o DOS, clique aqui e veja um tutorial que ensina a trabalhar com ele. No entanto, saiba que conhecendo ou não o DOS, você poderá estranhar bastante os comandos do Linux ou simplesmente não ter dificuldade alguma. Tudo depende de você. Essencialmente, trabalhar com o Linux é uma questão de prática e logo você ficará bem familiarizado. [root@localhost /root]# Você sabe o que significa isso aí em cima? O Linux usa uma estrutura diferente de organização em seu sistema de arquivos*. Por isso, em vez da sua pasta ser c:arquivospastaarquivo.txt, simplesmente no Linux, pode ser /home/pasta/arquivo.txt. Para você entender melhor, vamos analisar o prompt do Linux: [root@localhost /root]# usuário - directório / local (PC ou rede) - modo usuário Usuário: No Linux, cada pessoa precisa ter uma conta de usuário. Uma conta de usuário indica um nome e senha que devem ser utilizados para se conectar no sistema. Se o nome escolhido por você for, por exemplo, Fulano, em vez de root aparecerá fulano no lugar. Usuário "root" (ou super-usuário): é quem tem acesso irrestrito ao sistema. Quando você se conecta como usuário root, você poderá fazer qualquer operação no Linux, como alterações de configuração do sistema, apagar ou modificar arquivos importantes, etc. Por isso, se conectar como root é muito arriscado, já que você pode causar algum dano sem querer. Tendo isso em mente, nunca se conecte como root a não ser que seja mesmo necessário. Para usar o Linux no dia-a-dia, conecte-se com uma conta de usuário comum, assim não haverá risco de danos. Também não se esqueça de guardar muito bem a senha do root, pois se alguém descobrir, poderá destruir o sistema. localhost /root : é o local (directório) onde você está no momento (/root é padrão e equivale a C: no DOS). Modo usuário: indica quem está usando a máquina, se um usuário comum ou o super-usuário. Veja: # - modo super-usuário Página 23 $ - modo usuário * Sistema de arquivos é um local onde os arquivos são directórios são guardados. Consiste em uma área formatada em um dispositivo como um HD. Exemplos de sistema de arquivo: ext2/ext3 (Linux), FAT (DOS/Windows), NTFS (Windows NT/2000/XP), etc. LINHA DE COMANDO Antes de vermos os comandos em si, é necessário saber o que é Linha de Comando. Trata-se de um modo de trabalho com caracteres, onde você digita o comando e o executa pressionando "Enter" no teclado. Mas você também pode usar uma linha de comando em um ambiente gráfico. Se você usar o KDE por exemplo, pode procurar o aplicativo KDE Terminal para abrir uma janela com linha de comando. Mas isso vária de acordo com a versão do seu Linux. Mesmo assim não se preocupe, pois a linha de comando é muito fácil de se achar. OS COMANDOS BÁSICOS Vejamos agora os comandos básicos do Linux, seguidos de uma breve explicação: • (qualquer comando) --help: mostra o HELP (arquivo de ajuda) do comando que você digitou; • ls: lista os arquivos e directórios da pasta (DIR no DOS); • clear: limpa a tela (CLS no DOS); • cd ___ : entra em um directório (igual ao DOS); • cd: vai directo para o directório raiz do usuário conectado; • abre uma linha de comando "livre" , onde você pode digitar um comando extenso (digite q e clique em entra para sair); • pwd: mostra o directório inteiro que você está; • cat: igual ao TYPE no DOS; • df: Mostra as partições usadas ou livres do HD; • |more: lista o arquivo com pausa de linha em linha (exemplo: CAT leiame |more) • |lpr: imprime o arquivo listado; • free: mostra a memória do computador (MEM no DOS); • shutdown: desliga o computador: • shutdown -r now : reinicia o computador; • shutdown -h now : desliga o computador (só desligue quando aparecer escrito "system halted" ou algo equivalente); • OBS: O NOW pode ser mudado. Por exemplo: shutdown -r +10 e o sistema irá reiniciar daqui a 10 minutos). • Reboot: reinicia o sistema instantaneamente (pouco recomendável, preferível shutdown -r now). Use somente em emergências; • startx: inicia o X-Windows (interface gráfica) do Linux; Página 24 • kde: Inicia a Interface gráfica K Desktop Enviroment; • mkdir: cria um diretório (MD no DOS); • rmdir: destrói um diretório VAZIO (RD no DOS); • rm: apaga um arquivo (DEL no DOS); • rm –r: apaga um diretório; • who: mostra quem está usando a máquina; • wc: conta a quantidade de: • wc -c arquivo : quantidade de bytes • wc -w arquivo : quantidade de palavras • wc -l arquivo : quantidade de linhas; • date: mostra data e hora; • telnet: inicia a TELNET; • m: abre o MINICOM e permite configurar o modem; • type: explica um determinado arquivo do sistema; • file: descreve um determinado arquivo; • find / - name ____ : procura arquivo "____"; • useradd nome_do_novo_usuário: cria uma nova conta usuário; • passwd nome_do_usuário: cria ou modifica a senha do usuário; • userdel -r nome_do_usuário: apaga um usuário; • su: passa para o superusuário (perceba que no prompt irá mudar o $ pelo #); • sndconfig: permite configurar a placa de som; • TAR: arquivo para criar Backups: • TAR –c: cria • TAR –x: restaura • TAR –v: lista cada arquivoTAR –t: lista os arquivos de backups; • write: escreve mensagens para outro usuário em rede; • mv: move arquivos; • linuxconf: configuração do Linux; • alias: possibilita a criação de comandos simples; • &: coloca o comando desejado em background, ou seja, trabalha enquanto você faz outra coisa no computador; • ps: relata os processos em execução; • kill: encerra um ou mais processos em andamento; • history: mostra os comandos que o usuário já digitou; • lpr: imprime um arquivo (exemplo: lpr arquivo); • lpq: mostra o status da fila de impressão; • lprm: remove trabalhos da fila de impressão; • mtools: permite o uso de ferramentas compatíveis com DOS. Após digitar o comando, você verá que todo comando do DOS terá um M na frente. Isso é normal. Página 25 Explicar os processos de instalação e configuração de um S. O. Open Source O sistema operativo Ubuntu Lucid Lynx é cada vez mais usado pelos utilizadores pelo facto de ser um sistema limpo, muito seguro, bastante prático e actualmente bastante interligado às redes-sociais. Actualmente, depois de instalar o novo Ubuntu 10.04 Lucid Lynx, tem logo disponível todas as aplicações que um utilizador normal precisa, desde aplicações de escritório (como processadores de texto, equivalente ao Word, e folhas de cálculo, semelhante ao Excel), a aplicações de Internet (Firefox, messengers, e-mail), aplicações de desenho e edição de imagem e, claro, aplicações de multimédia para ouvir música e ver filmes. Todas essas aplicações começam a ter uma certa interligação que proporcionam um bem estar superior ao utilizador, pois tudo é automático: praticamente não é preciso instalar drivers, existem aplicações excepcionais para Twitter e Facebook e, depois de algumas pequenas configurações fica com um sistema operativo Excelente. Este artigo tem como objectivo explicar a qualquer utilizador como pode instalar o Ubuntu 10.04 Lucid Lynx. As explicações são pormenorizadas e fraccionadas por secções permitindo explicar a qualquer utilizador, seja ele já minimamente experiente em Ubuntu ou completamente novo para este sistema operativo. O artigo começa por descrever os pré-requisitos ao nível de Hardware que o Ubuntu exige, de seguida explica como deve proceder se quiser manter o seu Windows e não perder os dados e por fim explica todo o processo de instalação do Ubuntu e particionamento dos discos. No final do artigo ainda ainda tem um bónus de dicas que são importantes depois de instalar o Ubuntu. Pré-Requisitos Antigamente, o Ubuntu era um sistema básico, demasiado simplista e por isso exigia muito pouco dos computadores. Actualmente a enorme quantidade de funcionalidades que tornam toda a utilização do Ubuntu automática e bastante bonita visualmente fazem com que os requisitos ao nível de hardware sejam um pouco superiores. Página 26 Devido a esse facto, torna-se imprescindível apresentar esta secção no artigo de modo a posicionar você, futuro utilizador do Ubuntu, dentro da normalidade que é o Ubuntu. Sendo assim, é garantido que se seguir os requisitos recomendados terá um sistema bastante estável e rápido (atenção: estes requisitos descritos não são oficiais, são apenas opinião minha fundamentada numa vasta experiência neste sistema operativo). Requisitos Mínimos: Como requisitos mínimos, o Ubuntu necessita, ao nível de hardware, das configurações apresentadas a seguir. Deve ter em atenção que estes requisitos são mesmo mínimos, o que significa que o seu Ubuntu certamente não funcionará com a fluidez normal de um computador mais actual. Processador: 700MHz; Memória RAM: 512MB; Disco: 4GB; Placa Gráfica: qualquer placa gráfica (funcionamento do sistema de efeitos visuais poderá estar condicionado conforme a placa gráfica) Requisitos Recomendados: Preferencialmente, o seu computador deverá ter pelo menos as características apresentadas a seguir. Tal como foi referido no início desta secção, salvo raras excepções, se tiver um computador equivalente ou superior a estas características, o seu Ubuntu irá funcionar perfeitamente. Processador: 1.2GHz; Memória RAM: 1GB; Disco: 10GB (espaço suficiente praticamente para ter todos os programas que quer, nunca precisei de mais!) Placa Gráfica: De preferência nVidia (porque tem bons drivers do próprio fabricante!) e, para ter todas as capacidades dos efeitos visuais deve ter no mínimo uma Geforce6, no entanto, o funcionamento de uma geforce4, chega para os efeitos visuais comuns. Quanto à ATI, recomendo no mínimo um R300, mas tenha em atenção que esta marca de placas gráficas tem muitos problemas de drivers para Ubuntu!. Quanto aos utilizadores da excelente placa gráfica integrada Intel, qualquer uma superior à GMA 3000 terá bons resultados, aliás nem será preciso instalar drivers! Página 27 Se tem o Windows instalado e ainda não tem as partições prontas para instalar o Ubuntu, recomendo desde já que deixe o seu computador a desfragmentar. Aliás, o melhor será mesmo você desfragmentar o seu computador mais que uma vez. Porquê? Simplificando a teoria, o Windows quando grava ficheiros no disco, grava-os de uma forma dispendiosa, ou seja, por todo o disco, pondo os ficheiros espalhados pelos vários sectores do seu disco. Ora, ao criar as partições, estas vão partir o disco o que poderá resultar em perda de dados, principalmente todos esses ficheiros espalhados pelo disco. O que a desfragmentação vai fazer é organizar e juntar todos esses ficheiros espalhados pelo disco, diminuindo substancialmente a probabilidade de perder dados. Sendo assim, utilize o seu programa preferido do Windows para desfragmentar o disco enquanto que lê o resto do artigo. De salientar que mais à frente, na criação das partições, deverá ter espaço suficiente para as criar ou, obviamente, vai perder os dados, por isso, se necessário, faça limpeza do seu disco por exemplo através de Backups! Como existe sempre uma pequena probabilidade de perder dados ao criar partições, é aconselhável fazer Backups de todo o disco. Página 28 Faça download do Ubuntu Lucid Lynx! Enquanto que lê este artigo e desfragmenta o seu disco, convém também pôr o seu computador a fazer download da imagem do Ubuntu para depois gravar num CD ou numa pen. Como o download é grande, convém que você ponha fazer o mais rápido possível para depois não ter de esperar. Das várias versões do Ubuntu existentes, apresento as duas principais versões de seguida. Uma é para computadores com arquitecturas 32Bits e outra é para arquitecturas 64Bits. Assim, conforme o seu computador, clique num dos links a seguir para fazer download: Ubuntu 10.04 Lucid Lynx 32Bits; Ubuntu 10.04 Lucid Lynx 64Bits. Se achar que o download está a ser demasiado lento, visite o site oficial do Ubuntu e escolha um servidor mais perto de sua casa, seleccionando a localização adequada. Para além destas duas formas anteriores, pode também obter o CD do Ubuntu em sua casa. Este serviço está disponível para qualquer parte do mundo e é totalmente gratuito. Apenas tem um pequeno problema: demora no mínimo cerca de 3 a 4 semanas. Se estiver disposto a esperar este tempo, então visite este site e peça já o seu CD! Página 29 Verifique o MD5 No final da transferência, convém que você confirme se o download foi bem sucedido e sem erros. Para tal, verifique o MD5 do ficheiro que fez download. De seguida apresenta-se os MD5 das duas versões disponibilizadas acima que deverá comparar com o MD5 dos seus ficheiros: 3e0f72becd63cad79bf784ac2b34b448 ubuntu-10.04-desktopamd64.iso d044a2a0c8103fc3e5b7e18b0f7de1c8 - ubuntu-10.04-desktop-i386.iso Grave o Ubuntu num CD ou numa pen USB! Depois de ter feito download da imagem do Ubuntu, deverá gravá-la ou num CD ou numa pen drive. Se gravar num CD, deverá utilizar um programa próprio de gravação de imagens (atenção, não insira o ficheiro .iso dentro de um CD, mas sim utilize a opção de gravação de imagens do programa que tiver a utilizar!). A minha recomendação é utilizar uma pen (com tamanho mínimo de um 1GB). Assim, evita o gasto de um CD e o processo de instalação é muito mais rápido. Se desejar gravar a imagem numa pen drive, recomendo a leitura deste artigo que explica todos os pormenores desse processo: Página 30 Configure a BIOS Actualmente os novos computadores vêm com a BIOS programada para arrancar primeiro por CD e por pen USB antes do disco, por isso, em princípio, o seu computador irá arrancar automaticamente pelo CD ou pela pen, conforme a maneira que escolheu para instalar o Ubuntu. No entanto, o seu computador pode não arrancar por nenhum deles, nesse caso, deverá configurar a BIOS para que arranque da maneira que precisa para instalar o Ubuntu. Existe uma infinidade de BIOS diferentes e seria preciso muito mais que artigo para abordar todas os aspectos necessários para configurar uma BIOS para arrancar ou pelo CD ou pela pen. Por esse motivo, isso não é abordado neste artigo, no entanto, recomendo esta página que provavelmente o ajudará (página em inglês): No caso de não ajudar, procure no Google pelo seu modelo, como conseguir mudar a BIOS da sua motherboard para arrancar pela pen ou pelo CD do Ubuntu. Página 31 Arranque do Ubuntu pelo CD ou pela pen Depois de ter a BIOS configurada e o CD ou a pen prontos, reinicie o computador para ele arrancar ou pelo CD ou pela pen. Se tudo correr bem, irá aparecer uma janela semelhante à seguinte ou deverá carregar imediatamente na tecla ESC (ou escape): Caso não tivesse carregado no escape, o Ubuntu iria arrancar sozinho para o modo de instalação do Ubuntu, onde faria as várias perguntas para proceder à instalação. No entanto, esse modo não é tão bom quanto o que é descrito neste artigo, por dois motivos: Não permite a escolha da língua portuguesa nas perguntas e não permite estar a instalar o Ubuntu e a navegar na Internet, por exemplo. Caso não tivesse carregado no escape, o Ubuntu iria arrancar sozinho para o modo de instalação do Ubuntu, onde faria as várias perguntas para proceder à instalação. No entanto, esse modo não é tão bom quanto o que é descrito neste artigo, por dois motivos: Não permite a escolha da língua portuguesa nas perguntas e não permite estar a instalar o Ubuntu e a navegar na Internet, por exemplo. Página 32 Ao seleccionar esta opção, o Ubuntu irá carregar-se na memória e então, depois de algum tempo de espera, o utilizador não só poderá instalar o novo Ubuntu Lucid Lynx, mas também poderá experimentá-lo, verificar se tudo é compatível e ir à Internet, a este site, para continuar a instalação descrita neste artigo! Página 33 Particionamento do disco Noções básicas Se só tem o Windows instalado, terá de reduzir a partição do Windows para criar algumas outras partições necessárias para o perfeito funcionamento do Ubuntu. Essa redução terá de ser inferior ao espaço livre, se não, obviamente, perderá dados. Também deverá ter noção que, tal como refiro no início deste artigo, deverá desfragmentar a partição que irá reduzir para não perder os dados. Quanto às partições necessárias para o Ubuntu, o meu conselho é utilizar 3 partições para o Ubuntu, no entanto, caso não seja possível, poderá prescindir de uma delas, a chamada Swap. Esta minha recomendação deverá ser seguida de forma a ter um Ubuntu com uma organização excelente que permitirá num futuro poder actualizar para novas versões do Ubuntu sem perder dados, nem sequer ter de fazer cópias de segurança! Isso será possível pois irá ter uma partição dedicada aos seus dados e às configurações do Ubuntu. Assim, quando quiser instalar outro Ubuntu, ele irá automaticamente buscar essas configurações a essa partição Tamanhos das partições do Ubuntu Para além da partição do próprio Ubuntu e da partição dos dados, é aconselhável que faça também uma partição “Swap“, que servirá como ajuda da memória RAM aquando de possíveis excessos de memória usada (é também importante para o Ubuntu hibernar). Esta partição deverá ter o dobro do tamanho da RAM que o seu computador tem, no entanto, não acho necessário a criar uma partição superior a 2GB. Como no meu caso tenho 1GB de RAM, neste artigo a partição da SWAP irá ter 2GB de espaço. Esta partição, nos computadores novos que têm mais de 1GB de memória, poderá ser abdicada em prol de mais espaço para os seus dados. Quanto à partição do Ubuntu, normalmente denominada, partição da “Raiz”, esta deverá ter o tamanho referido nos pré-requisitos. No mínimo deverá ter 4GB. A minha recomendação é 10GB, pois assim terá espaço para instalar muitos programas. Por exemplo eu nunca tive problemas de Página 34 espaço e instalo muitos programas para poder fazer artigos para este blog. Quanto à partição dos seus dados, denominada “home”, esta deverá ter o espaço necessário para os seus dados (músicas, documentos, filmes, etc.). Normalmente o que faço é o seguinte: reduzo o máximo de espaço possível da partição do Windows, crio a partição da Raiz de 10GB, crio a partição SWAP conforme a memória, normalmente de 2GB, e o restante fica para a “home”. Reduza a partição do Windows! Para começar, como ainda não tem nenhuma partição e precisa de alocar espaço do disco para criar as novas partições, vai reduzir a partição do Windows. Novamente, tenha em atenção que pode perder dados nesta parte do procedimento, por isso, desfragmente o disco e faça cópias de segurança da informação importante. Para fazer o particionamento, será utilizado o programa Gparted que já está instalado no Ubuntu que você tem actualmente em memória. Esse programa está disponível em Sistema→Administração→GParted. Todas as mudanças que fizer só serão aplicadas quando clicar no botão “Aplicar”, até lá poderá fazer e refazer partições à vontade. Depois de abrir o Gparted, seleccione o disco a particionar (se tiver mais que um poderá distingui-los pelo tamanho) e clique no botão “Redimensionar/Mover a partição seleccionada“. Deverá reduzir a partição o suficiente para criar as outras partições. No meu caso, irei fazer uma partição de 10GB para a raiz, uma de 2GB para a SWAP e outra de 43GB para a “Home”, totalizando 55GB para o Ubuntu e 20GB Página 35 porque sei que tenho menos de 20GB de informação no disco. Para definir o espaço livre que quer no final basta escrever o valor (em MegaBytes) na caixa de texto intitulada “Espaço Livre Subsequente (MiB)“. Pode aproveitar e etiquetar a partição para saber, quando aplicar as mudanças, se fez tudo bem. Crie as partições necessárias para o Ubuntu! Agora que tem espaço para criar partições, seleccione a secção intitulada “Sem alocação” e clique no primeiro botão da barra, tal como na imagem seguinte, intitulado “Criar uma nova partição no espaço por alocar seleccionado“. Na nova janela, deverá escolher o tamanho que quer para o Ubuntu, ou seja, para a partição da Raiz do Ubuntu. Para além de definir o tamanho dela na caixa de texto “Novo Tamanho (MiB)“, deverá também definir o “Sistema de Ficheiros” como Ext4! Depois de definir esses dois valores, clique no botão “Adicionar“. Sugiro também que dê um nome a esta partição, apenas para no final ter noção de que fez tudo correctamente. No meu caso, dei-lhe o nome de “Raiz”. Página 36 De seguida, volte a seleccionar a secção cinzenta denominada “Sem alocação” e clique novamente no primeiro botão da barra para criar mais uma partição. Neste caso vai criar a partição SWAP, que não é estritamente necessário ter, mas que eu recomendo a ter! Sendo assim, tal como disse no início desta secção do artigo, é recomendável que esta partição tenha o dobro da RAM, no entanto, penso que não seja preciso mais de 2GB. Pensando exactamente dessa maneira, no meu caso, criei uma partição de 2GB, tal como pode ver na imagem a seguir, onde escrevi o valor 2000 na caixa de texto “Novo Tamanho(MiB)“. Depois de definir o tamanho, tem de definir o “Sistema de Ficheiros” para o tipo Linux-Swap. De salientar que voltei a pôr o seu nome no campo Etiqueta, neste caso “Swap”. Por fim, volte a seleccionar a secção com o nome “Sem alocação” e clique novamente o no primeiro botão para definir o tamanho da partição da “home”. Como já estão todas as partições feitas excepto esta, não precisa de definir o seu tamanho pois o Gparted define automaticamente o máximo possível. Apenas precisa de definir o “Sistema de Ficheiros” para o tipo ext4! Sugiro que dê também um nome a esta partição. Depois deste processo todo, o Gparted deverá ter uma lista de partições semelhante à seguinte: Página 37 No final, depois de ter a certeza de todas as partições criadas, deverá clicar no botão “Aplicar todas as Operações” (o botão com a imagem de um visto) de modo a proceder ao particionamento. Ao clicar nesse botão, ser-lhe-á perguntado se tem a certeza que quer realmente criar essas partições. início e deverá esperar até ao fim, sem fazendo qualquer interrupção de modo a não haver erros no processo. Instalação do Ubuntu Agora que tem as partições prontas a serem utilizadas, pode proceder à instalação do Ubuntu. Para tal, dê duplo clique no ícone da área de trabalho intitulado “Instalar Ubuntu 10.04 LTS“ Na nova janela, deverá seleccionar a linguagem pretendida que em princípio será seleccionada automaticamente pois já a escolheu aquando do arranque do Ubuntu pelo CD ou pen. Clique no botão “Avançar” para prosseguir. Página 38 Na janela seguinte, deverá escolher a sua localização geográfica de modo a ter o fuso horário correcto. Depois de seleccionar a localização, volte a clicar no botão “Avançar“. No passo 3, deve seleccionar o teclado correcto. Este passo é muito importante pois existem muitos modelos de teclados e muitos deles têm poucas diferenças mas que são importantes no dia-a-dia. Por isso, deve utilizar a caixa de texto que se encontra na parte inferior da janela para testar o teclado. Experimente escrevendo símbolos do teclado, nomeadamente o ‘€’, o ‘@’, ‘*’ e as letras com acentos (‘Á’,'à’ e ‘ç’). No caso de o teclado não ser exactamente o que o Ubuntu seleccionou por si, então seleccione a opção “Adivinhar o mapeamento de teclas” e responda às questões pedidas pelo Ubuntu. Depois de ter o teclado bem definido, clique no botão “Avançar“. Página 39 No passo 3, deve seleccionar o teclado correcto. Este passo é muito importante pois existem muitos modelos de teclados e muitos deles têm poucas diferenças mas que são importantes no dia-a-dia. Por isso, deve utilizar a caixa de texto que se encontra na parte inferior da janela para testar o teclado. Experimente escrevendo símbolos do teclado, nomeadamente o ‘€’, o ‘@’, ‘*’ e as letras com acentos (‘Á’,'à’ e ‘ç’). No caso de o teclado não ser exactamente o que o Ubuntu seleccionou por si, então seleccione a opção “Adivinhar o mapeamento de teclas” e responda às questões pedidas pelo Ubuntu. Depois de ter o teclado bem definido, clique no botão “Avançar“. esteve a criar na secção anterior deste artigo. Quando o Ubuntu apresentar as partições, deverá seleccionar as devidas partições e definir os seus atributos, clicando no botão “Modificar…“: A partição com o tipo de ficheiros ext4 com 10GB de tamanho, é a partição do Ubuntu e seus programas. Então, seleccione-a e clique no botão “Modificar…“. É-lhe apresentado uma janela onde deverá preencher da maneira seguinte: o Tamanho da nova partição em megabytes (1000000 bytes): manter o valor; o Utilizar como: seleccione a opção “Sistema de ficheiros Ext4 com journal”; o Formatar a partição: Ponha o visto! o Mount point: nesta parte deve seleccionar a opção “/”, que indica que esta partição será a raiz do Ubuntu. Depois disso, clique no botão OK. Página 40 A partição com o tipo de ficheiros ext4 mas com o tamanho diferente de 10GB, ou seja, a partição que criou para home, deverá ser modificada para o seguinte: o Tamanho da nova partição em megabytes (1000000 bytes): manter o valor; o Utilizar como: seleccione a opção “Sistema de ficheiros Ext4 com journal”; o Formatar a partição: Ponha o visto caso tenha criado esta partição. No caso de estar apenas a actualizar o seu computador para esta nova versão do Ubuntu, então não ponha este visto, de modo a que o novo Ubuntu busque as várias configurações do seu Ubuntu anterior; o Mount point: nesta parte deve seleccionar a opção “/home”, que indica que esta partição será a raiz do Ubuntu. Depois disso, clique no botão OK. Por fim, quanto à partição do tipo Swap, não precisa de modificar nada, pois o Ubuntu sabe o que fazer com ela automaticamente. No final deste procedimento, a lista de partições deverá ter as características das partições semelhantes às da imagem acima. Depois de verificar se tudo está correcto, clique no botão “Avançar“! Página 41 O passo seguinte pede-lhe alguma informação pessoal. Deverá digitar o seu Nome, o Utilizador, que servirá depois para fazer o login no Ubuntu, e a senha, que deverá ser fácil de memorizar mas ao mesmo tempo complexa de modo a que não possam entrar no seu sistema facilmente. Depois de preencher esses dados, clique no botão “Avançar” para prosseguir ao passo seguinte. O passo 7 serve para você, se quiser, migrar os seus documentos de outros sistemas operativos para esta nova instalação do Ubuntu. Serve, por exemplo, para passar os favoritos do seu Windows para o Firefox do seu novo Ubuntu. Se quiser migrar algum desses dados listados, basta pôr um visto e clicar no botão “Avançar“. O passo final, o passo 8, serve para você rever todas as opções que escolheu e, caso precise de uma proxy, permite defini-la. No caso de precisar de definir a proxy, essas opções estão disponíveis através do botão “Avançado…“. No caso de não precisar de proxy ou nem saber o que isso seja, então não se preocupe e clique no botão “Instalar” para começar a instalação do Ubuntu. Página 42 Enquanto a instalação está em processamento, pode navegar na Internet, ou mesmo jogar algum jogo disponível por este Ubuntu no menu Aplicações→Jogos. Quando a instalação estiver concluída com sucesso, ser-lhe-á apresentada a janela seguinte a pedir para reiniciar o Ubuntu para puder utilizar o seu novo Ubuntu! Configurações Pós-Instalação Depois de ter o Ubuntu instalado, aconselho a instalar todos os codecs necessários para poder ouvir quase qualquer tipo de música e de vídeo, bem como qualquer ficheiro compactado que lhe possa aparecer. Para além disso, este seu Ubuntu, ainda não tem a máquina virtual Java para poder abrir determinadas aplicações desse tipo nem tem o Flash da Adobe para poder ver vídeos do Youtube. Muitas outras dicas e recomendações poderá encontrar na página referida a seguir que tornará o seu Ubuntu, num dos sistemas operativos mais completos que poderá ter: 23 primeiros passos depois de instalar o Ubuntu Lucid Lynx Página 43 Explicar os processos de Instalação e configuração de dispositivos e device drivers num S. O. Open Source Device Drivers Quase toda operação de sistema é mapeada para um dispositivo físico. Com exceção do processador, da memória e de mais alguns poucos elementos, toda e qualquer operação de controle de dispositivo é feita por um código que é específico para o dispositivo que está sendo acessado. Esse código é chamado device driver. Portanto, device drivers são a parte do sistema operacional que gerência a comunicação com os dispositivos. A figura a seguir ilustra bem essa definição. Os device drivers têm um papel especial no relacionamento com o kernel do Linux. Eles são os responsáveis por: Fazer um hardware específico responder a comandos bem definidos vindos do sistema operacional; Esconder completamente da interface de programação os detalhes de como o hardware funciona (evitando programação em baixo nível - uso de portas); Aumentam a velocidade de I/O, porque eles geralmente são otimizados; Gerenciam erros de hardware e software na comunicação; Permitem o acesso simultâneo ao hardware por vários processos. Página 44 O kernel deve ter embutido nele os principais device drivers, como por exemplo aqueles que acessam o mouse e o teclado. As actividades dos usuários são realizadas por meio de um conjunto de chamadas padronizadas que são independentes do driver em específico. Mapear essas chamadas padronizadas com o driver específico do hardware é o papel do device driver. Essa interface é tal que os drivers podem ser construídos separadamente do resto do kernel e então "plugados" em tempo de execução quando solicitados. Outro ponto importante sobre device drivers é que eles devem ser responsáveis pelo mecanismo (ou funcionamento) e não pelo controle de acesso aos dispositivos. Por exemplo, um driver deve fazer um disco rígido externo ser acessado, mas quem controla as permissões de acesso a esse disco não é o driver propriamente dito. Resumindo, o programador de um driver deve se preocupar em fazer o dispositivo funcionar e deixar para a aplicação a tarefa de controlar o uso do dispositivo. Apesar disso, muitos drivers são lançados juntamente com um software que ajuda o usuário a configurar seu dispositivo. Estes softwares podem variar desde simples opções que devem ser setadas na linha de comando até sofisticadas telas de interface com várias opções de customização possíveis. Classificação de Drivers Pode-se classificar os drivers em quatro categorias segundo o tipo de dado que é gerenciado por eles e como eles o fazem. Os tipos são: Character Drivers: Transmitem informações do usuário para o dispositivo (ou vice-versa) byte a byte. Ex.: impressora (/dev/lp); Block Drivers: Transmitem informação bloco por bloco. Ou seja, os dados vão chegando e sendo armazenados num buffer e, quando este está lotado, ocorre a transmissão. Ex.: Discos Rígidos IDE (/dev/fd0); Terminal Drivers: São drivers que, por exemplo, gerenciam janelas de ambiente e o console; Streams: Feitos para altas velocidade de tráfego de dados. Página 45 Implementação e Instalação de Device Drivers Implementar um driver não é uma tarefa tão simples. Por exemplo, ela requer habilidade com programação em baixo nível (portas e interrupções) e, para debugar um programa, não se pode usar debuggers ou funções do C como printf. Para construir um driver, deve-se seguir os passos abaixo: Programar os arquivos fonte do driver, tendo especial cuidado com a interface com o kernel; Integrar o driver no kernel, incluindo na fonte do kernel chamadas para as funções do driver; Configure e compile o novo kernel; Teste o driver escrevendo um programa de usuário. A primeira tarefa para implementar o código fonte de um driver é selecionar um nome que o identifique unicamente. No nosso caso, suponha que o nome do driver seja yano. Considerando que o driver sejá do tipo character driver, seu código fonte deverá fica na pasta /usr/src/linux/drivers/char/yano.c, e seu cabeçalho em /usr/include/linux/yano.h. A segunda tarefa é implementar as funções. Nesse ponto, vale lembrar que as funções da biblioteca padrão do C (stdio.h) não estão disponíveis. Além disso, o tamanho da pilha é limitado e algumas operações com ponto flutuante não podem ser realizadas. Após escrever o código do driver, é necessário integrá-lo ao kernel. Para isso, basta fazer os seguintes passos: Adicione chamados do kernel para o novo driver; Adicione o driver à lista de drivers; Altere os scripts de compilação; Compile o driver novamente. Página 46 O kernel do Linux provê a API USB core, que gerencia grande parte da complexidade. Ela possui uma espécie de canal chamado Endpoint, a forma mais básica de comunicação USB. Os endpoints USB só transferem dados numa única direção. São elas: Do computador para o dispositivo – OUT endpoint Do dispositivo para o computador – IN endpoint Os endpoints podem ser classificados quanto ao modo de transmissão de dados. Suas categorias são: Control – são usados para informações de configuração do próprio dispositivo. Todo dispositivo USB possui um endpoint chamado “endpoint 0”, usado pelo USB core para configurar o dispositivo em “tempo de inserção”. Interrupt – usados para transmitir pequenas quantidades de dados, a cada vez que o computador pede algum dado ao dispositivo. Estes endpoints foram primeiro método de transporte de dados para teclados e mouses USB. Bulk – estes endpoints são usados para transferir grandes quantidades de dados. São normalmente bem maiores que os “Interrupt endpoints”. São utilizados quando se necessita de uma transferência de grande quantidade de dados sem perdas. Utilizados em impressoras, dispositivos de armazenamento. Isochronous – também pode transferir grande quantidade de dados, mas não tem a garantia de transmissão de todos os dados como o bulk endpoint. Entretanto, pode manter uma taxa de transferência de dados constante. Mais usados em dispositivos de tempo real, como dispositivos de áudio e vídeo. Control e Bulk são utilizados para transferências assíncronas, enquanto Interrpt e Isochronous são usados em transferências síncronas. Os endpoints USB são encapsulados em interfaces. É esta interface que o USB core passa ao USB driver e que o USB driver utiliza para fazer o devido controle. As interfaces USB, por sua vez, são encapsuladas em configurações. Um dispositivo USB pode ter várias configurações alternando entre elas para mudar o estado do dispositivo. Nos sistemas Linux, os device drivers são distribuídos normalmente de três modos: Um patch para uma versão específica de kernel; Um módulo carregável; Um script de instalação que aplica os patches apropriados. O meio mais comum é o primeiro, através do patch para aquela versão. Geralmente, os patches são aplicados pelo comando: cd usr/src/linux ; patch –p1 < arquivo_patch Página 47 Teste de Device Drivers Quando for necessário realizar testes, caso não esteja disponível o hardware correspondente ao device driver projetado, a idéia para o teste é testar o fluxo das várias funções auxiliares nas baixas camadas e testar os pontos de entrada do device driver. O código de teste verificará a lógica e os fluxos de controle utilizados. Para os pontos de entrada do dispositivo e funções auxiliares, substituímos por funções dummy (seria uma função com o mínimo código necessário, apenas para atender ao tipo de retorno exigido). Desta forma, nós estamos, no fundo, testando o device driver com um hardware virtual, utilizando as funções dummy. Caso o hardware já esteja disponível, podemos então remover as funções dummy utilizadas na fase inicial de testes e os testes são feitos utilizando o próprio hardware. Entretanto, é importante efetuar os testes antes de conectar o hardware, utilizando as funções dummy. Isto evita, por exemplo, que o dispositivo seja conectado num sistema que eventualmente apresente algum bug, atrapalhando assim o teste efetivo do device driver com o seu respectivo dispositivo. Essas possíveis falhas seriam descobertas na fase inicial de teste. Página 48 Protecção e Segurança dos S. O. Open Source Segurança Historicamente, o sistema operacional UNIX oferecia apenas dois níveis de privilégio a usuários e administradores: um único usuário principal, todo-poderoso, e qualquer número de usuários sem privilégio algum. Os servidores de hoje, entretanto, executam centenas de aplicativos diferentes, administrados por vários grupos de pessoas - todas com variadas necessidades de acesso e níveis de habilidades. Não é aconselhável oferecer a todos esses administradores pleno acesso a cada servidor e aplicativo. Isso geraria riscos à segurança e ao sistema, devido à possibilidade de ocorrer falha humana. A abordagem de dois tipos de privilégios também não inclui desenvolvedores que precisam de privilégios especiais, seja para instalar aplicativos, seja para usar certas ferramentas de depuração no desenvolvimento e na produção. Os administradores do UNIX tradicionalmente contornaram esses problemas através de utilitários, desenvolvidos internamente ou por terceiros, que são executados usando todos os privilégios e que permitem que determinados usuários realizem outras tarefas além de seu nível de privilégio normal. Como essas abordagens não são integradas fortemente ao sistema operacional, tornam-se riscos à segurança, se têm defeitos. Além disso, exigem que os clientes lancem mão de soluções paliativas no sistema operacional - e inclusive ocultem ou desativem os recursos incorporados. A Sun sempre adotou uma abordagem à segurança diferente da de seus concorrentes. Ela incorpora a segurança a cada produto, em vez relegá-la a segundo plano. É esse exatamente o caso do Solaris 10, que oferece uma alternativa ao tudo ou nada do modelo do superusuário todo-poderoso, integrando a segurança do privilégio mínimo diretamente ao sistema operacional. Com essa nova funcionalidade, o Solaris continua sendo o único sistema operacional UNIX a oferecer esse modelo de segurança totalmente integrado ao kernel e aos componentes associados, enquanto põe à disposição total compatibilidade com o ambiente UNIX e os aplicativos existentes. Cada aplicativo Solaris tem uma lista rigorosa de privilégios específicos impostos pelo kernel, em vez de um único privilégio Página 49 principal de todo-poderoso. Além disso, cada serviço Solaris foi convertido para que use o mínimo de privilégios necessários, tornando ainda mais difícil a invasão do sistema por hackers e a exploração dos serviços. Os administradores podem atribuir grupos de privilégios a funções que correspondem a seus processos de negócios para diferentes tipos de administradores e desenvolvedores. O Solaris 10 também inclui inúmeras tecnologias de segurança para complementar o privilégio mínimo, como o RBAC (controle de acesso baseado em funções), para serviços individuais, a rede segura IPSec (Internet Protocol Security) e uma ampla variedade de serviços criptográficos que se adaptam, automaticamente, a cada plataforma de hardware e a otimizam. Esses recursos de segurança não exigem alterações nos aplicativos: os administradores podem controlar, dinamicamente, os atributos de segurança dos aplicativos existentes. E mais: os atributos de segurança do privilégio mínimo são incorporados a todos os novos recursos do Solaris 10, incluindo o DTrace, ZFS, Solaris Containers e PSH. Página 50 Protecção Depois que o ótimo site Linha Defensiva linkou em sua home page a minha análise de segurança de seis meses do Windows Vista (obrigado pelo link!), eu comecei a receber uma certa quantidade de flame mail de fanboysde outros sistemas operacionais. Acho melhor então dizer de uma vez no blog o que eu penso sobre comparações de segurança entre os diversos sistemas operacionais e sobre processo de desenvolvimento seguro. Primeiro, acho que só faz sentido comparar a segurança oferecida por um ou outro sistema operacional dentro de um contexto de uma organização e de um cenário de uso específico. O sistema operacional usado é só um dos diversos componentes de uma solução, e para avaliar qual o sistema operacional mais adequado em termos de segurança é preciso analisar os riscos existentes naquele cenário, entender o nível de risco tolerável para a organização, e então ver qual sistema apresenta os menores níveis de risco. Ainda assim podemos ter situações onde sistemas operacionais diferentes apresentam níveis de risco distintos, mas que estão todos dentro do tolerável pela empresa. Neste caso os sistemas todos são "seguros" o suficiente para serem utilizados, e determinar o mais seguro passa a ser irrelevante. Por isso eu acredito que é um verdadeiro atestado de ignorância alguém dizer de forma genérica que "sistema x é mais seguro que o sistema y". E talvez seja por isso que em geral essa afirmação venha sempre acompanhada de outras bobagens ("sistema x não tem vírus", blah blah blah). Nem eu nem a Microsoft fazemos afirmações deste tipo, ainda mais com base no número de vulnerabilidades encontradas em um sistema. Agora, o número de vulnerabilidades encontradas serve sem dúvida para avaliar a segurança do processo de desenvolvimento de um software. Para relembrar, o objectivo de um processo de desenvolvimento seguro é entregar um software sem vulnerabilidades para o usuário. E sabendo que este é um objectivo na prática inatingível, procurar diminuir a criticidade das vulnerabilidades eventualmente encontradas. Por isso o número de vulnerabilidades encontradas é uma excelente métrica para o seu processo de desenvolvimento seguro, e o número de vulnerabilidades críticas encontradas é uma métrica ainda melhor. O fato do Windows Vista ter menos vulnerabilidades críticas que o Windows XP é portanto um testemunho do quanto o processo de desenvolvimento seguro da Microsoft melhorou entre o Windows XP e o Página 51 Windows Vista. Ainda mais se você levar em conta que o código do Vista é bem maior e mais complexo do que o do Windows XP. O problema de comparar estes números com os dos demais sistemas citados no relatório é que nestes outros simplesmente não existe um processo de desenvolvimento seguro. Nenhum esforço é feito sistematicamente para entregar um software com menos vulnerabilidades para o usuário. A abordagem usada tem sido a de lançar o software de qualquer maneira, e depois tentar corrigir o mais rápido possível as vulnerabilidades que forem encontradas (e o grande número de vulnerabilidades torna o processo de correcção mais lento). Como não existe um processo não existe como aprender com os erros, não existe chance de uma melhoria gradual, e principalmente não faz sentido falar em métricas. A verdadeira pergunta que deve ser feita a luz deste relatório não é portanto qual é o sistema operacional mais seguro, e sim o que o fornecedor do sistema operacional está fazendo para reduzir o número de vulnerabilidades encontradas. A Microsoft está fazendo isso. Ao invés de tentar desqualificar os números, me diga o que o fornecedor do seu sistema operacional preferido está fazendo. Agora de volta à programação normal. UPDATE: Corrigi a referência acima aos outros sistemas operacionais. Estava me referindo somente aos sistemas incluídos na comparação feita pelo Jeff Jones, e não a todos os sistemas em geral. Sim, eu conheço o projecto OpenBSD, que foi o pioneiro de muitas das técnicas que a Microsoft usa hoje. Porque outros sistemas não seguem o exemplo do OpenBSD é o que eu não entendo. Página 52 Fiabilidade dos S. O. Open Source Para disseminar ainda mais o Linux nas pequenas, médias e grandes empresas, os clientes e usuários do pinguim devem ter certeza de que o desempenho e confiabilidade da plataforma Open Source são superiores ou idênticas aos das tecnologias proprietárias existentes no mercado de hoje. A Microsoft está tentando convencer as pessoas de que o Windows supera o Linux, apesar dos anos de experiência demonstrarem o contrário. AFIRMAÇÃO: As plataformas proprietárias apresentam melhor desempenho e confiabilidade que o Linux e o OSS (software livre). OS FATOS: Em uma recente pesquisa da revista Information Week Research, 41% dos 281 profissionais de TI das empresas que utilizam software open source. Outros 42% declaram a utilização de bancos de dados de produção desenvolvidos com software livre e ainda outros 33% estão pensando em utilizar Linux e Open Source em seus bancos de dados. De acordo com esta mesma pesquisa de InformationWeek, o Linux predomina como software open source mais utilizado no momento. Cerca de 70% dos 420 profissionais de TI já usavam o sistema do pinguim e esse contingente era de 56% um ano atrás. 82% das 287 empresas que executam o Linux usam o sistema principalmente em servidores web ou de intranet. O desenvolvimento de aplicativos, o gerenciamento de bancos de dados e a hospedagem de e-mail e mensagens também são predominantes neste ambiente corporativo de servidores. Três quartos destes profissionais que declaram usar Linux em servidores, o fazem pelo desempenho e confiabilidade oferecidos pelo sistema operacional. O primeiro indicador de desempenho do SuSE Linux Enterprise Server 9 e IBM DB2 Universal Database Express Edition, definiu um novo recorde mundial para o melhor desempenho de preço em U$ 1,61/tpmC (transações por minuto) em um servidor HP ProLiant. Este resultado demonstra não só a capacidade do SuSE, Página 53 mas do Linux em gerenciar requisitos corporativos de clientes com um alto desempenho e baixo custo. Um outro recorde mundial de baixo custo foi definido pela Oracle, NEC e Intel. Em um servidor com 32 CPUs Intel Itanium II, com SuSE Linux Enterprise Server 9 de 64 bits da Novell, Oracle Database 10g. Esta super máquina é 18% mais rápida e 22% mais econômico que o Microsoft SQL Server Enterprise Edition no Windows Server 2003 Datacenter Edition. Testes realizados pela IT Week Labs em 2003 indicam "que a versão mais recente do arquivo Samba de código-fonte aberto e software de servidor de impressão ampliou a lacuna de desempenho que a separa da alternativa comercial do Windows. Os gerentes de TI afirmam que o melhor desempenho do Samba indica que ele pode utilizar servidores mais econômicos do que seria possível com o software Windows. E se eles executam o Samba em um ambiente totalmente de código-fonte aberto, como no Linudoj2x, podem eliminar os custos de licenças de servidor Windows". Em meados de Outubro de 2004, uma pesquisa realizada pena NetCraft (http://www.newsfactor.com/story.xhtml?story_id=27381) revelou que o web server Apache ainda é a plataforma de servidores Web dominante, com um total de 37,6 milhões de instalações, seguido do IIS com 11,7 milhões Página 54 Partilha de informação e comunicação entre computadores nos S. O. Open Source Partilha de informação Entramos já a algum tempo na era da informação, e isso é uma verdade incontestável. É fato também que o mundo é movido por esta. Partindo desse princípio, sabendo da extrema importância que a informação exerce sobre tudo e sobre todos, surge uma dúvida. Porque muitas pessoas ainda relutam em compartilhar informação? Infelizmente a maioria das pessoas ainda olha essa filosofia como perda de espaço no mercado de trabalho. Ao contrário, quando se compartilha o conhecimento, a equipe cresce como um todo, e isso é sem dúvida bom para todos. Uma equipe eficiente é uma equipe empregada. Ao compartilhar, você está aumentando o campo de dúvidas e ideias em torno do assunto. A tendência nesse caso é o crescimento. Existem óptimas iniciativas de pessoas e empresas nesse sentido. O movimento Open Source é uma delas, onde o Linux é um dos seus grandes representantes. Um grupo de pessoas espalhadas pelo mundo, que se ajudam implementando novos pacotes e/ou melhorando os já existentes, apenas pelo prazer de poder ajudar. Uma paixão que ganha forma em um sistema operacional seguro e eficiente e de vários softwares com os mais variados usos. Junto ao Open Source podemos notar várias ferramentas que visam a partilha de informações e conhecimento, como WordPress( Gerencia de conteúdo ), PhpBB ( Fórum), Groupware ( Gerencia de equipes e projectos ), entre outras. Página 55 Comunicação A comunicação entre processos (do inglês: Interprocess Comunication ou IPC), é o grupo de mecanismos que permite aos processos em execução a transferirem informação entre si. O OpenSolaris fornece quatro facilidades de comunicação entre processos (4). Essas facilidades permitem aos processos e threads compartilhar dados, trocar informações entre si, e sincronizar o acesso à recursos compartilhados. O desenvolvimento do sistema de comunicação entre processos (IPC) iniciou nas primeiras versões do UNIX System V, da AT&T. Posteriormente um sistema fornecendo as mesmas funcionalidades surgiu nos padrões POSIX. Por este motivo o openSolaris possui tanto o sistema de IPC do System V quanto o do padrão POSIX. A seguir veremos os tipos de comunicação entre processos disponíveis actualmente. Página 56 Como serão os S. O. Open Source na década 2020 Valor para o acionista como estratégia : Na minha opinião, a mais infeliz das idéias. Como diz o artigo: “valor para o acionista deve ser consequência, e não uma estratégia.” Lembro-me de um artigo do professor Mintzberg escreveu no final de 2007 em que ele afirmava que enquanto as empresas não se conscientizassem de que elas faziam parte de uma comunidade e que suas ações afetavam e eram afetadas por esse ambiente, não conseguiríamos evitar a catástrofe que estava por vir. A resposta a essa estratégia foi a maior crise financeira desde 1929; TI como comoditie : O assunto do momento em termos de tecnologia chama-se Cloud Computing. Isso tem a ver com o sonho de todo administrador de querer trabalhar apenas com custos variáveis. O artigo apresenta uma visão interessante de que essa onda teve início com o Bug do milênio que obrigou a ter uma atenção muito grande com os sistemas legados onerosos; Aumento do poder do consumidor : Em 2006, a revista “The economist” elegeu o consumidor como a personalidade do ano. Tem tudo a ver com uma série de evoluções tecnológicas e sociais que fizeram com que a voz do cliente ficasse cada vez mais alta. Tal fato é potencializado pelo crescimento veloz das redes sociais e o surgimento da geração Y; Gestão de risco empresarial : O 11 de setembro de 2001 mudou muita coisa nesse campo. Apenas para lembrar, haviam empresas que funcionava em uma das torres e possuia seu backup na outra torre. Esse acontecimento fez com que fossem revisadas várias normas nesse campo. Uma delas é a necessidade de as empresas financeiras adotarem procedimentos de disaster recovery, sob pena de perder capacidade de investimento. Como exemplo de medida, podemos citar a construção de Datacenters foram de um raio de 10 quilômetros a partir da central de processamento de empresas financeiras, além de outras medidas de contigenciamento e recuperação imediata para mitigar o risco sistêmico no setor financeiro; A organização criativa : Como já disse no post anterior, a pessoas passaram a estar novamente no centro do processo. Voltaram a ser a força motriz da economia devido a necessidade de inovação. A questão é como estruturar nossas organizações orientadas a melhor produtividade criativa e inovadoras das pessoas, uma vez que tudo que foi em termos de modelo de gestão foi pensado para tornar mais eficiente a produção de máquinas? Por essa razão, cresce a importância de conceitos como Enterprise 2.0 e Gestão 2.0, como Página 57 bem citou o Jorge Carvalho no seu último post no blog da HSM (Clique aqui para acessar); Open source : Aqui devemos dar todo o crédito ao criador do Linux, Linus Torvalds, pois foi a partir do modelo de colaboração para construção Linux é que ganhou força conceitos como Wikipedia, Redes Sociais, software livre, inovação aberta; Going Private : O fator “Enron” desestimulou a administração de uma empresa como se fosse um orgão público. Cresce a importância do capital privado como investimento nas empresas e, consequentemente, cresce a importância de mecanismos de gestão mais transparentes como governança corporativa; High potentials : As empresas de consultoria e as que são baseadas em conhecimento já sabiam disso há algum tempo, mas na última década, o resto do mundo corporativo acordou para o fato de que alguns gerentes são mais iguais do que outros. A partir daí, foram criados programas para identificar gerentes que pensavam de forma diferente e inovadora da grande maioria. Quem ganhou com isso foi a indústria de Coaching Executivo; Competição baseada em análise : Aqui o assunto é o BI (Business Inteligence). Na minha opinião, ainda não está consolidada essa tendência e ainda precisa evoluir muito, não como ferramenta, mas sim no uso e na visão de como utiliza-la melhor pelos gestores das empresas. Já se fala em Business Analytics, mas esse é um assunto para um outro post; Inovação reversa : A maior história aqui é o amadurecimento do conceito de globalização, particularmente no que diz respeito às economias emergentes. A maioria das grandes corporações, em 2000, viu-os primeiramente como uma fonte de recursos naturais e, cada vez mais trabalho, mais barato. Então, como o aumento do emprego alimentou o desenvolvimento da classe média, as cidades da Índia e da China passaram a representar mercados valiosos. Agora, esses não-consumidores nos EUA estão chegando para o primeiro plano. Empresas como a GE ea Microsoft estão fazendo R & D nos mercados emergentes, Otimizando a essas preferências e restrições, e em seguida, trazendo os resultados de volta para casa; Sustentabilidade : Mais do que tudo, os primeiros dez anos do século 21 será lembrado como a década que os negócios começaram a serem verdes. Daqui a dez anos, quando alguém revisitar esse artigo da Harvard, poderão dizer que 2010-2020 foi a década de sustentabilidade, mas a idéia estava no ar antes de 2010, pois foi a década em que esse conceito realmente pegou. Na minha opinião, não devemos enxergar o conceito de sustentabilidade aplicado apenas a questão ecológica, mas sim a vários aspectos da economia, principalmente em relação a valorizar a visão de longo prazo em detrimento da visão de curto prazo e, também, a valorizar a colaboração ao invés da competição. Página 58 Conclusão É um programa grátis, porem que não é de código aberto, sendo restrita a sua alteração devido aos direitos autorais impostos pelo fabricante. Open source são programas que funcionam para qualquer tipo de usuário, já sistemas proprietários funcionam somente em parâmetros impostos pelo fabricante, como exemplo um programa que só funciona em um determinado tipo de placa hardware. Página 59 Bibliografia http://www.dragteam.info/forum/informacoes-dicas-e-tutoriais-geral/25097verdadeira-historia-do-linux.html~ http://www.conectway.com.br/rokjr/cursos/seguranca/baixaarq/Informatica_Apost0 3_SO.pdf http://opensource.ptfreehosting.com/?cat=11 http://pt.wikipedia.org/wiki/Controlador_de_dispositivo http://pplware.sapo.pt/windows/software/10-sistemas-operativos-pouco-falados/ Página 60