fork(), exec() 시퀀스 및 대상 파일 형식은 무엇입니까?

fork(), exec() 시퀀스 및 대상 파일 형식은 무엇입니까?

내가 이해한 바로는 POSIX 시스템은 fork() exec()일련의 호출 중에 메모리를 구성하기 위해 특정 링커 형식을 사용합니다. a.out, COFF 및 ELF는 운영 체제에서 사용되는 잘 알려진 이진 개체 파일 형식입니다.

이것을 순서대로 읽는 코드가 어디에 있는지 아는 사람이 있나요 fork() exec()?

답변1

보편적인 대답은 없지만 대부분의 POSIX 계열 시스템에서는 커널이 실행 파일 로드 및 메모리 설정의 일부를 처리합니다.

Linux(인증된 POSIX 시스템은 아니지만 POSIX 유사 시스템)에서 지원하는 실행 파일 형식에 대한 커널 로더는 다음 위치에 있습니다.fs커널 소스 코드 디렉토리, 이름이 binfmt_. 바라보다Linux에는 어떤 유형의 실행 파일이 있습니까?자세한 내용은.

macOS(인증된 POSIX 시스템)에서 로더는 다음 위치에 있습니다.bsd/kern/kern_exec.c다윈의 근원에서, 다양한 exec_*_imgact기능에서.

OpenBSD에서 로더는 다음 위치에 있습니다.sys/kernexec_*, 파일 에서 ;exec_elf.cELF 실행 파일을 처리합니다.

관련 정보