/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(그래서 파일 크기가 모두 0입니다).

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)...

데비안과 그 파생물에서 패키지는 다음을 사용하여 바이너리 형식을 등록합니다.binfmt-support및 파일은 /usr/share/binfmts/cli어떤 dlocate -S /usr/share/binfmts/*패키지가 바이너리 형식을 추가하는지 알려줍니다.

ELF는 등록이 필요하지 않으며 커널에서 기본적으로 지원됩니다.

관련 정보