フォローするマイケルの答え 私の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ですか、それとも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
バラよりモノの驚くべき点は何ですか?背景の詳細をご覧ください。/proc/sys/fs/binfmt_misc
これは管理対象の仮想ファイルシステムですbinfmt_misc
(ファイルサイズはすべてゼロです).
cli
Windowsおよび.NET実行可能ファイル(実際にはDOSおよびOS / 2にも使用されるすべてのMZ実行可能ファイル)で使用され、参照する検出器は特定のバイナリをWineまたはMonoを使用して実行する必要があるかどうかを決定します。
jar
Javaプログラムで使用されるJARファイルのサポートを提供します。したがって、.dllを使用する代わりに、JAR実行可能ファイルを作成して直接実行できますjava -jar ...
。
これらのpython
ファイルはPythonバイトコードのサポートを提供します。
status
ディスプレイの全体的な状態binfmt_misc
:この例では有効になっています。
register
新しい形式の登録を許可します。これは特定の形式で文字列をエコーすることによって行われます(参照:文書詳細については)に登録されている形式が、その他のファイルと共にregister
新しいファイルとして表示されます。cli
jar
を使用して複数の実行可能ファイル形式を登録できますbinfmt_misc
。.jar
マジック値が最初の128バイト内に表示される限り、ファイル拡張子(JARファイルは「PK」シグネチャで識別されますが、等)またはマジック値(「MZ」など)を使用して一致させることができます。 。リストされたファイルに加えて、一般的にこの方法で処理される他の形式は、他のアーキテクチャ用バイナリ(QEMUやHatariなどのエミュレータによって「解釈」)、いくつかの解釈されたゲーム形式(ゲームエンジンがlove
この方法で処理)です。最小限のURL)...
Debian とその派生物では、パッケージは次のようにバイナリ形式を登録します。binfmt-support
そしてファイルは、/usr/share/binfmts/cli
どのdlocate -S /usr/share/binfmts/*
パッケージがバイナリ形式を追加するかを示します。
ELFは登録を必要とせず、カーネルでデフォルトでサポートされています。