U-Boot와 UEFI 펌웨어의 차이점


1

책을 읽고 있습니다 (Mastering Embedded Linux Programming, 2nd ed). 부트 로더 장에서는 U-Boot 및 UEFI 펌웨어를 사용한 부팅 프로세스에 대해 설명합니다.

마지막 단계에서 U-Boot 또는 UEFI 펌웨어가 Linux 이미지를 RAM에 인계하고로드한다는 점을 제외하면 부팅 단계는 완전히 같습니다.

정확한 차이점은 무엇입니까? UEFI 대신 U-Boot를 선택하거나 그 반대로 선택하는 이유는 무엇입니까?


1
아마도 부트 로더에서 원하는 사용자 구성 능력과 관련이있을 것입니다. Uboot는 커널 위치 및 매개 변수와 같은 많은 부팅 구성 항목을 하드 코딩하는 반면 전체 UEFI 부트 로더는 좀 더 동적이어야하고 디스크 및 부팅 위치를 검색 할 수 있습니다.
Mokubai

실제로 "마지막 단계"로 정의한 내용에 따라 다릅니다. UEFI는 많은 일을 합니다. U-Boot는 그렇지 않습니다.
Daniel B

@DanielB 더 자세한 정보를 얻을 수 있습니까?
flashburn

답변:


5

UEFI 사양은 펌웨어가 노출 될 수있는 API를 설명합니다. 이 API는 펌웨어가로드 한 응용 프로그램 및 드라이버에서 사용할 수 있습니다.

오픈 소스 펌웨어 Das U-Boot 에는 UEFI 사양의 일부 구현이 포함되어 있습니다. TianoCore EDK II 는 완벽한 오픈 소스 구현을 제공합니다 . Phoenix 와 같은 회사 는 비공개 소스 UEFI 펌웨어를 제공합니다.

64 비트 ARM 아키텍처에서 Linux 배포판 Suse 및 Fedora는 U-Boot를 사용하여 GRUB을 U-Boot에서 UEFI 응용 프로그램으로로드하여 UEFI API 호출을 통해 Linux 커널을로드하고 시작합니다. Linux 자체에는 UEFI 스텁이 있으므로 UEFI 응용 프로그램으로 시작할 수 있습니다.

UEFI 사양은 시스템이 재부팅 될 때까지 메모리에 유지되는 런타임을 정의합니다. UEFI 런타임은 UEFI 변수 변경, 새 펌웨어 업로드 및 시스템 재부팅을 포함한 서비스를 제공합니다. UEFI 사양을 준수하는 U-Boot에는 UEFI 런타임도 포함되어 있습니다. 그러나 현재 기능은 시스템 재부팅으로 제한됩니다.


3

가장 큰 차이점은 UEFI는 기본적으로 운영 체제이고 U-Boot는 부트 로더 일뿐입니다. U-Boot는 시스템을 부팅 가능하게 만들기에 충분하며 부팅 문제의 디버깅을 단순화하기 위해 약간의 추가 기능을 제공합니다. 반면 UEFI는 MS-DOS를 비교하여 단순하게 보이게하는 대규모 런타임 API 세트를 제공하며, U-Boot와 달리 실행이 끝난 후에는 크게 벗어날 수 있습니다.

그 외에도 라이센스 차이 (U-Boot는 UEFI보다 약간 더 개방적 임), 파일 형식 차이 (U-Boot는 사용자 지정, 최소한의 이미지 파일 형식을 사용하고 UEFI는 PE32 + 실행 파일을 사용) 및 실제 상태의 차이가 있습니다 실행 핸드 오프시 시스템 및 구성 방법 (UEFI에는 종종 통합 펌웨어 구성 옵션이 있지만 U-Boot는 일반적으로 펌웨어를 다시 빌드하고 플래시해야합니다).


UEFI는 운영 체제가 아닌 API입니다. EDK II와 U-Boot는 모두이 API를 구현하는 부트 로더입니다. 둘 다 GPL 2에 따라 라이센스가 부여됩니다.
Xypron

@Xypron UEFI는 실제로 API이지만 가장 순수한 의미의 OS입니다. 간단한 사실은 UEFI가 모든 최신 OS에서 제공하는 대부분의 기능을 제공하므로 기능적으로 운영 체제라는 것입니다. 또한 마지막으로 확인한 U-Boot는 어떤 식 으로든 UEFI를 구현하지 않습니다. 제공하는 기능 중 일부는 비슷하지만 동일한 API는 아닙니다.
Austin Hemmelgarn

@ austin-hemmelgam U-Boot의 UEFI 구현은 공식 사양을 기반으로합니다. 2017 년부터 GRUB은 UEFI 페이로드로 시작할 수 있습니다. events17.linuxfoundation.org/sites/events/files/slides/…
Xypron
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.