Linux 커널은 PARTIAL exec를 지원합니까?

Linux 커널은 PARTIAL exec를 지원합니까?

다른 질문을보고 있습니다 (https://stackoverflow.com/q/47845/537980), 각 프로세스가 생성될 때 다른 운영 체제에서 수행해야 하는 설정이 얼마나 많은지에 대한 답변을 보았습니다.

나는 알고 싶다. 설정한 다음(한 번 포크) 수행할 수 있습니까?부분의exec가 변수 부분을 로드하나요? 이는 교체되어야 하는 프로세스의 일부일 뿐입니다.

부품의 구체적인 예는 다음과 같습니다. 일부 실행 환경을 로드한 다음 exec를 사용하여 로더를 교체하려고 하지만 환경은 교체하지 않으려고 합니다. 따라서 이것이 대체되는 것을 제어하는 ​​것입니다(exec가 모든 것을 대체하지 않는다는 것을 알고 있습니다(예: 파일 설명자 테이블의 COW를 유지합니다)).

나는 이것이 아마도 실제로 사용되지 않을 것이며 많은 Unix에서 상대적으로 저렴하다는 것을 알고 fork있습니다 exec.

답변1

테스트되지 않은 아이디어에 대한 답변의 일부입니다.

이름으로 파일을 열면 exec여전히 파일에 대한 핸들이 있습니다 mmap.

답변2

물론 "부분 실행"을 수행할 수 있습니다. mmap(PROT_EXEC)다른 파일에서 주소 공간으로 페이지를 이동하여 해당 파일로 이동할 수 있습니다. "부분 실행". exec가 사용자 공간에서 수행하는 모든 작업을 복사할 수 있는지는 모르겠지만 대부분은 확실히 복사할 수 있습니다.

——@pizdelect 댓글에서 발췌

관련 정보