Dicas para LPI Prova 101! Hora da revisão!

dicas-para-lpi-prova-101-hora-da-revisao (1)

Hoje começamos uma nova etapa aqui no SempreUPdate, vamos ajudar nossos leitores a começar a preparação para a prova de LPI 1, inicialmente para prova 101 e em breve avançaremos para as próximas provas. É importante destacar que fizemos uma enquete, onde 55% dos votantes escolheram que as aulas fossem em texto, porque querem imprimir em PDF e montar seu próprio material de estudo, porém iremos fazer a aula no formato de texto facilitar o nosso entendimento.

A prova de LPI, é conhecida por seu grau minucioso, para não dizer que é cheia de cascas de banana. Pensando nisso vamos então voltar um pouco no tempo e entender o Linux através da história.

A história

No período de um ano, compreendidos entre 1968 e 1969 o grupo empresarial composto por Bell Telephone LABS da AT&T, MIT e General Eletric estavam dedicando seus esforços para lançar o seu sistema, chamado de MULTICS (Multiplexed Information and Computing Service) com grande foco de criar um sistema para os imensos computadores da época e que vários usuários pudessem utilizar o sistema ao mesmo tempo.Mas, algo saiu errado, o projeto MULTICS não deu certo e tudo que ser cancelado e o grupo foi desmanchado.

Mas como nada é em vão, os desenvolvedores Ken Thompson e Dennis Ritchie da Bell Labs aprenderam com a experiência, e resolveram a aproveitar o que aprenderam com o projeto para reformular tudo e criar um sistema operacional para jogar o space war, mas ao invés de grandes computadores, esse sistema foi instalado em um pequeno computador conhecido por DEC PDP-7 que tinha exatos 4 kb de RAM para execução dos programas.

Acontece que a jogada vingou, e não é que o resultado disso foi o UNICS (UNiplexed Information and Computing Service)? A linguagem utilizada para desenvolver o sistema inicialmente foi assembly. No ano de 1973 surgiu a primeira versão de seu kernel escrita em C que foi desenvolvida para o DEC PDP-11.

Na mesma época, a AT&T tinha um projeto que fornecia o código fonte para estudantes, mas apenas para fins de estudo e nada comercial, e o melhor de tudo, de graça. Entre os anos de 1977 e 1982 a empresa AT&T criou um sistema chamado de Unix System III que na verdade foi a unificação das várias versões do Unix e que foi avançando até o Unix System V.E aí chegamos no Andrew S. Tanenbaum, que é o desenvolvedor do Minix, para quem não lembra, ele foi desenvolvido dentro do padrão POSIX (Portable Operating System Interface), esse padrão foi criado para o UNIX e que foi a base utilizada pelo nosso amigo Linus Torvalds que na época estudava na Universidade de Helsinki na Finlândia.

O maior foco do Linus era apenas adaptar o sistema as suas necessidades, implementados recursos e otimizando o sistema para seu equipamento. Ele conseguiu desenvolver a partir daí um novo kernel que continha recursos adicionais e regido por um modelo diferente.Essas informações do trabalho do Linus foram publicadas em uma lista de discussão semelhante ao modelo que utilizamos até hoje, essa lista chamava-se USENET e foi publicada em 25 de Agosto de 1991.

A publicação ofertava o novo kernel como uma alternativa ao MINIX e ainda encorajava os jovens estudantes a modificá-lo e adaptá-lo as necessidades de cada um.Em um curto espaço de tempo muita gente entrou de cabeça no projeto. E então, melhorias e centenas de modificações foram implementadas dando origem ao kernel do Linux.

Dentre todas as características do Linux, podemos destacar algumas:O kernel do Linux foi lançado por Torvalds com a licença GPL da FSF que garante que este seja utilizado para qualquer fim e para qualquer ambiente de trabalho;Sistema multi-tarefa;Sistema multi-usuário;Baseado no padrão POSIX;Compatibilidade com todos os aplicativos do projeto GNU lançado pelo Free Software Foundation;Compatibilidade com várias arquiteturas.Quando falamos em Software Livre, lembramos logo no Linux, mas isso às vezes gera muita briga.

Hoje sabemos que o kernel do Linux foi modificado e, que por sua vez, contém código proprietário, não podendo considerá-lo 100% livre. Mas, antes de entrar mais a fundo vamos entender primeiro!

O que é Software Livre?

