2013-07-29 2 views
2

Мне нравится знать, как рассчитывается размер файла в операционной системе?Как ОС вычисляет размеры файлов?

Мое лучшее предположение, что ОС каким-то образом отслеживает список файлов и все связанные с ними куски дисков, которые они занимают, и просто умножает (количество фрагментов диска размером * chunk), но это не даст точного размера файла так как в куске может быть неиспользуемое пространство, тогда я предполагаю, что он может зациклиться на все байты последнего куска, пока не найдет символ null termnination.

Я думаю, это зависит от ОС, но им просто пытаюсь понять общую картину, но в противном случае им искать ответы, связанные с UNIX :)

+1

https://en.wikipedia.org/wiki/Inode – devnull

+0

спасибо devnull, который ответил на мой вопрос :) не могли бы вы создать ответ вместо комментария? –

ответ

1

На Linux и других Unix-подобных операционных систем, inode хранит всю информацию о файле, кроме его имени и содержимого данных. Когда файл создается, ему присваивается имя и номер inode, который является целым числом, которое является уникальным в файловой системе.

Структура inode включает в себя режим файла (который определяет разрешения и тип файла), идентификатор владельца, идентификатор группы, системные и пользовательские флаги, размер, временную метку (время создания/доступа/модификации), количество ссылок, идентификатор устройства (чтобы идентифицировать устройство, содержащее файл), и указатели на блок диска, которые хранят фактическое содержимое файла.

Смежные вопросы