Jump to content

binfmt_misc

binfmt_misc ( разный двоичный формат ) — это возможность ядра Linux произвольные форматы исполняемых файлов , которая позволяет распознавать и передавать их в определенные приложения пользовательского пространства , такие как эмуляторы и виртуальные машины . [1] Это один из множества обработчиков двоичного формата в ядре, которые участвуют в подготовке программы пользовательского пространства к запуску. [2]

Исполняемые форматы регистрируются через файловую систему специального назначения. binfmt_misc интерфейс файловой системы (обычно монтируется в часть /proc ). Это делается либо напрямую путем отправки специальных последовательностей в register procfs или с помощью оболочки, такой как Debian. для дистрибутивов на основе поддержки binfmt пакет [3] или systemd systemd-binfmt.service. [4] [5]

Регистрация

[ редактировать ]

The register файл содержит строки, которые определяют типы исполняемых файлов, которые необходимо обрабатывать. Каждая строка имеет вид:

:name:type:offset:magic:mask:interpreter:flags

  • name это имя двоичного формата.
  • type либо E или M
    • Если это Eформат исполняемого файла определяется расширением имени файла : magic расширение файла, которое должно быть связано с двоичным форматом; offset и mask игнорируются.
    • Если это M, формат определяется magic число в абсолютном выражении offset (по умолчанию 0) в файле и mask это битовая маска (по умолчанию для всех 0xFF), указывающий, какие биты в числе являются значимыми.
  • interpreter — это программа, которую нужно запустить с соответствующим файлом в качестве аргумента.
  • flags (необязательно) — это строка букв, каждая из которых управляет определенным аспектом interpreter вызов:
    • P сохранить исходное имя программы, введенное пользователем в командной строке — добавив это имя в argv; тот interpreter должен знать об этом, чтобы правильно передать этот дополнительный параметр интерпретируемой программе в качестве своего argv[0].
    • O открыть файл программы и передать его файловый дескриптор в interpreter чтобы он мог прочитать файл, который иначе не был бы прочитан (для которого у пользователя нет разрешения «Чтение» ).
    • C для определения новых учетных данных процесса на основе файла программы, а не interpreter файл (см . setuid ); подразумевает O флаг.
    • F чтобы ядро ​​открывало двоичный файл во время конфигурации, а не лениво во время запуска, чтобы он был доступен и внутри других пространств имен монтирования и chroot.

Каждому формату соответствует соответствующая запись файла в /proc/sys/fs/binfmt_misc каталог, который можно прочитать, чтобы получить информацию о данном формате файла.

Снятие с регистрации

[ редактировать ]
$ echo -1 >/proc/sys/fs/binfmt_misc/status # all entries
$ echo -1 >/proc/sys/fs/binfmt_misc/qemu-xtensa # single entry

Общее использование

[ редактировать ]

См. также

[ редактировать ]
  1. ^ Поддержка ядра для разных двоичных форматов (binfmt_misc). Документация по ядру Linux.
  2. Как запускаются программы , 28 января 2015 г., Дэвид Дрисдейл, LWN.net
  3. ^ Подробности о пакете поддержки binfmt в sid , Debian
  4. ^ systemd-binfmt.service , freedesktop.org
  5. ^ binfmt.d , freedesktop.org
  6. ^ Поддержка двоичного ядра Java (tm) для Linux v1.03 Документация по ядру Linux
  7. ^ Поддержка двоичного ядра Mono(tm) для Linux Документация по ядру Linux
  8. ^ Руководство: Запуск моно-приложений
  9. ^ Официальное зеркало QEMU , QEMU, 23 ноября 2022 г.
  10. ^ Использование Go в качестве языка сценариев в Linux , Cloudflare, 20 февраля 2018 г. , получено 5 мая 2019 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fd623e8b25011e7aacb5b96585c4e51a__1721207100
URL1:https://arc.ask3.ru/arc/aa/fd/1a/fd623e8b25011e7aacb5b96585c4e51a.html
Заголовок, (Title) документа по адресу, URL1:
binfmt_misc - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)