Индексирование файловой системы разреженным индексом Inode (macOS/HFS+)

Я стремлюсь лучше понять, какова политика выделения номера Inode новым файлам в собственной файловой системе macOS.

Чтобы проверить, какие идентификаторы используются, я написал простой скрипт, который сканирует используемые номера инодов в /.vol/ точка монтирования, которая используется для доступа к файлам по их идентификационному номеру (так называемый номер инода), а не по имени. Похоже, что многие идентификаторы свободны.

import magic
import os
mime = magic.Magic(mime=True)

base_inode = 0
local_mount = 16777220
for x in range(0, 100000):
    inode = base_inode + x
    try :
        file_path = os.path.join('/.vol', local_mount, str(inode))
        mime.from_file(file_path)
    except Exception as ex:
        print ex

и вот некоторый типичный выходной блок, который подразумевает, что из 15 последовательных идентификаторов используется только один (игнорируйте разрешение, меня волнует только наличие файла под этим идентификатором):

[Errno 2] No such file or directory: '/.vol/16777220/8593855259'
[Errno 2] No such file or directory: '/.vol/16777220/8593855260'
[Errno 2] No such file or directory: '/.vol/16777220/8593855262'
[Errno 2] No such file or directory: '/.vol/16777220/8593855263'
[Errno 2] No such file or directory: '/.vol/16777220/8593855265'
[Errno 2] No such file or directory: '/.vol/16777220/8593855267'
[Errno 13] Permission denied: '/.vol/16777220/8593855268'
[Errno 2] No such file or directory: '/.vol/16777220/8593855269'
[Errno 2] No such file or directory: '/.vol/16777220/8593855271'
[Errno 2] No such file or directory: '/.vol/16777220/8593855273'
[Errno 2] No such file or directory: '/.vol/16777220/8593855274'
[Errno 2] No such file or directory: '/.vol/16777220/8593855276'
[Errno 2] No such file or directory: '/.vol/16777220/8593855278'
[Errno 2] No such file or directory: '/.vol/16777220/8593855279'

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

0 ответов

Другие вопросы по тегам