/proc/sys/fs/binfmt_misc/ 下的文件允许哪些类型的可执行格式?

/proc/sys/fs/binfmt_misc/ 下的文件允许哪些类型的可执行格式?

我关注迈克尔的回复 查看我的 Ubuntu 可以识别并执行哪些可执行格式

$ ls -l /proc/sys/fs/binfmt_misc/
total 0
-rw-r--r-- 1 root root 0 Apr 19 16:11 cli
-rw-r--r-- 1 root root 0 Apr 19 16:11 jar
-rw-r--r-- 1 root root 0 Apr 19 16:11 python2.7
-rw-r--r-- 1 root root 0 Apr 19 16:11 python3.5
--w------- 1 root root 0 Apr 19 16:11 register
-rw-r--r-- 1 root root 0 Apr 19 16:11 status

我从未刻意更改过任何内容,这些文件是默认创建的或当我安装其他程序时创建的。

$ cat /proc/sys/fs/binfmt_misc/cli
enabled
interpreter /usr/lib/binfmt-support/run-detectors
flags: 
offset 0
magic 4d5a

这是什么样的可执行格式?我用谷歌搜索“magic 4d5a”并发现https://en.wikipedia.org/wiki/DOS_MZ_executable,但我不确定该文件是如何在那里创建的,因为它不是 Linux 的本机可执行格式。安装wine添加了吗?

$ cat /proc/sys/fs/binfmt_misc/jar
enabled
interpreter /usr/lib/jvm/java-9-oracle/lib/jexec
flags: 
offset 0
magic 504b0304

以上是JVM字节码格式吗?

$ cat /proc/sys/fs/binfmt_misc/python3.5 
enabled
interpreter /usr/bin/python3.5
flags: 
offset 0
magic 160d0d0a

上面是Python字节码还是Python?

$ cat /proc/sys/fs/binfmt_misc/status
enabled

$ cat /proc/sys/fs/binfmt_misc/register 
cat: /proc/sys/fs/binfmt_misc/register: Permission denied

有何/proc/sys/fs/binfmt_misc/register用途?它还允许某些可执行格式吗?

ELF 格式是否需要 下的文件/proc/sys/fs/binfmt_misc/

谢谢。

答案1

Mono 有何神奇之处?了解更多背景。/proc/sys/fs/binfmt_misc是由其管理的虚拟文件系统binfmt_misc(这就是文件大小均为 0 的原因)。

cli用于 Windows 和 .NET 可执行文件(实际上是任何 MZ 可执行文件,也用于 DOS 和 OS/2);它所引用的检测器确定给定的二进制文件应该使用 Wine 还是 Mono 运行。

jar提供对 Java 程序使用的 JAR 文件的支持。因此,您可以制作 JAR 可执行文件,并直接运行它(而不是使用java -jar ...)。

这些python文件提供对 Python 字节码的支持。

status显示 的总体状态binfmt_misc:在本例中,它已启用。

register允许注册新格式。这是通过以特定格式回显字符串来完成的(请参阅文档欲了解详情)至register.注册的格式将作为新文件与clijar和其他文件一起显示。

可以使用 注册多种可执行格式binfmt_misc。它们可以使用文件扩展名(.jar等等,尽管 JAR 文件是通过其“PK”签名来标识)或魔术值(“MZ”等)进行匹配,只要魔术值出现在前 128 个字节内即可。除了您列出的文件之外,通常以这种方式处理的其他格式是其他架构的二进制文件(由 QEMU 或 Hatari 等模拟器“解释”)、一些解释的游戏格式(游戏引擎love以这种方式在 Debian 下注册自身,网址为至少)...

在 Debian 及其衍生版本中,软件包使用以下方式注册二进制格式binfmt-support和文件/usr/share/binfmts/clidlocate -S /usr/share/binfmts/*会告诉您哪些软件包正在添加二进制格式。

ELF 不需要任何注册,它由内核原生支持。

相关内容