운영체제 기본/Linux/x86-64/BIOS 부팅/GDT와 LDT 초기화: 두 판 사이의 차이
역링크 갱신 완료 후 불필요한 호환 span id 제거 |
둘러보기와 상하단 이전 다음 문서 틀 통일 |
||
| 1번째 줄: | 1번째 줄: | ||
[[운영체제 기본/x86-64 Linux의 BIOS 부팅| | {{이전 다음 문서 | ||
|이전=← 이전 문서<br />[[운영체제 기본/x86-64 Linux의 BIOS 부팅/진입 규약과 압축 해제|진입 규약과 압축 해제]] | |||
|목차=[[운영체제 기본/x86-64 Linux의 BIOS 부팅|BIOS 부팅 목차]] | |||
|다음=다음 문서 →<br />[[운영체제 기본/x86-64 Linux의 BIOS 부팅/커널 초기화|커널 초기화]] | |||
}} | |||
BIOS에서 출발해 GRUB의 <code>linux</code> 명령으로 Linux v6.12 x86-64 bzImage를 부팅하는 경로에서는, GRUB이 32비트 보호 모드의 실행 환경을 만들어 압축 해제기의 <code>startup_32</code>에 제어를 넘긴다. 이 시점에 이미 GDT가 있어야 하지만, 그것이 이후 Linux가 계속 사용할 GDT라는 뜻은 아니다. Linux는 '''실행 모드의 전환, 압축 해제기의 이동, 커널 가상 주소로의 전환, CPU별 자료구조의 설치'''에 맞추어 GDTR을 여러 번 갱신한다. GRUB이 준비하는 초기 CPU 상태는 [[운영체제 기본/x86-64 Linux의 BIOS 부팅/GRUB에서 커널로|GRUB에서 커널로]]에서 이어진다.<ref name="gdt-boot">[https://docs.kernel.org/6.12/arch/x86/boot.html Linux v6.12, The Linux/x86 Boot Protocol], 32-bit Boot Protocol.</ref> | BIOS에서 출발해 GRUB의 <code>linux</code> 명령으로 Linux v6.12 x86-64 bzImage를 부팅하는 경로에서는, GRUB이 32비트 보호 모드의 실행 환경을 만들어 압축 해제기의 <code>startup_32</code>에 제어를 넘긴다. 이 시점에 이미 GDT가 있어야 하지만, 그것이 이후 Linux가 계속 사용할 GDT라는 뜻은 아니다. Linux는 '''실행 모드의 전환, 압축 해제기의 이동, 커널 가상 주소로의 전환, CPU별 자료구조의 설치'''에 맞추어 GDTR을 여러 번 갱신한다. GRUB이 준비하는 초기 CPU 상태는 [[운영체제 기본/x86-64 Linux의 BIOS 부팅/GRUB에서 커널로|GRUB에서 커널로]]에서 이어진다.<ref name="gdt-boot">[https://docs.kernel.org/6.12/arch/x86/boot.html Linux v6.12, The Linux/x86 Boot Protocol], 32-bit Boot Protocol.</ref> | ||
| 114번째 줄: | 118번째 줄: | ||
<references/> | <references/> | ||
{{이전 다음 문서 | |||
|이전=← 이전 문서<br />[[운영체제 기본/x86-64 Linux의 BIOS 부팅/진입 규약과 압축 해제|진입 규약과 압축 해제]] | |||
|목차=[[운영체제 기본/x86-64 Linux의 BIOS 부팅|BIOS 부팅 목차]] | |||
|다음=다음 문서 →<br />[[운영체제 기본/x86-64 Linux의 BIOS 부팅/커널 초기화|커널 초기화]] | |||
}} | |||
{{운영체제 기본 둘러보기}} | |||