저는 C++에서 리눅스 플랫폼을위한 프로세스 로더를 만들고 있습니다; 그것은 레크리에이션 프로젝트 일뿐입니다. 기본적으로 실행 파일의 모든 섹션을 메모리에 수동으로로드 한 다음 실행하고 싶습니다.C++의 Linux 프로세스 로더
관련 질문이지만 좀 더 구체적인 질문이 있습니다. here 약 일주일 전. 그러나 더 많은 독서를 한 후에 실제로 프로세스를 만드는 방법을 배우기 전까지는 메모리 매핑이 부적절하다는 것을 알게되었습니다. 그래서 내 질문은, 거기에 자신의 가상 주소 공간 (코드 및 데이터를로드 할 액세스 할 수있을 것입니다)와 리눅스에서 "빈"새로운 프로세스를 만드는 방법은 무엇입니까?
프로세스 로더 개발에 대한 일반적인 리소스조차도 유용 할 것입니다. 왜냐하면 아직 찾을 필요가 없기 때문입니다.
그래도 프로세스 가상 공간이 비어 있어야합니다. 새 프로세스가 이전 프로세스의 복제본이면 작동하지 않습니다. 로더와 실행 파일은 로딩이 완료되면 서로 독립적이어야합니다. – nosuchthingasstars
@nosuchthingasstars 이것은 유닉스 계열의 운영체제가 작동하는 방식입니다. exec 함수는 슬레이트를 깨끗하게 지우지 만 대상 실행 파일로 자동 채 웁니다. 동적 라이브러리 링커 기능을 대체 할 수 있지만 커널은 기본 정적로드를 수행합니다. –
@ChrisStratton로드하는 실행 파일은 ELF가 아닙니다. 그래서 수동으로 섹션을로드해야합니다. – nosuchthingasstars