Tudo o que é LIVRE no mundo do Linux ou GNU/Linux, tem que ter algumas bases, e são elas:

  1. Liberdade de execução do programa/código para qualquer fim, seja ele pessoal ou comercial;
  2. Liberdade de estudar o programa/código que deve estar disponível para qualquer pessoa, inclusive com a capacidade de entender como ele funciona e  também de modificá-lo para atender as suas necessidades;
  3. Liberdade de modificá-lo e de distribuição a qualquer pessoa afim de beneficiar a todos pelo seu avanço;
  4. Liberdade de copiar e redistribuir a qualquer pessoa, sem a necessidade de cobrança de licença.

Vamos entender um pouco sobre licenças?

E aí você pergunta: Mas que texto longo e, porque que eu tenho que entender tudo isso? Pois são muitas cascas de banana são colocadas na prova, e você precisa saber o que é livre e o que não é para entender o mundo Linux.

Já pensou fazer a empresa que você for trabalhar ser multada por uso indevido de algo que não poderia ser usado de forma comercial ou livre?

Por isso, Cuidado! Não vá mexer no código de quem não deve!

Vamos lá. Todos os softwares que conhecemos tem um tipo de licença, que pode ser proprietário ou livre, comercial ou gratuito. Quando falamos em GPL quer dizer ser um Software Livre e que essa licença está ligada ao projeto GNU da Free Software Foundation. Vale lembrar que TODOS os softwares distribuídos pela FSF garante as quatro liberdade que supracitamos.

Mas e é só isso? A resposta é Não. Existem também algumas regras muito importantes que devem ser seguidas para que se possa dizer que o Software é de fato livre, vamos lá:

  1. Deve conter a referência ao autor e ao projeto original;
  2. Deve deixar claro que os dados do projeto original foram modificado;
  3. Não pode modificar a licença da publicação original de um trabalho, o projeto matriz deve ser mantido com a licença GPL e todos os seus derivados também;
  4. Deve conter informações de copyright e da ausência de garantias no uso ou até mesmo da intenção do software.

E o que seriam distribuições Linux?

Quem nunca ouviu desse termo no mundo Linux? Pois é, como o nome já sugere, Distribuição é um conjunto de softwares que contam um seus instaladores que possuem como foco facilitar o trabalho do usuário ou até de um administrador Linux.

Então, para ficar claro, o Linux é apenas o kernel que foi lançado pelo Linus Torvalds e o Software Livre que contém nele é chamado GNU, por isso que o correto mesmo é chamar as distribuições que conhecemos de GNU/Linux, isso deixa claro que temos o Linux e aplicativos lançados pela FSF. Hoje em dia o Linux está em todos os cantos do mundo,  desde empresas, dispositivos e até no espaço.

Instalando o Linux

O grande desafio de muitas pessoas quando dão de cara com o Linux a primeira vez é a instalação, só que isso vem mudando com os anos, apenas algumas distribuições mantém padrões manuais com a inserção do modo via terminal. O que na verdade é útil para aqueles que querem aprender mais profundamente o funcionamento do GNU/Linux. Nesta etapa de aprendizado, tudo é feito na mão, via terminal.

Hoje em dia, mais de 80% das distribuições possuem sua interface de instalação via modo gráfico, o que dispensa quaisquer intervenção via linha de comando e facilita a vida de muita gente, tanto o usuário de desktop, quanto para um gestor de redes ou TI.

Se você já instalou o Ubuntu, Linux Mint, Duzeru e outras distribuições voltadas para iniciantes, ou no caso do Ubuntu, que pode ser usado para servidor, vai notar que a instalação é tão simples quanto no Windows da Microsoft, e que por via de regra seguem basicamente os mesmos passos:

  • Particionamento;
  • Criação de usuários;
  • Adição de Aplicativos ao sistema.

Este curso apresento a vocês terá o Debian como base, afinal é a distribuição que mais teve distros filhas. Dentre elas podemos citar algumas derivadas como: Ubuntu, LinuxMint, Duzeru, Knoppix, XandrOS e tantas outras.

Particionamento do disco

O particionamento do disco é essencial para que o sistema GNU/Linux seja instalado, imagine então que o seu disco rígido seja uma pizza sem sabor, e você precisa dividir a pizza em vários sabores. Então do mesmo jeito é o particionamento do disco para o GNU/Linux.

