벤치리뷰·뉴스·정보/고전 스페셜 정보

[고전 2004.09.13] 32bit 시스템의 EFI 화는 2006년

tware 2005. 12. 9. 06:00

 

 

IDF 회장 보고서
회장 : Moscone Center South (미국 캘리포니아 주 샌프란시스코)
2004년 9월 7일 ~ 9일 (현지 시간)


BIOS에서 EFI로

 

데모 된 IA-32 용 EFI

 

(Extensible Firmware Interface EFI)는 BIOS를 대체​​하는 새로운 PC 시스템 펌웨어이다. 이미 Itanium 기반의 IA-64 시스템에서 EFI가 표준 펌웨어로 있지만, IA-32를 쓰는 PC (AT 호환 시스템)는 여전히 BIOS가 탑재되어 있다.

 BIOS는 IBM PC가 등장 할 때 시스템 시작과 기본적인 입출력 등을 DOS 등에 대해 제공하기 위해 만들어진 것으로, 이제는 마지막 레거시 기능이기도 하다.

 EFI는 이미 IA-32 용으로 정의되고 사용 가능한 상태가 되었다. 그러나 현재 대부분의 OS는 BIOS 부팅을 전제로 만들어져 있어, 지금 바로 EFI를 탑재해도 아무런 장점이 없는 상태이다. Microsoft의 Longhorn (롱혼 = 비스타 서버)은 EFI로 부팅을 지원하고 있으며, Longhorn 등장 이후는 EFI 탑재 혜택이 나온다. 즉 2006 ~ 2007년에는 EFI를 탑재한 시스템이 보급되기 시작할 것으로 예상 가능하다. (클라이언트 OS인 비스타에서는 64비트 SP1 부터 EFI를 지원 합니다. 원래 개발버전에는 포함되었다가 제거후 SP1에서 추가.)

여기에서는 IDF 세션의 내용 등으로 EFI 및 그 이행 일정 등에 대해 살펴 보도록 하자.

 


Intel의 EFI 이행 스케줄

 

 

IDF 세션에 표시된 EFI 이행 일정.

2005년에 이행이 시작되어 2006년에 등장하는 칩셋에서 EFI를 완벽하게 지원

 

 EFI로의 전환은 2세대 제품을 통해 진행될 예정. 그러나 EFI로 이행하더라도 이에 대응하는 OS가 없으면 무의미하다. Microsoft의 OS는 Longhorn이 EFI를 지원하기 때문에 이를 대상으로 계획이 진행되고 있다.

 이번 세션에서는 EFI로의 전환 일정도 나타 났지만 이 일정은 봄의 IDF에서 전혀 변하지 않았다.

 이 계획에 따르면 구체적인 이행은 내년부터 시작된다. Intel 칩셋과 메인 보드는 2005년 출하부터 EFI 지원이 시작되어, 다음 세대의 제품이 되는 2006년의 칩셋 메인 보드는 완전히 EFI 대응된다. 이제 2006년 Longhorn이 등장하면 EFI로 부팅 가능한 것이다.

 칩셋이 EFI 대응에 이행하기 위해 타사의 마더 보드 등도 비슷한 일정이 될 예정이지만, EFI 혜택이 나오는 것은 Longhorn 이후이며, Microsoft의 사정으로 시작이 지연 될 수도 있다.

 모바일은 2005년부터 Intel이 제공하는 레퍼런스 디자인 보드가 EFI 대응된다. 즉, 2005년에는 노트북 PC도 EFI 대응 준비가 될 것이다.

 

