Certamente todas as pessoas que estão vendo esta aula, já estão familiarizados como termo Linux. Mas lembre-se que o nome correto para chamar qualquer distribuição é GNU/Linux. Assim, quando falarmos Linux estamos nos referindo ao Linux Kernel apenas. Hoje em dia quando a gente fala em Linux, todo mundo pensa logo em tela preta e coisas de hackers/crakers, infelizmente ainda hoje com tantos desktops rodando o GNU/Linux ainda existe essa imagem maluca, criada por pessoas sem escrúpulos para pessoas mal informadas.
Por isso que estamos criando essas aulas com linguagem de fácil compreensão, para que todos possam compreender e aprender. Quando falamos no quesito de multi-usuário sabemos que o Windows desde seu primeiro lançamento não foi criado para ser um sistema multi-usuário. Já o GNU/Linux desde do começo foi projetado para esta finalidade.
Desta forma, o Linux incorpora desde sempre várias formas para garantir a segurança de seus usuários. Para acessar o sistema é preciso de login e senha validados mediante dados cadastrados no sistema pelo usuário seja ele administrador ou usuário comum. Tudo isso foi pensado para que um usuário não acesse dados que não são de sua alçada e assim surgiram o usuários e grupos que vamos aprender a gerenciar mais a frente.
Porém, antes da gente se aprofundar ainda mais em nossas aulas, vamos entender um pouco sobre sistemas de arquivos e estrutura de diretórios. Certamente você tem um jeito particular de organizar as suas coisas, o Linux também, ele organizada em diretórios que são verdadeiros comportamentos cheios de gavetas. E nessa organização, entram os nossos aplicativos, que seguem o mesmo padrão.
Entendendo o sistema de arquivos do Linux
Anteriormente na aula 1, vimos as preparações e cuidados que temos que ter antes de instalar o
Linux, como por exemplo as partições que vamos criar e o tamanho para cada uma delas. Se você veio do Windows certamente esta familiarizado com o NTFS ou FAT32, e se tiver pendrive deve ter visto que ele é formatado em FAT ou FAT16 (são a mesma coisa).
Vamos ver o quadro abaixo e entender os mais variados sistemas de arquivos do Linux:
Sistema de arquivos |
Descrição |
EXT2
| Um grande problema do EXT2 é a sua baixa tolerância a falhas em caso de quedas de energia ou desligamento inadequado, sendo talvez até mais frágil do que a FAT32 do Windows. Um desligamento inadequado num sistema EXT2 força o uso do fsck para verificar a integridade do sistema. Algo mais ou menos semelhante ao que acontece com o Scandisk do Windows. Esta checagem pode demorar vários minutos, dependendo do tamanho do disco rígido, e conforme for o caso, pode haver até perda de dados, se o arquivo estiver sendo gravado na hora do desligamento pode haver perda de um diretório inteiro. Estes problemas foram contornados com a criação dos sistemas de arquivos com Journaling |
EXT3
| Se o ReiserFS é um sistema de arquivos com recursos novos, o EXT3 é o sucessor natural do EXT2, fazendo com que este seja o sistema de arquivos para Linux mais utilizado atualmente. Ele tem as características do EXT2 com a grande vantagem de ainda ter o suporte para tecnologia Journaling e ainda por cima ser mais rápido que o seu antecessor. |
EXT4
| As novas funcionalidades propostas são: alocação tardia (delayed allocation); marcas temporais com maior resolução (nanossegundos); verificação de integridade do journal (journal checksums); suporte para tamanhos maiores de volumes e arquivos. Mais extensões são introduzidas, compatibilidade com versões anteriores, pré alocação, mais rápido sistema de arquivo de verificação, alocador multibloco, melhor timestamps. Deixa de existir um limite de sub-diretórios no ext4. |
Reiserfs
| Uma das grandes vantagens do ReiserFS além do recurso de Journaling, é seu desempenho, principalmente se forem manipulados arquivos pequenos. Isto se deve graças a seu recurso de blocos dinâmicos, ou seja, o ReiserFS não se prende a blocos de tamanho fixo. Ele ajusta o tamanho do bloco conforme o tipo de arquivo. Isso resulta num ganho de desempenho e espaço em disco considerável. Além destes fatores, o ReiserFS tem uma vantagem de desempenho em relação ao EXT3 devido ao modo como ele armazena os registros no “Journal”. Ele armazena somente as informações sobre a área de metadata ( estrutura de controle de um arquivo, ou seja, onde é especificado seu tamanho, permissões, data de criação, modificação, etc..) fazendo com que o disco rode mais rápido pois menos dados são verificados para armazenar em LOG. |
Proc
| Sistema de arquivo virtual, sendo um espelho dos dados em processamento, da memória do equipamento |
Xfs
| Sistema de arquivo que conta com Journaling desenvolvido pela Silicon e com melhor suporte a diretórios com grandes quantidades de arquivos. Possui ótimo desempenho. |
Nfs
| Sistema de arquivos remoto, compartilhamento de rede, sendo acesso através de mapeamento do servidor da máquina local |
Vfat
| Sistem de arquivos utilizado para acesso a mídias. |
NTFS
| Sistema de arquivos padrão no WNT,W2K,W10 e superiores. |
Btrfs
| Alguns dos principais objetivos deste novo sistema de arquivos é torná-lo 100% eficaz em tolerância de falhas e erros, inibindo perda de dados por problemas que podem vir acontecer, assim, como fazer um gerenciamento dos volumes criados com Btrfs, permitindo aumentar e diminuir seu tamanho com o sistema de arquivo montado, e ainda fazer com que o mesmo seja o mais veloz e tenha um poder de armazenamento muito grande. |
Vamos conhecer a estrutura de diretórios?
Como você já deve ter se deparado quando migrou para o Linux, a forma como os
diretórios são organizados nada tem a ver com o Windows por exemplo, e
nem se compara com nenhum outro sistema operacional até o momento, essa
forma de organização vem sido mantida desde dos anos 60.
O maior objetivo dessa estrutura é agrupar os recursos que possuem as
mesma finalidades, evitando com que os arquivos fiquem perdidos em
outros subdiretórios, ou seja, o guarda-roupa e suas gavetas.
Vamos ver como esta o diretório hoje? Lembre-se que atualmente algumas
distribuições estão alterando o diretório padrão, mas 95% das
distribuições ainda os mantém.
/
|--bin
|--boot
|--dev
|--etc
|--home
|--initrd
|--lib
|--mnt
|--opt
|--proc
|--root
|--sbin
|--sys
|--tmp
|--usr
|--var
Agora que já vimos árvore, vamos entender como funciona cada diretório, ou
seja, agora que vimos o nosso guarda roupas, vamos ver para que serve
cada gaveta.
/ = É o nosso diretório raiz que é a parte inicial da estrutura a porta do nosso guarda roupa.
/bin = Neste diretório vamos encontrar os programas e utilitários
necessários para a inicialização do equipamento, geralmente usado quando
não há outros sistemas de arquivos disponíveis. Como falamos antes
sobre os usuários e os que ele podem ver, essa pasta pode ser usada
tanto pelo root quanto pelo usuário comum. Os dados armazenados aqui são
vitalícios para a carga do sistema e também as vezes é utilizado para
habilitar a compatibilidade com sistemas antigos. Também podemos citar o
ls, date, cut, chmod, cat e ainda encontramos alguns itens de backup
como tar, gzip e gunzip, além de algumas ferramentas de rede como
hostname, netstat e ping, quem nunca usou um ping! 🙂
/boot = Nome bem sugestivo, como o nome já entrega tudo, aqui ficam os
arquivos que fazem com que o seu computador inicie, ou seja, o boot e o
nosso precioso kernel (vmlinuz) e o initrd que são necessários para que o
seu sistema seja carregado (iniciado). Geralmente esse diretório tem
tamanhos que variam de 32Mb até 100Mb, como vimos na aula 1, há usuários
que preferem criar o /boot em partição diferente.
/dev = Arqui ficam todos os arquivos de configurações dos dispositivos que
você possui em seu computador e que fazem um mapeamento de tudo o que
foi reconhecido.
/etc = O nome também entrega tudo, geralmente todas as configurações que
você usa no seu computador e as configurações dos serviços que você usa
são guardados neste diretório. Este diretório não pode ser criado
separado, lembra que podemos separar o /boot, o diretório /etc não pode
ser alterado, geralmente o espaço aqui ocupado é de 10Mb até 15Mb. Aqui
encontramos arquivos de gerenciamento, hostname, resolv.conf, inittab,
httpd/conf/http.conf se você tiver serviços de email.
/home = Aqui são armazenados os arquivos do usuário, são os arquivos pessoais.
/lib = Bibliotecas dinâmicas compartilhadas, são usadas em algumas aplicações e também por módulos do kernel.
/mnt = Usado para acessar mídias externas como dvd’s, cd’s, pendrive e tudo mais.
/opt = Esta pasta é muito usada para armazenar programas de terceiros, aqueles que não fazem parte da distribuição.
/proc = Este diretório é a caixa mágica, aqui você consegue acessar arquivos
que estão alocados em uma área protegida da memória, ou seja, eles não
estão no seu hd. Em alguns casos, é possível alterar alguns destes
arquivos afim de modificar alguma funcionalidade no sistema Linux, os
mais comuns são cpuinfo, meminfo e ioports.
/root = Esse diretório não pode ser criado em partição separada, ele é o diretório pessoal do usuário root.
/sbin = Aqui ficam os arquivos executáveis que também são responsáveis pela
inicialização e administração do sistema, eles andam em paralelo com os
aplicativos que estão no /bin, os mais comuns são o ifconfig, shutdown e
route.
/sys = Do mesmo jeito do /proc ele é um sistema de arquivo virtual, aqui é
possível visualizar uma estrutura de diretórios que mostra os recursos
instalados em seu equipamento.
/tmp = Arquivos temporários como o nome já deixa a entender, geralmente são
criados por aplicativos iniciados por qualquer usuário ou por serviços.
Estes arquivos são deletados automaticamente quando a aplicação que os
criou é fechada. Caso isso não ocorra, somente o usuário criador ou o
root pode removê-lo.
/usr = Aqui é uma cópia da estrutura original. Antes era usado para instalar
programas que não faziam parte da distribuição original, a intenção da
criação dele é evitar conflitos de qualquer novo aplicativo com recursos
já existentes, e caso tenha problema, o usuário pode remover o arquivo
sem prejudicar a estrutura original.
/var = Dados variáveis como o cache de instalação de aplicativos ou do
acesso à internet, como por exemplo os pacotes baixados pelas
distribuições baseadas no Debian como Ubuntu, ficam nesta pasta. Também
temos o arquivo de controle de processos /var/run/pid.