운영체제 기본/Linux/x86-64/BIOS 부팅/GDT와 LDT 초기화: 두 판 사이의 차이

역링크 갱신 완료 후 불필요한 호환 span id 제거
둘러보기와 상하단 이전 다음 문서 틀 통일
1번째 줄: 1번째 줄:
[[운영체제 기본/x86-64 Linux의 BIOS 부팅|부팅 목차]] · 이전: [[운영체제 기본/x86-64 Linux의 BIOS 부팅/진입 규약과 압축 해제|진입 규약과 압축 해제]] · 다음: [[운영체제 기본/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 부팅/커널 초기화|커널 초기화]]
}}
{{운영체제 기본 둘러보기}}