UEFI는 운영체제와 하드웨어 사이의 계층으로, 하드웨어를 추상화하고 운영체제에 대한 통합 인터페이스를 제공합니다. UEFI 엔지니어는 많은 사양과 하드웨어 정보를 숙지해야 하는데, 이는 매우 높은 기술적 요구 사항을 요구하며 시작하기 어렵습니다. 이것은 해당 업계에 진출하고자 하는 프로그래머들에게는 엄청난 시험입니다.

어려움 극복에 도움을 주고자 이하에서는 5가지 측면에서 (UEFI 이해 / UEFI 개발 / CPU Architecture / 공통 매뉴얼 / 운영 체제) 책 목록과 관련 공유 내용을 공유하고 , 필독서 12권을 소개합니다.

UEFI 초보자를 위한 필독서

UEFI 이해

BEYOND BIOS

대부분의 UEFI 프로그래머는 이 책을 통해 UEFI 세계에 입문합니다. 이 책은 최신 펌웨어, UEFI 프레임워크와 그 구현(EDKII)의 개발을 소개합니다. 부팅부터 운영 체제 진입까지 UEFI의 전체 프로세스를 설명하고, 운영 체제에 인터페이스를 제공하는 방법을 설명합니다.

HARNESSING THE UEFI SHELL

이 책에서는 UEFI Shell 의 사용법을 소개합니다. 이는 Bash Shell과 유사한 도구입니다. UEFI 인프라를 활용하면 보안, 네트워킹, 시스템 구성, 진단 유지 관리 등의 분야에서 중요한 역할을 수행할 수 있습니다. 실제 개발에서는 Shell에서 드라이버를 테스트하고 다양한 하드웨어 테스트 도구를 개발하는 경우가 많습니다. UEFI Shell은 이 분야의 개발자가 반드시 숙지해야 하는 도구입니다.

QUICK BOOT

이 책은 기본 초기화 과정을 설명하고, 개발자에게 아키텍처 배경과 시작 시퀀스에 대한 세부 정보를 제공하는 포괄적인 책입니다. 이 책에서는 다양한 개념을 설명하고 있으며, 이러한 개념을 이해하는 것은 UEFI 실무자에게 꼭 필요합니다. 또한 저자는 최적화 기술에 대한 자신의 이해를 자세히 설명합니다.

UEFI 개발

UEFI 원칙 및 프로그래밍

우연히 알게되어 중화서국을 통해 구매해 보유하고 있는 책으로 중국 최초의 UEFI 전문서로 , UEFI의 사용법을 포괄적으로 소개하고 UEFI의 원리를 분석합니다. UEFI 프로젝트의 설립, 프로토콜 사용, UEFI 애플리케이션 및 드라이버 개발, UEFI Shell의 명령 및 프로그래밍에 대한 자세한 내용을 소개하고 , 다수의 샘플 코드를 제공합니다. 왜 한국은 더 이상 이런 책이 나오지 않는 것일까요?

UEFI 프로그래밍 연습

이 역시 위에 책 검색을 통해 알게되어 중화서국을 통해 구매한 책입니다. 이 책은 실습과 실용성에 초점을 맞추고 있으며 초보자에게 친화적입니다. 개발 및 디버깅 환경을 소개하고 UEFI 애플리케이션 및 드라이버와 관련된 지식 포인트를 설명한 후, 그래픽 이미지와 주변 장치 액세스 등 개발자가 가장 관심을 갖는 주제에 대한 자세한 설명을 제공합니다.

CPU Architecture

Computer Organization and Design

더 이상 무슨 말이 필요합니다. 이 책 모르면 간첩이지요. 튜링상 수상자 두 명은 명령어 세트를 설계하는 방법과 시스템 아키텍처에 대해 생각하는 방법을 간단한 용어로 설명했습니다. UEFI 엔지니어에게 CPU 아키텍처에 대한 이해는 기본 요건입니다. 칩 아키텍트의 관점에서 생각하는 법을 배우는 것은 UEFI 아키텍처에 대한 이해를 심화하는 데 매우 도움이 됩니다.

공통 메뉴얼

UEFI Specification

UEFI를 배우려면 UEFI 사양을 이해해야 합니다. UEFI 사양은 시스템 펌웨어가 어떻게 구성되어야 하는지, 어떤 부분을 포함해야 하는지, 어떤 소프트웨어 인터페이스가 있는지, 펌웨어가 구현해야 하는 드라이버 인터페이스가 무엇인지 설명합니다. 관련 개념을 확립하기 위해 처음 7장을 읽어보는 것이 좋습니다. 부트 서비스 와 런타임 서비스 에 대해 먼저 알아보고 , 필요에 따라 해당 프로토콜 에 대해 더 깊이 이해하세요.

UEFI PI Specification

UEFI 사양은 시스템 펌웨어, 추가 드라이버 및 OS에 대한 것입니다. 운영 체제는 UEFI 사양의 인터페이스나 서비스를 통해서만 상호 작용할 수 있습니다. PI 사양은 UEFI를 구현하는 방법에 관한 것입니다. 모든 인터페이스와 서비스는 펌웨어에 의해서만 생성되고 사용됩니다.

ACPI Specification

ACPI 사양은 운영 체제가 마더보드의 장치 구성과 장치를 포함한 전체 시스템의 전원 관리를 제어할 수 있도록 하는 업계에서 널리 사용되는 인터페이스입니다. 이는 운영체제가 주도하는 전원 관리 기능에서 매우 중요한 구성요소입니다. ACPI는 운영체제가 하드웨어와 독립적으로 개발될 수 있도록 하고, 하드웨어가 운영체제와 독립적으로 개발될 수 있도록 하여 생태계 형성을 촉진합니다. UEFI와 ACPI는 분리할 수 없습니다. UEFI 엔지니어의 중요한 업무 중 하나는 다양한 유형의 하드웨어에 대한 ACPI 설명을 운영 체제에 제공하는 것입니다.

운영체제

Windows Internals

마이크로소프트가 기획하고 출판한 일련의 책입니다. 각 버전은 Microsoft 커널 전문가에 의해 작성되었습니다. 지금까지 7 번째 판이 출판되었습니다. UEFI 엔지니어의 경우 운영 체제의 아키텍처를 이해하는 것이 필수적입니다. 이 책은 Windows 운영 체제의 시스템 아키텍처, 프로세스, 스레드, 메모리 관리 및 기타 지식을 심층적으로 분석합니다. UEFI 엔지니어 에게 가장 중요한 관심사는 시작, 하드웨어 드라이버 로딩, 전원 관리입니다.

QEMU\KVM 소스코드 분석 및 적용

UEFI 아키텍처와 EDKII 소스 코드를 이해하려면 적절한 테스트 및 디버깅 환경을 준비해야 합니다. EDKII는 Qemu에 대한 아키텍처 지원을 제공합니다. 이 책은 QEMU와 KVM 구현 에 대한 매우 자세한 분석을 제공합니다. 관련 소스 코드에는 QEMU 프로그램의 기본 구성과 중요 구성 요소, 마더보드 및 펌웨어 가상화, CPU 가상화, 메모리 가상화, 인터럽트 가상화, 장치 가상화 등이 포함됩니다. UEFI 엔지니어는 UEFI 드라이버를 검증하는데 필요한 하드웨어 장치를 추가하는 방법을 배울 수 있으며, 이를 통해 일상 업무 속도를 크게 높일 수 있습니다.