UEFI 펌웨어 코드(컴파일된 바이너리 및 소스 코드)는 어디에 저장됩니까?

UEFI 펌웨어 코드(컴파일된 바이너리 및 소스 코드)는 어디에 저장됩니까?

레거시 BIOS 프로그램은 PC의 ROM에 있습니다. UEFI는 BIOS보다 더 널리 사용됩니다.
UEFI 코드(컴파일된 바이너리 형식)는 어디에 저장됩니까?
이제 운영 체제에서 UEFI 드라이버를 제공합니까?
누구든지 UEFI 부트로더 사용에 대해 간략하게 설명해 주시면 매우 감사하겠습니다.
감사합니다!

ADD (2021.7.13)
이 질문을 올린 후 배운 내용 중 일부를 포함하는 1년 후의 업데이트입니다. UEFI 펌웨어는 EEPROM(현재는 업그레이드가 가능하기 때문에 EEPROM에 유지) 또는 플래시(NAND 플래시 블록 장치를 사용하고 RAM에 먼저 로드해야 하거나 NOR 플래시에 로드해야 함 - 임의 액세스 가능)에 보관된다는 것을 알고 있습니다. ok 직접 실행)
ESP(EFI 시스템 파티션) /boot/efi 디렉터리를 확인하면 /boot/efi/EFI 아래에 디렉터리가 있는 것을 볼 수 있습니다 boot. ubuntu두 디렉터리 모두에 일부 .efi 파일이 있으며, file명령을 사용하면 이러한 파일이 PE32 가상 머신용 바이너리 실행 파일임을 확인할 수 있습니다(EFI 펌웨어는 CPU 아키텍처 또는 ISA와 독립적인 PE32 머신 코드를 사용함). 현재 많은 펌웨어도 ESP에 포함되어 있습니다. 펌웨어 서비스를 OS 런타임 또는 부팅 시간과 연결하기 위한 몇 가지 테이블(ESP에 있는 것 같습니다)이 있다는 것을 알고 있습니다.

답변1

UEFI 펌웨어는 BIOS와 마찬가지로 ROM에 있습니다. 그렇기 때문에 "확고"합니다. BIOS와 UEFI의 개념적 차이점은 UEFI 펌웨어가 더 발전되었으며(일부에서는 "비대해졌다"고 함) BIOS와 같은 디스크 블록뿐만 아니라 파일 시스템에서 파일을 읽을 수 있다는 것입니다. UEFI에는 실행 환경도 포함되어 있습니다. 즉, EFI 시스템 파티션에서 EFI 프로그램을 로드하고 실행할 수 있습니다.

UEFI 펌웨어는 부팅 시 로드할 파일을 나타내는 특수 비휘발성 변수를 읽고 쓸 수도 있습니다. UEFI 애플리케이션에 필요한 구조를 포함하도록 커널 이미지를 컴파일할 수 있으므로 이 파일은 부트로더일 수도 있고 직접 Linux 커널일 수도 있습니다.

답변2

편집(지적해 주신 @telcoM에게 감사드립니다)

기술적으로는 펌웨어(BIOS 업그레이드)이므로 비휘발성 메모리(여기서는 ROM)에 있어야 합니다.

Wikipedia 기사 인용EFI 시스템 파티션

EFI(Extensible Firmware Interface) 시스템 파티션 또는 ESP는 UEFI(Unified Extensible Firmware Interface)를 준수하는 컴퓨터에서 사용되는 데이터 저장 장치(일반적으로 하드 드라이브 또는 솔리드 스테이트 드라이브)의 파티션입니다. 컴퓨터가 부팅되면 UEFI 펌웨어는 ESP에 저장된 파일을 로드하여 설치된 운영 체제와 다양한 유틸리티를 시작합니다.

이것이 여러분의 의심을 해소할 것이라고 생각합니다. 어쨌든, 기사를 확인하시기 바랍니다.

관련 정보