Что такое Суперблок, Inode, Dentry и Файл?

Портативный:

% ps -o stime,time $$
STIME     TIME
Jan30 00:00:06

т.е. та оболочка была запущена 30 января и составила приблизительно 6 секунд процессорного времени.

Там может быть более точным или более parseable, но меньше портативных способов получить эту информацию. Проверьте документацию Вашего ps команда или Ваш proc файловая система.

В соответствии с Linux, эта информация живет в /proc/$pid/stat.

awk '{print "CPU time: " $14+$15; print "start time: " $22}' /proc/$$/stat

Процессорное время находится в миге; я не знаю бесцеремонно, как найти значение мига от оболочки. Время начала относительно времени начальной загрузки (найденный в /proc/uptime).

130
22.09.2015, 19:45
5 ответов

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

Суперблок является по существу метаданными файловой системы и определяет тип файловой системы, размер, состояние и информацию о других структурах метаданных (метаданные метаданных). Суперблок очень очень важен для файловой системы и поэтому хранится в нескольких избыточных копиях для каждой файловой системы. Суперблок является структурой метаданных очень "высокого уровня" для файловой системы. Например, если суперблок раздела, / var, становится поврежденным затем, рассматриваемая файловая система (/var) не может быть смонтирована операционной системой. Обычно в этом случае необходимо работать fsck который автоматически выберет альтернативу, резервную копию суперблока и попытается восстановить файловую систему. Сами резервные копии хранятся в распространении групп блока через файловую систему с первым, сохраненным при 1 смещении блока от запуска раздела. Это важно, если ручное восстановление необходимо. Можно просмотреть информацию о ext2/ext3/ext4 резервных копиях суперблока с командой dumpe2fs /dev/foo | grep -i superblock который полезен в случае ручной попытки восстановления. Давайте предположим, что команда dumpe2fs производит строку Backup superblock at 163840, Group descriptors at 163841-163841. Мы можем использовать эту информацию и дополнительное знание о структуре файловой системы, чтобы попытаться использовать это резервное копирование суперблока: /sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo. Обратите внимание на то, что я принял размер блока 1 024 байтов для этого примера.

inode существует в, или на, файловая система и представляет метаданные о файле. Для ясности все объекты в Linux или системе UNIX являются файлами; фактические файлы, каталоги, устройства, и так далее. Обратите внимание на то, что, среди метаданных, содержавшихся в inode, нет никакого имени файла, поскольку люди думают о них, это будет важно позже. inode содержит по существу информацию о владении (пользователь, группа), режим доступа (чтение, запишите, выполните полномочия), и тип файла.

dentry является связующим звеном, которое содержит inodes и файлы вместе путем связи inode чисел с именами файлов. Dentries также играют роль в кэшировании каталога, которое, идеально, сохраняет наиболее часто используемые файлы под рукой для более быстрого доступа. Обход файловой системы является другим аспектом dentry, поскольку он поддерживает отношения между каталогами и их файлами.

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

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

140
27.01.2020, 19:29
  • 1
    @Tok: Будет это выводить как это (как показано в ответе): Резервный суперблок в 163 840, дескрипторы Группы по телефону 163841-163841 или это этот путь: Резервный суперблок в 163 840, дескрипторы Группы по телефону 163841-163842? Это было ошибкой опечатки? :-) –  Sen 30.11.2010, 15:44
  • 2
    @TOK: Резервный суперблок в 163 840, дескрипторы Группы по телефону 163841-163842, Что передает информация Дескрипторы Группы? –  Sen 30.11.2010, 15:46
  • 3
    @Sen - теоретически дескрипторы группы могли охватить несколько блоков, но для большинства настольных систем Вы будете видеть, что они берут только единственный блок и ссылаются как $ ((BackupBlock+1)) - $ ((BackupBlock+1)) –  Tok 30.11.2010, 15:47
  • 4
    @TOK: хорошо в моей системе я вижу его как $ ((BackupBlock+1)) - $ ((BackupBlock+2)) –  Sen 30.11.2010, 15:52
  • 5
    @Sen - Дескриптор группы описывает группу блока. Что это означает? Больше метаданных. По существу дескриптор группы содержит битовый массив блоков (номер блока битового массива выделения блока), битовый массив inode (то же, но для inodes), inode таблица (номер блока стартового блока для inode таблицы), свободный блок и количества inode и используемое количество каталога. Это - все на основе ext2 файловой системы. Дескрипторы группы очень важны для надлежащей операции файловой системы и дублированы вместе с суперблоком. –  Tok 30.11.2010, 15:53

