Um pouco da minha história com Linux
Comecei a conhecer o Linux no final de 1999 quando ao passear pela internet vi o anúncio que falava de um SO seguro e estável. Resolvi então testar, mesmo que meu computador tivesse vindo com Microsoft Windows 98 eu iria tentar um novo sistema, então comprei o Conectiva Linux 5. Comecei a ler os manuais que vieram com ele, diferente da maioria das pessoas eu leio o manual antes de utilizar algo, li umas duas vezes e tenho certeza que entendi muito pouco, mas mesmo assim eu comecei a instalação, segui os passos indicados e depois de algumas horas e de quase “matar” meu Windows98 eu finalmente tinha um tal de Linux instalado também em meu computador.
Inicialmente eu apenas sabia usar a interface gráfica, e eu nem sabia que ela tinha esse nome, não sabia quem era esse tal de “root” e achava que descompactar um arquivo era quase igual a escrever em grego antigo. Nem com manuais nem com internet eu conseguia entender certas coisas, algumas eu até repetia igualzinho ao manual e funcionavam, pra minha surpresa é claro, já outras eu repetia igualzinho ao manual e … nada feito.
Durante todo o primeiro semestre de 2000 eu tive o Linux instalado como segundo sistema em meu computador e navegava na internet, eu tinha banda larga unidirecional, muito mais rápido do que eu conseguia no Windows98, tinha uns joguinhos que nunca tinha achado para Windows98 que me recreavam por horas, mas fora isso achei o Linux muito difícil e as informações escassas, quando pedia ajuda em alguma comunidade algumas vezes era até destratado como: “já leu o manual? então não pergunte noob…” . Eu era xingado e nem sabia, nunca tinha ouvido falar em “noob” e apesar de ter gostado das possibilidades que o sistema me oferecia e da capacidade de customização de tudo, e tudo mesmo, eu no fim de 2000 por fatores de trabalho, mergulhei de cara em suporte a desktop Windows e o Linux ficou como uma lembrança boa no passado.
Em 2004 estava querendo mudar de foco na informática, vi um anúncio de um curso de Especialização em Linux voltado para a Certificação LPI, como eu não sabia o que era LPI nem liguei para esta parte, mas quis saber mais do curso, principalmente os valores e duração do curso, em princípio um curso com boa carga horária e com preço que eu podia pagar, parcelado, mas podia. Me inscrevi e enfim eu iria aprender Linux.
Logo de início do curso me dediquei a aprender de verdade, o Instrutor respondia todas as dúvidas que tinham me assombrado durante muito tempo e me mostrou que nada era difícil como eu pensava, mas que as pessoas é que tentavam fazer parecer mais difícil que era, talvez para parecerem mais inteligentes ou sei lá o quê. Entendi a estruturação do SO, seus processos, sockets, sua interação na rede, até kernel eu estava compilando. Descompactar arquivos se tornou tão comum que faço sempre pela linha de comando, aliás tudo pela linha de comando é mais completo. Comecei naquele período do curso a configurar servidores e implantar serviços em clientes que antes eram Microsoft Windows e fui procurado pelo instrutor para entrar no programa de deste curso.
Após o curso fui contratado para trabalhar no mesmo, procurei aprender mais ainda sobre Linux e Microsoft Windows. Fiz as provas que me interessavam e hoje sou Instrutor, Consultor de TI, Certificado LPI e entusiasta do Software Livre.
O que é o Linux?
Tudo começou na década de 60, quando o Massachusets Institute of Technology (MIT), General Eletric (GE), Laboratórios Bell (Bell Labs) e American Telephone and Telegraph (AT&T) iniciaram um projeto de um sistema operacional de tempo compartilhado (Multiusuário) que se chamaria Multics (MULTiplexed Information and Computing Service), a idéia deste sistema era que ele fosse modular e pudesse ter partes físicas de hardware desligadas sem afetar o sistema. Por problemas de atraso no projeto ele foi abandonado por algumas empresas por volta de 1969, e neste mesmo ano dois programadores que haviam trabalhado no projeto Multics, Ken Thompson e Denis Ritchie, usaram algumas idéias do projeto e começaram a escrever um sistema que rodasse bem programas, esse sistema foi chamado Unics e posteriormente Unix.
Em 1971 saiu a primeira versão do Unix, escrita em assembly (Linguagem de programação de baixo nível) rodando em um computador PDP-11 da Digital. Inicialmente usado em processamento de texto, o Unix que na época poderia ser usado por qualquer pessoa, instituição ou empresa, não era facilmente adaptado para outros tipos de computadores, pois como o assembly é uma linguagem “um degrau acima do binário”, tinha que se reescrever grande parte do código para ele funcionar em outro hardware. Isto fazia que a portabilidade do sistema fosse difícil.
Um dos acontecimentos mais importantes da vida do Unix foi a criação da Linguagem C em 1973, uma linguagem de programação de alto nível, portanto uma linguagem que se abstraía do hardware, onde o programador diz apenas o que quer que o programa faça e as bibliotecas do programa e seus includes é que se encarregam durante a compilação de adaptar-se ao respectivo hardware. Feita para reescrever o Unix a linguagem C até hoje tem um bom relacionamento com os sistemas Unix e Unix-Like (sistemas tipo Unix, mas não o próprio Unix). Com isso tornou-se mais fácil portar o Unix para outras plataformas de hardware, fazendo assim que o uso do sistema fosse cada vez maior.
No início da década de 80 já havia uma variedade de Unix com características distintas, inclusive o BSD, Unix da Universidade de Berkeley, que mais tarde seria base de diversos Sistemas Operacionais como: FreeBSD, SunOS, MacOS entre outros. Com a comercialização do Unix pela AT&T e a restrição de uso do mesmo por quem não tivesse adquirido a licença, alguns programadores que participaram da criação, aperfeiçoamento e melhoria do Unix se sentiram injustiçados por não poder usufruir do código-fonte que ajudaram a criar, então um deste programadores chamado Richard Stallman criou em 1983 a Free Software Foundation, no intuito de criar um Sistema Operacional que fosse totalmente compatível com o Unix mas não utilizasse os códigos do mesmo, para que todos os que desejassem pudessem utilizá-lo sem ter que pagar licenças por isso.
Ele cria então a Licença Pública Geral, GPL, que resumidamente diz que:
Um software licenciado por ela é livre, ou seja seu código-fonte é acessível para todos;
É de livre modificação e uso, desde que respeitada a propriedade intelectual, ou seja: “posso usar, mas não posso dizer que é meu”;
Todo o software baseado em um software GPL tem que ser licenciado pela GPL ou em uma licença de mesmo tipo;
Pode-se cobrar pelo software, mas sempre disponibilizando o código-fonte gratuitamente para quem o solicitar;
A licença GPL deve ser incluída na íntegra, em inglês, dentro do software;
Isto foi criado assim para proteger o criador, que se alguém utilizar seu software e não disponibilizar o código-fonte será processado e penalizado legalmente, e para proteger o software que se alguém se apropriasse dele ninguém mais poderia desenvolvê-lo. Após criar a Fundação e a Licença ele deu início ao Projeto GNU, que visava criar o sistema que pudesse fazer o que o Unix fazia e ser livre para todos, diferentemente do Unix. E durante a década de 80 eles conseguiram criar vários programas que fazem parte da periferia de um sistema operacional: editores, shell, compiladores, ferramentas de sistema, mas não tinham um kernel, funcional. O kernel é o núcleo de um SO e todo sistema operacional tem um, ele que faz a ponte entre o HARDWARE e o SOFTWARE, ou seja o kernel mapeia a parte física da máquina e disponibiliza para o programas que por sua vez quando precisam que o hardware faça algo pedem através do kernel.
Este projeto da FSF (Free Software Foundation) chamava-se Projeto GNU, onde GNU é um acrônimo recursivo (palavra que chama a própria palavra) que significa “Gnu is Not Unix”, ou seja Gnu não é Unix. Então desde 1984 em diante eles têm criado programas, aplicativos, ferramentas e softwares em geral, compatíveis com os que haviam no Unix, e logicamente um kernel para eles, porém o HURD (nome do kernel do projeto GNU) não era funcional. Em 1985 o IEEE (Instituto de Engenheiros Eletricistas e Eletrônicos) decidiu especificar normas para portabilidade de software de um SO para outro que atendesse estas mesmas normas, elas foram chamadas de normas POSIX (Portable Operating System Interface) que significa Interface Portável entre Sistemas Operacionais. Elas garantem que SO que sejam criados dentro destas normas tenham facilidade de adaptar programas entre si e garantem que ao escrever programas para eles o programador não precise fazer vários códigos diferentes para rodar nos diversos sistemas Unix ou Unix-Like e mesmo tendo sido criadas para Unix as normas podem ser utilizadas por qualquer sistema operacional. Então o GNU e outros sistemas BSD ou Unix, têm seguido estas especificações, fazendo com que haja semelhanças entre eles e uma certa facilidade de adaptar programas e uso de serviços.
No início da década de 90 apesar de já ter criado várias ferramentas e softwares o GNU ainda não era utilizável, ele não tinha um kernel funcional. Em 1991 na Universidade de Helsink, na Finlândia, um estudante de Ciência da Computação chamado Linus Torvalds, ao utilizar um pequeno SO chamado minix (algo como mini Unix) criado por Andrew Tanenbaum que não era para ser utilizado em servidores apenas para estudo de SO e programação em C. Torvalds achou o minix muito interessante, mas com poucas possibilidades de crescimento, então ele investiu em um computador 80386 (primeiro processador pessoal com capacidade de multitarefa) e começou a criar um SO que em suas próprias palavras seria um “minix melhor que o minix”. Só que ele começou pelo kernel e utilizou os programas criados pelo projeto GNU e em 05 de outubro de 1991 ele postou na usenet (rede de mensagens de texto) um chamado para ajuda e colaboração no desenvolvimento de seu kernel que já rodava: bash, gcc, emacs, etc . E com a evolução deste kernel, em 1992 Richard Stallman e Linus Torvalds concordaram em licenciar o kernel com o nome de Linux sob a GPL e utilizar os programas do projeto GNU, nascendo assim o Sistema Operacional GNU/Linux. Kernel Linux mais aplicativos do projeto GNU.
Portando o Linux não é uma coisa nova, o nome Linux é, mas a estrutura do sistema, especificações de funcionamento, base de programas, usuários e mantenedores são bem mais antigos que os sistemas operacionais pagos e muitos programas, comandos e funções encontradas nestes sistemas tiveram origem nos sistemas Unix.
Distribuições Linux, o quê são?
São as formas que uma organização, pessoa ou empresa disponibiliza o Linux para os usuários. Portanto qualquer um que seguir este padrão terá sua própria distribuição Linux, o que faz com que haja várias distribuições Linux. Inicialmente o Linux era entregue para as pessoas em forma de código-fonte, o que tornava complicado para que não fosse programador poder utilizar o sistema, para facilitar a vida de quem utilizava o Linux, logo foi implementado o sistema de pacotes pré-compilados o que facilitou a instalação de programas pelos não-programadores. A distribuição Linux mais antiga ainda em funcionamento é o Slackware, temos também a Red Hat e Debian. Estas são as maiores distribuições Linux, tanto em número de usuários diretos e indiretos quanto em derivações.
Segue abaixo uma sucinta tabela de distribuições:
Slackware: Distribuição não-comercial, existe desde 1993 derivada da SLS (já descontinuada), criada para ser uma distribuição onde o usuário deve configurar tudo, vem com um instalador com poucas funções. Voltado para ser mais parecida com o padrão BSD, não usa por exemplo o mesmo processo de inicialização do Linux, nem as bibliotecas do PAM, preferencialmente utiliza código-fonte para instalação de programa, apesar de ter um instalador de pacotes. Costuma ser bem segura e estável, recomendada por alguns para quem deseja aprender mais sobre o Linux, mas como não usa alguns padrões do Linux cobrados em provas não é a que mais utilizei.
Red Hat: Distribuição comercial iniciada no final de 1994, inicialmente possuia uma versão paga que incluia material didático e suporte e uma versão livre que podia ser baixada e utilizada livremente, fio assim até a versão 9. Posteriormente passou a ter apenas uma distribuição paga e distribui apenas o código-fonte de seus programas. Apóia uma distribuição desktop chamada Fedora e além de ser utilizadas por grandes empresas a Red Hat tem contratos de suporte com a Oracle, HP, por exemplo o que lhe garante uma aceitação no mercado corporativo. Serve de base para outras distribuições como: Fedora, CentOS, Suse, Mandriva, entre outras. Utiliza programas précompilados (pacotes) para instalação de software, seu programa de instalação é o rpm (Rpm Package Manager) e o utilitário para resolver dependências de programas é o yum (Yellow dog Update Manager).
Quando se conhece o Red Hat também estamos conhecendo a estrutura do CentOS, do Fedora e até do Suse.
Debian: Distribuição não-comercial, criada para fornecer “software de interesse público”. Desde o início o Debian, que é uma entidade sem fins lucrativos, visa fornecer software baseado em dois conceitos: estabilidade e segurança. Por isso eles demoram tanto para atualizar os softwares das distribuições. Desde 1993 quando o projeto se iniciou, ele visa criar uma distribuição nos moldes do espírito do Linux e do GNU, livre e com colaboração de qualquer interessado. Muito usado por governos e universidades o Debian vem ganhando espaço não só com sua distribuição principal mas também com seus derivados. Ele utiliza programas précompilados (pacotes) para instalação de software, seu programa de instalação é o dpkg (Debian PacKaGe) e o utilitário para resolver dependências de programas é o apt (Advanced Package Tool).
Trecho retirado do site do Debian: ” Debian é a única distribuição que é aberta para que todo desenvolvedor e usuário possa contribuir com seu trabalho. É o único distribuidor significativo de Linux que não é uma entidade comercial. É o único grande projeto com uma constituição, um contrato social e documentos com políticas para organizar o projeto. A Debian também é a única distribuição que é micro-empacotada, usando informações detalhadas de dependência de pacotes para garantir a consistência do sistema em atualizações.
Para alcançar e manter um alto padrão de qualidade, o Debian adotou um rico conjunto de políticas e procedimentos para empacotamento e distribuição de software. Backups são automatizados através de ferramentas e a documentação detalha todos os elementos chaves do Debian de uma forma aberta e visível.”
Quando se conhece o Debian também estamos conhecendo o Ubuntu, Linux Mint, gOS, entre outros.
Observação: Debian e Red Hat são as bases das provas da LPI (Linux Professional Institute).
Arch Linux: Distribuição Rolling Release (ou seja ele não é baseado em versões como Debian 4, RedHat 6, ele é atualizado conforme os pacotes vão sendo atualizados e não espera que de tempos em tempos sejam todos atualizados juntos) que visa a otimização dos pacotes para processadores i686 (em um post posterior falarei sobre a arquitetura dos processadores) tendo rapidamente ganho a atenção de quem espera mais do seu processador. Utiliza o pacman como gerenciador de pacotes.
Gentoo: Distribuição criada nos moldes do sistema de instalação de software “ports”, ele utiliza arquivos para instrução de instalação de software chamados “ebuild”, que contém a instrução de como um código fonte de software deve ser baixado, descompactado, ter patches aplicados ao código fonte, como ele deve ser compilado e instalado no sistema. O Gentoo faz com que instalar um software dê mais trabalho e leve bem mais tempo que as outras distribuições com pacotes prontos, mas ele provê o software mais otimizado e adequado a necessidade do usuário. O trabalho inicial ao instalar o Gentoo é saber quais recursos seu processador possui para especificar os dados para compilação, saber quais tipos de software (por exemplo qt(do kde) ou gtk (do gnome)) você quer instalado no seu sistema ou quais recursos você quer ter suporte quando instalar um software. Depois de configurar os arquivos de texto que contém as otimizações e recursos desejados basta apenas digitar: emerge e o próprio sistema baixa, compila e instala sem a interação do usuário. O Gentoo também é do tipo Rolling Release.
Apesar de existirem outras distribuições que não citei, centenas na verdade, as que mencionei no artigo são as mais usadas no mundo, são estáveis e com base sólida de usuários e de desenvolvedores, ou seja, não vão acabar de uma hora pra outra. Tem muita documentação e são aceitas por empresas e governos de vários países, principalmente as distribuições comerciais além do Debian.
Espero ter ajudado a elucidar um pouco sobre o Linux dismistificando algum assunto e mostrando que nem sempre lidar com a tela preta foi algo simples pra mim, mas não exigiu nenhum esforço descomunal para aprender, apenas boa vontade.
Hoje sou certificado LPI-3, Novel CLA e DTS, UCP e partindo para Especialização em Segurança em Linux, quem sabe não rola um MCITP-SA esse ano. 😉 . Tenho ótimos instrutores escrevendo aqui comigo pra me ajudar.
Um abraço a todos.
Minha história com linux é …
…
Bem, não tenho, rsrsrsrsrs
Brincadeira, o GNU/Linux tem a sua função no mercado. Eu gosto de utilizar firewall linux e agradeço pelo Apache 2, que forçou a Microsoft a aprimorar tremendamente o IIS.
Coloca a sua foto com o Maddog na cabeça do post!
Parabéns novamente! Eu uso linux a menos tempo e sou apaixonado pelo nível de conhecimento que ele provém a seus estudantes!
abraço!
Rodrigo,
Eu sempre gostei do Linux, mas não entendi muito logo de cara e não tinha tanta informação disponível naquela época, por isso eu gosto de escrever sobre o assunto e de poder ajudar quem quer mais conhecimento, o bom do CooperaTI é que além de sermos amigos, nós procuramos ser os melhores em nossa área, constante estudo e muita experiência é bom, mas a troca de idéias que a gente tem uns com as matérias dos outro agrega mais valor ao que fazemos.
Um abraço.
Muito boa a matéria vem a dismificar mitos que foram criados ao longo do tempo por algumas comunidades. Parabéns ao professor Vagner pelo incentivo.
Carlos,
Obrigado pelo comentário, a idéia é essa mesmo, poder mostrar que quem é profissional(de verdade) não trata a TI como religião, a gente aqui do portal sempre brinca um com ou outro sacaneando sobre Linux (tela preta, compilação de kernel) , sobre Windows (tela azul, vírus, travamentos) mas quando é assunto sério de aulas ou trabalho o papo é outro.
A gente funciona bem porque respeitamos muito o que o outro faz, eu por exemplo não tenho conhecimentos de Windows para ministrar aulas, mas para prestar serviços na plataformas eu tenho e muito, não posso me dar ao luxo de não saber algo que é importante na minha área (infra/segurança), como o Bernardes, o Lauff e o Finet sabem também de Linux (o suficiente para não ser enganado por nenhum xiita ;-)), eu e Ricardo fazemos a nossa parte estudando Windows.
O CooperaTI vem pra mostrar que profissional sabe da tecnologia, open source ou fechada, e aplica aquela que for o melhor pro serviço em questão, aquela que atenda a necessidade do cliente e dê o retorno esperado.
Espero que possamos além de ter materiais técnicos poder apresentar também conteúdo de relevância para a vida de quem trabalha com TI, desde discussões sobre o que esperar da tecnologia e do futuro da carreira, como orientar o profissional que busca se certificar e especializar na área, e até como está a carreira e qual a remuneração devida ao profissional que é um dos que mais estuda dentre as profissões conhecidas.
Um abraço.
Primeiro de tudo, parabéns!!! É… Você foi mais persistente que eu. Eu vi linux pela primeira vez em 2000. Fui fazer um serviço para uma empresa, criando um servidor de arquivos. De cara peguei o Red-Hat e apanhei tanto que desisti de colocá-lo. Encontrei o mandrake que resolveu meu problema. Naquela época, a documentação e artigos sobre linux era muito escaço. Nem se ouvia falar sobre, quase. Deixei de lado, e mais pra frente, em torno de 2007/8 surgiram alguns serviços sobre e fui pegando e estudando. Repetindo o que via na internet e tentando entender o que acontecia. Tudo bem, tinha horas que eu não entendia P.N., mas funcionando estava bom. Até, que um dia, depois de muito incentivo de minha esposa, fui fazer o curso de formação, e tive aula com esse ilustre professor. Aprendi muito e foi o ponta pé inicial para me desenvolver na área. Hoje, trabalho só com linux, sou mais feliz por isso(rs…), trabalho numa empresa de verdade, trabalho menos, enfim, tudo melhorou. Só tenho a agradecer ao Vagner, por ter um puta conhecimento e, uma coisa tão importante quanto, didática excelente. Com isso, estou em direção a LPI-3 hoje. Sou eternamente grato!