UEFI

UEFI
UEFI
Logo of the UEFI Forum who develops the UEFI standard
UEFI 표준을 개발하는 UEFI 포럼 로고
Lenovo ThinkPad T430 UEFI BIOS 1.16 boot order menu.jpg
Lenovo ThinkPad T430의 UEFI 부팅 순서 선택 메뉴
기입처C[a]
플랫폼독립적인
웹 사이트www.uefi.org Edit this on Wikidata
소프트웨어 스택에서의 EFI 위치
UEFI 펌웨어는 일반적으로 메인보드에 있는 NOR 플래시에 저장됩니다.

Unified Extensible Firmware Interface(UEFI;[1] Unified Extensible Firmware 인터페이스)는 오퍼레이팅시스템과 플랫폼펌웨어 사이의 소프트웨어 인터페이스를 정의하는 공개 사양입니다.UEFI는 원래 모든 IBM PC 호환 [2][3]개인용 컴퓨터에 있는 기존 BIOS(Basic Input/Output System) 부팅 펌웨어를 대체하며, 대부분의 UEFI 펌웨어 구현은 기존 BIOS 서비스를 지원합니다.UEFI는 운영 체제가 [4]설치되지 않은 경우에도 원격 진단 및 컴퓨터 복구를 지원할 수 있습니다.

인텔은 독자적인 확장 펌웨어 인터페이스(EFI) 사양을 개발했습니다.EFI 의 프랙티스와 데이터 포맷의 일부는, Microsoft Windows [5][6]의 프랙티스와 비슷합니다.2005년에 UEFI는 EFI 1.10(EFI의 최종 릴리스)을 폐지했습니다.Unified EFI Forum은 UEFI 사양을 전체적으로 관리하는 업계 단체입니다.

역사

EFI의 당초 동기는 인텔 최초의 개발 초기에 있었습니다.1990년대 중반의 HP Itanium 시스템.BIOS 제한(16비트 리얼 모드, 1MB 주소 지정 가능한 메모리 용량,[7] 어셈블리 언어 프로그래밍, PC AT 하드웨어 등)은 Itanium이 목표로 [8]하는 대규모 서버 플랫폼에는 너무 제한적이었습니다.이러한 문제에 대처하기 위한 대처는 1998년에 시작되었으며 처음에는 인텔 부트 이니셔티브라고 [9]불렸습니다.나중에 확장 펌웨어 인터페이스(EFI)[10][11]이름이 변경되었습니다.

2005년 7월 인텔은 버전 1.10에서 EFI 사양 개발을 중단하고 Unified EFI Forum에 기여했습니다.Unified EFI Forum은 이 사양을 Unified Extensible Firmware Interface(UEFI)로 개발했습니다.원래의 EFI 사양은, EFI 베이스의 제품 전용 라이센스를 제공하는 인텔이 계속 소유하고 있습니다만, UEFI 사양은 UEFI [8][12]포럼이 소유하고 있습니다.

UEFI 사양 버전 2.0은 2006년 1월 31일에 출시되었습니다.암호화와 보안을 추가했습니다.UEFI 사양 버전 2.1은 2007년 1월 7일에 출시되었습니다.네트워크 인증과 사용자 인터페이스 아키텍처(UEFI에서는 휴먼 인터페이스 인프라)가 추가되었습니다.

최신 UEFI 규격인 버전 2.9는 2021년 [13]3월에 공개되었습니다.

최초의 오픈 소스 UEFI 실장 Tiano는 2004년에 인텔에 의해 출시되었습니다.그 후, Tiano는 EDK와[15] EDK2로[14] 대체되어 현재는 TianoCore [16]커뮤니티에 의해 유지되고 있습니다.

2018년 12월, MicrosoftMicrosoft Surface Hyper-V 제품에 사용되는 TianoCore EDK2의 포크인 Project Mu를 발표했습니다.이 프로젝트에서는,[17]서비스로서의 펌 웨어」의 아이디어를 촉진합니다.

2018년 10월 Arm은 일반적인 기성 운영 체제 및 하이퍼바이저를 Arm 기반 서버에 도입하기 위한 컴플라이언스 인증 프로그램인 Arm ServerReady를 발표했습니다.이 프로그램에서는, 시스템 펌 웨어가 Server Base Boot Requirements(SBR; 서버 베이스 부트 요건)에 준거하고 있을 필요가 있습니다.SBR에는 UEFI, ACPISMBIOS 준거가 필요합니다.2020년 10월, Arm은 프로그램엣지 및 IoT 시장으로 확장한다고 발표했습니다.새 프로그램 이름은 Arm System Ready입니다.Arm System Ready는 현재 3가지 레시피를 제공하는 BBR(Base Boot Requirements) 사양을 정의했습니다.그 중 2개는 UEFI와 관련된 것입니다.1) SBR: Windows, Red Hat Enterprise Linux, EBware 2 등의 엔터프라이즈 레벨 운영 환경에 적합한 UEFI, ACPI 및 SMBIOS 준거가 필요합니다.EBR(Embedded Base Boot Requirements)에 정의되어 있는 UEFI 인터페이스 세트에 대응하고 있습니다.많은 Linux 및 BSD 디스트로는 두 레시피를 모두 지원할 수 있습니다.

이점

EFI 사양에 정의되어 있는 인터페이스에는 플랫폼 정보를 포함한 데이터 테이블, OS 로더 및 OS에서 사용할 수 있는 부팅 및 런타임 서비스가 포함됩니다. UEFI 펌웨어는 기존 BIOS [18]시스템에 비해 다음과 같은 기술적 이점을 제공합니다.

  • GPT([19][b][20]GUID Partition Table)를 사용하여 대용량 파티션(2TB 이상)이 포함된 디스크를 부팅할 수 있습니다.
  • 네트워크 기능, GUI, 다국어 등 유연한 사전 OS 환경
  • 32비트(IA-32, ARM32) 또는 64비트(x64, AArch64 등) 프리 OS 환경
  • C 언어 프로그래밍
  • 모듈러 설계
  • 하위 및 상위 호환성

호환성.

프로세서 호환성

버전 2.5부터는 Itanium, x86, x86-64, ARM(AArch32) 및 ARM64(AArch64)[21]에 대한 프로세서 바인딩이 존재합니다.little-endian 프로세서만 지원됩니다.[22]POWERPC64의 비공식 UEFI 지원은 OpenPOWER 추상화 [23]레이어인 OPAL 위에 TianoCore를 구현하여 리틀 엔디언 모드로 [24]실행함으로써 개발 중입니다.같은[25] 프로젝트가 MIPS[26]RISC-V에도 존재합니다.UEFI 2.7 현재 RISC-V 프로세서바인딩은 32비트,[27] 64비트 및 128비트 모드로 공식적으로 확립되어 있습니다.

표준 PC BIOS는 16비트 프로세서 모드와 1MB의 주소 지정 가능한 메모리 용량으로 제한됩니다.이는 16비트 Intel 8088 [8][28]프로세서를 사용한 IBM 5150을 기반으로 설계되었기 때문입니다.이에 비해 UEFI 환경의 프로세서 모드는 32비트(x86-32, AArch32) 또는 64비트(x86-64, Itanium 및 AArch64)[8][29] 중 하나입니다.64비트 UEFI 펌웨어 구현은 롱 모드를 지원합니다.이것에 의해, 프리부트 환경의 애플리케이션은 64비트 어드레싱을 사용해 머신의 [30]모든 메모리에 직접 액세스 할 수 있습니다.

UEFI에서는 펌웨어와 운영시스템 로더(또는 커널)의 사이즈가 일치해야 합니다.즉, 64비트 UEFI 펌웨어 실장에서는 64비트 운영시스템(OS) 부트로더 또는 커널만을 로드할 수 있습니다(CSM 기반의 레거시 부트가 사용되지 않는 한).이것도 32비트에 적용됩니다.시스템이 "Boot Services"에서 "Runtime Services"로 전환되면 운영 체제 커널이 이어받습니다.이 시점에서 커널은 필요에 따라 프로세서모드를 변경할 수 있지만 런타임서비스 사용이 금지됩니다(커널이 [31]: sections 2.3.2 and 2.3.4 다시 전환되지 않는 한).버전 3.15에서 Linux 커널x86-64 CPU에서 실행되는 32비트 UEFI 펌웨어 구현에서 부팅되는 64비트 커널을 지원하며 UEFI 부트 로더에서 UEFI 핸드오버를 지원합니다.[32]UEFI 핸드오버 프로토콜은 커널과 UEFI 부트 로더 간에 UEFI 초기화 코드를 중복 제거하므로 초기화는 Linux 커널의 UEFI 부트 [33][34]스텁에서만 수행됩니다.

디스크 디바이스 호환성

UEFI는 MBR(마스터 부트 레코드)를 사용하는 표준 PC 디스크 파티션 구성표와 더불어 GPT(GUID Partition Table) 파티션 구성표와도 함께 작동하며 MBR의 많은 제한이 없습니다.특히 디스크 파티션의 수와 크기(디스크당 최대 4개의 프라이머리 파티션, 디스크당 최대 2TB(2×2바이트40))에 대한 MBR 제한이 [35]완화됩니다.특히 GPT는 최대 8ZB(8×2바이트70)[36][37]의 디스크와 파티션 크기를 허용합니다.

리눅스

옵션을 켜면 리눅스 GPT 지원이 실행됨CONFIG_EFI_PARTITION([38]EFI GUID 파티션 지원).이 옵션을 사용하면 시스템 펌웨어가 시스템에 대한 제어를 리눅스로 넘긴 후 리눅스가 GPT Disk를 인식하고 사용할 수 있습니다.