EFI 구성

 EFI는 BIOS의 문제점을 극복하기 위해 개발된 것으로, Itanium, IA-32 및 PXA (XScale)과 모든 Intel CPU의 펌웨어가 되는 것으로 예정되어 있다.

 원래 BIOS는 시스템 초기화 및 진단, IPL 기능과 기본 입출력 루틴으로 구성되어 있었다. 그러나 PC의 기능 확장과 함께 BIOS도 확장되어 왔다. 그러나 BIOS 자체는 ROM에 완결된 프로그램으로 만들어져 있기 때문에 용량면에서 확장이 곤란하거나 기능 추가를 위해 BIOS 전체를 다시 작성해야 하는 등의 문제가 있다.

 예를 들어, 레거시인 PS / 2 인터페이스를 폐지하려면 USB 키보드 지원을 BIOS 내에서 행할 필요가 있고, 그러려면 USB 관련 기능을 BIOS 내부로 들여올 필요가 있었다.

 게다가 BIOS는 리얼 모드에서 작동하고 있어,사용 메모리 위치나 크기에 제한이 있다. 또 하나, BIOS는 DOS 등의 리얼 모드 프로그램에서 호출되는 것을 전제로 하고 있으며, 그 호환성을 위해 엔트리 포인트 수준에서의 호환성을 유지하지 않으면 안된다. 사실, 엔트리 포인트에서 스택의 나머지 사이즈까지를 보장하기 위해 그 내부는 매우 복잡하게 되어있다. (리얼모드 링크 위키피디아)

 즉, BIOS는 증축을 거듭한 온천 여관과 같은 복잡한 구조로 되어 있으며, 확장성 등에 대해서도 한계가 오고 있다. 이를 해결하기 위해 만들어진 것이 EFI인 것이다.

 EFI는 펌웨어에 장치 드라이버용 기능 확장을 갖고, C와 같은 고급 언어로 소프트웨어 개발을 가능하게 하기 위해 개발되었다. 또 텍스트 수준의 쉬운 사용자 인터페이스를 가지고 OS를 부팅하지 않고도 간단한 처리가 가능한 모니터 등의 이용을 가능하게 한다.

 또한 EFI는 LaGrande (TXT)등과도 관계된다. LaGrande로 시스템을 보호하려는 경우, OS 부팅 전에 시스템 내부의 정보를 읽기 시작하면 모듈을 넣어 보내거나, DOS와 같은 보안 기능이 없는 OS로 부팅된 정보를 판독되어 버릴 우려가 있다. 이러한 사태를 방지하기 위해 EFI는 자신이 시작할 때 보안 체크를 한다.

 또한 EFI는 OS 부팅 후에도 OS 측에 대해 Runtime 지원을 제공한다. 따라서 OS 측의 하드웨어 의존도를 낮출 수 있게 된다. 예를 들어, 최대 절전 모드의 지원과 실시간 클럭, NVRAM (시스템 설정을 위한 비 휘발성 메모리) 접근 등의 기능이 있다. 그러나 EFI는 완전한 런타임 지원을 하는 것이 아니라 성능이 중요한 경우에는 OS는 하드웨어 액세스를 위한 드라이버를 가질 필요가 있다.

 EFI 구조에서 중심이 되는 장치 드라이버와 실행 환경 (DXE : Driver eXecution Environment)에서 그 아래에 하드웨어 액세스를 제공하는 APs (Architectual Protocols)가 있다. 또한 BIOS와의 호환성을 제공하는 CSM (Compatibility Support Module)도 제공된 DXE에서 동작한다.

 

 

[EFI 구조] EFI는 장치 드라이버를 사용하는 펌웨어로 OS 부팅 및 런타임

기능을 제공한다. 또한 HDD의 파티션 (ESP : EFI System Partition)을

다루는 것도 가능하다. OS 로더에 관해서는 Boot Service를

실행중인 OS에 관해서는 Runtime Service를 EFI API를 통해 제공한다.

 

 

[DXE] EFI의 중심이 되는 것은 DXE (Driver eXecution Environment)라 부르는

부분으로 OS 로더에 대해 하드웨어 액세스 기능 등을 제공한다

 

 

 

[APs] DXE는 낮은 수준의 하드웨어 액세스를 하는 Architecural Protocol 모듈 (APs)

위에 있어, 장치 드라이버 구현을 쉽게 할 수 있도록 한다.

 

 

 

[EFI 부팅 시퀀스] 최초 PEI 보안 검사가 행해지고, 그 PEI에서 시스템을 초기화,

DXE가 시작된다. 이후 부트 매니저가 움직이고,

사용자 지정 등에 의해 OS 로더가 선택된 OS 시동이 이뤄진다.

 

초기 시동시에는 EFI는 보안 검사 후 PEI (Pre EFI Initialization)라는 상태에 들어간다. 여기서 CPU와 칩셋 마더 보드의 각종 하드웨어 초기화 등을 행한다. 각 하드웨어용 초기화 루틴 등은 PEI 모듈 (PEIM)이라고 하며, 마지막으로 DXE을 시동하는 PEI 모듈을 호출해 EFI가 작동을 시작한다.

 EFI는 EFI byte code Engine (EBC Engine)이라 부르는 가상 머신 인터프리터를 가지고있다. 이것은 IA-32 / 64, PXA에서 하드웨어를 공통화 할 수 있도록 확장 보드의 ROM에 저장하는 코드를 기종 의존하지 않기 위해 부팅 코드 (Boot Script 라고도 함) 등의 보안을 보장하기 위함이다. 인터프리터 경우 하드웨어 액세스 등을 실행하기 전에 확인하는 것이 가능하고, 오작동을 막는 것이 가능하다. 다만 드라이버에 관해서는 EBC에 의한 기술뿐만 아니라 네이티브 코드로 작성도 가능하게 되어 있다. 전자는 호환성을 우선하는 경우, 후자는 처리 효율이나 속도를 우선하는 경우에 이용한다. 모두 프로그래밍은 C로 행하고, EBC의 경우에는 전용 컴파일러를 사용한다.

 또 EFI는 외부 저장을 처리 할 수​​ 있으며, 시동 디스크에 EFI 용 파티션 (ESP : EFI System Partition)을 가질 수 있다. 디스크 포맷으로는 FAT32가 채용되고 있다.

 비디오 카드등은 마더보드와는 별도인(내장이 아닌) 것이 많고, 또 사용자가 이를 교체할 가능성도 있다. 기타 장치에 대해서도 추가 또는 제거가 이루어질 가능성이 있고 이러한 시스템의 변경에 대해 확장 보드의 ROM뿐만 아니라 외부 저장 장치에 장치 드라이버를 저장하는 것으로 대응이 가능하게 되는 것이다.

 또한 OS를 메모리에 로드하고 시작하는 OS 로더 (소위 부트 레코드에 기록되어 있는 IPL 프로그램)에 대해서도 EFI 파티션에 저장하는 것이 가능하다.

 여기에 더해 EFI는 적절한 글꼴을 제공함으로써, UTF-16에 의한 2바이트 코드 문자의 출력도 가능하게 된다. 이에 따라 로드중 이어도 지역화 된 언어로 오류 표시 등이 가능하게 된다. 또한 EFI 내부에서 HTML 렌더링 등의 기능을 작동시키는 것도 불가능하지 않다. EFI의 구현을 제공하는 insyde는 이번 IDF에서 HTML을 사용한 부트 매니저 사용자 인터페이스를 제안했다. HTML을 사용하여 그래픽 화면 표시가 쉽게 행할 수 있게되는 것이다. (한글 표현 같은건 물론 바이오스에서도 가능하며, 바이오스 설정을 마우스로 하는 것도 바이오스로 가능 합니다. 한글 바이오스는 예전 피닉스 바이오스에서 이미 지원했으며(일부 보드나 대기업 완제품의 경우) 마우스 처리는 AMI 바이오스에서 이미 지원 했었죠. EFI의 경우는 이것을 더 뛰어넘는 것도 가능하고, 기본적으로 가능하다는 거죠. EFI 안에서 웹브라우저를 구현 할수도 있고, EFI 내에서 간단한 게임을 구동할 수도 있고,(이런게 되려면 EFI내에 각 장치 드라이버가 있어야 겠죠))

 


