Veja Como o Mono é mágico? para mais informações. /proc/sys/fs/binfmt_misc
é um sistema de arquivos virtual gerenciado por binfmt_misc
(é por isso que os arquivos são todos de tamanho 0).
cli
é usado para executáveis Windows e .NET (e realmente qualquer executável MZ, como também usado em DOS e OS / 2); o detector a que se refere determina se um determinado binário deve ser executado usando Wine ou Mono.
jar
fornece suporte para arquivos JAR, conforme usado por programas Java. Assim, você pode criar um executável JAR e executá-lo diretamente (em vez de usar java -jar ...
).
Os arquivos python
fornecem suporte para o código de bytes do Python.
status
mostra o status geral de binfmt_misc
: nesse caso, ele está ativado.
register
permite que novos formatos sejam registrados. Isso é feito fazendo-se eco de uma string em um formato específico (consulte a documentação para detalhes) para register
. O formato registrado aparecerá como um novo arquivo ao lado de cli
, jar
e os outros.
Muitos tipos de formatos executáveis podem ser registrados usando binfmt_misc
. Eles podem ser correspondidos usando uma extensão de arquivo ( .jar
etc., embora arquivos JAR sejam identificados pela assinatura "PK") ou um valor mágico ("MZ" etc.), desde que o valor mágico ocorra dentro do primeiro 128 bytes. Além dos arquivos que você listou, outros formatos normalmente tratados dessa forma são binários para outras arquiteturas (“interpretados” pelo QEMU, ou emuladores como o Hatari), alguns formatos de jogos interpretados (o mecanismo love
game se registra dessa maneira sob pelo menos o Debian) ...
Sob o Debian e derivados, os pacotes registram formatos binários usando binfmt-support
e arquivos em /usr/share/binfmts/cli
; dlocate -S /usr/share/binfmts/*
dirá quais pacotes estão adicionando formatos binários.
O ELF não precisa de registro, é suportado nativamente pelo kernel.