2013-11-25 1 views
0

Я сделал папку и файл в ней (в Linux), а затем я использовал следующую команду, чтобы получить номер инода каждого файла и каталога:почему Inode номер отличается от компьютера к компьютеру

ls -i -R 

но когда я использую другой компьютер с одной и той же задачей, я получаю разные числа для каждого inode, я знаю, что это разумно, но могут ли все объяснить причину этого? Я имею в виду, почему результаты отличаются от компьютера к компьютеру?

+0

1. Не по теме для SO. 2. Вы даже не знаете, что такое i-узел! – John3136

+0

Я думаю, что Inode преподается в теме реализации файла, и поэтому он находится в теме Os. Поэтому я думаю, что ваш главный не компьютерный наука, поэтому вы так думаете. 2) Inode - это структура данных, используемая для представления файла. 3) Считаете ли вы, что этот способ ответа полезен? –

+0

Я не ответил, прокомментировал. Я не студент, но когда я был моим майором, был comp sci. SO - для проблем программирования. Это не проблема программирования. – John3136

ответ

2

inode (or index node) является указателя/идентификатор используетсяв пределах внутренние структуры данных из файловой системы.

Таким образом, разные компьютеры имеют разные файловые системы - речь идет о данных, а не о типе/реализации! - и, следовательно, имеют разные значения inodes для ресурса. Индекс представляет собой внутренний идентификатор, а путь - это внешний идентификатор.

Как аналог, представьте себе программу C в современной операционной системе, которая устанавливает новый объект. Malloc возвращает уникальный указатель в пределах процесса. Тем не менее, многие процессы могут использовать одно и то же значение указателя (если рассматривать его как целочисленный адрес), ссылаясь на полностью не связанных объектов.

+0

, имея разные файловые системы, вы имеете в виду разную реализацию файловой системы? –

+0

№ Разные * данные *. То есть тот же тип файловой системы (т. Е. Ext4 и даже на одном физическом оборудовании), но разные внутренние данные. Система, как правило, может выбрать * «любое» * бесплатное значение inode при добавлении нового файла. Поскольку используемые (и бесплатные) значения inode будут отличаться в зависимости от системы (в зависимости от того, какой предыдущий доступ к файлу произошел), это означает, что вероятность того, что две системы будут иметь одинаковое значение inode для определенного файла (за исключением «прямой копии физических данных» *) чрезвычайно низка. – user2864740

+0

* данные * - это состояние * всех предыдущих операций файловой системы * - это включает в себя логический макет (который может быть одним и тем же) * и * расположение внутренней файловой системы (это не то же самое). – user2864740

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

  • Нет связанных вопросов^_^