Linuxは(テキストではなく)バイナリを実行するために使用するツールをどのように決定しますか?

Linuxは(テキストではなく)バイナリを実行するために使用するツールをどのように決定しますか?

Linuxがshebang行を使用してスクリプト言語に使用するインタプリタを決定することを知っていますが、バイナリではどのように機能しますか?

私の言葉は、Linuxバイナリを実行でき、両方をインストールできることを意味します。ワインそして単核球症、Windowsの基本と.NETバイナリ。すべてのアイテムの./binary-nameパスにない場合は実行してください。

Linuxは、特定のバイナリをLinuxネイティブバイナリ、Windowsネイティブバイナリ(使用)で実行する必要があるかどうかをどのように決定しますか?ワイン施設)またはWindows .NETバイナリ(使用単核球症施設)?

ベストアンサー1

一文で:binfmt_misc。これはLinuxに特化した非移植性ツールです。

組み込みロジックを介してカーネルが認識するいくつかの形式があります。つまり、ELF形式(通常のバイナリの場合)とShebangルール(スクリプトの場合)があります。 (ありがとうございます。ズウォル答えの次の部分)。また、Linuxは、いくつかの難解な、古い、または互換性のない組み込み形式を認識しています。あなたはおそらくそれらに会うことはできません。a.out「em86」、「フラット」、「elf_fdpic」です。

他のすべてのエントリはbinfmt_miscシステムに登録する必要があります。このシステムを使用すると、インタプリタを使用してカーネルに単純なマジックナンバーベースのパターンチェックを登録できます。

おすすめ記事