운영체제 기본/Linux/ELF 로딩: 두 판 사이의 차이
외관
확장한 mmap 각론의 해당 장으로 링크 정리 |
직접 관련된 총론 링크와 선행 개념 안내 정리 |
||
| (같은 사용자의 중간 판 2개는 보이지 않습니다) | |||
| 6번째 줄: | 6번째 줄: | ||
Linux v6.12에서 <code>execve()</code> 요청이 새 사용자 프로그램의 첫 명령 실행으로 이어지는 과정을 다룬다. 정적 링크된 ET_EXEC 실행 파일을 기준으로 파일 형식의 판별, ELF 세그먼트의 배치, 초기 스택과 레지스터 준비를 순서대로 읽는다. 사용자 모드 진입은 x86-64와 RISC-V RV64를 비교한다. | Linux v6.12에서 <code>execve()</code> 요청이 새 사용자 프로그램의 첫 명령 실행으로 이어지는 과정을 다룬다. 정적 링크된 ET_EXEC 실행 파일을 기준으로 파일 형식의 판별, ELF 세그먼트의 배치, 초기 스택과 레지스터 준비를 순서대로 읽는다. 사용자 모드 진입은 x86-64와 RISC-V RV64를 비교한다. | ||
== 관련 총론 == | |||
* [[운영체제 기본/프로세스와 스레드|프로세스와 스레드]]: 프로세스 생성과 실행 이미지 교체의 구분. | |||
* [[운영체제 기본/가상 메모리|가상 메모리]]: 세그먼트 매핑과 요구 페이징. | |||
* [[운영체제 기본/보호|보호와 시스템 콜]]: 실행 권한과 사용자 모드로의 전환. | |||
== 문서 구성 == | == 문서 구성 == | ||
# [[운영체제 기본/ | # [[운영체제 기본/Linux/ELF 로딩/execve와 실행 이미지 교체|execve와 실행 이미지 교체]]: 실행 파일을 열고 binfmt 핸들러를 선택하며 기존 실행 이미지를 교체하는 과정. | ||
# [[운영체제 기본/ | # [[운영체제 기본/Linux/ELF 로딩/ELF 세그먼트와 주소 공간|ELF 세그먼트와 주소 공간]]: ELF 구조, PT_LOAD에 따른 파일 매핑과 BSS의 0 초기화. | ||
# [[운영체제 기본/ | # [[운영체제 기본/Linux/ELF 로딩/초기 스택과 사용자 모드 진입|초기 스택과 사용자 모드 진입]]: 인자와 초기 스택, x86-64·RV64의 사용자 진입, 마지막으로 동적 링킹의 차이. | ||
파일 매핑과 페이지 폴트는 [[운영체제 기본/가상 메모리|가상 메모리]]와 [[운영체제 기본/ | 파일 매핑과 페이지 폴트는 [[운영체제 기본/가상 메모리|가상 메모리]]와 [[운영체제 기본/Linux/메모리 매핑/파일 매핑과 COW|파일 매핑과 COW]]에서 이어진다. | ||
{{이전 다음 문서 | {{이전 다음 문서 | ||
2026년 11월 1일 (일) 04:00 기준 최신판
Linux v6.12에서 execve() 요청이 새 사용자 프로그램의 첫 명령 실행으로 이어지는 과정을 다룬다. 정적 링크된 ET_EXEC 실행 파일을 기준으로 파일 형식의 판별, ELF 세그먼트의 배치, 초기 스택과 레지스터 준비를 순서대로 읽는다. 사용자 모드 진입은 x86-64와 RISC-V RV64를 비교한다.
관련 총론
문서 구성
- execve와 실행 이미지 교체: 실행 파일을 열고 binfmt 핸들러를 선택하며 기존 실행 이미지를 교체하는 과정.
- ELF 세그먼트와 주소 공간: ELF 구조, PT_LOAD에 따른 파일 매핑과 BSS의 0 초기화.
- 초기 스택과 사용자 모드 진입: 인자와 초기 스택, x86-64·RV64의 사용자 진입, 마지막으로 동적 링킹의 차이.
파일 매핑과 페이지 폴트는 가상 메모리와 파일 매핑과 COW에서 이어진다.