/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ですか、それとも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(ファイルサイズはすべてゼロです).

cliWindowsおよび.NET実行可能ファイル(実際にはDOSおよびOS / 2にも使用されるすべてのMZ実行可能ファイル)で使用され、参照する検出器は特定のバイナリをWineまたはMonoを使用して実行する必要があるかどうかを決定します。

jarJavaプログラムで使用されるJARファイルのサポートを提供します。したがって、.dllを使用する代わりに、JAR実行可能ファイルを作成して直接実行できますjava -jar ...

これらのpythonファイルはPythonバイトコードのサポートを提供します。

statusディスプレイの全体的な状態binfmt_misc:この例では有効になっています。

register新しい形式の登録を許可します。これは特定の形式で文字列をエコーすることによって行われます(参照:文書詳細については)に登録されている形式が、その他のファイルと共にregister新しいファイルとして表示されます。clijar

を使用して複数の実行可能ファイル形式を登録できますbinfmt_misc.jarマジック値が最初の128バイト内に表示される限り、ファイル拡張子(JARファイルは「PK」シグネチャで識別されますが、等)またはマジック値(「MZ」など)を使用して一致させることができます。 。リストされたファイルに加えて、一般的にこの方法で処理される他の形式は、他のアーキテクチャ用バイナリ(QEMUやHatariなどのエミュレータによって「解釈」)、いくつかの解釈されたゲーム形式(ゲームエンジンがloveこの方法で処理)です。最小限のURL)...

Debian とその派生物では、パッケージは次のようにバイナリ形式を登録します。binfmt-supportそしてファイルは、/usr/share/binfmts/cliどのdlocate -S /usr/share/binfmts/*パッケージがバイナリ形式を追加するかを示します。

ELFは登録を必要とせず、カーネルでデフォルトでサポートされています。

おすすめ記事