Você aprendeu que os discos rígidos contêm arquivos, mas essa não é a verdade toda. Na verdade, os discos rígidos contêm um número muito grande, expresso por vários bits. Mas essa interpretação não faz sentido para você nem para o seu computador, porque o processamento de números grandes não é muito comum (e estou falando de números REALMENTE ENORMES). Em vez disso, o computador o divide em "palavras" menores (8 bits, 16 bits, 32 bits ou qualquer outra coisa) e usa assim. Ainda assim, isso é apenas um monte de palavras (vamos supor palavras de 8 bits, ou seja, bytes).
Agora, essa unidade está particionada. Expliquei por que o particionamento é uma boa ideia em esta resposta :
Generally speaking, drives can be used without partitioning. Most pendrives work like that. But using partitions has many advantages, just to name some of them:
- You can have two OSes sitting on the same hard drive and not interfering with each other. Each one will treat its partition as a logical drive and won't mess with other ones unless you tell it to.
- You can logically separate your data. If one partition becomes corrupted for some reason, other partitions will very likely remain intact.
- Using partitions is better than using multiple smaller hard drives, because your system is quieter, consumes less energy and you can resize, delete, move them around etc.
- You can use some parts of the hard drive for some special purposes.
Agora, cada partição tem seu próprio sistema de arquivos. As versões modernas do Windows usam NTFS , mas FAT , FAT32 e exFAT são suportadas para mídia externa ou partições legadas. As instalações Linux de uso diário normalmente usam sistemas de arquivos ext , sendo o ext4 o mais recente.
O Filesystem define o modo como os arquivos estão fisicamente localizados no disco. Você pode pensar assim: se você tivesse um livro de 10000 páginas sem capítulos, números de página ou quebras de linha, seria muito difícil de usar. É claro que os números das páginas e os títulos dos capítulos ocupam algum espaço na página, mas tornam o uso do livro muito mais fácil e rápido. Se você quiser pular para o capítulo, digamos, 42, basta procurar no sumário. Então você folhear o livro até encontrar o capítulo desejado. Seus arquivos são capítulos e seu sistema de arquivos é o livro. Metadados do sistema de arquivos, como limites de arquivos, nomes de arquivos, etc. ocupam espaço também, mas é uma quantidade comparativamente pequena de espaço e faz com que as coisas funcionem muito mais rápido.
Se o seu "capítulo" estiver vazio, ele ainda pode ter um cabeçalho ou um número de página, certo? Arquivo vazio contém zero bytes de dados. Os metadados ocupam espaço, mas não fazem parte do arquivo, mas do sistema de arquivos. Caso contrário, você veria nomes de arquivos em seus arquivos de texto?
A propósito, é por isso que as primeiras versões do DOS estavam aceitando apenas nomes 8.3 - o espaço reservado para nomes de arquivos era muito limitado. O NTFS permite nomes de arquivos com 255 caracteres [ 1] .
Apenas mais uma palavra no seu comentário:
I used to have a kind of virus that somehow corrupted a couple of files in my PC so that they appeared to be about 100GB in size. Each of them. On my 40GB harddisc. So there must've been some kind of magic... :-D
É completamente possível ter arquivos válidos maiores que o seu disco rígido graças a um recurso chamado arquivos esparsos . Hennes tem uma excelente explicação sobre isso em seu comentário sobre esta questão :
Imagine a binder capable of holding a 100 pages. If you use that binder as a regular file you could insert a 100 pages. You could read all 100. You could write to all 100. Now imagine a sparse binder. You insert the first page you write "page 1: Content A". You then insert a the second page you write "page 9999: content b:". Whenever you try to read a page you look if it exists. If it does not, your answer will be this is an empty page. If it does exist you return the contents of the page. Whenever you write to a page which does not yet exist in the binder you add a new sheet of paper.