Как доказать, что каталог это файл в Linux - PullRequest
0 голосов
/ 12 февраля 2019

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

Просмотр каталога и другого физического оборудования в виде файлов в Liniux. (POC)

1 Ответ

0 голосов
/ 12 февраля 2019

Выражение «Все - это файл в Linux» - это упрощение.В Linux есть много вещей, которые отображаются в виде файлов, но не совсем «действуют» так, как вы думаете, в обычном смысле.

Блочные файлы (например, /dev/loop0) являются отличным примером этого, поскольку они используются как способ связи с драйверами устройств.

Тем не менее, каталоги - это их собственный «специальный» тип файла, который содержит идентификаторы inode, указывающие на inode файла.Я предполагаю, что простым «доказательством» такого рода будет ls -l любой каталог, и вы заметите, что большинство (если не все) из них будут иметь размер файла в списке 4096 байт, а не перечислять общий размер его содержимого.

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

В качестве альтернативы, использование stat в любом каталоге покажет его собственный номер inode (а также количество ссылок, которые у него есть).

РЕДАКТИРОВАТЬ: файлы каталогов содержат идентификатор индекса (указатель на индекс файла), а не сам индекс.Я отредактировал ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...