Портативный:
% 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
).
Прежде всего, и я понимаю, что это не было одно из условий от Вашего вопроса, необходимо понять метаданные. Кратко, и украденный от Википедии, метаданные являются данными о данных. То есть те метаданные содержат информацию о части данных. Например, если я владею автомобилем затем, у меня есть ряд информации об автомобиле, но который не является частью самого автомобиля. Информация, такая как регистрационный номер, сделайте, смоделируйте, год изготовления, информации о страховке, и так далее. Вся та информация коллективно упоминается как метаданные. В 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, поскольку он поддерживает отношения между каталогами и их файлами.
Файл, в дополнение к тому, чтобы быть, о чем обычно думают люди при дарившем слово является действительно просто блоком логически связанных произвольных данных. Сравнительно очень тусклое рассмотрение всей работы, сделанной (выше) для отслеживания их.
Я полностью понимаю, что несколько предложений не дают полное объяснение ни одного из этих понятий, поэтому не стесняйтесь просить дополнительные детали когда и, где необходимо.
Файл
Файл просто означает набор байтов, расположенных в определенном порядке. Это - то, что нормальные люди называют содержанием файла. Когда Linux открывает файл, он также создает объект файла, который содержит данные о том, где файл хранится и какие процессы используют его. Объект файла (но не сами данные файла) выброшен, когда файл закрывается.
Inode
inode (короткий для "индексного узла") является набором атрибутов о файле, который хранит Linux. Существует один inode для каждого файла (хотя с некоторыми файловыми системами, Linux должен создать свой собственный inodes, потому что информация распространена вокруг файловой системы). inode хранит информацию как то, кто владеет файлом, насколько большой файл, и кому разрешают открыть файл. Каждый inode также содержит число, уникальное для раздела файловой системы; это похоже на порядковый номер для файла, описанного этим inode.
Dentry
dentry (короткий для "записи каталога") что использование ядра Linux отслеживать иерархию файлов в каталогах. Каждый dentry отображает inode число на имя файла и родительский каталог.
Суперблок
Суперблок является уникальной структурой данных в файловой системе (хотя несколько копий существуют для принятия мер против повреждения). Суперблок содержит метаданные о файловой системе, как которая inode является каталогом верхнего уровня и типом используемой файловой системы.
Обратите внимание, что этими условиями не является Linux определенная но конкретная файловая система. Большинство файловых систем, используемых текущим Unix и Unix как системы, или получено или вдохновлено исходной файловой системой Unix, которая определила суперблок и inode идиомы. Linux может также смонтировать несколько файловых систем, с которыми нет никакого понятия суперблока и/или inode, при этом наиболее распространенным является FAT. Другой, ZFS, не использует суперблоки, но überblocks.
В простоте dentry и inode являются тем же самым, абстракцией файла или каталога. Различия между dentry и inode - то, что dentry используется для упрощения определенных для каталога операций, inode является просто набором метаданных о файле или каталоге. Суперблок является абстракцией файловой системы.
struct file
, в ядре Linux, неверно называется как много других (например. struct address_space
) и не абстракция реального "файла" (например,/etc/passwd). Это обозначает открытый "файл" или каталог. struct file
создается sys_open
в ядре, таким образом, процесс может иметь много из struct file
s для того же файла.
Почему нам нужен dentry? Это используется для ускорения перевода с пути (например,/etc/passwd) к inode. Ядро Linux использует inode для управления "файлом" или каталогом, не их именем.
суперблок , индексный узел (или inode ), запись каталога (или dentry ) и, наконец, объект файл является частью виртуальной файловой системы (VFS) или переключателя виртуальной файловой системы . Назначение VFS - предоставить клиентским приложениям единообразный доступ к различным типам конкретных файловых систем.
Отношения основных объектов в VFS
Inode - это структура данных в файловой системе Unix / Linux. Inode хранит метаданные об обычном файле, каталоге или другом объекте файловой системы. Inode действует как интерфейс между файлами и данными. Inode может относиться к файлу или каталогу или символической ссылке на другой объект.Он содержит уникальный номер (i-число), атрибуты файла, включая имя, дату, размер и права чтения / записи, а также указатель на расположение файла. Это аналог таблицы FAT в мире DOS / Windows.
Программы, службы, тексты, изображения и т. Д. - все это файлы . В соответствии с системой, устройства ввода и вывода и, как правило, все устройства считаются файлами .
Суперблок - это контейнер для высокоуровневых метаданных о файловой системе. Суперблок - это структура, которая существует на диске (фактически, в нескольких местах на диске для избыточности), а также в памяти. Он обеспечивает основу для работы с файловой системой на диске, поскольку определяет параметры управления файловой системой (например, общее количество блоков, свободные блоки, корневой индексный узел).
Dentry - это интерфейс между файлами и Inodes. Dentries также играют роль в кэшировании каталогов, которое в идеале позволяет держать наиболее часто используемые файлы под рукой для более быстрого доступа.