¿Cómo calculan las Mac la cantidad de espacio disponible en el disco duro?

3

¿Qué tipo de algoritmo utilizan para ver cuánto espacio queda? Pensé que tal vez la cantidad de espacio con la que comenzó está programada y luego el tamaño de los archivos creados se resta de la cantidad total.

P.S: ¿Esta es una pregunta de Mac o una pregunta de programación?

    
pregunta Steampunkery 23.08.2015 - 18:15

1 respuesta

9

Su pregunta es difícil de responder porque no menciona la capa que está viendo.

Hay al menos cuatro capas a considerar:

  • capa de hardware

    Por lo general, el hardware consiste en algunos bloques administrativos, los bloques de "carga útil" y algunos bloques de repuesto. Un disco duro contiene una docena y un SSD hasta el 15% del tamaño oficial de bloques de reserva / reserva. Los bloques defectuosos se vuelven a asignar a los bloques de reserva / reserva mediante el firmware del disco. El sistema operativo solo conoce el tamaño de los bloques de carga útil. Algunas herramientas de disco de bajo nivel (por ejemplo, Spinrite ) pueden leer la cantidad de bloques de repuesto disponibles.

  • capa Partiton

    Dependiendo del tamaño del disco duro, propagado por el firmware / hd-controller a su EFI / sistema operativo, su herramienta de partición (por ejemplo, Utilidad de Disco) puede crear particiones al determinar los valores de inicio y final para cada partición en el tabla de particiones El espacio libre en su disco duro está determinado por el bloque final de la última partición y el comienzo de la segunda tabla GPT (siempre que haya particionado su unidad continuamente y que no existan espacios). Puede leer el espacio libre en su disco duro con gpt .

  • Capa de volumen

    Por lo general, las particiones deben formatearse con un sistema de archivos para poder usarse. Casi todos los sistemas de archivos importantes contienen un mapa de bits de volumen. El mapa de bits del volumen es una representación de todos los bloques (sistema de archivos) o agrupaciones de un volumen. Los bloques libres y los bloques ocupados están marcados de manera diferente. Por lo tanto, un método para determinar el espacio libre en un volumen es contar todos los bloques etiquetados en el mapa de bits de volumen.

  • LVM layer (Logical Volume Manager) o CoreStorage

    La capa LVM es una capa de abstracción entre discos duros, particiones y volúmenes. Aunque determinado por las particiones básicas ("Volúmenes físicos"), un Volumen lógico puede abarcar varios Volúmenes físicos (unidad de fusión). No lo sé con seguridad, pero un Grupo de volúmenes lógicos probablemente contiene una contraparte de una tabla de particiones que contiene toda la información sobre todos los objetos contenidos (como Volúmenes físicos, Familias de volúmenes lógicos, Volúmenes lógicos) . El espacio libre disponible se puede leer ingresando diskutil cs list

  • bloque / capa de clúster (esto es no relevante para sistemas de archivos OS X)

    Algunos sistemas de archivos admiten subasignación de bloques . En pocas palabras: muchos archivos no ocupan un bloque / cluster completo de la capa de volumen porque son más pequeños que el tamaño del bloque / cluster. En el espacio libre del clúster, puede almacenar un segundo / tercer / cuarto archivo pequeño. No sé cómo determinar este espacio libre (probablemente algo de magia i-node / B-Tree).

Dependiendo de la capa, ahora puede elegir el método o la herramienta adecuada para determinar el "espacio libre de su disco duro".

    
respondido por el klanomath 23.08.2015 - 20:15

Lea otras preguntas en las etiquetas