Creio que você já deve ter se perguntado porque o pendrive de 1.5G mostra disponível apenas 1.38G, ou mais, o recém adquirido HD de 80G me disponibiliza um pouco menos, por volta de 78G, ou mesmo um disquete de 1.44M que só dispõe 1.36M. Afinal, pra onde foram esses bytes que na hora da venda anunciam, mas quando vou usar, não estão disponíveis?
Vamos começar então executando o seguinte comando e temos o resultado:
$ ls -i
231362 exerc.txt
274305 guardar.log
Aqui nós temos 2 arquivos e os números antes do nome é o inode de cada um. Vamos aproveitar o embalo e entender os conceitos de link simbólico e hard link que são comentários ao usar o comando ln para a criação de links.
Quando usamos o comando "ln -s" estamos criando um link simbólico para um determinado arquivo. Esse tipo de link segue os padrões Windows, que é criado um tipo de arquivo especial que contém somente o caminho ou o nome do arquivo original. Veja o exemplo.
Com isso temos uma listagem mais detalhada dos nossos arquivos. O que vamos fazer é criar um link simbólico para o arquivo exerc.txt que chamaremos de exercicio1, para isso basta usando o seguinte comando:
Temos o seguinte resultado, de início vemos que a letra "l" está definida no nosso exercício1, indicando que ele é um link. Mas agora vem o que já não é surpresa pra você, o tamanho desse link são 9 bytes, ou seja, o tamanho do nome do arquivo que criamos o link.
Outro detalhe importante é que esse link possui um inode diferente do arquivo original, ou seja, trata-se oficialmente de um arquivo diferente, mas que serve como "apontador" para aquele que contém descrito dentro dele. Agora vamos criar um hard link usando o seguinte comando:
Bingo! Observe agora que o link exercicio2 e o nosso arquivo original exerc.txt possuem o mesmo inode, então trata-se exatamente do mesmo arquivo.
Com isso podemos criar em diretórios distintos hard links para um mesmo arquivo, mas que tenham permissões diferentes para cada usuário, definindo políticas bem específicas sobre um determinado arquivo sem ter que ficar enviando cópias para cada usuário após uma mudança, por exemplo.
Você pode brincar e entender melhor o funcionamento do inode copiando, movendo e renomeando arquivos, tenho certeza que entenderá melhor o funcionamento do seu sistema de arquivos.
[1] Comentário enviado por engos em 02/07/2007 - 07:27h
Olá slaypher.
Há muito desisti de comentar ou dar notas em artigos, pois a maioria são cópias de artigos de outros sites, ou simplesmente cópias de outros artigos desse site, e quando não o são, é puro lixo que nem vale a pena terminar de ler ou opnar.
Fico contente em ver um artigo com um assunto novo e muito bem feito.
Parabéns, espero que continue compartilhando conosco artigos desse n
ivel!
[4] Comentário enviado por slaypher em 02/07/2007 - 08:47h
Olá,
Agradeço a todos pelo Feedback, e espero sempre trazer artigos com assuntos interessantes e pouco abordados, por isso não tenho uma freqüência muita alta de publicações.
A idéia do artigo surgiu em uma conversa com um colega do trabalho, enquanto conversávamos sobre as provas da LPI.
[8] Comentário enviado por falconi em 02/07/2007 - 15:41h
Apenas uma informacao adicional.
O INODE é implementado pelo file system utilizado pelo sistema operacional. Ele consome espaço para guardar os atributos dos arquivos, isto e' um fato.
Porem, o fato de voce comprar um HD de 160GB e na verdade ter 149GB de espaço se deve ao fato de o fabricante produzir um HD de 160.000.000.000 bytes, mas na hora de converter para GB ele divide por 1000 3 vezes (provavelmente por orientação do departamento de marketing). O certo e' dividir por 1024 bytes 3 vezes, pois 1GB é 1024MB que é 1024KB que é 1024 bytes.
O meu sistema operacional avisa que meu HD de supostamente 160GB tem 152587MB, ou seja, 149GB (152587/1024). O INODE está gastando espaço dos 149GB e não dos "160GB".
Para informações mais detalhadas sobre INODE acesse:
[11] Comentário enviado por slaypher em 02/07/2007 - 18:46h
Falconi,
Se você reparar bem, ao usar algum utilitário que detalhe o tamanho exato do disco rígido, o tamanho não é exato como diz, mas de fato ao arredondar, alguns bytes são perdidos nessa conta.
[12] Comentário enviado por eyglys em 02/07/2007 - 22:17h
O artigo está bom, mas me sinto na obrigação de corrigir a seguinte informação:
"Bingo! Observe agora que o link exercicio2 e o nosso arquivo original exerc.txt possuem o mesmo inode, então trata-se exatamente do mesmo arquivo.
Com isso podemos criar em diretórios distintos hard links para um mesmo arquivo, mas que tenham permissões diferentes para cada usuário, definindo políticas bem específicas sobre um determinado arquivo sem ter que ficar enviando cópias para cada usuário após uma mudança, por exemplo. "
Como o nosso amigo disse, os arquivos possuem o mesmo inode, isso significa que os arquivos irão apontar para a mesma região do disco, irão possuir AS MESMAS PERMISSÕES, O MESMO PROPRIETÁRIO, O MESMO GRUPO, pois essas informação são guardadas no INODE.
Do meu ponto de vista, esse deslize não tira o brilho do artigo, já que existem muitas outras utilidades para HARD LINK.
[13] Comentário enviado por slaypher em 02/07/2007 - 22:56h
eyglys,
Obrigado pela correção e pelo elogio ao artigo. Foi muito bem destacado da sua parte, de fato foi um belo deslize, é até contraditório pensar da forma que expliquei, peço desculpas por isso e gostaria de lhe pedir alguns bons exemplos de uso para o Hard Link para que possamos esclarecer melhor a sua utilidade.
[14] Comentário enviado por eyglys em 02/07/2007 - 23:34h
Utilidades para o Hard Link:
1 - Criar cópias de arquivos comuns para usuários, sem revelar (diretamente) onde esse arquivo está instalado
2 - Diminuir a quantidade de INODES no disco
3 - Acelerar o acesso ao arquivo (como o link possui o mesmo INODE, o gerenciador de arquivos não necessita fazer uma consula ao INODE do link simbolico, consultar o HD para saber para onde ele aponta, para só então acessar o arquivo verdadeiro, esse acesso é feito diretamente)
4 - Backup dos ponteiros dos arquivos (Talvez essa seja uma das principais utilidades para os HARD LINKS, pois um arquivo só é perdido quando não se existe nenhum ponteiro, nenhum meio de se chegar até ele. Quando vc cria uma pasta de backup contendo apenas HARD LINK para os arquivos originais, vc terá uma "cópia do ponteiro do arquivo", o que serve como "backup de onde o arquivo está no HD", para o caso de uma remoção acidental. ESSE BACKUP NÃO COPIA O CONTEÚDO DO ARQUIVO, SOMENTE O LOCAL ONDE O ARQUIVO SE ENCONTRA NO HD)
[15] Comentário enviado por slaypher em 03/07/2007 - 00:03h
eyglys,
Obrigado pelo complemento, as únicas razões que havia conseguido pensar para o uso de HardLinks foi a primeira e a última da sua explicação, não havia pensado nessas outras utilidades.
Mas vale ressaltar que mesmo usando HardLinks para backup, caso ocorra um dano no arquivo, seja por desligamento inesperado ou algo assim, o arquivo de "backup" também sofrerá o mesmo dano, por isso deve-se tomar cuidado, afinal de conta, trata-se exatamente do mesmo arquivo.
Outro detalhe é que não podemos usar HardLinks entre partições e HD's diferentes e nem em diretórios. Mas é uma forma bem interessante de manter uma cópia de segurança, pois um HardLink ocupa apenas um inode e não mais um espaço na partição corrente como ocorreria se fizesse uma cópia.
[17] Comentário enviado por dailson em 10/07/2007 - 17:06h
Excelente artigo. Mas é bom considerar que os HDs são vendidos em Milhões de Bytes e não em Megabytes como citou o nosso companheiro falconi.
Parabéns!
[19] Comentário enviado por angeloshimabuko em 14/07/2007 - 17:58h
A introdução não está correta. As diferenças indicadas ocorrem pelo uso inadequado de unidades. Os fabricantes de mídias de armazenamento usam as unidades do SI, i.e., usam a base 10. Assim, 80 GB equivalem a 80 multiplicado por (10 elevado à 9), ou seja, 80.000.000.000 bytes (na verdade os valores não são exatos). Já o sistema operacional (Linux, neste caso) usa ferramentas (fdisk, ls, df), cujas unidades usam a base 2. Assim, um disco de 80 GB apareceria no fdisk como possuindo aproximadamente 74,5 GiB (gibibytes, onde um GiB equivale a 2 elevado a 30).
As considerações finais também contêm um erro: os valores indicados como sendo os tamanhos possíveis dos inodes (ou nós-i em português), na verdade são valores para os tamanhos dos blocos. Um nó-i armazenas as informações sobre um arquivo (os metadados) enquanto um bloco armazena os dados do arquivo.
[22] Comentário enviado por Nick em 01/11/2007 - 08:20h
Comprei um hd de 250G, mas depois da formatação, o rapaz caiu pra 223G. Olha o tanto de espaço que perdi...
POrem, esse artigo me tirou varias duvidas. Muito bom artigo!
[27] Comentário enviado por marcalledo em 19/09/2008 - 12:37h
Gostaria de saber se o I-node ocupa a memória principal quando os arquivos estiverem abertos e se a tabela de alocação de arquivos precisa ser carregada na memória principal
O correto então seria informar por exemplo que o HD é de 80 "Gb" e não em "GB" pois 1 Gb = 1.000 Megabits = 1.000.000 Kilobits = 1.000.000.000 Bits que é diferente de 1 GB = 1024 MegaBytes = 1.048.576 KiloBytes = 1.073.741.824 Bytes.
Se o HD é de 80 (Gb)
80 * 1000) = 80.000 Megabits (Mb)
Então:
80.000(Mb) / 1024 = ~78 GigaBytes (GB)
[40] Comentário enviado por alexandremc em 27/02/2014 - 16:17h
Desculpe ser o advogado do diabo.
Não sei como abordar o tema sem ser dessa forma mais..
O amigo autor se equivoca em alguns pontos:
1) O Tamanho do HD é porque 1MB(MegaByte) = 1024KB (KiloBytes) porém o fabricante arredonda para 1000KB a partir da conversão de MB, ou seja de MB para GB(GigaByte) ele arredonda e de GB par TB(TeraByte).
Os meta dados (Como inode e sua estrutura) de fato consomem sim espaço, mas na partição já formatada, o sistema de arquivos e instalado em uma partição, logo não existe nenhuma relação com o tamanho do disco reconhecido.
OBS: Em GNU/Linux diretórios são arquivos.
2) Links Simbólicos não são atalhos como no Windows. Porque o Windows a partir do XP (Talvez 2000 não lembro) tem link´s simbólicos e hardlink.
São forma diferentes de referenciar um caminho, o atalho do Windows está mais para lançador, o conceito de soft link tem natureza diferente.
O Hard link pode acrescentar, é um ponteiro para o arquivo físico gravado no disco, você pode criar 2 arquivos que apontam para a mesma região de memória, hardlink só funciona na mesma partição.
Uma função muito útil é para organizar arquivos, exemplo, eu baixo por utorrent na pasta Downloads e tenho um outro disco com os arquivos organizados, Filmes, Aulas, Livros etc, eu crio hardlink para essas pastas, dessa forma o espaço ocupado em disco é o mesmo, pois não se trata de uma cópia e sim de um ponteiro para o arquivo físico.
[41] Comentário enviado por silascardoso em 24/08/2014 - 17:19h
Pessoal, esse artigo está completamente equivocado, essa diferença entre o tamanho do disco declarado pelo fabricante e o tamanho real, não tem nada com o INODE, como bem o amigo disse em outro comentário:
"Porem, o fato de voce comprar um HD de 160GB e na verdade ter 149GB de espaço se deve ao fato de o fabricante produzir um HD de 160.000.000.000 bytes, mas na hora de converter para GB ele divide por 1000 3 vezes (provavelmente por orientação do departamento de marketing). O certo e' dividir por 1024 bytes 3 vezes, pois 1GB é 1024MB que é 1024KB que é 1024 bytes.
O meu sistema operacional avisa que meu HD de supostamente 160GB tem 152587MB, ou seja, 149GB (152587/1024). O INODE está gastando espaço dos 149GB e não dos "160GB"."