ACPI/UEFI와 Linux 커널 상호작용 — 부팅 단계와 테이블 파싱 관점에서
ACPI는 운영체제가 하드웨어 전원 상태와 장치 구성을 동적으로 관리할 수 있게 해주는 인터페이스입니다. Linux 커널은 부팅 과정에서 UEFI 펌웨어가 메모리에 올려놓은 ACPI 테이블을 파싱해 시스템 구성을 파악합니다. DSDT, SSDT 같은 테이블은 장치 정의와 전원 관리 메서드를 AML 바이트코드로 담고 있고, 커널의 ACPI 인터프리터가 이를 실행합니다. 수업에서 UEFI 부팅 과정을 분석했을 때, UEFI가 부팅 서비스를 제공하고 커널이 ExitBootServices를 호출한 이후 런타임 서비스만 남는 흐름을 추적했습니다. 실제 장치 드라이버 개발에서 ACPI 네임스페이스를 탐색해 장치를 열거하는 코드를 짧게 다뤄봤고, 테이블 파싱 오류가 하드웨어 인식 실패로 이어지는 것도 확인했습니다. UEFI/ACPI는 플랫폼마다 구현 품질이 달라서 표준을 알면서도 예외 케이스에 대비하는 코드가 중요합니다.