GRUB 2와 Linux 모두 GPT를 인식하고 있기 때문에 Linux는 BIOS 기반 시스템에서 GPT 디스크를 데이터 스토리지와 부팅 모두에 사용할 수 있습니다.이러한 설정은 보통 BIOS-GPT라고 [39][unreliable source?]부릅니다.GPT는 보호 MBR을 포함하므로 BIOS 기반 컴퓨터는 보호 MBR의 부트스트랩 코드 [37]영역에 저장된 GPT 인식 부트 로더를 사용하여 GPT 디스크에서 부팅할 수 있습니다.GRUB의 경우 GPT 파티션 디스크에 MBR 이후의 갭이 없기 때문에 이러한 구성에서는 GRUB의 BIOS 부트 파티션이 2단계 코드를 내장해야 합니다(GPT의 프라이머리 헤더와 프라이머리 파티션 테이블로 인계됩니다).일반적으로 GPT 스킴에서 이 파티션의 GUID(Global Unique Identifier) 크기1MB입니다.21686148-6449-6E6F-744E-656564454649로 GRUB에 의해 BIOS-GPT 설정에서만 사용됩니다.GRUB의 관점에서 보면 MBR 파티셔닝의 경우 이러한 파티션 유형은 존재하지 않습니다.시스템이 UEFI 기반인 경우 이 파티션은 필요하지 않습니다. 이 경우 [19][37][39]2단계 코드를 포함할 필요가 없기 때문입니다.

UEFI 시스템은 GPT 디스크에 액세스하여 이 디스크에서 직접 부팅할 수 있으므로 Linux에서 UEFI 부팅 방법을 사용할 수 있습니다.UEFI 시스템의 GPT 디스크에서 Linux를 부팅하려면 부트로더, 운영 체제 커널 및 유틸리티 [40][41][42][unreliable source?]소프트웨어와 같은 UEFI 애플리케이션을 포함하는 ESP(EFI 시스템 파티션)를 만들어야 합니다.이러한 설정은 보통 UEFI-GPT라고 불리며,[37][39][43][unreliable source?] ESP는 최대 호환성을 위해 최소 512MB의 크기로 FAT32 파일 시스템으로 포맷하는 것이 좋습니다.

하위 호환성을 위해 일부 UEFI 구현에서는 레거시 BIOS [44]호환성을 제공하는 CSM(Compatibility Support Module)을 통해 MBR 파티션 디스크에서 부팅할 수도 있습니다.이 경우 UEFI 시스템에서 Linux를 부팅하는 것은 기존 BIOS 기반 시스템과 동일합니다.

Microsoft Windows

64비트 버전의 윈도우즈 Vista SP1 이상 및 32비트 버전의 윈도우즈 8, 8.1 10은 2TB보다 큰 GPT 디스크에서 부팅할 수 있습니다.

특징들

서비스

UEFI 변수 예제

EFI는 부트서비스와 런타임서비스의 2가지 타입을 정의합니다.부트 서비스는 펌웨어가 플랫폼을 소유하고 있는 경우에만 사용할 수 있습니다.ExitBootServices()call)에는 다양한 디바이스의 텍스트 및 그래픽 콘솔, 버스, 블록 및 파일 서비스가 포함됩니다.런타임 서비스는 운영체제 실행 중에도 액세스할 수 있으며 날짜, 시간, NVRAM 액세스 등의 서비스가 포함됩니다.

그래픽스 출력 프로토콜(GOP) 서비스
그래픽스 출력 프로토콜(GOP)은 런타임 서비스를 제공합니다.아래 그래픽 기능 섹션도 참조하십시오.운영체제는 [45]런타임모드 중에 GOP에서 제공하는 프레임버퍼에 직접 쓸 수 있습니다.
UEFI 메모리 맵 서비스
SMM 서비스
ACPI 서비스
SMBIOS 서비스
디바이스 트리 서비스(RISC 프로세서용)
가변 서비스
UEFI 변수는 데이터, 특히 비휘발성 데이터를 저장하는 방법을 제공합니다.일부 UEFI 변수는 플랫폼 펌웨어와 운영 체제 간에 공유됩니다.변수 네임스페이스는 GUID로 식별되며 변수는 키/값 쌍입니다.예를 들어 UEFI 변수를 사용하여 크래시 메시지를 크래시 후 NVRAM에 보관하고 OS를 [46]재부팅한 후 가져올 수 있습니다.
타임 서비스
UEFI는 시간 서비스를 제공합니다.타임 서비스에는 타임존 및 서머타임필드의 지원이 포함되어 하드웨어 실시간클럭을 현지시간 [47]또는 UTC로 설정할 수 있습니다.PC-AT 실시간 클럭을 사용하는 머신에서는 최신 버전을 사용하고 Windows 레지스트리의 엔트리가 UTC 사용을 나타내도록 설정되어 있지 않는 한 BIOS 기반 Windows와의 호환성을 확보하기 [6]위해 하드웨어 클럭을 로컬 시간으로 설정해야 합니다.

응용 프로그램

EFI 부트 매니저와 EFI 드라이버의 상호 작용

UEFI는 OS를 로드할 뿐만 아니라 UEFI 응용 프로그램을 실행할 수 있습니다. UEFI 응용 프로그램EFI 시스템 파티션에 파일로 저장됩니다.UEFI 쉘, 펌웨어 부팅 관리자 또는 다른 UEFI 응용 프로그램에서 실행할 수 있습니다.UEFI 애플리케이션은 OEM(Original Equipment Manufacturer)과는 독립적으로 개발 및 설치할 수 있습니다.

UEFI 응용 프로그램의 한 종류는 GRUB, rEFInd, Gummiboot, Windows Boot Manager 등의 OS 부트 로더입니다.이러한 로더는 일부 OS 파일을 메모리에 로드하여 실행합니다.또, OS 부트로더는, 다른 UEFI 애플리케이션을 선택해 실행할 수 있도록 유저 인터페이스를 제공할 수 있습니다.UEFI Shell과 같은 유틸리티도 UEFI 응용 프로그램입니다.

프로토콜

EFI는 프로토콜을 두 이진 모듈 간의 통신에 사용되는 소프트웨어 인터페이스 집합으로 정의합니다.모든 EFI 드라이버는 프로토콜을 통해 다른 사용자에게 서비스를 제공해야 합니다.EFI 프로토콜은 BIOS 인터럽트 호출과 유사합니다.

디바이스 드라이버

표준 명령 세트 고유의 디바이스 드라이버와 더불어 EFI는 비휘발성 메모리에 EFI 바이트 코드 또는 EBC로 저장된 ISA 독립 디바이스 드라이버를 제공합니다.시스템 펌웨어에는 EBC 이미지용 인터프리터가 있습니다.그런 의미에서 EBC는 PowerPC 기반의 Apple Macintosh 및 Sun Microsystems SPARC 컴퓨터에서 사용되는 ISA 독립 펌웨어인 Open Firmware와 유사합니다.

일부 디바이스 타입의 아키텍처 고유의 (EFI 바이트 코드 이외의) EFI 드라이버에는, OS 로 사용하기 위한 인터페이스가 있는 경우가 있습니다.이것에 의해, OS 는 EFI 에 의존해, operating system 고유의 드라이버가 로드되기 전에 기본적인 그래픽스 및 네트워크 기능을 실행할 수 있습니다.

다른 경우 EFI 드라이버는 다른 유형의 디스크 볼륨에서 부팅할 수 있는 파일 시스템 드라이버일 수 있습니다.예를 들어 Ruffus가 NTFS [49]ESP 체인 로딩에 사용하는 37개 파일 시스템(GRUB2 [48]코드 기준)의 efif가 있습니다.

그래픽스 기능

EFI 1.0 사양에서는 그래픽 기능을 지원하는 방법으로 UGA(Universal Graphic Adapter) 프로토콜을 정의했습니다.UEFI는 UGA를 포함하지 않고 GOP(Graphics Output Protocol)[50]로 대체했다.

UEFI 2.1은 사용자 입력, 현지화된 문자열, 글꼴 및 폼(HTML 의미)을 관리하기 위한 HII(Human Interface Infrastructure)를 정의했습니다.이것에 의해, OEM(Original Equipment Manufacturer) 또는 독립 BIOS 벤더(IBV)는, 기동전의 구성을 위한 그래피컬 인터페이스를 설계할 수 있습니다.

대부분의 초기 UEFI 펌웨어 구현은 콘솔 기반이었습니다.오늘날 UEFI 펌웨어 구현의 대부분은 GUI 기반입니다.

EFI 시스템 파티션

EFI 시스템 파티션(ESP)은 UEFI 사양을 준수하는 컴퓨터에서 사용되는 데이터 저장 장치 파티션입니다.UEFI 펌웨어는 컴퓨터의 전원을 켤 때 UEFI 응용 프로그램과 운영 체제 부팅 로더를 포함하여 이러한 응용 프로그램을 실행하는 데 필요한 파일을 저장합니다.지원되는 파티션 테이블 구성표에는 MBR GPT 및 [31]: section 2.6.2 광학 디스크의 El Torito 볼륨이 포함됩니다.ESP에서 사용하기 위해 UEFI는 FAT 파일 시스템의 특정 버전을 정의합니다. FAT는 UEFI 사양의 일부로 유지되며 FAT32, FAT16FAT12 파일 [31]: section 12.3 [51][52][53]시스템을 포함하는 원래 FAT 사양과는 독립적으로 유지됩니다.ESP는 하위 BIOS [44]호환성의 일부로서 부트 섹터를 위한 공간도 제공합니다.

기동중

UEFI 부팅

기존 PC BIOS와 달리 UEFI는 부팅 섹터에 의존하지 않으며 대신 UEFI 사양의 일부로 부팅 관리자를 정의합니다.시스템의 전원이 켜지면 부트 매니저는 부트 구성을 확인한 다음 해당 설정에 따라 지정된 OS 부트 로더 또는 운영 체제 커널(일반적으로 부트[54] 로더)을 실행합니다.부트 설정은 OS 로더 또는 OS 커널에 대한 파일시스템 경로를 나타내는 변수를 포함하여 NVRAM에 저장된 변수에 의해 정의됩니다.

