How do computers know the capacities of drives connected to them?
Primeiros discos rígidos de PC (por exemplo, ST506, MFM, RLL) exigiam parâmetros fornecidos pelo usuário para a geometria do inversor (ou seja, número de setores por trilha, número de cabeças R / W e número de cilindros) para CHS abordando . É claro que os PCs (IBM) assumiram / definiram um tamanho de setor de 512 bytes.
Estes parâmetros foram tipicamente armazenados no BIOS do PC.
As unidades IDE introduziram o conjunto de comandos ATA, que incluía um comando Identify Device
(usando o código de comando 0xEC), que informava a geometria da unidade e outras informações.
Pela versão 3 do ATAPI, a resposta a esse comando incluía o total number of user addressable sectors
. (Eu não tenho nenhuma versão anterior da especificação ATAPI, então não tenho certeza exatamente o que estava na resposta pré-ATA-3.)
Usando o número total de setores e o tamanho do setor, a capacidade total do disco é facilmente calculada.
Como as versões modernas do ATA (por exemplo, unidades SATA com gravação de bit de zona) não suportam mais o endereçamento CHS, a geometria do inversor é irrelevante (e nem mesmo constante devido a gravação de bit de zona ).
As unidades flash USB simplesmente usam o USB como um protocolo de transporte e implementam o conjunto de comandos ATA exatamente como o HDDS e os SSDs. Assim, a capacidade de unidades flash USB (e HDDs / SSDs SATA) pode ser obtida facilmente, interrogando a unidade usando o comando ATA Identify Device
.
Os cartões SD possuem um protocolo de comando proprietário para uso em sua interface. A capacidade do cartão, os recursos de velocidade e outras informações são relatados como uma resposta em sua linha de comando (e não através da interface de dados do cartão).
Os sistemas operacionais fornecem principalmente acesso de usuários a dispositivos de armazenamento em massa, como HDDs e SSDs, como sistemas de arquivos.
Por convenções de PC, a unidade deve ser particionada e um sistema de arquivos deve existir em uma partição da unidade. Observe que os disquetes e, opcionalmente, as unidades flash USB não são particionados.
Os parâmetros salientes do conversor (isto é, o endereço inicial e final do setor / endereços LBA) das partições são recuperados da tabela de partições (localizada no (s) setor (es) MBR ou GPT).