Для этого в ядре должно быть включено:
Executable file formats
`-Kernel support for MISC binaries
Если внимательно прочитать описание пункта, то можно легко отыскать способ регистрации разных типов исполняемых файлов:
Монтируем виртуальную фс binfmt_misc
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
Зарегистрируем теперь wine как wrapper для *.exe:
echo ':EXE:E::exe::/usr/bin/wine:' >> /proc/sys/fs/binfmt_misc/register
Формат таков:
:имя:тип:смещение:магическое_число:маска:путь_до_интерпретатора:
- имя - название формата. в /proc/sys/fs/binfmt_misc появится файл, названный так же, с информацией о формате (кроме указанного в опциях там ничего не будет)
- тип - E или M - определять формат по расширению или содержимому, соответственно.
- смещение - где искать магическое число в файле (смещение в байтах)
- магическое_число - последовательность байтов, которая определяет тип файла (либо как есть, либо в HEX: \x0a и т.д. - не проверял, как работает) , или расширение файла, если использован параметр E. Стоит заметить, что регистр символов имеет значение.
- маска - маска для магического числа. Если не указать, будет
0xff - путь_до_интерпретатора - здесь надо указать полный путь к программе, которой будет передано имя исполняемого файла как 1-й аргумент.
Параметры не всем нужны, но могут понадобиться в некоторых случаях. Так что читайте документацию.
Дополнительную информация об этой возможности - в директории с исходными кодами ядра: Documentation/binfmt_misc.txt
хорошее дело я
хорошее дело
я когда то пытался .java запускать, только что то там не вышло
добавлю что "магическое_число" можно подсмотреть в базе данных утилитки file
в общем man file и смотрим где эта база. формат базы описан в ней самой в коментариях
--
Signature invent in progress 19% #.........