OS 부트 로더는 UEFI에 의해 자동으로 검출되므로 USB 플래시 드라이브 의 이동식 디바이스에서 쉽게 부팅할 수 있습니다.이 자동 검출은 OS 부트 로더에 대한 표준화된 파일 패스에 의존하며 경로는 컴퓨터 아키텍처에 따라 달라집니다.파일 경로의 형식은 <EFI_SYSTEM_PARTION>\EFI\BOOT\BOOT<MACHINE_TYPE_SHORT_NAME>로 정의됩니다.를 들어 x86-64 시스템에서 OS 로더로의 파일 경로는 \efi\boot\bootx64.efi,[31] ARM64 아키텍처에서는 \efi\boot\bootaa64.efi입니다.

부트 프로세스

GPT 파티션 디스크에서 UEFI 시스템을 부팅하는 것을 일반적으로 UEFI-GPT 부팅이라고 합니다.UEFI 사양에서는 MBR 파티션 테이블을 완전히 [31]지원해야 하지만 일부 UEFI 펌웨어 구현에서는 부트 디스크의 파티션 테이블 유형에 따라 즉시 BIOS 기반 CSM 부팅으로 전환되므로 MBR 파티션 [44]디스크 상의 EFI 시스템 파티션에서 UEFI 부팅이 실행되지 않습니다.이러한 부트 스킴은 일반적으로 UEFI-MBR이라고 불립니다.

또한 부트 매니저에는 텍스트 사용자 인터페이스가 있어 사용자가 사용 가능한 부트 옵션 목록에서 원하는 OS(또는 셋업 유틸리티)를 선택할 수 있습니다.

CSM 부트

하위 호환성을 확보하기 위해 PC 클래스 머신에 UEFI 펌웨어를 구현하면 레거시 BIOS 호환성을 제공하는 호환성 지원 모듈(CSM)을 통해 MBR 파티션 디스크에서 레거시 BIOS 모드로 부팅할 수 있습니다.이 시나리오에서는 파티션 테이블을 무시하고 부트 [44]섹터의 콘텐츠에 의존하여 레거시 BIOS 기반 시스템과 동일한 방법으로 부팅이 수행됩니다.

UEFI 또는 레거시 BIOS 기반 시스템에서 수행되더라도 MBR 파티션 Disk에서 BIOS 스타일 부팅을 일반적으로 BIOS-MBR이라고 합니다.또, 레거시 BIOS 베이스의 시스템을 GPT 디스크로부터 기동하는 것도 가능합니다.이러한 부트 스킴을, 통상은 BIOS-GPT라고 부릅니다.

호환성 지원 모듈을 사용하면 UEFI를 지원하지 않는 레거시 운영 체제 및 일부 레거시 옵션 ROM을 계속 사용할 [55]수 있습니다.또한 UEFI SMM에서 제공하는 기능과 더불어 CompatibilitySm이라고 불리는 레거시 시스템 관리 모드(SMM) 기능도 제공합니다.이러한 레거시 SMM 기능의 예로는 기존의 PS/2 기능[55]에뮬레이트하여 키보드와 마우스에 USB 레거시 지원을 제공하는 것이 있습니다.

2017년 11월 인텔은 [56]2020년까지 CSM 지원을 단계적으로 중단할 계획이라고 발표했습니다.

2022년 7월 Kaspersky Labs는 인텔의 H81 칩셋과 해당 메인보드의 호환성 지원 모듈을 사용하여 기계에서 악성 코드를 연쇄 부트하도록 설계된 루트킷에 대한 정보를 발표했습니다.[57]

네트워크 부팅

UEFI 사양에는 PXE(Preboot eXecution Environment)를 통한 네트워크 부팅 지원이 포함되어 있습니다.PXE 부팅 네트워크 프로토콜에는 Internet Protocol(IPv4IPv6), UDP(User Datagram Protocol), DHCP(Dynamic Host Configuration Protocol), TFTP(Trivial File Transfer Protocol) 및 iSCSI가 [31][58]포함됩니다.

OS 이미지는 SAN에 [31][59][60]액세스하기 위한 지원 프로토콜로 iSCSI(Internet Small Computer System Interface) 및 FCoE(Fibre Channel over Ethernet)를 사용하여 SAN에 원격으로 저장할 수 있습니다.

UEFI 사양 버전 2.5에서는 HTTP [61]프로토콜을 통해 부트 이미지에 액세스할 수 있는 지원이 추가되었습니다.

시큐어 부트

rEFInd 부트 매니저에 의해 검출된 액티브시큐어 부트 예시

UEFI 2.3.1 Errata C 사양(또는 그 이상)에서는 Secure Boot(시큐어 부트)라고 불리는 프로토콜을 정의하고 있습니다.이 프로토콜은 허용 가능한 디지털 서명으로 서명되지 않은 UEFI 드라이버 또는 OS 부트 로더의 로드를 방지함으로써 부트 프로세스를 보호할 수 있습니다.이러한 드라이버의 서명 정도에 대한 기계적 세부 사항은 명시되어 [62]있지 않습니다.시큐어 부트를 유효하게 하면, 시큐어 부트는 처음에 「셋업」모드로 되어 있습니다.이 모드에서는, 「플랫폼 키」(PK)라고 불리는 공개 키를 펌 웨어에 쓸 수 있습니다.키가 작성되면 Secure Boot은 "사용자" 모드로 들어갑니다.이 모드에서는 플랫폼 키로 서명된 UEFI 드라이버와 OS 부트 로더만 펌웨어로 로드할 수 있습니다.다른 증명서를 사용할 수 있도록 메모리에 저장된 데이터베이스에 "키 교환 키"(KEK)를 추가할 수 있지만 플랫폼 키의 [63]개인 부분에 연결되어 있어야 합니다.시큐어 부트에서는, 「커스텀」모드로 할 수도 있습니다.이 모드에서는, 개인 [64]키와 일치하지 않는 공개 키를 시스템에 추가할 수 있습니다.

보안 부팅 Windows8, 8.1, 윈도 서버 2012년과 2012년 R2Windows10, WindowsServer2016년까지 2019년, 2022년 및 Windows11일 VM웨어 vSphere 6.5[65]과 리눅스의 페도라(이후 버전 18),openSUSE(이후 버전의 메뉴당 12.3), RHEL(이후 버전 7), CentOS(이후 버전 7[66]),(이후 버전 10이 데비안을 포함한 번호에 의해서 지탱됩니다.),[67]와 U(버전 12.04.[68]2 이후)2017년 1월 현재 FreeBSD 지원은 계획 [69]단계에 있습니다.

UEFI 셸

UEFI 셸 2.2 세션의 예

