Binfmt misc

 
binfmt_misc ("Miscellaneous Binary Format") is a capability of the Linux kernel which allows arbitrary executable file formats to be recognized and passed to certain user space applications, such as emulators and virtual machines. It is one of a number of binary format handlers in the kernel that are involved in preparing a user-space program to run. 
The executable formats are registered through the special purpose file system codice_1 file-system interface (usually mounted under part of /proc). This is either done directly by sending special sequences to the codice_2 procfs file or using a wrapper like Debian-based distributions "binfmt-support" package or systemd's codice_3.
Registration.
The codice_2 file contains lines which define executable types to be handled. Each line is of the form:
codice_5
Each format has a corresponding file entry in the codice_33 directory which can be read to get information about a given file format.
Common usage.
binfmt_misc allows Java programs to be passed directly to the Java virtual machine.
Another common usage is to execute PE executables (compiled for MS-DOS or Microsoft Windows) through Wine. For example, the following line will run DOS and Windows EXE files (identified by the "MZ" type code) using Wine:
codice_34
To run EXE (.NET) files with Mono:
codice_35
binfmt_misc can also be combined with QEMU to execute programs for other processor architectures as if they were native binaries.
binfmt_misc can be used for Go as a scripting language.