Los tamaños de los discos duros están limitados por el número de bits utilizados en el cilindro / cabeza / sector. En el pasado lejano (es decir, hace 10 años) tenía que hacer todo tipo de longitudes para reasignar CHS y esquemas de LBA extendidos para poder utilizar una unidad de disco de más de 32 MB que de 512 MB, etc.
Los tamaños de archivo están limitados por el número de bits utilizados para especificar el tamaño. En FAT32 son 32 bits y, por lo tanto, archivos de 4 Gb, en NTFS son 64 bits, por lo que son archivos muy, muy grandes (¿18 Exabytes?). El ZFS de Sun puede almacenar archivos de 256 pebi-zebibytes, que es probablemente más de lo que hay átomos para hacer el disco.
Esto es posible porque los discos son mucho más lentos que la memoria; no es un problema almacenar un tamaño en un número superior a 32 bits porque el tiempo que necesita la CPU para leer las partes del número y sumarlas es mucho menor que el tiempo de acceso .
Puede hacer esto para la memoria y tener un espacio de direcciones de 64 bits en una máquina de 32 bits almacenando cada dirección en dos valores: sería lento, pero es lo que tuvimos que hacer para direccionar 64K de memoria en una máquina de 8 bits.