32bit OS와 EFI

 현재 32bit OS는, 리얼 모드인 BIOS로 부터 시동에는 2단계의 OS 로더를 사용한다. 1 단계 로더는 리얼 모드 프로그램으로 이것이 32bit 모드로 전환 할 준비를 하고, 2단계 로더를 시작한다. 2단계 로더는 32bit 모드로 동작하고 이것이 실제 커널 로드 및 실행 등을 행한다. IA-32 용 EFI는 32bit 모드로 동작하는 부트 로더를 2단계로 나눌 필요가 없어 효율적인 실행이 가능하게 된다.
 

Microsoft는 Longhorn에서 EFI를 지원한다. 다만 기존의 BIOS에서 시동도 지원하기 때문에 시스템에 EFI가 구현되는 것은 필수 조건은 아니다. 내년에 등장하는 β1 판에서 EFI 지원이 구현 될 예정이라고 한다.

 Linux는 이미 Itanium 지원이 이뤄지고 있기 때문에, EFI에 대응하는 부트 로더인 ELILO (EFI LInux LOader)가 개발되어 있다. ELILO는 EFI 장치 드라이버를 가지고 있기 때문에 장치 대응이 유연하게 된다. 예를 들어, USB 메모리로 부팅도 가능해 진다고 한다.

 Longhorn이 등장하지 않은 현재, IA-32 시스템에서 EFI는 아직 쓸모없는 것이지만, CSM (Compatibility Support Module 호환성 지원 모듈)에 의해 현재 비 EFI 대응 OS를 실행하는 것은 가능하다. 다만 여기에는 조건이 있고, ROM을 가진 확장 보드가 (대표적으로 레이드나 카드 같은 것(확장 SATA 카드), VGA 카드, 부팅용 롬을 가진 랜등.) EFI를 대응하는지, BIOS를 대응하는지 여부의 조합으로 시동 가능이 달라진다. 자료에 따르면, 비디오, 부팅 장치, 기타 확장 보드의 ROM이 모두 BIOS 용 (즉 비 EFI 대응)의 경우와 비디오 카드 ROM 만 EFI 대응인 경우에만 비 EFI를 지원하는 OS의 시작이 가능하다. 반대로 OS가 EFI 대응인 경우에는, EFI 대응 BIOS 대응의 확장 보드 ROM 혼합해도 시동은 가능하다.

 EFI 마더 보드에서 기존 OS의 사용에는 이러한 제한도 있기 때문에, EFI로의 전환은 Longhorn 등장 후가 될 것이다 (물론 Linux의 경우에는 이미 이전이 가능하지만). 그런 의미에서 EFI의 보급은 Longhorn의 등장시기에 따른다는 것이다.

 

2004년 9월 13일 기사 입니다.

 

 

[고전 2003.09.19] EFI 프레임 워크의 도입으로 변하는 BIOS

 

 

[고전 2001.08.29] 모바일 Northwood, Xeon MP의 실물을 공개,McKinley의 상세 사양도 공개

 

 

MSI 에릭 장, Gigabyte와 ASUS에 정면으로 대응

 

 

[분석정보] iAMT, Montecito등 신기술이 공개된 IDF

 

 

[분석정보] 모든 문제는 Longhorn으로 이어진다

 

 

[고전 1997.10.31] Intel과 DEC 전격 제휴 MPU의 판도가 바뀐다