운영체제 기본/Linux/x86-64/BIOS 부팅/루트 파일시스템과 init 선택: 두 판 사이의 차이
잔글 Linux 각론 경로 변경에 따른 본문·목차·틀 링크 갱신 |
Linux 계층형 경로에 맞춰 문서 링크 갱신 |
||
| 1번째 줄: | 1번째 줄: | ||
{{이전 다음 문서 | {{이전 다음 문서 | ||
|이전=← 이전 문서<br />[[운영체제 기본/x86-64 | |이전=← 이전 문서<br />[[운영체제 기본/Linux/x86-64/BIOS 부팅/PID 1 생성|PID 1 생성]] | ||
|목차=[[운영체제 기본/x86-64 | |목차=[[운영체제 기본/Linux/x86-64/BIOS 부팅|BIOS 부팅 목차]] | ||
}} | }} | ||
| 37번째 줄: | 37번째 줄: | ||
<code>kernel_execve()</code>는 커널에 있는 인수 문자열을 복사한다는 차이가 있지만, <code>bprm_execve()</code>에서 일반 실행 경로와 합쳐져 같은 binfmt 핸들러와 ELF 로더를 사용한다. 파일 형식 판별, ELF 세그먼트 매핑, 초기 스택과 사용자 레지스터 준비의 공통 원리는 [[운영체제 기본/Linux/ELF 로딩|Linux의 ELF 로딩]]에서 설명한다.<ref name="exec">[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/exec.c?h=v6.12 Linux v6.12, fs/exec.c], <code>kernel_execve()</code>, <code>bprm_execve()</code>.</ref> | <code>kernel_execve()</code>는 커널에 있는 인수 문자열을 복사한다는 차이가 있지만, <code>bprm_execve()</code>에서 일반 실행 경로와 합쳐져 같은 binfmt 핸들러와 ELF 로더를 사용한다. 파일 형식 판별, ELF 세그먼트 매핑, 초기 스택과 사용자 레지스터 준비의 공통 원리는 [[운영체제 기본/Linux/ELF 로딩|Linux의 ELF 로딩]]에서 설명한다.<ref name="exec">[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/exec.c?h=v6.12 Linux v6.12, fs/exec.c], <code>kernel_execve()</code>, <code>bprm_execve()</code>.</ref> | ||
PID 1은 그대로 유지되고 실행 이미지가 준비된다. 앞서 [[운영체제 기본/x86-64 | PID 1은 그대로 유지되고 실행 이미지가 준비된다. 앞서 [[운영체제 기본/Linux/x86-64/BIOS 부팅/PID 1 생성|PID 1 생성]]에서 만든 태스크가 이제 첫 사용자 프로그램을 실행할 주소 공간과 스택, 레지스터 상태를 갖게 되는 것이다. | ||
== PID 1의 첫 사용자 모드 진입 == | == PID 1의 첫 사용자 모드 진입 == | ||
| 52번째 줄: | 52번째 줄: | ||
{{이전 다음 문서 | {{이전 다음 문서 | ||
|이전=← 이전 문서<br />[[운영체제 기본/x86-64 | |이전=← 이전 문서<br />[[운영체제 기본/Linux/x86-64/BIOS 부팅/PID 1 생성|PID 1 생성]] | ||
|목차=[[운영체제 기본/x86-64 | |목차=[[운영체제 기본/Linux/x86-64/BIOS 부팅|BIOS 부팅 목차]] | ||
}} | }} | ||
{{운영체제 기본 둘러보기}} | {{운영체제 기본 둘러보기}} | ||