사용자:Igtuyfgfhj/연습장2

틀:Use dmy dates

통합 확장 펌웨어 인터페이스
상태발행됨
시작 연도2006[a]
마지막 버전2.10
2022년 8월 29일
조직UEFI Forum
관련 표준ACPI, UEFI Platform Initialization
분야Firmware
약어UEFI
웹사이트uefi.org
레노버 ThinkPad T470의 UEFI 부트 순서 선택 메뉴
UEFI 구현은 일반적으로 NOR 기반 EEPROM에 저장되며, 이는 메인보드에 위치합니다. 다양한 I/O 프로토콜을 사용할 수 있지만 SPI가 가장 일반적입니다.

통합 확장 펌웨어 인터페이스 (UEFI, /ˈjuːɪf/ 또는 약어로 사용됨)[b]사양으로, 아키텍처펌웨어 플랫폼과 그 상호 작용을 정의합니다. 운영 체제와의 상호작용을 위한 인터페이스입니다. 사양을 구현한 펌웨어의 예로는 AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O가 있습니다. UEFI는 BIOS를 대체하며, 이는 모든 IBM PC compatible 컴퓨터의 boot ROM에 존재했습니다.[1][2] 그러나 CSM 부팅을 사용하여 BIOS와의 하위 호환성을 제공할 수 있습니다. Intel은 원래 확장 펌웨어 인터페이스 (EFI) 사양을 개발했습니다. 일부 EFI의 관행과 데이터 형식은 Microsoft Windows의 것과 유사합니다.[3][4] 2005년, UEFI는 EFI 1.10(최종 EFI 릴리스)을 중단했습니다.

UEFI는 플랫폼 및 프로그래밍 언어에 독립적이지만 참조 구현 TianoCore EDKII는 C를 사용합니다.

전신 BIOS는 IBM이 독점 소프트웨어로서 처음 개발한 de facto 표준이었던 반면, UEFI는 산업 컨소시엄이 유지 관리하는 오픈 표준입니다.

역사

편집

EFI의 원래 동기는 1990년대 중반 인텔-HP Itanium 시스템의 초기 개발 동안 나왔습니다. BIOS의 제한 사항(예: 16비트 real mode, 1 MB 주소 지정 가능한 메모리 공간,[5] assembly language 프로그래밍 및 PC AT 하드웨어)은 Itanium이 목표로 하는 더 큰 서버 플랫폼에는 너무 제한적이었습니다.[6] 이러한 문제를 해결하기 위한 노력은 1998년에 시작되었으며 처음에는 인텔 부트 이니셔티브로 불렸습니다.[7] 나중에 확장 펌웨어 인터페이스 (EFI)로 이름이 변경되었습니다.[8][9]

최초의 오픈 소스 UEFI 구현인 Tiano는 2004년 Intel에서 출시되었습니다. Tiano는 이후 EDK[10] 및 EDK2[11]로 대체되었으며 현재 TianoCore 커뮤니티에서 유지 관리되고 있습니다.[12]

2005년 7월, Intel은 EFI 사양 버전 1.10에서 EFI 사양 개발을 중단하고 이를 Unified EFI Forum에 기부하여 통합 확장 펌웨어 인터페이스 (UEFI) 사양을 개발했습니다. 원래의 EFI 사양은 Intel 소유로 남아 있으며 EFI 기반 제품에 대한 라이센스를 독점적으로 제공하지만 U

EFI 사양은 UEFI Forum이 소유하고 있습니다.[6][13]

UEFI 사양 버전 2.0은 2006년 1월 31일에 출시되었습니다. 여기에는 암호화 및 보안이 추가되었습니다.

UEFI 사양 버전 2.1은 2007년 1월 7일에 출시되었습니다. 여기에는 네트워크 인증 및 사용자 인터페이스 아키텍처('UEFI의 Human Interface Infrastructure')가 추가되었습니다.