Файл

Файл просто означает набор байтов, расположенных в определенном порядке. Это - то, что нормальные люди называют содержанием файла. Когда Linux открывает файл, он также создает объект файла, который содержит данные о том, где файл хранится и какие процессы используют его. Объект файла (но не сами данные файла) выброшен, когда файл закрывается.

Inode

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

Dentry

dentry (короткий для "записи каталога") что использование ядра Linux отслеживать иерархию файлов в каталогах. Каждый dentry отображает inode число на имя файла и родительский каталог.

Суперблок

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

50
27.01.2020, 19:29

Обратите внимание, что этими условиями не является Linux определенная но конкретная файловая система. Большинство файловых систем, используемых текущим Unix и Unix как системы, или получено или вдохновлено исходной файловой системой Unix, которая определила суперблок и inode идиомы. Linux может также смонтировать несколько файловых систем, с которыми нет никакого понятия суперблока и/или inode, при этом наиболее распространенным является FAT. Другой, ZFS, не использует суперблоки, но überblocks.

4
27.01.2020, 19:29
  • 1
    Hope Вы добираетесь для чтения этого комментария после так долго. Я считал, что VFS имеет inodes и суперблоки, которые не связаны с inodes, и суперблоки говорят EXT2. Так, просто для не недоразумения, что Вы сказали, на основании каждого Linux, имеющего VFS, они все должны использовать inodes и суперблок, правильно? –  CuriousKimchi 29.12.2016, 06:50
  • 2
    @CuriousKimchi Несмотря на факт, у них есть то же имя здесь, Вы не должны путать информацию, хранившую на диске (superblock/inodes) и структурах, используемых ядром для доступа к файловой системе и ее файлам. Каждая файловая система имеет некоторые метаданные по диску, которые описывают характеристики файловой системы, эти метаданные используются для заполнения Linux структура суперблока VFS. Точно так же файлы имеют в ядре inode структуру под VFS. Когда базовые файловые системы испытывают недостаток в понятии inode, эта структура содержит фальшивку inode число, созданное на лету ОС. –  jlliagre 29.12.2016, 09:35

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

struct file, в ядре Linux, неверно называется как много других (например. struct address_space) и не абстракция реального "файла" (например,/etc/passwd). Это обозначает открытый "файл" или каталог. struct file создается sys_open в ядре, таким образом, процесс может иметь много из struct files для того же файла.

Почему нам нужен dentry? Это используется для ускорения перевода с пути (например,/etc/passwd) к inode. Ядро Linux использует inode для управления "файлом" или каталогом, не их именем.

5
27.01.2020, 19:29

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

Отношения основных объектов в VFS

enter image description here


Inode - это структура данных в файловой системе Unix / Linux. Inode хранит метаданные об обычном файле, каталоге или другом объекте файловой системы. Inode действует как интерфейс между файлами и данными. Inode может относиться к файлу или каталогу или символической ссылке на другой объект.Он содержит уникальный номер (i-число), атрибуты файла, включая имя, дату, размер и права чтения / записи, а также указатель на расположение файла. Это аналог таблицы FAT в мире DOS / Windows.

Программы, службы, тексты, изображения и т. Д. - все это файлы . В соответствии с системой, устройства ввода и вывода и, как правило, все устройства считаются файлами .

Суперблок - это контейнер для высокоуровневых метаданных о файловой системе. Суперблок - это структура, которая существует на диске (фактически, в нескольких местах на диске для избыточности), а также в памяти. Он обеспечивает основу для работы с файловой системой на диске, поскольку определяет параметры управления файловой системой (например, общее количество блоков, свободные блоки, корневой индексный узел).

Dentry - это интерфейс между файлами и Inodes. Dentries также играют роль в кэшировании каталогов, которое в идеале позволяет держать наиболее часто используемые файлы под рукой для более быстрого доступа.

Источник

13
27.01.2020, 19:29

Теги

Похожие вопросы