▲GN⁺ 2024-07-16 | parent | ★ favorite | on: 64비트 모드용 BIOS 부트로더 작성(thasso.xyz)Hacker News 의견 직접 보호 모드로 전환하지 않고도 긴 모드로 전환할 수 있는 방법이 있음 부트섹터에 작은 64비트 커널을 로드하는 부트로더를 만들었음 디스크에서 커널을 로드하고 VESA 모드를 설정하는 과정 포함 80286은 16비트 레지스터인 MSW를 가지고 있고, 80386은 이를 32비트 CR0로 확장했음 64비트 긴 모드는 EFER MSR을 추가하고 CR0를 64비트로 확장했음 현재 CR0의 11비트와 EFER의 8비트만 사용 중임 왜 Intel/AMD가 기존 레지스터의 빈 비트를 사용하지 않았는지 궁금함 이 글에서 가장 불필요하게 복잡한 부분은 Makefile과 링커 스크립트임 NASM은 평면 바이너리 출력을 생성할 수 있지만, 이를 사용하는 것이 너무 "해킹적"이라고 생각하는 듯함 CPU를 올바른 모드로 전환하기 위해 필요한 모든 단계가 불필요하게 복잡함 모두 하위 호환성을 위해 필요한 단계로 보임 Intel이 처음부터 올바른 모드로 시작할 수 있는 플래그나 명령을 제공할 수 있었을 것임 또는 모든 하위 호환성을 제거할 수 있었음 ARM64도 비슷한 문제가 있는지 연구한 기억이 있음 처음부터 64비트로 설계된 CPU가 있는지 궁금함 Itanium의 목표/설계가 그런 것이었을 것임 새로운 부트로더 접근 방식을 만든 이유를 이해하지 못하는 UEFI 지지자들이 있을 수 있음 글쓴이가 말하듯이, "여기까지 왔다면 멋진 일임" UEFI가 얼마나 오래되었는지 궁금함 긴 모드와 함께 BIOS를 폐기하지 않은 것이 아쉬움 이 부트 절차가 EFI/UEFI와 호환되는지 궁금함 UEFI 감독자가 실제 하드웨어에서 실모드/보호모드/긴 모드를 에뮬레이트하는지 궁금함 ARM에서 이 과정이 더 간단한지 궁금함
Hacker News 의견