Я розумію, що Linux використовує рядок shebang, щоб визначити, який інтерпретатор використовувати для сценаріїв мов, але як це працює для двійкових файлів?
Я маю на увазі, що я можу запускати бінарні файли Linux, встановивши як винні, так і моно- , рідні Windows і .NET бінарні файли. І для всіх їх просто ./binary-name
(якщо не в PATH) це запустити.
Як Linux визначає, що певний двійковий файл повинен бути запущений як нативний бінарний файл Linux, як власний бінарний файл Windows (використовуючи винні засоби) або як двійковий файл Windows .NET (використовуючи моно- засоби)?