Как файлы или блоки разграничены на диске?

Поскольку pwd или echo имеют внешние команды с тем же именем, / bin / pwd или / bin / эхо . Если вы посмотрите на вывод strace , вы увидите:

$ strace pwd
execve("/bin/pwd", ["pwd"], [/* 68 vars */]) = 0
brk(0)                                  = 0x241e000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f80c31b9000

Обратите внимание, что при поиске в PATH , strace принимает только обычный файл с установленными битами выполнения.

1
02.09.2014, 17:13
1 ответ

Ни одна файловая система общего назначения не использует последовательности начала или конца файла. Они были бы крайне непрактичными: что, если файл содержит эти последовательности символов?

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

В HFS список блоков, составляющих содержимое файла, сохраняется как экстенты в записи файла и в файле переполнения экстентов. Размер блоков распределения (основная непрерывная единица содержимого файла) хранится в заголовке файловой системы.

1
27.01.2020, 23:52

Теги

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