UEFI는 UEFI 부팅 [42]로더를 비롯한 다른 UEFI 응용 프로그램을 실행하는 데 사용할 수 있는 셸 환경을 제공합니다.이와는 별도로 UEFI 쉘에서 사용할 수 있는 명령어는 메모리 맵을 포함하여 시스템 또는 펌웨어에 대한 다양한 정보를 얻기 위해 사용할 수 있습니다.memmap), 부트 매니저 변수 변경(bcfg파티션 프로그램 실행 중 ( )diskpartUEFI 드라이버 로드 및 텍스트 파일 편집(edit를 참조해 주세요.[70][unreliable source?][71][72]

UEFI 쉘의 소스 코드는 인텔TianoCore UDK/[73]EDK2 프로젝트에서 다운로드할 수 있습니다.사전 빌드된 ShellBinPkg도 사용할 [74]수 있습니다.셸 v2는 UEFI 2.3 이상 시스템에서 가장 잘 작동하며 이러한 시스템에서는 셸 v1보다 권장됩니다.셸 v1은 모든 UEFI [70][75][76]시스템에서 작동합니다.

UEFI 쉘을 실행하는 방법은 시스템 마더보드의 제조업체 및 모델에 따라 다릅니다.이들 중 일부는 이미 펌웨어 셋업에서 부팅을 위한 직접 옵션을 제공하고 있습니다.예를 들어 컴파일된 x86-64 버전의 셸을 다음과 같이 사용할 수 있어야 합니다.<EFI_SYSTEM_PARTITION>/SHELLX64.EFI일부 다른 시스템에는 UEFI 쉘이 이미 내장되어 있어 적절한 [77][unreliable source?][78]키 조합을 사용하여 실행할 수 있습니다.다른 시스템에서는 적절한 USB 플래시 드라이브를 만들거나 수동으로 추가하는 것이 해결책입니다(bcfg) 컴파일된 버전의 [72][77][79][unreliable source?][80][unreliable source?]셸과 관련된 부트옵션.

명령어

다음으로 EFI [71]쉘에서 지원되는 명령어 목록을 나타냅니다.

내선번호

UEFI에 대한 확장은 컴퓨터에 연결된 거의 모든 비휘발성 저장 장치에서 로드할 수 있습니다.예를 들어, OEM(Original Equipment Manufacturer)은 하드 드라이브에 EFI 시스템 파티션을 가진 시스템을 배포할 수 있습니다. 그러면 메인보드의 ROM에 저장된 표준 UEFI 펌웨어에 추가 기능이 추가됩니다.

UEFI 캡슐

UEFI 캡슐은 최신 보안으로 [81]판매되는 펌웨어-OS 펌웨어 업데이트 인터페이스를 정의합니다.윈도우즈 8, 윈도우즈 8.1, 윈도우즈 10 [82]Fwupd for Linux는 각각 UEFI 캡슐을 지원합니다.

하드웨어

BIOS와 마찬가지로 UEFI는 시스템 하드웨어 컴포넌트(메모리 트레이닝, PCIe 링크 트레이닝, USB 링크 트레이닝 등)를 초기화 및 테스트한 후 대용량 스토리지 디바이스 또는 네트워크 연결을 통해 부트로더를 로드합니다.x86 시스템에서 UEFI 펌웨어는 보통 메인보드의 [83]NOR 플래시 칩에 저장됩니다.

UEFI 클래스

UEFI 머신에는, UEFI 로의 이행을 용이하게 하기 위해서 사용되는 다음의 「클래스」가 있습니다.10세대 인텔 Core 이후 인텔은 iGPU(인텔 그래픽스 테크놀로지)용 레거시 비디오 BIOS를 제공하지 않게 되었습니다.레거시 부트에는 레거시 비디오 BIOS가 필요합니다.이 BIOS는 비디오 카드로 제공할 [citation needed]수 있습니다.

  • 클래스 0: 레거시 BIOS
  • 클래스 1: CSM 인터페이스가 있고 외부 UEFI 인터페이스가 없는 UEFI.UEFI 인터페이스는 펌웨어 내부뿐입니다.
  • 클래스 2: CSM 및 외부 UEFI 인터페이스를 사용하는 UEFI
  • 클래스 3: CSM 인터페이스를 사용하지 않고 외부 UEFI 인터페이스를 사용하는 UEFI
  • 클래스 3+: 시큐어 부트가 유효한 UEFI 클래스 3

기동 단계

SEC – 보안 단계

이 단계는 UEFI 부팅의 첫 단계이지만 그 앞에 플랫폼 고유의 바이너리 코드(인텔 ME, AMD PSP, CPU 마이크로 코드 등)가 있을 수 있습니다.특정 아키텍처에 대해 어셈블리 언어로 작성된 최소 코드로 구성됩니다.이것은, 일시 메모리(종종 RAM으로서 CPU 캐쉬)를 초기화하고, 핸드오프 전에 PEI를 검증하는 옵션으로 시스템의 소프트웨어 신뢰 루트로서 기능합니다.

PEI – 사전 EFI 초기화

UEFI 부팅의 두 번째 단계는 메인 메모리 초기화 및 펌웨어 복구 작업 등의 초기 하드웨어 초기화 작업을 처리하기 위해 PEI 모듈(PEIM)을 로드 및 실행하는 종속성 인식 디스패처로 구성됩니다.또, 현재의 부트 모드를 검출해, 많은 ACPI S0ix/ACPI S3 조작을 처리합니다.ACPI S0ix/ACPI S3의 재개 시에는 다수의 하드웨어 레지스터를 sleep 전 상태로 복원하는 역할을 한다.또한 PEI는 CPU 캐시를 RAM으로 사용합니다.

DXE – 드라이버 실행 환경

이 단계는 C 모듈과 의존관계 인식 디스패처로 구성됩니다.메인 메모리를 사용할 수 있게 되어 CPU, 칩셋, 메인보드 및 부트 디바이스가 DXE 및 BDS로 초기화됩니다.

BDS – 부트 디바이스 선택

BDS는 DXE의 [84][85]일부입니다.이 단계에서는 부팅 디바이스가 초기화되고 시스템 구성에 따라 UEFI 드라이버 또는 PCI 디바이스의 옵션 ROM이 실행되며 부팅 옵션이 처리됩니다.

TSL – 과도 시스템 부하

이것은 부트 디바이스 선택과 OS로의 핸드오프 사이의 단계입니다.이 시점에서 UEFI 쉘로 들어가거나 OS 부트 로더 등의 UEFI 애플리케이션을 실행할 수 있습니다.

RT – 런타임

UEFI는 ExitBootServices()가 실행된 후 운영체제(OS)에 인계됩니다.UEFI와 호환되는 OS는 이제 더 이상 필요하지 않은 모든 코드와 데이터를 언로드하고 런타임 서비스 코드/데이터(SMMACPI [86]등)만 남기도록 펌웨어를 트리거하는 부팅 서비스를 종료합니다.일반적인 최신 OS에서는 하드웨어 디바이스를 제어하기 위해 자체 프로그램(커널 드라이버 등)을 사용하는 것을 선호합니다.

레거시 OS 를 사용하면, CSM 는 이 콜을 처리하고, 시스템이 레거시 BIOS 의 기대치에 대응하고 있는 것을 확인합니다.

구현 및 도입

인텔 EFI

UEFI 구현 InsydeH2O

인텔의 EFI 실장은 인텔 플랫폼 이노베이션 프레임워크(코드명 Tiano)입니다.Tiano는 인텔의 XScale, Itanium, x86-32x86-64 프로세서에서 실행되며 코드 일부는 BSD 라이선스 또는 Eclipse Public License(EPL)에 따라 TianoCore로 출시되었습니다.TianoCore는 [87]coreboot의 payload로 사용할 수 있습니다.

Phoenix Technologies의 UEFI 구현은 SecureCore Technology(SCT)[88]라는 브랜드로 되어 있습니다.American Megatrends는 Aptio로 [89]알려진 자체 UEFI 펌웨어 구현을 제공하며, Insyde Software는 InsydeH2O를 [90]제공합니다.

2018년 12월, Microsoft는 Surface 제품 라인인 Project [91]Mu에서 TianoCore EDK2 기반 UEFI 구현의 오픈 소스 버전을 출시했습니다.

Das U-Boot

UEFI API의 구현은 [92]2017년에 유니버설 부트 로더(Das U-Boot)에 도입되었습니다.ARMv8 아키텍처 Linux 디스트리뷰션에서는 부팅을 위해 GNU GRUB(를 들어 SUSE Linux)[94][93] 함께 U-Boot UEFI 구현을 사용합니다.OpenBSD에서도 마찬가지입니다.iSCSI iPXE에서 부팅하는 경우 U-Boot에서 [95]로드하는 UEFI 애플리케이션으로 사용할 수 있습니다.

EFI/UEFI를 사용하는 플랫폼

2000년에 출시된 인텔 최초의 Itanium 워크스테이션 및 서버는 EFI 1.02를 구현했습니다.

2002년에 출시된 Hewlett-Packard의 첫 번째 Itanium 2 시스템은 EFI 1.10을 구현하여 Windows, Linux, FreeBSDHP-UX부팅할 수 있었습니다.OpenVMS는 2003년 6월에 UEFI 기능을 추가했습니다.

2006년 1월, 애플은 최초의 인텔 베이스의 매킨토시 컴퓨터를 출하했다.이러한 시스템은 이전의 PowerPC 기반 시스템에서 [96]사용되던 Open Firmware 대신 EFI를 사용했습니다.2006년 4월 5일, Apple은 Windows 드라이버 디스크와 비파괴 파티션 툴을 사용하여 Mac OS X를 재설치하지 않고도 Windows XP 또는 Vista를 설치할 수 있는 Boot Camp를 처음 출시했습니다.또한 EFI 구현에 BIOS 호환성을 추가한 펌웨어 업데이트도 출시되었습니다.이후의 Macintosh 모델에는, 최신의 [97]펌 웨어가 부속되어 있습니다.

2005년에는 100만대 이상의 인텔 시스템이 인텔의 UEFI [98][failed verification]구현과 함께 출하되었습니다.인텔의 UEFI 구현을 사용한 새로운 모바일, 데스크톱 및 서버 제품은 2006년에 출하되기 시작했습니다.예를 들어 인텔945 칩셋 시리즈를 사용하는 보드는 인텔의 UEFI 펌웨어 구현을 사용합니다.

2005년 이후 EFI는 XScale [98]코어를 기반으로 하는 임베디드 시스템PC 이외의 아키텍처에도 구현되고 있습니다.

EDK(EFI Developer Kit)에는 NT32 타깃이 포함되어 있어 Windows 응용 프로그램 내에서 EFI 펌웨어 EFI 응용 프로그램을 실행할 수 있습니다.단, EDK NT32에서는 하드웨어에 직접 액세스할 수 없습니다.즉, EFI 애플리케이션 및 드라이버의 서브셋만이 EDK NT32 타겟으로 실행할 수 있습니다.

2008년에는 더 많은 x86-64 시스템이 UEFI를 채택했습니다.이러한 시스템의 대부분은 호환성 지원 모듈(CSM)을 통해 BIOS 기반 OS만 부팅할 수 있지만(따라서 UEFI 기반 OS로 보이지 않음), 다른 시스템에서는 UEFI 기반 OS 부팅이 허용되기 시작했습니다.예를 들어 IBM x3450 서버, ClickB가 있는 MSI 메인보드 등IOS, HP EliteBook 노트북 PC

2009년에 IBM은 UEFI 기능이 있는 System x 머신(x3550 M2, x3650 M2, iDataPlex dx360 M2)과 BladeCenter HS22를 출하했습니다.델은 UEFI 기능을 탑재한 PowerEdge T610, R610, R710, M610 및 M710 서버를 출하했습니다.UEFI 화이트 [99]페이퍼에 상용화된 더 많은 시스템이 기재되어 있습니다.

2011년 주요 벤더(ASRock, Asus, Gigabyte, MSI 등)는 UEFI를 [100]탑재한 인텔6 시리즈 LGA 1155 칩셋과 AMD 9 시리즈 AM3+ 칩셋을 사용한 소비자용 메인보드를 출시했습니다.

2012년 10월 Windows 8이 출시됨에 따라 마이크로소프트의 인증 요건에 따라 UEFI 사양을 구현하는 펌웨어가 컴퓨터에 포함되어 있어야 합니다.게다가 컴퓨터가 Windows 8 의 「Connected Standby」기능을 서포트하고 있는 경우(스탠바이 모드에서 거의 즉시 복귀해, 스마트폰과 동등한 전원 관리를 가능하게 한다), 펌웨어에는 Compatibility Support Module(CSM)을 탑재할 수 없습니다.따라서 Connected Standby를 지원하는 시스템은레거시 BIOS 운영 체제를 [101][102]부팅할 수 없습니다.

2017년 10월 인텔은 UEFI Class [103]3을 위해 2020년까지 모든 제품에서 기존 PC BIOS 지원을 폐지하겠다고 발표했습니다.

운영 체제

(U) EFI에서 부팅할 수 있는 운영체제는 (U) EFI 사양에 의해 정의된 (U) EFI 인식 운영체제라고 불립니다.여기서 (U) EFI에서 부팅된다는 용어는 스토리지 디바이스에 저장된 (U) EFI 운영체제 로더를 사용하여 시스템을 직접 부팅하는 것을 의미합니다.운영 체제 로더의 기본 위치는 다음과 같습니다.<EFI_SYSTEM_PARTITION>/BOOT/BOOT<MACHINE_TYPE_SHORT_NAME>.EFI여기서 머신 타입의 단축명은 다음과 같습니다.IA32,X64,IA64,ARM또는AA64일부 운영체제 벤더는 자체 부트 로더를 가지고 있을 수 있습니다.[31]또한 기본 부팅 위치를 변경할 수도 있습니다.

  • Linux 커널은 2000년대 [104]초부터 부팅 시 EFI를 사용할 수 있으며, elilo EFI 부트 로더 또는 최근에는 [105]GRUB의 EFI 버전을 사용하고 있습니다.또한 GRUB+Linux는 [19]UEFI가 없는 GUID 파티션 테이블에서 부팅을 지원합니다.배포판 Ubuntu에서는 버전 12.[106]10부터 UEFI Secure Boot 지원이 추가되었습니다.또한 Linux 커널은 EFI 부트 스터브 기능을 통해 자체 EFI 부트 로더로 실행할 수 있는 옵션으로 컴파일할 수 있습니다.
  • HP-UX는 2002년부터 IA-64 시스템에서 부팅 메커니즘으로 (U)EFI를 사용하고 있습니다.
  • OpenVMS는 2003년 12월 첫 평가판 출시 이후 IA-64에서 EFI를 사용하고 있으며 2005년 [107]1월 이후 프로덕션 릴리스에서 EFI를 사용하고 있습니다.OpenVMS의 x86-64 포트도 UEFI를 사용하여 운영 [108]체제를 부팅합니다.
  • 애플은 인텔 기반 맥 제품군에 EFI를 사용합니다.Mac OS X v10.4 TigerMac OS X v10.5 Leopard는 새로운 64비트 CPU에서도 EFI v1.10을 32비트 모드로 구현하지만 OS X v10.8 Mountain [109]Lion에서 완전히 지원되었습니다.
  • Windows 2000(Advanced Server Limited Edition 및 Datacenter Server Limited Edition)의 Itanium 버전은 2002년에 EFI 1.10을 구현했습니다.인텔 Itanium 패밀리 프로세서용 MS Windows Server 2003 for IA-64, MS Windows XP 64비트 에디션 및 Windows 2000 Advanced Server Limited Edition은 모두 DIG64 사양에 [110]따라 플랫폼의 요건인 EFI를 구현하고 있습니다.
  • Microsoft는 Windows Vista SP1[111]Windows Server 2008에서 x64 Windows 운영체제용 UEFI를 도입했습니다만, 서포트되고 있는 것은 UGA(Universal Graphic Adapter) 1.1 또는 레거시 BIOS INT 10h 뿐입니다.GOP(Graphics Output Protocol)는 지원되지 않습니다.따라서, PCWindowsVistaSP1, WindowsVistaSP2Windows7, WindowsServer2008및 WindowsServer2008R264비트 버전을 실행하는 UEFI 등급 2.[112][113]을 가진 행상인들 64비트 com의 주류 지위 때문에 네이티브 32비트 UEFI 펌웨어 제작에 흥미를 갖지 않은 32비트 UEFI는 원래 지원하지 않게 호환됩니다.puting.[114]Windows 8은 마침내 그래픽스 출력 프로토콜(GOP) 지원,[115] 더 빠른 시작, 32비트 UEFI 지원 및 보안 부팅 [116][117]지원을 포함하여 UEFI 시스템에 대한 추가 최적화를 도입했습니다.Microsoft는 UEFI에 Windows [118]11을 실행하는 것을 요구하기 시작했습니다.
  • 2013년 3월 5일, FreeB는SD Foundation은 UEFI 지원을 FreeB에 추가하려는 개발자에게 보조금을 지급했습니다.SD 커널 및 부트 [119]로더변경 내용은 처음에 FreeB의 개별 브랜치에 저장되었습니다.SD 소스 코드는 2014년 4월 4일(리비전 264095)에 메인라인 소스로 통합되었습니다.변경사항에는 설치 지원도 포함되어 있습니다.[120]amd64에 대한 UEFI 부팅 지원은 FreeB에서 처음 제공됨SD 10.1 및 Arm64용 FreeBSD 11.0.[121]
  • Oracle Solaris 11.1 이상에서는 UEFI 펌웨어 버전 2.1 이상이 설치된 x86 시스템에서 UEFI 부팅을 지원합니다.GRUB 2는 x86에서 [122]부트 로더로 사용됩니다.
  • OpenBSD 5.9는[123] 자체 커스텀 로더를 사용하는 64비트 x86 시스템에 UEFI 부팅 지원을 도입했으며 OpenBSD 6.0은 ARMv7을 [124]포함하도록 지원 범위를 확장했습니다.

UEFI를 가상화와 함께 사용

  • HP Integrity Virtual Machines는 HP Integrity 서버에서 UEFI 부팅을 제공합니다.또한 게스트 UEFI 인식 OS를 위한 가상화된 UEFI 환경도 제공합니다.
  • 인텔은 Source Forge에서 [125]Open Virtual Machine Firmware 프로젝트를 호스트합니다.
  • Mac OS X용 VMware Fusion 3 소프트웨어는 UEFI를 사용하여 Mac OS X Server 가상 머신을 부팅할 수 있습니다.
  • 버전 11 이전의 VMware Workstation은 UEFI를 비공식적으로 지원하지만 .vmx [126]파일을 편집하여 수동으로 활성화합니다.VMware Workstation 버전 11 이상에서는 물리 호스트 시스템이 UEFI 기반인지 여부에 관계없이 UEFI를 지원합니다.VMware Workstation 14(따라서 Fusion 10)는 UEFI의 [127][128]Secure Boot 기능을 지원합니다.
  • vSphere ESXi 5.0 하이퍼바이저는 UEFI를 공식적으로 지원합니다.버전 6.5에서는 Secure Boot 지원이 추가되었습니다.[129][130]
  • Virtual Box는 3.1부터 [131]UEFI를 구현하고 있지만 Unix/Linux 운영체제 및 Windows 8 이후에 한정되어 있습니다(Windows Vista x64 [132][133]및 Windows 7 x64에서는 동작하지 않습니다).
  • QEMU/KVM은 [134]TianoCore에서 제공하는 OVMF(Open Virtual Machine Firmware)와 함께 사용할 수 있습니다.
  • VMware vSphere의 일부인 VMware ESXi 버전5 하이퍼바이저는 가상 머신 내의 레거시 PC BIOS 대신 가상화된 UEFI를 지원합니다.
  • 2세대 Microsoft Hyper-V 가상 머신은 가상화된 UEFI를 [135]지원합니다.
  • Google Cloud Platform Shielded VM은 가상화된 UEFI를 지원하여 안전한 [136]부팅을 지원합니다.

응용 프로그램 개발

EDK2 Application Development Kit(EADK)를 사용하면 UEFI 애플리케이션에서 표준 C 라이브러리 기능을 사용할 수 있습니다.EADK는 인텔의 TianoCore UDK / EDK2 Source Forge 프로젝트에서 무료로 다운로드할 수 있습니다.예를 들어, Python 인터프리터의 포트는 EADK를 [137]사용하여 UEFI 응용 프로그램으로 사용할 수 있습니다.개발은 [138]UDK2015년부터 GitHub으로 이행하고 있습니다.

EADK를 사용하여 작성된 최소한의 "hello, world" C 프로그램은 일반적인 C 프로그램과 유사합니다.

#실패하다 <Uefi.h> #실패하다 <라이브러리/UefiLib.h> #실패하다 <라이브러리/ShellCentryLib.h>  EFI_상태 EFIAPI Shell App Main(입력 인텐 아르그, 입력 CHAR16 **아르구) {     인쇄(L"안녕하세요, 세상아\n");     돌아가다 EFI_SUCCESS; } 

비판

수많은 디지털 권리 운동가들이 UEFI에 반대하여 시위를 해왔다.coreboot의 공동 저자인 Ronald G. Minnich디지털 권리 운동가인 Cory Doctorow는 UEFI를 사용자가 컴퓨터를 [139][140]진정으로 제어할 수 있는 능력을 제거하려는 시도라고 비판했습니다.대부분의 하드웨어에 대해 [141]펌웨어용 드라이버와 운영체제용 드라이버가 각각1개씩 필요한 BIOS의 오랜 문제는 해결되지 않습니다.

오픈 소스 프로젝트 TianoCore는 UEFI [142]인터페이스도 제공합니다.TianoCore는 칩셋 기능을 초기화하는 특별한 드라이버가 없습니다.이러한 드라이버는 코어부트에 의해 대신 제공되며, TianoCore는 많은 페이로드 옵션 중 하나입니다.코어 부트의 개발에는, 초기화 드라이버의 개발에 필요한 사양을 제공하기 위해서, 칩 세트 제조원의 협력이 필요합니다.

시큐어 부트

커스텀 Secure Boot 공개 키의 예
Shim 부트로더의 일부인 MokManager

2011년에 Microsoft는 Windows 8 운영체제를 실행하도록 인증된 컴퓨터는 Microsoft의 공개 키가 등록되어 있고 Secure Boot이 활성화된 상태로 출하되어야 한다고 발표했습니다.발표 후, 동사는, UEFI의 시큐어 부트 기능을 사용해 Linux등의 대체 operating system의 인스톨을 방해하거나 완전하게 막으려고 하고 있는 것에 대해, 비평가와 프리 소프트웨어/오픈 소스 지지자(자유 소프트웨어 재단등)로부터 비난을 받았습니다.Microsoft는 시큐어 부트 요건이 록인의 한 형태로 기능하는 것을 부인하고, Windows 8용으로 인증된 x86 기반의 시스템에서는 시큐어 부트를 커스텀 모드로 이행하거나 무효로 할 필요가 있지만,[64][143] ARM 아키텍처를 사용하는 시스템에서는 할 수 없다고 명시함으로써 요건을 명확히 했습니다.Windows 10 에서는, 시큐어 부트를 x86 시스템 [144]유저가 관리할 수 있는지 아닌지를 OEM 메이커가 판단할 수 있습니다.

다른 개발자들은 Linux 시스템에서의 Secure Boot 지원 구현에 관한 법적 및 실제적인 문제에 대해 우려를 제기했습니다.Red Hat의 전 개발자 Matthew Garrett은 GNU General Public License 버전3의 조건에 따라 디스트리뷰션의 개발자가 개인 키를 공개하지 않고 GNU GRand Unified Bootloader를 사용할 수 없게 될 수 있다고 지적했습니다(다만, 자유 소프트웨어 재단은 그 후, 키를 사용할 책임을 확실히 하고 있습니다).ability는 하드웨어 [145][106]제조원이 보유하고 있습니다).또, 상급 유저는,[143] 시큐어 부트가 유효하게 되어 있는 커스텀 커널을 자기 서명 없이 작성하는 것도 어려워집니다.다른 개발자들은 다른 키를 사용하여 서명된 Linux 빌드를 제공할 수 있다고 제안했지만 OEM 제조업체가 Microsoft [3]키와 함께 필요한 키를 사용하여 컴퓨터를 출하하도록 설득하는 것은 어려울 것이라고 지적했습니다.

Linux의 주요 디스트리뷰션에서는, 시큐어 부트용의 다른 실장이 개발되고 있습니다.Garrett 자신도 Shim이라고 불리는 최소한의 부트로더를 개발했습니다.이는 Linux [146]디스트리뷰션에서 제공되는 키를 개별적으로 신뢰할 수 있는 사전 컴파일된 서명된 부트로더입니다.우분투 12.10, 개발자들부터 신뢰할 수 있는 커널은 사용자 공간이 아닌 pre-boo을 확보한 때 매우 효과적이다만 bootloader에 서명한 관행이 좀 더 실현 가능성 있다고 믿고 shim[어떤?]의 이전 버전 및 부호 없는 알맹이들이 로드될 수 있도록만 bootloader을 확인한다 정규 자신의 키에 사용할 pre-configured을 사용한다.t국가보호 기능을 추가하도록 설계된 보안 부팅입니다.이를 통해 [106][147][148]사용자는 시스템을 재구성할 필요 없이 자체 커널을 구축하고 커스텀 커널 모듈도 사용할 수 있습니다.또한 Canonical은 운영체제를 실행하는 인증된 OEM 컴퓨터에 사전 로드된 Ubuntu 설치에 서명하기 위한 자체 개인 키를 유지하고, 또한 Canonical 키와 Microsoft 키(호환성을 위해)를 펌웨어에 포함해야 하는 Secure Boot 요건도 적용할 계획입니다.Fedora도 shim을 [which?]사용하지만 커널과 모듈 모두 서명해야 합니다.[147]

운영체제 커널과 그 모듈도 서명해야 하는지 여부에 대해서는 논란이 되고 있습니다. UEFI 사양에서는 서명할 필요가 없지만 Microsoft는 계약상 요건에는 서명해야 하며,[148] 시스템의 보안을 해치는 데 사용할 수 있는 코드 서명에 사용된 모든 증명서를 취소할 권리가 있다고 주장했습니다.Windows 에서는, 시큐어 부트가 유효하게 되어 있는 경우, WHQL 커널 드라이버만이 허가됩니다.2013년 2월, 다른 Red Hat 개발자는 Linux 커널에 패치를 제출하려고 했습니다.이것에 의해, Microsoft가 서명한 PE 파일에 짜넣어진 마스터 X.509 키를 사용해 Microsoft의 오센티코드 서명을 해석할 수 있게 되었습니다.그러나 이 제안은 Linux의 크리에이터인 Linus Torvalds에 의해 비판을 받았습니다.Linus Torvalds는 Red Hat이 시큐어 [149]부트 인프라스트럭처에 대한 마이크로소프트의 제어를 지원한다고 공격했습니다.

2013년 3월 26일 스페인의 자유 소프트웨어 개발 그룹인 Hispalinux는 OEM 시스템에 대한 Microsoft의 Secure Boot 요건이 "방해적"이며 [150]반경쟁적이라며 유럽위원회에 정식 제소를 제기했습니다.

2013년 8월 열린 Black Hat 컨퍼런스에서 보안 연구자 그룹은 UEFI의 특정 공급업체 구현에서 Secure Boot을 [151]활용하는 데 사용할 수 있는 일련의 악용 사례를 발표했습니다.

2016년 8월, 2명의 보안 연구원이 Microsoft가 운영 체제에 [152]서명할 때 사용하는 "골든 키" 보안 키를 발견했다고 보고되었습니다.기술적으로는 키가 노출되지 않았지만 키로 서명된 부정 이용 가능한 바이너리는 노출되었습니다.이것에 의해, 어떠한 소프트웨어도, Microsoft 의 서명이 끝난 것처럼 동작할 수 있게 되어, 루트킷이나 부트킷 공격의 가능성이 있습니다.또, 어떠한 패치도 부정 이용 가능한 바이너리로 대체(다운그레이드)할 수 있기 때문에, 장해의 패치가 불가능하게 됩니다.Microsoft는 성명을 통해 이 취약성은 ARM 아키텍처와 Windows RT 디바이스에만 존재하며 2개의 패치를 릴리스했습니다.다만, 이 패치를 사용해도 취약성은 삭제되지 않기 때문에,[citation needed] 최종 유저 펌 웨어의 키를 교환할 필요가 있습니다.

RHEL(RHEL 7 이후), CentOS(CentOS 7 이후[153]), Ubuntu, Fedora, Debian(Debian 10 이후[154]), OpenSUSE, SUSE Linux [155]등 많은 Linux 배포판이 UEFI Secure Boot을 지원합니다.

펌웨어 문제

디바이스에서 UEFI 펌웨어의 중요성이 높아짐에 따라 각 [156]구현의 원인으로 지목되는 기술적 문제도 많이 발생하고 있습니다.

2012년 후반의 Windows 8 릴리스에 이어, 시큐어 부트를 탑재한 일부의 Lenovo 컴퓨터 모델에는,[157] 다른 설정에 관계없이, 「Windows Boot Manager」또는 「Red Hat Enterprise Linux」라고 하는 이름의 실행 파일만을 로드할 수 있도록 하드 코드 되어 있는 펌 웨어가 있는 것이 밝혀졌습니다.또, 시큐어 부트를 탑재한 몇몇 도시바 노트북 모델에서는, 올바르게 [156]동작하기 위해서 필요한 특정의 증명서가 없는 문제가 발생했습니다.

2013년 1월 일부 삼성 노트북에서 UEFI 구현을 둘러싼 버그가 공개되었으며, 이로 인해 UEFI 모드에서 Linux 디스트리뷰션을 설치한 후 문제가 발생했습니다.삼성 노트북의 시스템 기능에 액세스하도록 설계된 커널 모듈과의 잠재적인 충돌(또한 안전 대책으로 커널 유지보수가 UEFI 시스템의 모듈을 비활성화하도록 촉구함)이 처음에는 비난받았지만, Matthew Garrett은 이 버그가 실제로 너무 많은 UEFI 변수를 메모리에 저장함으로써 발생했으며 버그가 발생할 수 있다는 것을 발견했습니다.또한 특정 조건에서 Windows에서 트리거됩니다.결론적으로 그는 문제의 커널 모듈이 커널 메시지 덤프를 펌웨어에 쓰는 원인이 되어 [46][158][159]버그가 발생했다고 판단했습니다.

「 」를 참조해 주세요.

메모들

  1. ^ UEFI는 다른 언어로 구현할 수 있습니다.C는 TianoCore EDK II의 레퍼런스 구현에 사용됩니다.
  2. ^ 그 후, BIOS 베이스의 시스템에는, ACPI(Advanced Configuration and Power Interface)나 SMBIOS(System Management BIOS)의 대규모 디스크 서포트와 기능이 실장되었습니다.

레퍼런스

  1. ^ 약자 또는 /uːfa//로 발음됩니다.
  2. ^ Kinney, Michael (1 September 2000). "Solving BIOS Boot Issues with EFI" (PDF). pp. 47–50. Retrieved 14 September 2010.
  3. ^ a b "MS denies secure boot will exclude Linux". The Register. 23 September 2011. Retrieved 24 September 2011.
  4. ^ "The 30-year-long Reign of BIOS is Over: Why UEFI W... - Input Output". HP.com. Archived from the original on 26 June 2013. Retrieved 6 March 2012.
  5. ^ IBM PC Real Time Clock은 UT에서 실행되어야 합니다.Cl.cam.ac.uk 를 참조해 주세요.2013년 10월 30일 취득.
  6. ^ a b Garrett, Matthew (19 January 2012). "EFI and Linux: The Future Is Here, and It's Awful". linux.conf.au 2012. Archived from the original on 13 November 2021. Retrieved 2 April 2012.
  7. ^ "Memory Map (x86) - OSDev Wiki". wiki.osdev.org. Retrieved 11 December 2020.
  8. ^ a b c d "Emulex UEFI Implementation Delivers Industry-leading Features for IBM Systems" (PDF). Emulex. Retrieved 14 September 2010.
  9. ^ Extensible Firmware Interface (EFI) and Unified EFI (UEFI), Intel, archived from the original on 5 January 2010
  10. ^ Wei, Dong (2006), "foreword", Beyond BIOS, Intel Press, ISBN 978-0-9743649-0-2
  11. ^ "1.10 Specification overview", Extensible Firmware Interface, Intel
  12. ^ About, Unified EFI Forum, Q: What is the relationship between EFI and UEFI? A: The UEFI specification is based on the EFI 1.10 specification published by Intel with corrections and changes managed by the Unified EFI Forum. Intel still holds the copyright on the EFI 1.10 specification, but has contributed it to the Forum so that the Forum can evolve it. There will be no future versions of the EFI specification, but customers who license it can still use it under the terms of their license from Intel. The license to the Unified EFI Specification comes from the Forum, not from Intel
  13. ^ "Unified Extensible Firmware Interface (UEFI) Specification Version 2.9" (PDF). www.uefi.org. March 2021. Retrieved 23 May 2021.
  14. ^ "GitHub - tianocore/Edk: Git mirror of EDK". GitHub. 19 March 2019.
  15. ^ "GitHub - tianocore/Tianocore.github.io: Tianocore website". GitHub. 8 August 2019.
  16. ^ "What is TianoCore?".
  17. ^ "Microsoft announces Project Mu, an open-source release of the UEFI core". 20 December 2018.
  18. ^ "UEFI and Windows". Microsoft. 15 September 2009. Retrieved 14 September 2010.
  19. ^ a b c "Installation". 3.4 BIOS installation. GNU GRUB. Retrieved 25 September 2013.
  20. ^ "Non-boot disks can use a GPT partition table even with no UEFI bios".
  21. ^ UEFI 사양 2.4, 섹션 2.3
  22. ^ UEFI 규격 2.3.1, 섹션 1.8.1.
  23. ^ "GitHub - andreiw/ppc64le-edk2: TianoCore UEFI for OPAL/PowerNV (PPC64/PowerPC64 Little-Endian)". GitHub. 3 May 2021.
  24. ^ "Tianocore for OpenPOWER". Firmware Security. 12 October 2015.
  25. ^ kontais. "EFI-MIPS". SourceForge.
  26. ^ "lowRISC · lowRISC".
  27. ^ "Unified Extensible Firmware Interface Specification, Version 2.7" (PDF). May 2017.
  28. ^ Hardwidge, Ben (1 June 2010). "LBA explained — Solving the 3TB Problem?". bit-tech. Retrieved 18 June 2010.
  29. ^ Richardson, Brian (10 May 2010). "Ask a BIOS Guy: "Why UEFI"". Intel Architecture Blog. Archived from the original on 9 October 2010. Retrieved 18 June 2010.
  30. ^ Simpson, Gary. "UEFI Momentum — The AMD perspective". AMD. Archived from the original (PPTX) on 4 January 2014. Retrieved 20 September 2014.
  31. ^ a b c d e f g h "UEFI Specifications (version 2.4 and older)" (PDF). Unified EFI, Inc. June 2013. Retrieved 25 September 2013.
  32. ^ "Linux kernel 3.15, Section 1.3. EFI 64-bit kernels can be booted from 32-bit firmware". kernelnewbies.org. 8 June 2014. Retrieved 15 June 2014.
  33. ^ "x86, efi: Handover Protocol". LWN.net. 19 July 2012. Retrieved 15 June 2014.
  34. ^ "Linux kernel documentation: Documentation/efi-stub.txt". kernel.org. 1 February 2014. Retrieved 15 June 2014.
  35. ^ "FAQ: Drive Partition Limits" (PDF). UEFI Forum. Retrieved 5 December 2019.
  36. ^ "FAQ: Drive Partition Limits" (PDF). UEFI Forum. Retrieved 9 June 2010.
  37. ^ a b c d Smith, Roderick W. (3 July 2012). "Make the most of large drives with GPT and Linux". IBM. Retrieved 25 September 2013.
  38. ^ "block/partitions/Kconfig (3.11.1)". CONFIG_EFI_PARTITION (line #247). kernel.org. Retrieved 25 September 2013.
  39. ^ a b c "GRUB". BIOS systems. Arch Linux. Retrieved 25 September 2013.
  40. ^ "GRUB and the boot process on UEFI-based x86 systems". redhat.com. Retrieved 14 November 2013.
  41. ^ "UEFI Booting 64-bit Redhat Enterprise Linux 6". fpmurphy.com. September 2010. Retrieved 14 November 2013.
  42. ^ a b "UEFI Bootloaders". archlinux.org. Retrieved 25 September 2013.
  43. ^ "Unified Extensible Firmware Interface: EFI System Partition". archlinux.org. Retrieved 25 September 2013.
  44. ^ a b c d "UEFI system booting from MBR partition table and GRUB legacy". Arch Linux Forums. June 2012. Retrieved 6 October 2013.
  45. ^ "What is efifb? — The Linux Kernel documentation". www.kernel.org. Retrieved 24 November 2020.
  46. ^ a b "Samsung UEFI bug: Notebook bricked from Windows". The H. Retrieved 27 February 2013.
  47. ^ UEFI 사양, 섹션 7.3
  48. ^ "Free Software EFI Drivers".
  49. ^ Batard, Pete (13 March 2020). "pbatard/uefi-ntfs". GitHub.
  50. ^ "Intel Embedded Graphics Drivers FAQ: BIOS and firmware". Intel. Retrieved 19 May 2014.
  51. ^ "UEFI Specification Version 2.5, Section 12.3 File System Format" (PDF). uefi.org. April 2015. pp. 536, 537. Retrieved 29 May 2015. The file system supported by the Extensible Firmware Interface is based on the FAT file system. EFI defines a specific version of FAT that is explicitly documented and testable. Conformance to the EFI specification and its associate reference documents is the only definition of FAT that needs to be implemented to support EFI. To differentiate the EFI file system from pure FAT, a new partition file system type has been defined.
  52. ^ "Technical Note TN2166: Secrets of the GPT". developer.apple.com. 6 November 2006. Retrieved 6 May 2015.
  53. ^ "UEFI - OSDev Wiki". wiki.osdev.org. Retrieved 26 September 2020.
  54. ^ "EFISTUB - ArchWiki". wiki.archlinux.org. Retrieved 27 October 2020.
  55. ^ a b "Intel® Platform Innovation Framework for EFI" (PDF). Compatibility Support Module Specification (revision 0.97). Intel. 4 September 2007. Retrieved 6 October 2013.
  56. ^ "The PC BIOS will be killed off by 2020 as Intel plans move to pure UEFI". Ars Technica. Retrieved 29 May 2018.
  57. ^ "CosmicStrand: the discovery of a sophisticated UEFI firmware rootkit". Securelist by Kaspersky. Retrieved 4 August 2022.
  58. ^ "Red Hat Enterprise Linux 6 Installation Guide". 30.2.2. Configuring PXE boot for EFI. Red Hat. Retrieved 9 October 2013.
  59. ^ El-Haj-Mahmoud, Samer (July 2013). "Advances in Pre-OS Networking in UEFI 2.4" (PDF). Hewlett-Packard. Retrieved 29 May 2019.
  60. ^ Racherla, Sangam; Erdenberger, Silvio; Rajagopal, Harish; Ruth, Kai (January 2014). Storage and Network Convergence Using FCoE and iSCSI (PDF) (2nd ed.). IBM Redbooks. Retrieved 20 April 2022.
  61. ^ "New UEFI HTTP Boot support in UEFI 2.5". firmwaresecurity.com. 9 May 2015. Retrieved 13 August 2015.
  62. ^ "Secure Boot Overview". Microsoft. Retrieved 18 February 2016.
  63. ^ Edge, Jake. "UEFI and "secure boot"". LWN.net. Retrieved 9 September 2012.
  64. ^ a b "Windows 8 Secure Boot: The Controversy Continues". PC World. Retrieved 9 September 2012.
  65. ^ "Secure Boot for ESXi 6.5 - Hypervisor Assurance". VMware vSphere Blog. 4 May 2017. Retrieved 18 August 2017.
  66. ^ 사용방법 / UEFI - CentOS Wiki
  67. ^ Larabel, Michael (30 April 2018). "Debian Making Progress on UEFI SecureBoot Support in 2018". Phoronix. Phoronix Media. Retrieved 23 May 2018.
  68. ^ Garrett, Matthew (27 December 2012). "Secure Boot distribution support". Mjg59.dreamwidth.org. Retrieved 20 March 2014.
  69. ^ "SecureBoot". FreeBSD Wiki. FreeBSD. Retrieved 16 June 2015.
  70. ^ a b "Unified Extensible Firmware Interface". UEFI Shell. Arch Linux. Retrieved 25 September 2013.
  71. ^ a b "EFI Shells and Scripting". Intel. Retrieved 25 September 2013.
  72. ^ a b "UEFI Shell Specification Version 2.0, Errata A" (PDF). Unified EFI, Inc. May 2012. Retrieved 25 September 2013.
  73. ^ "EDK2: ShellPkg". GitHub. Retrieved 18 March 2020.
  74. ^ "tianocore/edk2: releases". GitHub.
  75. ^ "Email Archive: edk2-devel". [edk2] Inclusion of UEFI shell in Linux distro iso. SourceForge. 2012. Retrieved 25 September 2013.
  76. ^ "TianoCore on SourceForge". Shell FAQ. Intel. Retrieved 25 September 2013.
  77. ^ a b "Unified Extensible Firmware Interface". Launching UEFI Shell. Arch Linux. Retrieved 25 September 2013.
  78. ^ "Basic Instructions for Using EFI for Server Configuration on Intel® Server Boards and Intel® Server Systems" (PDF). Intel. 2008. Retrieved 25 September 2013.
  79. ^ "Unified Extensible Firmware Interface". bcfg. Arch Linux. Retrieved 25 September 2013.
  80. ^ "GRUB EFI Examples". Asus. Arch Linux. Retrieved 25 September 2013.
  81. ^ "Signed Capsule Update". edk2-docs.gitbook.io.
  82. ^ barrygolden. "Windows UEFI firmware update platform - Windows drivers". docs.microsoft.com. Retrieved 25 September 2020.
  83. ^ "Getting Started Microchip Technology". www.microchip.com. Retrieved 24 December 2020.
  84. ^ "PI Boot Flow · tianocore/Tianocore.github.io Wiki". GitHub.
  85. ^ "Engineering Services" (PDF).
  86. ^ "The Unified Extensible Firmware Interface (UEFI) — The Linux Kernel documentation". www.kernel.org. Retrieved 7 November 2020.
  87. ^ "TianoCore - coreboot". Retrieved 25 May 2012.
  88. ^ "SecureCore Tiano™". Phoenix Technologies. Archived from the original on 6 September 2010. Retrieved 14 September 2010.
  89. ^ "Aptio®: The Complete UEFI Product Solution" (PDF). American Megatrends, Inc. Retrieved 2 May 2018.
  90. ^ "Why US?". Insyde Software Corp. Retrieved 2 May 2018.
  91. ^ "Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore". Phoronix. Retrieved 20 December 2018.
  92. ^ "Marrying U-Boot UEFI and GRUB" (PDF). Retrieved 12 September 2018.
  93. ^ "UEFI on Top of U-Boot" (PDF). Retrieved 12 September 2018.
  94. ^ "Installing OpenBSD 6.3 on Raspberry 3". Retrieved 12 September 2018.
  95. ^ "iSCSI booting with U-Boot and iPXE". Retrieved 18 May 2020.
  96. ^ 애플 컴퓨터"범용 바이너리 프로그래밍 가이드라인, 제2판: 2008년 7월 24일 웨이백 머신에서 아카이브된 확장 펌웨어 인터페이스(EFI)
  97. ^ 오픈 펌웨어에서 확장 가능한 펌웨어 인터페이스로의 Apple의 이행, mactech, 2007.
  98. ^ a b "Intel® Platform Innovation Framework for UEFI Overview". Intel. Retrieved 14 September 2010.
  99. ^ Evaluating UEFI using Commercially Available Platforms and Solutions (PDF), UEFI, May 2011, archived from the original (PDF) on 22 March 2012
  100. ^ Asus P67 메인보드 미리보기
  101. ^ "Windows Hardware Certification Requirements for Client and Server Systems". Microsoft. January 2013. System.Fundamentals.Firmware.CS.UEFISecureBoot.ConnectedStandby ... Platforms shall be UEFI Class Three (see UEFI Industry Group, Evaluating UEFI using Commercially Available Platforms and Solutions, version 0.3, for a definition) with no Compatibility Support Module installed or installable. BIOS emulation and legacy PC/AT boot must be disabled.
  102. ^ "Microsoft: All You Need to Know About Windows 8 on ARM". PC Magazine. Retrieved 30 September 2013.
  103. ^ Richardson, Brian (30 October 2017). ""Last Mile" Barriers to Removing Legacy BIOS" (PDF). Retrieved 22 November 2017.
  104. ^ 관리자인 Brett Johnson이 2004년 2월 27일에 발표한 3.5pre1 릴리즈.
  105. ^ EFI version of Grub, Debian GNU/Linux, retrieved 1 May 2008
  106. ^ a b c "Ubuntu will use GRUB 2 for its Secure Boot implementation". The H Online. Retrieved 28 October 2012.
  107. ^ OpenVMS Release History, HP, archived from the original on 5 January 2009, retrieved 16 September 2008
  108. ^ "State of the Port to x86-64" (PDF). vmssoftware.com. 6 October 2017. Retrieved 9 September 2020.
  109. ^ rEFIt — Windows Vista and EFI, SourceForge
  110. ^ "Extensible Firmware Interface", Windows Server TechCenter, Microsoft, archived from the original on 30 August 2006
  111. ^ Unified Extensible Firmware Interface(UEFI) 구현 가이드라인
  112. ^ https://www.linux-kvm.org/downloads/lersek/ovmf-whitepaper-c770f8c.txt[베어 URL 플레인텍스트 파일]
  113. ^ UEFI 모드 또는 레거시 BIOS 모드로 부팅
  114. ^ "Unified Extended Firmware Interface support in Windows Vista". Microsoft. 26 October 2006. Retrieved 12 June 2010. Microsoft determined that vendors would not have any interest in producing native UEFI 32-bit firmware because of the current status of mainstream 64-bit computing and platform costs. Therefore, Microsoft originally did not to ship support for 32-bit UEFI implementations.
  115. ^ Microsoft 기본 디스플레이 드라이버
  116. ^ "Microsoft Touts Incredible Windows 8 Boot Times". Retrieved 9 September 2011.
  117. ^ Brodkin, Jon (21 September 2011). "Windows 8 secure boot could complicate Linux installs". Ars Technica. Retrieved 23 September 2011.
  118. ^ "Find Windows 11 specs, features, and computer requirements". Microsoft.
  119. ^ "FreeBSD to get UEFI support". The H. Retrieved 7 March 2013.
  120. ^ "UEFI - FreeBSD Wiki". FreeBSD.org. Retrieved 19 June 2014.
  121. ^ "uefi(8)". www.freebsd.org. Retrieved 11 January 2021.
  122. ^ "Oracle Solaris 11.1 — What's New" (PDF). oracle.com. Retrieved 4 November 2013.
  123. ^ "OpenBSD 5.9". www.openbsd.org. Retrieved 11 September 2016.
  124. ^ "OpenBSD 6.0". www.openbsd.org. Retrieved 11 September 2016.
  125. ^ Open Virtual Machine Firmware, SourceForge, archived from the original on 6 October 2011
  126. ^ "VMWare Workstation EFI firmware VMware Communities". Communities.vmware.com. 3 October 2012. Retrieved 28 February 2014.
  127. ^ "Using EFI/UEFI firmware in a VMware Virtual Machine VMware Communities". Communities.vmware.com. Retrieved 18 January 2016.
  128. ^ "Announcing VMware Workstation 14 - VMware Workstation Zealot". VMware Workstation Zealot. 22 August 2017. Retrieved 2 August 2018.
  129. ^ "What's New in vSphere 5.0". Vmware.com. Retrieved 28 February 2014.
  130. ^ "VMware vSphere 6.5 Release Notes". pubs.vmware.com. Retrieved 13 January 2017.
  131. ^ 3.1 Changelog, VirtualBox, archived from the original on 28 September 2010
  132. ^ Ticket 7702, VirtualBox
  133. ^ "Statement by sr. software engineer at Oracle", Forum, VirtualBox
  134. ^ "Testing secureboot with KVM". FedoraProject. Retrieved 28 February 2014.
  135. ^ "What's New in Hyper-V for Windows Server 2012 R2". MicrosoftTechNet. Retrieved 24 June 2013.
  136. ^ "Shielded VMs". Retrieved 16 February 2019.
  137. ^ "TianoCore on SourceForge: EDK2 Application Development Kit (EADK)". Intel. Retrieved 25 September 2013.
  138. ^ "Tianocore: UDK". GitHub.
  139. ^ "Interview: Ronald G Minnich". Fosdem. 6 February 2007. Retrieved 14 September 2010.
  140. ^ Doctorow, Cory (27 December 2011), The Coming War on General Purpose Computation, retrieved 25 September 2013
  141. ^ "coreboot (aka LinuxBIOS): The Free/Open-Source x86 Firmware". YouTube. 31 October 2008. Retrieved 14 September 2010.
  142. ^ "Welcome", TianoCore, SourceForge, archived from the original on 23 April 2012
  143. ^ a b "Is Microsoft Blocking Linux Booting on ARM Hardware?". Computerworld UK. Retrieved 6 March 2012.
  144. ^ "Windows 10 to make the Secure Boot alt-OS lock out a reality". Ars Technica. 20 March 2015. Retrieved 21 March 2015.
  145. ^ "Free Software Foundation recommendations for free operating system distributions considering Secure Boot — Free Software Foundation — working together for free software". Free Software Foundation. Retrieved 18 March 2020.
  146. ^ "Shimming your way to Linux on Windows 8 PCs". ZDNet. Retrieved 26 February 2013.
  147. ^ a b "Ubuntu details its UEFI Secure Boot plans". Linux Weekly News. Retrieved 11 September 2012.
  148. ^ a b "No Microsoft certificate support in Linux kernel says Torvalds". The H. Retrieved 26 February 2013.
  149. ^ "Linus Torvalds: I will not change Linux to "deep-throat Microsoft"". Ars Technica. 26 February 2013. Retrieved 26 February 2013.
  150. ^ "Exclusive: Open software group files complaint against Microsoft to EU". Reuters. 26 March 2013. Retrieved 26 March 2013.
  151. ^ "Researchers demo exploits that bypass Windows 8 Secure Boot". IT World. Retrieved 5 August 2013.
  152. ^ MENDELSOHN, Tom (12 August 2016). "Secure Boot snafu: Microsoft leaks backdoor key, firmware flung wide open [Updated]". Ars Technica. Retrieved 12 August 2016.
  153. ^ "HowTos/UEFI - CentOS Wiki". wiki.centos.org. Retrieved 10 November 2020.
  154. ^ "SecureBoot - Debian Wiki". wiki.debian.org. Retrieved 10 November 2020.
  155. ^ "SUSE Linux Enterprise Server 15 SP1: Chapter 13. UEFI (Unified Extensible Firmware Interface) (Administration Guide)". documentation.suse.com. Retrieved 10 November 2020.
  156. ^ a b "Linux on Windows 8 PCs: Some progress, but still a nuisance". ZDNet. Retrieved 26 February 2013.
  157. ^ "Lenovo UEFI Only Wants To Boot Windows, RHEL". Phoronix. Retrieved 26 February 2013.
  158. ^ "Linux acquitted in Samsung laptop UEFI deaths". Bit-tech. Retrieved 26 February 2013.
  159. ^ "Booting Linux using UEFI can brick Samsung laptops". The H. Retrieved 26 February 2013.

추가 정보

외부 링크