운영체제 기본/Linux/ELF 로딩/ELF 세그먼트와 주소 공간: 두 판 사이의 차이
잔글 관리자님이 운영체제 기본/Linux의 ELF 로딩/ELF 세그먼트와 주소 공간 문서를 운영체제 기본/Linux/ELF 로딩/ELF 세그먼트와 주소 공간 문서로 이동했습니다: Linux 각론 제목을 계층형 경로로 통일 |
잔글 Linux 각론 경로 변경에 따른 본문·목차·틀 링크 갱신 |
||
| 1번째 줄: | 1번째 줄: | ||
{{이전 다음 문서 | {{이전 다음 문서 | ||
|이전=← 이전 문서<br />[[운영체제 기본/ | |이전=← 이전 문서<br />[[운영체제 기본/Linux/ELF 로딩/execve와 실행 이미지 교체|execve와 실행 이미지 교체]] | ||
|목차=[[운영체제 기본/ | |목차=[[운영체제 기본/Linux/ELF 로딩|ELF 로딩 목차]] | ||
|다음=다음 문서 →<br />[[운영체제 기본/ | |다음=다음 문서 →<br />[[운영체제 기본/Linux/ELF 로딩/초기 스택과 사용자 모드 진입|초기 스택과 사용자 모드 진입]] | ||
}} | }} | ||
| 97번째 줄: | 97번째 줄: | ||
매핑을 만들었다는 것은 주소 구간과 그 의미를 정했다는 뜻이다. 모든 파일 페이지를 RAM에 읽어 왔다는 뜻은 아니다. 처음 명령어를 가져오거나 데이터를 읽을 때 아직 페이지가 연결되지 않았다면 페이지 폴트가 발생하고, 커널이 파일 페이지를 찾아 페이지 테이블을 채운 뒤 접근을 재개한다. 페이지 캐시에 내용이 있으면 저장 장치에서 다시 읽지 않아도 된다. | 매핑을 만들었다는 것은 주소 구간과 그 의미를 정했다는 뜻이다. 모든 파일 페이지를 RAM에 읽어 왔다는 뜻은 아니다. 처음 명령어를 가져오거나 데이터를 읽을 때 아직 페이지가 연결되지 않았다면 페이지 폴트가 발생하고, 커널이 파일 페이지를 찾아 페이지 테이블을 채운 뒤 접근을 재개한다. 페이지 캐시에 내용이 있으면 저장 장치에서 다시 읽지 않아도 된다. | ||
반대로 헤더 읽기나 마지막 페이지의 영 초기화처럼 로딩 중 실제 접근이 일어나는 부분도 있다. 따라서 “전부 미리 읽는다”와 “로딩 중에는 아무 페이지도 읽지 않는다”는 설명은 모두 부정확하다. 자세한 경로는 [[운영체제 기본/ | 반대로 헤더 읽기나 마지막 페이지의 영 초기화처럼 로딩 중 실제 접근이 일어나는 부분도 있다. 따라서 “전부 미리 읽는다”와 “로딩 중에는 아무 페이지도 읽지 않는다”는 설명은 모두 부정확하다. 자세한 경로는 [[운영체제 기본/Linux/메모리 매핑/파일 매핑과 COW#읽기 폴트와 페이지 캐시|파일 매핑의 읽기 폴트]]에서 다룬다. | ||
이제 실행 파일의 코드와 데이터를 사용할 주소 공간이 준비되었다. 다음은 [[운영체제 기본/ | 이제 실행 파일의 코드와 데이터를 사용할 주소 공간이 준비되었다. 다음은 [[운영체제 기본/Linux/ELF 로딩/초기 스택과 사용자 모드 진입|초기 스택과 사용자 모드 진입]]에서 인자와 스택을 만들고 CPU가 실행을 시작할 상태를 준비하는 과정이다. | ||
== load_bias와 적재 주소 == | == load_bias와 적재 주소 == | ||
| 110번째 줄: | 110번째 줄: | ||
{{이전 다음 문서 | {{이전 다음 문서 | ||
|이전=← 이전 문서<br />[[운영체제 기본/ | |이전=← 이전 문서<br />[[운영체제 기본/Linux/ELF 로딩/execve와 실행 이미지 교체|execve와 실행 이미지 교체]] | ||
|목차=[[운영체제 기본/ | |목차=[[운영체제 기본/Linux/ELF 로딩|ELF 로딩 목차]] | ||
|다음=다음 문서 →<br />[[운영체제 기본/ | |다음=다음 문서 →<br />[[운영체제 기본/Linux/ELF 로딩/초기 스택과 사용자 모드 진입|초기 스택과 사용자 모드 진입]] | ||
}} | }} | ||
{{운영체제 기본 둘러보기}} | {{운영체제 기본 둘러보기}} | ||