운영체제 기본/Linux/x86-64/BIOS 부팅/GRUB의 커널 적재와 제어권 전달: 두 판 사이의 차이
문장형 절 제목을 직관적인 명사형으로 통일하고 기존 절 링크 보존 |
변경된 절 제목으로 내부 역링크 갱신 |
||
| 51번째 줄: | 51번째 줄: | ||
커널 적재 주소 역시 언제나 <code>0x100000</code>이라고 단정하면 안 된다. GRUB는 헤더의 재배치 가능 여부, 정렬 조건, 선호 주소와 초기 실행 공간 크기를 읽어 메모리를 확보한다. 실제 선택한 위치에 맞춰 <code>code32_start</code>도 조정한다. 여기까지는 압축된 이미지를 실행할 공간을 준비하는 단계이며, GRUB가 Linux의 압축 해제 작업을 대신 끝낸 상태는 아니다.<ref name="grub-linux" /> | 커널 적재 주소 역시 언제나 <code>0x100000</code>이라고 단정하면 안 된다. GRUB는 헤더의 재배치 가능 여부, 정렬 조건, 선호 주소와 초기 실행 공간 크기를 읽어 메모리를 확보한다. 실제 선택한 위치에 맞춰 <code>code32_start</code>도 조정한다. 여기까지는 압축된 이미지를 실행할 공간을 준비하는 단계이며, GRUB가 Linux의 압축 해제 작업을 대신 끝낸 상태는 아니다.<ref name="grub-linux" /> | ||
<code>initrd</code> 명령은 별도의 이미지를 메모리에 올리고 그 주소와 크기를 기록한다. 이름이 initrd여도 실제 내용은 initramfs일 수 있다. 부트로더 관점에서는 커널에 전달할 바이트 배열이며, 이를 해석하여 초기 루트 파일시스템으로 사용하는 일은 커널 쪽 일이다. 이 데이터가 <code>/init</code> 파일로 이어지는 과정은 [[운영체제 기본/x86-64 Linux의 BIOS 부팅/루트 파일시스템과 init 선택# | <code>initrd</code> 명령은 별도의 이미지를 메모리에 올리고 그 주소와 크기를 기록한다. 이름이 initrd여도 실제 내용은 initramfs일 수 있다. 부트로더 관점에서는 커널에 전달할 바이트 배열이며, 이를 해석하여 초기 루트 파일시스템으로 사용하는 일은 커널 쪽 일이다. 이 데이터가 <code>/init</code> 파일로 이어지는 과정은 [[운영체제 기본/x86-64 Linux의 BIOS 부팅/루트 파일시스템과 init 선택#init 실행을 위한 루트 파일시스템 준비|루트 파일시스템과 init 선택]]에서 다룬다. | ||
<span id="boot_params로_부트_정보를_전달한다"></span> | <span id="boot_params로_부트_정보를_전달한다"></span> | ||