Existe um padrão recomendado para instalar as distribuições  que é a criação de 3 partições, distribuídas das seguinte forma:

  • Uma para instalar o sistema raiz (/);
  • Outra para swap (partição de troca);
  • Local onde ficarão os arquivos do usuário /home.

Isso é regra? Também Não! Como disse anteriormente é o recomendável. Nada impede que você modifique conforme as suas necessidades e as características de hardware. Vou explicar mais a frente sobre isso.

Um detalhe importante, caso você faça um particionamento e depois se arrependa você pode mudar o seu esquema de partição mesmo após o GNU/Linux ter sido instalado. O ideal seria que você conclua toda o particionamento correto logo no começo, afinal você não quer ter mais trabalho quando terminar de instalar, configurar, personalizar.

Sistemas de arquivos Linux

No Linux, o sistema de arquivos é, em resumo, um conjunto de arquivos que são gravados em diretórios (pastas). No Windows é o sistema base que é “um pouco” parecido, onde existem as unidades C:, A:, B:, D:.

Por exemplo, a unidade C: do Windows – No Linux você tem um sistema de arquivos é o local que o sistema da Windows é instalado. No Linux o diretório C: seria o / ou chamado de Diretório Raiz. Existem algumas normas voltadas para o sistema de arquivos no Linux.

Neste artigo vou abordar a tradicional chamada de FHS (File Hierarchy Standard), a mais usada pela maioria das distribuições.

Diretórios em ordem alfabética
DiretórioDetalhes
/binPrincipais comandos
/bootArquivos para boot do Linux
/devArquivos que gerenciam dispositivos
/etcConfigurações do equipamento
/libMódulos do Kernel e bibliotecas compartilhadas
/mediaÉ o ponto de acesso para mídias removíveis
/mntPonto de acesso para sistemas de arquivos temporários
/optPacote de programas adicionais
/sbinComandos vitalícios para o boot e administração do Linux
/srvDados para serviços oferecidos pelo equipamento
/tmpArquivos temporários
/usrHierarquia secundária para programas adicionais
/varDados de variáveis

E agora? Como faço para definir minhas partições? O que devo analisar?

Certamente você não tem mais aquele computador antigo do ano 2000. Mas se estiver pensando recondicionar algum então vai uma dica. Esses computadores mais antigos possuem uma limitação na BIOS que não iniciam o sistema quando os arquivos de boot estão acima de 1024 cilindros no disco rígido.

Neste caso, você terá que criar uma partição extra manualmente e atribuir a essa partição o diretório /boot, ou não vai funcionar mesmo. Se o seu computador é mais recente fique tranquilo, você pode sim executar o boot diretamente da MBR por exemplo, pode criar a partição extra e ainda tem os casos de boot via UEFI. Mas hoje, tudo é automatizado.

Agora, que já entendemos o boot, vamos para a próxima partição, sendo a Swap que corresponde no Windows a memória virtual ou ainda tecnicamente, arquivo de troca. É recomendável atribuir a partição Swap o tamanho correspondente ao dobro da sua RAM. Mas, em alguns casos quando o usuário tem mais de 8 GB de RAM e não utiliza toda a memória você não precisar pôr a partição Swap, fica a seu critério.

No meu caso eu prefiro não usar, e nunca deu problema. Mas como falei, é recomendado e não obrigado a fazer, mas se você tem 1 GB, 2 GB até 4 GB pode sim fazer a partição Swap com o dobro do tamanho da RAM.

Agora vamos para a partição raiz ou simplesmente /, é nesta partição que vão ficar todos os arquivos vitais para o funcionamento do sistema, é nela que estão os diretórios que citamos acima. Para saber o tamanho da sua partição é simples, pense como vai usar o seu sistema, se vai instalar muito aplicativos.

No entanto, em caso de uso extremo como programas pesados e imensos, distribuições com mais de 2 GB de uso de espaço após instalado, então é melhor ser um pouco generoso, no meu caso deixo sempre com 80 GB, é espaço suficiente para minhas instalações de aplicativos e demais itens, acredito que você já deva ter migrado seu disco rígido para a era dos TB, então não vai lhe fazer falta.

Existem pessoas que optam por não fazer o particionamento manual. E assim, deixam a raiz e a pasta /home na mesma partição. Eu prefiro não deixá-la, afinal se houver algum imprevisto você pode perder os seus arquivos, e pode ter uma dor de cabeça ao tentar recuperá-los.