2018년 10월, Arm은 Arm ServerReady를 발표했습니다. 이는 Arm 기반 서버에서 범용 운영 체제 및 하이퍼바이저를 지원하는 인증 프로그램입니다. 이 프로그램은 시스템 펌웨어가 Server Base Boot Requirements (SBBR)를 준수해야 합니다. SBBR은 UEFI, ACPISMBIOS 준수를 요구합니다. 2020년 10월, Arm은 프로그램을 엣지사물 인터넷(IoT) 시장으로 확장할 계획을 발표했습니다. 새 프로그램 이름은 Arm SystemReady입니다. Arm SystemReady는 Base Boot Requirements (BBR) 사양을 정의했으며, 현재 세 가지 레시피를 제공합니다. 이 중 두 가지는 UEFI와 관련이 있습니다: 1) SBBR: 이는 Windows, Red Hat Enterprise Linux 및 VMware ESXi와 같은 엔터프라이즈 수준 운영 환경에 적합한 UEFI, ACPI 및 SMBIOS 준수를 요구합니다. 2) EBBR: 이는 Yocto와 같은 임베디드 환경에 적합한 UEFI 인터페이스 집합에 대한 준수를 요구합니다. 많은 Linux 및 BSD 배포판이 두 가지 레시피를 모두 지원할 수 있습니다.

2018년 12월, Microsoft는 Project Mu를 발표했습니다. 이는 Microsoft SurfaceHyper-V 제품에 사용되는 TianoCore EDK2의 포크입니다. 이 프로젝트는 Firmware as a Service 아이디어를 촉진합니다.[14]

가장 최신 UEFI 사양 버전 2.10은 2022년 8월에 발표되었습니다.[15]

장점

편집

EFI 사양에서 정의된 인터페이스는 플랫폼 정보를 포함하는 데이터 테이블과 OS 로더 및 OS에서 사용할 수 있는 부팅 및 런타임 서비스를 포함합니다. UEFI 펌웨어는 BIOS에 비해 몇 가지 기술적 장점을 제공합니다:[16]

  • GPT 파티션을 사용하여 큰 파티션(2 TB 이상)을 포함하는 디스크에서 부팅할 수 있습니다.[17][c][18]
  • 네트워크 기능, GUI, 다국어를 포함한 유연한 사전 OS 환경
  • 32비트 (예: IA-32, ARM32) 또는 64비트 (예: x64, AArch64) 사전 OS 환경
  • C 언어 프로그래밍
  • Python 인터프리터를 사용하는 UEFI 셸을 사용한 파이썬 프로그래밍
  • 모듈식 설계
  • 하위 및 상위 호환성

호환성

편집

프로세서 호환성

편집

버전 2.5 기준, Itanium, x86, x86-64, ARM (AArch32) 및 ARM64 (AArch64)에 대한 프로세서 바인딩이 존재합니다.[19] 리틀 엔디안 프로세서만 지원할 수 있습니다.[20] 비공식 UEFI 지원은 TianoCore를 OPAL,[21] 오픈 파워 추상화 계층에서 POWERPC64용으로 실행되도록 구현하는 중입니다.[22] 유사한 프로젝트는 MIPS[23]RISC-V용으로 존재합니다.[24] UEFI 2.7부터는 32, 64 및 128비트 모드를 위한 RISC-V 프로세서 바인딩이 공식적으로 확립되었습니다.[25]

표준 PC BIOS는 16비트 프로세서 모드 및 1 MB의 주소 지정 가능한 메모리 공간으로 제한되며, 이는 IBM 5150이 16비트 Intel 8088 프로세서를 사용한 설계에서 비롯되었습니다.[6][26] 비교적으로, UEFI 환경의 프로세서 모드는 32비트(IA-32, AArch32) 또는 64비트(x86-64, Itanium 및 AArch64)일 수 있습니다.[6][27] 64비트 UEFI 펌웨어 구현은 롱 모드를 지원하여 프리부트 환경에서 애플리케이션이 64비트 주소 지정 기능을 사용하여 기계의 모든 메모리에 직접 액세스할 수 있습니다.[28]

