Sistema de Arquivos no Linux - Parte 3

Aula 10 · GNU/Linux para Servidores

Transcrição do áudio

Recoleguinha, você sabe o que é a Inauditar no Tânibol? Você não leu, né? Hummm, meu amigo, um cara entrou em contato comigo e falou assim, poxa, tô cansado de teoria, teoria. Recoleguinha, realmente tem muitos cursos ali que eles partem muito ali pra teoria, né? Aqui eu tenho teoria, mas também tem a prática, lógico, só que eu gosto sempre de fazer o seguinte, eu sempre divido assim, minha pedagogia, vamos colocar que é assim. Primeira teoria, depois a prática. E na prática, obrigatoriamente, eu tenho que mostrar itens da teoria. Se na teoria tem tópicos, que eu não mostro na prática, então não deveria ter a parte teórica. Entenderam? Legal. É assim que, por exemplo, você faz um trabalho científico, né? Você não coloca teorias desnecessárias, só aquilo que respalda a tua prática. Bom, uma das teorias que eu quero trazer pra você, e que é top pra caramba, e que nós vamos usar, e eu vou mostrar aqui, inclusive, é o Tau de Ainoud. Bom, no passado, o Ainoud era uma tabela que tinha dois bytes aqui, é um número único, e o nome do arquivo com 14 bytes. Por isso que antigamente, devido a essa limitação, que o Unix antigamente tinha aqueles nomes, tipo assim, Tracinho, tio, por motivos simples, eles não podiam colocar nomes longos aqui de arquivos, então eram sempre nomes abreviações. Hoje em dia, você consegue colocar um nome grande em um arquivo, porque é o nome que diz pra você, pra sua mente, na hora que você vê na listagem, o que que tem lá dentro. E abreviação em cima de abreviação, um sistema operacional com milhares de arquivos, bom, você vai se perder. Entendeu o problema? Uma coisa é eu ter abreviação de duas, três coisas, outra coisa são milhares de arquivos abreviados. Então, mais isso aqui é o pontapé que vai iniciar aqui essa organização e que vai, naturalmente, ser utilizado no Linux. Bom, vamos lá, sempre que você vai lá, você pega um disco, cria uma partição e tudo mais, ele vai criar um super bloco, onde tem as informações da partição, ele vai encontrar grupos de descritor, você vai ter grupos de descritor, um tipo bitmap bloco pra marcar os pedaços que já estão em uso na partição e tudo mais, mais descritores, pensem que descritores seriam, vamos simplificar aqui, apontadores, endereços que apontam, vamos colocar assim. O Inode Bitmap, da mesma forma que o bloco Bitmap, o Inode Bitmap imagina que é uma grande tabela de 0 e 1, onde ele marca o que está em uso, o que não está em uso, por isso que quando você deleta um arquivo, você não deletou, ele está ali, por falar em deletar arquivos, e se eu for nesses pontos e zerar esses pontos, tem um comando que faz isso. Porém, os sistemas de arquivos modernos, ele tem um negócio também chamado de journaling, então parte do seu arquivo, desculpe, parte da sua edição sobre o arquivo está no jornallin, então tem esse problema com relação a pagar 100% os vestígios, vamos colocar assim, e o Inode Table, que é a tabela, Inode que é a tabela onde tem uma pancada desses carinhas, é limitado, o número de entradas na tabela Inode é limitado, é limitado, eu já abatia esse limite algumas vezes, o disco tinha espaço, mas a minha tabela Inode não tinha espaço, e eu vou explicar para vocês isso no capítulo de formatação, beleza? Ah, mas como que eu me mantenho anônimo, eu quero ser um hacker do mal, eu quero fazer um monte de coisa, eu quero passar a mão num monte de gente, seguinte, coleguinha, você tem que criptografar essa joça toda, e aí entra o Lux, é uma coisa que eu vou ensinar para vocês também mais para frente, porra, eu estou prometendo muita coisa mais para frente, mas está no livro, meu amiguinho, você pode avançar e ler, tá? Lux, L-U-K-S, acho que é assim que se escreve, não sei, eu sei digitar, em um sistema de 64 bits, pode se aumentar naturalmente, ou reduzir esse número, esse quantidade, o mínimo, o mínimo, mínimo, mínimo do tamanho desses carinhas, 1024 bytes, então quer dizer que os blocos, os carinhas que eu disse que são os blocos, 1024 bytes, é o mínimo dos blocos, e cada bloco ali, naturalmente, vai ter alguns endereços apontando para ele, de mais de um lugar, pode acontecer, e esses endereços estão nos Inodes, então eu tenho um monte de bloco aqui, no mínimo 1024 bytes, normalmente é 4k bytes, tá galera, 4098, aqui é 1024, e aí eu tenho as tabelas com referências apontando aqui para os blocos, certo? Para poder montar a organização, então eu, quando eu executo um comando L-S, L-S, ele vai no Inode, depois ele vai no disco, obtei os blocos, ou dados dos blocos, se for chamado, lógico, nesses Inodes eu tenho o nome do arquivo, o tamanho do arquivo, horários de criação, último acesso, última modificação, proprietário, grupo, informação de proteção, contagem do número de entradas na tabela Inode, então eu tenho essas informações em cada um desses aqui, que tá aqui nessa parte amarela aqui, legal? Bom, aí é que tá, vamos lá, Linux tem a distinção de arquivos pequenos e grandes, o Linux tem um ponto interessante, que isso aqui, inclusive, pode ser uma questão de prova, ele faz a distinção entre arquivo pequeno e arquivo grande, ele diz o seguinte, que é possível que se um arquivo for pequeno, com X números de bytes, eu armazene um arquivo diretamente no Inode, porque o Inode é dado para ele um tamanho, e se eu utilizo esse tamanho grande para aguardar endereços pequenos, então por que não salvar diretamente no Inode? Então tem a possibilidade de arquivos de 40 kbytes, são armazenados diretamente no Inode, ou seja, 10 endereços de 4 kbytes, legal, porque o padrão é 4 kbytes, e se você fez aqui os blocos com 1024, então seriam 10 entradas de 1024, seria o tamanho mínimo de um arquivo para ele estar colocado diretamente no Inode. Bom, passou disso, então ele é colocado em blocos, os blocos são endereçados naturalmente pelos Inodes, e aí então ele segue pegando os blocos igual, nós vamos ver aqui. E nós temos esse endereçamento dos Inodes, tipo assim, simples diretamente, o Inode aponta diretamente para o bloco e acabou, eu tenho a possibilidade do Inode apontar para outro Inode que aponta para os blocos, ou a Inode aponta para outro Inode que aponta para outro Inode que vai até os blocos. Só para ter uma noção, se eu tenho essa, essa organização aqui, os arquivos podem ter uns 4 megabytes, aqui os arquivos podem ter 4 gigabytes e aqui os arquivos poderiam chegar a ter 4 terabytes. Bom, para a extração, imagina, extração de banco de dados, está na casa de tera, meu amigo. Então funciona assim, eu aponto desses blocos de endereços para posições, para o Inode, e aí o Inode tem ali o modo, o 0id, o groupid, preste bastante atenção disso aqui. O id, id, id, vocês vão usar isso no futuro. Por que size? Por que eu tenho total de bytes do arquivo aqui na entrada? Porque seria muito difícil contabilizar o tamanho, e se você olhar bem, é muito comum cd-bar-dev, é muito comum em uma LS você exibir o tamanho deles, então está aqui o tamanho deles. Está colocado ali 7 bytes, 8 bytes, 9 bytes, deixa eu colocar em uma visão mais humana. Colocar em uma visão mais humana, a visão humana é colocar o agazinho aqui. Peraí que, peraí, vou jogar dentro do morro, para mostrar os poucos. Então você vai ver que em uma visão mais humana, não jogou no mando não, cara. O número de bytes deles, tem arquivos pequenos, arquivos grandes, normal. Beleza, fui para o diretor ruim cd-bar-bin, clia, ficou em baixo, LS traço L, H. Aqui ficou melhor para vocês verem. Olha só, Kbyte, 27 Kbytes, 52 Kbytes, 7 bytes, ali nós temos ali reparque. Não tem nenhum de megabyte, porque nós somos do diretório de executáveis binários. Essas cores têm um motivo da sua existência, tá gente? E aí então você tem apontamentos direitos, apontamentos duplos e apontamentos triples, três tabelas aqui que fazem os apontamentos. Bom, e aí naturalmente cara dá para o arquivo pra caramba, quer dizer bytes pra caramba nesses arquivos. Vocês sabiam que o diretório ele é um arquivo? Todo diretório ele é um arquivo, inclusive, clear, clear, legal. File bar-home, então bar-home ele é um arquivo do tipo diretório. Então nós encontramos o bar-home que é um arquivo, os endereços dos próximos inodes. Ou seja, então nós temos ali um diretório. E aqui legal. E todos os inodes, naturalmente, se você olhar, eles estão apontando para blocos ou outros inodes. E vamos dar uma olhada aqui no exemplo do livro do Tanebol. Beleza, aqui eu tenho então uma raiz que seria eu chegar aqui, eu vou jogar de lado. Clear, clear, clear. Foi mal galera. CD, eu vou lá para raiz, certo? E aí eu executo aqui um ls traçoele. Então estamos aqui vendo os diretórios, certo? Beleza. O que é o ponto? Ponto é aonde eu estou. Como assim? Olha, CD ponto, vou navegar para onde? Para onde eu estou? Não fez sentido, não fez sentido nenhum. Mas olha só, CD ponto barra. Da onde eu estou? Da onde eu estou? Olha que legal. Tem um tal de ROME. Depois de ROME, você tem então o Zerlinox. Olha só. O ponto barra é da onde eu estou. Entendeu por que nós usamos o ponto barra? Para dizer, da onde eu estou, vai ter um diretório assim, depois outro assado e assim vai. Legal. Esse diretório ponto ponto. Vamos entrar em um diretório CD barra ROME barra o Zerlinox, certo? PWD. Então eu estou em barra ROME barra o Zerlinox. Eu quero voltar para barra ROME para o diretório anterior CD ponto ponto. Eu volto para barra ROME. Olha PWD barra ROME. Viro. Eu voltei. Dois pontinhas voltar. Um pontinho é onde eu estou. Por isso que eu falei para vocês no vídeo anterior que eu explicar para vocês pontinhas agora. Nesse vídeo. No futuro. No futuro lá e no presente aqui. Barra Bim, Barra Dev, Barra Lib, Barra ETC, Barra OCR, Barra TMP. Tudo isso nós vimos no vídeo anterior. Legal. Então quando eu digito assim, CD, OCR. Opa, pera aí. Tem que voltar para a raiz, né? CD, OCR. Olha o que vai acontecer. Ele vai, OCR, carregar o I-Node 6. Aí ele vai carregar na memória. Ele vai no disco Busco I-Node 6. Aonde está o disco I-Node 6? Nessa área amarela aqui. Ele vai lá, busca o I-Node 6. Dá uma olhada nos dados que tem, que são esses dados aqui. Aqui. O I-Node. E um dos pontos desse I-Node é uma tabelinha que seria essas tabelinhas aqui. De baixo. Que vai apontar para outro lugar. Então ele apontou para um bloco 132 do disco. 132. Aí meu amigo, o que vai acontecer? Ele vai vir aqui nos blocos. E vai buscar o bloco 132. E vai montar na memória. Por isso que eu falei para vocês, quando vocês olham para isso aqui, você está vendo a memória, meu amigo. Isso aqui é a memória. É a memória. Está na memória isso aqui. Aí, o que que acontece? O PPS pressionado. Foi mal. Aqui dentro ele vai digitar o AST, que é um usuário. Que tem os usuários. Antigamente o Linux, em algumas distribuições Linux, na verdade mais no Unix, o SR era o diretório dos usuários, que ali eles podiam fazer o samba louco que eles quisessem fazer. Muito louco. E isso ficou organizado depois, nas primeiras distribuições Linux, já organizou essa zona. Bom, e AST, então, é o I-Node26. Então, lógico que eu não tenho AST aqui, se eu fizer CD, AST, não tem aqui. Ele iria carregar, então, o I-Node26. Então, novamente, ele iria vir aqui na parte amarela. Pegaria o I-Node26. Aí ele viria aqui. Olharia o I-Node26, os dados do I-Node26. Iria nos endereços e iria achar um endereço, que aqui é o 406. Então, ele iria buscar o bloco 406 no Marrom. Marrom Cocô. Tinha um cor-cel horrível, cara. Cor-cel a Marrom Cocô, cara. Eu quase comprei um. Cor-cel 70, alguma coisa. Quase comprei. Acabou comprando uma balina. Uma Belina Marrom Cocô. A balina. Mano, eu estou muito cansado, bicho. Vocês não fazem ideia o quanto eu estou cansado, cara. Aí ele carrega o bloco. Certo? Adivinhe o que é que tem no bloco. Um outro I-Node. E aí, lista na memória. Então, é assim que ele vai carregando. Carrega o I-Node, óleos do atributo do I-Node, carrega os blocos e monta na memória. E assim ele vai. E assim ele vai. Com o que um Linux você verifica esse tal de I-Node, tá? Bom, lembra que eu falei. Esse curso é teórico e prático. Player. Bom, LES, traço L de listagem e de I-Nodes. Enter. Então, por exemplo, o I-Node 783941 é um I-Node. Que está na tabela amarela. Que o Carrega vai carregar o bloco adequado. Que legal, ó. Que legal. Então, é assim que nós enxergamos esses I-Nodes. Então, nós sabemos que, por incrível que pareça, o mesmo arquivo pode estar em dois lugares e não ser link. Vou repetir. O arquivo pode estar em dois lugares e realmente estar em dois lugares. Não como link, mas o arquivo está em dois lugares. Isso pode acontecer. Vamos lá. CD barra. Para cima e para cima. Aqui, ó. I-Node 1 é o barra dev. Dá lá. O primeiro da tabela I-Node, tá? E aí você pode ver aqui, então, os endereços I-Node da raiz. Legal. Beleza. Próxima aula, vamos falar sobre tipos de arquivos. Até lá, até mais. Tchau. Mas eu vou descansar antes da próxima aula. Até mais, tchau.
Voltar ao curso