Contudo, nada que uma ISO em modo Live não resolva “eu sei”, mas é melhor evitar, crie então a partição raiz e outra para a /home, o local onde os arquivos do usuário serão guardados. Lembrando que, caso você tenha criptografado a pasta /home, certamente vai ter mais trabalho.

Por padrão, notamos que alguns diretórios ocupam um média de espaço, simulando um uso comum sem muitos aplicativos e uma máquina um pouco mais modesta, veja como ficaria o particionamento:

Partições com base em uso modesto
PartiçãoTamanho normalmente usado
/bootDeixamos em torno de 64Mb, geralmente usa-se apenas 30mb
/Para uso modesto, deixamos 12Gb é suficiente
/home30GB para que os usuários possam guardar seus arquivos
swapTendo 2GB de ram, vamos deixar com 4GB de Swap

Agora, se você trabalha com servidor, então esses particionamento não vai dar certo, afinal servidor com pouco espaço é prejuízo. Como falei anteriormente, sempre é preciso pensar como será utilizado o seu sistema, qual será a finalidade.

Pensando em um servidor Web ou FTP, precisamos gerenciar melhor nosso sistema, e para isso precisamos definir além da raiz, arquivos de logs, arquivos de usuários como conta de emails, ambiente gráfico se for o caso e também os dados dos servidores, confira a tabela abaixo:

Partições com base em uso em servidors FTP/WEB Simples
PartiçãoTamanho normalmente usado
/bootDeixamos em torno de 64Mb, geralmente usa-se apenas 30mb
/Para Debian, deixamos 12Gb é suficiente
/homeVaria de acordo com o que vai ser gravado
/varLogs do sistema, caixa postais de e-mail
/usrAmbiente Gráfico
/srvDados de servidores como WEB e FTP
swapNosso arquivo de paginação, neste caso é bom criar.

Seja lá qual for o seu tipo de servidor, lembre-se que a criação da partição /var é vital, afinal você quer saber o que se passa no seu sistema e monitorá-lo. Mas saiba que sempre, /boot, / e Swap são o mínimo recomendado para servidores. E aí você deve estudar melhor o seu caso e montar o seu servidor de acordo com as suas necessidades.

Gerenciadores de inicialização

Agora que já sabemos particionar, chegou a hora de decidir pelo gerenciador de inicialização. Hoje em dia temos algumas opções disponíveis, que são o GRUB e LILO, estes são os mais populares. Vejo que geralmente as distribuições tem utilizado em suas ISO’s o GRUB.

Para quem acha que nunca viu o GRUB ou LILO funcionando, saiba que eles são resumidamente aquela lista de sistema operacionais em tela preta, no Windows seria o NTLoader. Abaixo veja a tela do GRUB com a listagem, note que na lista não aparece outros sistemas, porém aparecem os kernels disponíveis no sistema,  modo de recuperação e teste de memória.

Vamos conhecer um pouco sobre o LILO

O LILO é o mais antigo, dizem que ele foi parido pelo Linux! Pois é, o Linux Loader pode ser instalado na MBR (Master Boot Record) ou no setor de inicialização, que também é chamado de Boot Sector Initializer – BSI. E de forma flexível, ele ainda pode ser instalado em mídias removíveis.

É possível ter até 16 combinações diferentes para a inicialização em seus mais diferentes, não digo diferentes distribuições, digo diferente sistemas mesmo, como Windows, Linux, BSD e outras dezenas. O LILO também é flexível em suas configurações e você pode alterar todas elas em /etc/lilo.conf e ao final deve ser executado o comando lilo para gravar as alterações na partição escolhida, seja na MBR ou BSI.

E agora, a vez do GRUB

O GRUB ou GRand Unified Bootloader, também permite até 16 combinações diferentes entres os mais variados sistemas operacionais, ele permite gerenciá-lo seja via modo texto ou até gráfico, como não poderia diferir, ele também pode ser instalado em mídias removíveis. No caso do GRUB ele não precisa ser gravado na MBR ou BSI, pois as alterações ficam gravadas em /boot/grub/menu.lst e ela é lida quando sistema está iniciando.

Um dos principais destaques do GRUB é que ele faz uma checagem do disco rígido durante a inicialização, em especial quando estamos em nosso computador de mesa e aquela bela queda de energia ocorre, então, na próxima vez que iniciar o seu sistema com o GRUB ele fará as checagens necessárias e corrigir possíveis falhas.

Referências

Unix HistoryLinux History by Linus Tovalds