UEFI는 펌웨어 및 운영 체제 로더(또는 커널)가 크기 일치를 요구합니다. 즉, 64비트 UEFI 펌웨어 구현은 64비트 운영 체제(OS) 부트 로더나 커널만 로드할 수 있으며(CSM 기반 레거시 부팅을 사용하지 않는 한) 32비트에도 동일하게 적용됩니다. 시스템이 "부팅 서비스"에서 "런타임 서비스"로 전환되면 운영 체제 커널이 인계받습니다. 이 시점에서 커널은 원하면 프로세서 모드를 변경할 수 있지만, 이는 런타임 서비스 사용을 방해합니다(커널이 다시 전환하지 않는 한).[29]:sections 2.3.2 and 2.3.4 Linux 커널 버전 3.15부터는 UEFI 부트 로더의 지원을 받아 64비트 커널을 32비트 UEFI 펌웨어 구현에서 부팅할 수 있습니다.[30] UEFI handover protocol은 UEFI 초기화 코드를 커널과 UEFI 부트 로더 사이에서 중복 제거하여 초기화를 Linux 커널의 UEFI 부트 스텁에만 수행하도록 남깁니다.[31][32]

디스크 장치 호환성

편집

표준 PC 디스크 파티션 방식인 master boot record (MBR) 외에도 UEFI는 GUID Partition Table (GPT) 파티션 방식을 사용합니다. 이 방식은 MBR의 많은 제한을 벗어날 수 있습니다. 특히, MBR은 디스크의 파티션 수 및 크기(디스크당 최대 4개의 주 파티션, 디스크당 최대 2 TB (2 × 240 bytes))에 제한이 있습니다.[33] 보다 구체적으로, GPT는 8 ZiB (8 × 270 bytes)의 최대 디스크 및 파티션 크기를 허용합니다.[34][35]

리눅스

편집

Linux에서 GPT 지원은 커널 구성 중 CONFIG_EFI_PARTITION (EFI GUID Partition Support) 옵션을 켬으로써 가능합니다.[36] 이 옵션을 통해 Linux는 시스템 펌웨어가 제어를 Linux에 넘긴 후 GPT 디스크를 인식하고 사용할 수 있습니다.

역호환을 위해, Linux는 BIOS 기반 시스템에서 데이터 저장 및 부팅을 위해 GPT 디스크를 사용할 수 있습니다. GRUB 2와 Linux 모두 GPT를 인식할 수 있기 때문입니다. 이러한 설정은 일반적으로 BIOS-GPT라고 합니다.[37]틀:Unreliable source? GPT는 보호 MBR을 포함하고 있어, BIOS 기반 컴퓨터는 보호 MBR의 부트스트랩 코드 영역에 저장된 GPT 인식 부트 로더를 사용하여 GPT 디스크에서 부팅할 수 있습니다.[35] GRUB의 경우, 이러한 구성은 GPT 파티션 디스크에서 주 헤더

파티션 엔트리 배열이 포함된 영역을 피하여 파티션되지 않은 공간에 두 번째 스테이지 부트스트랩 코드를 저장합니다.[37] Linux는 parted와 같은 유틸리티를 사용하여 GPT 디스크를 GPT 파티션 방식으로 포맷할 수 있습니다.[38]

윈도우

편집

Windows Server 2003 SP1, Windows XP x64 Edition, Windows Server 2008 및 이후의 모든 Microsoft 운영 체제는 데이터 디스크에 GPT를 사용할 수 있습니다.[39] 32비트 버전의 Windows XP 및 Windows Server 2003은 MBR만 지원합니다. Windows Vista 및 이후 버전의 Windows는 UEFI 펌웨어에서 부팅할 수 있지만, Windows를 설치하기 전에 시스템의 UEFI 부팅 모드가 BIOS 호환 모드로 설정되어 있는지 확인해야 합니다. Windows 7은 x86-64의 UEFI 부팅을 지원하지만, 이는 오직 GPT 디스크에서만 가능합니다.[40]

Windows PE 버전 2.0 및 이후 버전은 EFI system partition(ESP)에 대한 표준 지원을 제공합니다. Windows 설치 디스크의 경우, UEFI 모드에서 부팅하도록 설정된 USB 플래시 드라이브는 파일 시스템으로 FAT32를 사용해야 합니다.[41]

