Распаковка ранее сжатых файлов
inflator [-b число] [-v[v...]] [точки_монтирования...] [!исключить...]
При указании опции -v, inflator необходимо запустить в фоновом режиме. Если эта опция не используется, переход в фоновый режим выполняется автоматически. |
/
). Если точка монтирования начинается с восклицательного знака (!
), данный каталог исключается.ЗОСРВ «Нейтрино»
aarch64, arm, armv7, aarch64, mips, ppc, x86
Менеджер ресурсов inflator расположен перед другими файловыми системами и выполняет распаковку файлов, сжатых посредством утилиты deflate. Как правило, он используется поверх файловых систем флэш-памяти. При этом возможно увеличение полезного объема флэш-памяти практически в два раза.
При запуске без аргументов утилита inflator принимает /
и устанавливает этот символ перед любыми существующими файловыми системами. Т.о. она перехватывает каждый вызов open() первая. Если файл открыт для чтения, то утилита inflator выполняет попытку открыть файл в соответствующей файловой системе. Она считывает первые 16
байт и проверяет наличие сигнатуры сжатого файла. Если файл был сжат, то утилита inflator становится как бы между приложением и соответствующей файловой системой. Все операции чтения возвращают данные исходного файла до сжатия.
С точки зрения приложения файл является распакованным. Также поддерживается произвольный поиск. Если в файле приложением выполняется команда stat(), то возвращается размер распакованного файла (исходный размер до сжатия). Для открытия сжатого файла и просмотра сжатых данных или размера следует добавить .~~~
к имени файла и открыть его. Пример.
$ deflate file1 # Сжать файл $ wc file1 # wc просматривает содержимое исходного файла $ wc file1.~~~ # wc просматривает содержимое сжатого файла $ ls -l file1 # ls передает размер исходного файла $ ls -l file1.~~~ # ls передает размер сжатого файла
Если в открытом для чтения файле отсутствует подпись сжатия, то inflator возвращает ENOENT
, при этом файл передается следующей по списку файловой системе. Таким образом, утилита inflator не участвует в процессе работы с файлом. Аналогично, если файл открыт для записи в любом режиме, утилита inflator также возвращает ENOENT
. С помощью опции -v можно контролировать случаи открытия файлов, получаемые и принимаемые утилитой inflator. Для увеличения степени подробности информации используется несколько опций -v.
По умолчанию утилита inflator обрабатывает 8 буферов распаковки данных. При одновременной обработке более 8 файлов буферы используются в качестве кэша. Если буфер из файла удален, то при последующем чтении файла требуется повторное чтение и распаковка данных. При использовании одной опции -v в каждом случае удаления буфера выводится соответствующее сообщение, что обеспечивает возможность точной настройки системы. Поскольку во встраиваемых системах памяти часто не хватает, следует использовать минимальное число буферов, достаточное для обеспечения приемлемого уровня производительности.
Размер буферов определяется утилитой deflate. Значение по умолчанию – 8 КБ. Однако можно указать 4 КБ, 8 КБ, 16 КБ или 32 КБ. В действительности, вместо сжатия файла целиком выполняется его разделение на более мелкие блоки сжатия. Без этого при произвольном поиске в файле производительность была бы катастрофически низкая. На быстрых процессорах (200 МГц) затраты на распаковку данных незначительны. На более медленных процессорах могут возникать проблемы с производительностью, поскольку код распаковки может вступать в конфликты при доступе к циклам обработки.
Некоторые версии файловой системы флэш-памяти (devf-* ) также поддерживают сжатие. В большинстве систем утилита inflator обеспечивает более эффективное сжатие и сопоставимый или более высокий уровень производительности. |
Дважды запустить утилиту inflator для одной точки монтирования невозможно. |
Перехват /
и распаковка файлов, сжатых при открытии для чтения приложениями:
inflator
Перехват /
, как в предыдущем примере, и передача всех запросов к файлам из каталога /tmp
в соответствующую файловую систему без какой-либо проверки:
inflator / !/tmp
Перехват каталогов, в которых обычно находятся исполняемые файлы. Распаковка файлов, сжатых при открытии для чтения приложениями:
inflator /sbin /bin /usr/sbin /usr/bin /usr/photon/bin
Перехват /
, как в предыдущем примере, и вывод некоторых диагностических сообщений (обратите внимание, что для выполнения утилиты inflator в фоновом режиме с применением опции -v требуется указать амперсанд (&
)):
inflator -v &
Перехват /
, как в предыдущем примере, и вывод подробных диагностических сообщений:
inflator -vvvvv &
Инструментальные средства ЗОСРВ «Нейтрино»
Базовые подсистемы ЗОСРВ «Нейтрино»
Предыдущий раздел: Сервисы