애플

편집

Apple Inc.MacBook ProMacBook Air를 포함한 Intel 기반 맥킨토시 컴퓨터에서 2006년부터 EFI를 사용해 왔습니다.[42] Intel 기반 Mac은 32-bit 및 64비트 x86 EFI 1.10 및 UEFI 2.0/2.1 사양의 일부 기능을 구현합니다. EFI 시스템 파티션(ESP)는 운영 체제가 Mac OS X의 버전 10.4 Tiger부터 기본적으로 사용되지 않습니다. Mac OS는 ESP에서 부팅할 수 없습니다. 이는 macOS가 기본적으로 BIOS 부트스트랩을 사용하는 부트 캠프에서 Windows XPWindows Vista설치하고 부팅하는 방법에서 유래한 것입니다.[43]

참조

편집
  1. Kinney, Michael (2000년 9월 1일). “Solving BIOS Boot Issues with EFI” (PDF). 47–50쪽. 2007년 1월 23일에 원본 문서 (PDF)에서 보존된 문서. 2010년 9월 14일에 확인함. 
  2. 인용 오류: <ref> 태그가 잘못되었습니다; ElReg1라는 이름을 가진 주석에 텍스트가 없습니다
  3. IBM PC 실시간 시계는 UT로 실행되어야 합니다. Cl.cam.ac.uk. 2013년 10월 30일에 확인됨.
  4. Garrett, Matthew (2012년 1월 19일). “EFI and Linux: The Future Is Here, and It's Awful”. 《linux.conf.au 2012》. 2021년 11월 13일에 원본 문서에서 보존된 문서. 2012년 4월 2일에 확인함. 
  5. “Memory Map (x86) - OSDev Wiki”. 《wiki.osdev.org》. 2020년 12월 11일에 확인함. 
  6. “Emulex UEFI Implementation Delivers Industry-leading Features for IBM Systems” (PDF). Emulex. 2010년 9월 14일에 확인함. 
  7. 《Extensible Firmware Interface (EFI) and Unified EFI (UEFI)》, Intel, 2010년 1월 5일에 원본 문서에서 보존된 문서 
  8. Wei, Dong (2006), 〈서문〉, 《Beyond BIOS》, Intel Press, ISBN 978-0-9743649-0-2 
  9. 〈1.10 Specification overview〉, 《Extensible Firmware Interface》, Intel 
  10. “GitHub - tianocore/Edk: Git mirror of EDK.”. 《GitHub》. 2019년 3월 19일. 
  11. “GitHub - tianocore/Tianocore.github.io: Tianocore website.”. 《GitHub》. 2019년 8월 8일. 
  12. “What is TianoCore?”. 
  13. 《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 
  14. “Microsoft announces Project Mu, an open-source release of the UEFI core”. 2018년 12월 20일. 
  15. “Unified Extensible Firmware Interface (UEFI) Specification Version 2.10” (PDF). 《www.uefi.org》. 2022년 8월. 2023년 1월 16일에 확인함. 
  16. “UEFI와 Windows”. Microsoft. 2009년 9월 15일. 2010년 9월 14일에 확인함. 
  17. “설치”. 《3.4 BIOS 설치》. GNU GRUB. 2013년 9월 25일에 확인함. 
  18. “Non-boot disks can use a GPT partition table even with no UEFI bios”. 
  19. UEFI 사양 2.4, 섹션 2.3
  20. UEFI 사양 2.3.1, 섹션 1.8.1.
  21. “GitHub - andreiw/ppc64le-edk2: TianoCore UEFI for OPAL/PowerNV (PPC64/PowerPC64 Little-Endian)”. 《GitHub》. 2021년 5월 3일. 
  22. “Tianocore for OpenPOWER”. 《Firmware Security》. 2015년 10월 12일. 
  23. kontais (2015년 9월 3일). “EFI-MIPS”. 《SourceForge》. 
  24. “lowRISC · lowRISC”. 
  25. “Unified Extensible Firmware Interface Specification, Version 2.7” (PDF). 2017년 5월. 
  26. Hardwidge, Ben (2010년 6월 1일). [http://www.bit-tech.net/hardware /storage/2010/06/01/are-we-ready-for-3tb-hard-disks/2 “LBA 설명 — 3TB 문제 해결?”] |url= 값 확인 필요 (도움말). bit-tech. 2010년 6월 18일에 확인함.  |url=에 라인 피드 문자가 있음(위치 33) (도움말)
  27. Richardson, Brian (2010년 5월 10일). “Ask a BIOS Guy: "Why UEFI". Intel Architecture Blog. 2010년 10월 9일에 원본 문서에서 보존된 문서. 2010년 6월 18일에 확인함. 
  28. Simpson, Gary. “UEFI Momentum — The AMD perspective”. AMD. 2014년 1월 4일에 원본 문서 (PPTX)에서 보존된 문서. 2014년 9월 20일에 확인함. 
  29. 인용 오류: <ref> 태그가 잘못되었습니다; uefi-spec-24라는 이름을 가진 주석에 텍스트가 없습니다
  30. “Linux kernel 3.15, Section 1.3. EFI 64-bit kernels can be booted from 32-bit firmware”. 《kernelnewbies.org》. 2014년 6월 8일. 2014년 6월 15일에 확인함. 
  31. “x86, efi: Handover Protocol”. LWN.net. 2012년 7월 19일. 2014년 6월 15일에 확인함. 
  32. “Linux kernel documentation: Documentation/efi-stub.txt”. kernel.org. 2014년 2월 1일. 2014년 6월 15일에 확인함. 
  33. “FAQ: 드라이브 파티션 제한” (PDF). UEFI Forum. 2019년 12월 5일에 확인함. 
  34. “FAQ: 드라이브 파티션 제한” (PDF). UEFI Forum. 2013년 3월 22일에 원본 문서 (PDF)에서 보존된 문서. 2010년 6월 9일에 확인함. 
  35. Smith, Roderick W. (2012년 7월 3일). “Make the most of large drives with GPT and Linux”. IBM. 2013년 9월 25일에 확인함. 
  36. “block/partitions/Kconfig (3.11.1)”. 《CONFIG_EFI_PARTITION (line #247)》. kernel.org. 2013년 9월 25일에 확인함. 
  37. “GRUB”. 《BIOS systems》. Arch Linux. 2013년 9월 25일에 확인함. 
  38. “명령어: mklabel”. 《parted》. GNU Project. 2013년 9월 25일에 확인함. 
  39. “GUID 파티션 테이블 디스크에서 Windows를 시작할 수 없습니다”. Microsoft. 2007년 11월 12일. 2010년 9월 14일에 확인함. 
  40. “EFI 기반 컴퓨터에 Windows 설치”. 《Windows 가이드》. Microsoft. 2019년 12월 12일. 2020년 12월 11일에 확인함. 
  41. “UEFI 모드 또는 레거시 BIOS 모드로 부팅”. 《Windows 가이드》. Microsoft. 2019년 12월 12일. 2020년 12월 11일에 확인함. 
  42. Hardy, Ian (2006년 1월 10일). “Apple introduces first Intel Mac”. BBC News. 2014년 9월 20일에 확인함. 
  43. “Boot Camp: 시스템 요구 사항, 버전, Mac 모델, 및 언어”. Apple Inc. 2014년 7월 23일. 2014년 9월 20일에 확인함. 
  1. 1998년 인텔 부트 이니셔티브로 시작하여 나중에 확장 펌웨어 인터페이스(EFI)로 변경되었고, 2005년에 중단되고 UEFI로 대체되었습니다.
  2. 초기에는 EFI의 후속작으로 도입된 UEFI로 통일 EFI라고도 불렸습니다.
  3. 대형 디스크 지원 및 Advanced Configuration and Power Interface (ACPI) 및 System Management BIOS (SMBIOS)와 같은 기능은 이후 BIOS 기반 시스템에 구현되었습니다.

외부 링크

편집

틀:Computer configuration