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

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

tware 2005. 11. 9. 09:00

 

PC는 "레거시"라는 것이있다. 주로 PCI 버스가 등장하기 전, 대부분은 IBM의 PC / AT에서 유래된 오래된 기술과 사양이다. 본래 레거시라는 말은 유산이라는 의미이며 부정적인 이미지인 것은 아니다 (차의 이름에 사용되는 정도이다)하지만, PC 세계에서 유일하게 배제해야 할 오래된 것으로 쓰고 있다.

 기존의 배제는 플랫폼에 따라 정도가 다르지만, 가장 앞서 있다고 생각되는 공간 절약 데스크톱과 오래된 PC를 비교하면 이미 많은 레거시가 없어진 것을 알게된다. ISA 버스 직렬 및 병렬 포트, FD (컨트롤러), PIO 방식에 의한 디스크 액세스, PS / 2 키보드 및 마우스, 이들은 모두 최근 몇 년 사이에 배제 된 레거시이다.

 

(더 뛰어나고 현대적인 기술로 전부 바꾼 것이기도 하며, 또한 기존 IBM 주도로 만들어진 모든 것을 인텔이 또는 인텔이 몇 업체와 함께 만든 규격으로 전부 바꾼게 지금의 PC.  APM을 더욱 확장 개선한 ACPI, PCI , AGP, PCI-Ex, ATX 규격, USB, SATA, EFI, AC97, HD Audio 등, 인텔이 단순 CPU제조사가 아닌 플랫폼 기업이라고 해도 과언이 아니죠. 예전에 인텔이 보드및 케이스 규격에 특히 중요한 규격인 (파워도 포함이지만, 전원 공급 핀 규격도 다르지만, AT 파워는 기계식 온/오프 파워, ATX 파워는 전자식 온/오프 파워) ATX의 후속으로 BTX도 만들었는데 (더욱 쿨링에 효율적인 디자인) 결과적으로 망하긴 했지만, 왜 니들이 이걸 바꾸냐 라고 이제 새 컴퓨터 사면 케이스도 무조건 사야 되는 거냐? 하는 사람이 많았죠. ATX 자체가 인텔이 만든 규격 입니다. 기존 AT 규격에서 ATX로 넘어갈 때 뭐라고 한 사람은 없던거 같은데..... )


근대적 OS 에서는 유명무실한 "BIOS"


 반대로, 지금도 배제되지 않고 남아있는 레거시의 대표가 BIOS인 것이다. BIOS는 시스템 BIOS뿐만 아니라 VGA로 대표되는 확장 BIOS도 포함된다. 현재 OS는 동작 간에 BIOS를 반드시 필요로 하지 않는다 (BIOS에서가 아닌 자체 장치 드라이버를 통해 하드웨어에 액세스)이지만, 바로 그 OS를 시작하기 전에 단계에서 BIOS를 필요로 한다.

 즉 시스템의 전원을 켠 이후 자가진단 (POST : Power on Self Test) 및 장치 초기화, OS의 부트 스트랩이 지금도 BIOS에 의해 행해진다. 부팅 장치 (시스템 부팅에 사용되는 장치)는 기존의 시스템 BIOS와 호환성을 갖거나, 확장 ROM BIOS로 자체적으로 BIOS를 준비하거나, 어느 쪽이든 필수적이다. 이에 따라 PC / AT의 시대가 끝난 후에도 Plug and Play 등 BIOS에는 새로운 기능 추가가 계속됐고, 새로운 부트 장치 (USB, 네트워크 etc.)의 지원 등으로 지금도 손이 더해짐이 계속되고 있다.

 다만 BIOS에 대한 기능 확장의 문제는 그 기능을 현대적인 OS는 거의 이용하지 않는다는데 있다. 본래 BIOS는 Basic Input Output System의 약자이며, OS에 대해 하드웨어를 이용하는 기본적인 기능을 제공하는 펌웨어였다. 그리고 이것은 MS-DOS에 관해서는 진실이며, x86 프로세서의 인터럽트를 사용하여 BIOS의 기능이 이용되고 있었다 (Disk BIOS의 INT13h 호출 등). 반대로 말하면 BIOS는 MS-DOS와 같은 리얼모드용 OS를 위해 준비된 것, 16bit 환경을 위한 것이라는 말이다. (인텔 CPU는 그 이전에도 4004를 비롯해  몇몇 CPU가 있지만, 현대 PC의 조상이라고 할 수 있는 8086과 IBM XT에 채택된 8086의 저가판 8088을 위한 운영체제가 MS-DOS이며 당연히 리얼모드에서 동작 (보호모드가 아직 없던 시절). 80286에서 실제모드에 더해서 보호모드가 추가 (멀티 태스킹에 필요한 가상메모리, 작업상태 세그먼트 등). 80386에서 실제모드에서 보호모드 진입후 다시 실제모드로 복귀가 추가. 현대적인 운영체제는 보호모드로 전환 후 동작. 80286이 나왔어도, 기존의 프로그램을 돌려야 했고, 바이오스와 도스가 다 리얼모드에서 돌아가기 때문에, 당연히 286을 쓰던 386을 쓰던 기본적으로 리얼모드로 동작을 합니다. 바이오스와 운영체제의 한계를 따라간다고 봐야죠.

 

80286을 완벽하게 사용하려던 운영체제가 IBM의 OS/2. 당연히 8086이나 8088은 지원하지 않습니다. 2. 대 버전부터는 80386 이상만 지원. 도스로 부터 띄워야 했던 윈도우즈와 달리 OS/2는 선점형 멀티태스킹으로 시작한 훨씬 진보한 운영체제.  10개월 정도 먼저 출시된 OS/2 3.0과 윈도우 95만 비교해도 사실 상대가 안되죠. OS/2 4.0과 (2년 먼저 출시. 더 정확히 비교하려면 윈95 OSR 과 비교해야 하려나..) 윈98을 비교하면 더욱 상대가 안되구요. 가격도 윈도우즈 95의 절반도 안되는 가격이었고..  OS/2가 이렇게 좋은데도 망한 이유는  도스시대의 물려받은 소프트웨어의 호환성이나 속도 문제. OS/2 에서도 도스가 되는데, 리얼도스가 아니라는 것. 일반 소프트는 그래도 어떻게 되는데, 사운드가 지원되어야 하는 게임 같은게 문제고 (사블이 실제 있거나, 호환카드를 사블로 설치하면 소리는 잘 나오긴 하지만..), 리얼도스가 아니다 보니, 속도가 아무래도 좀 떨어졌죠. 괜히 MS가 윈95부터 윈XP까지 긴 시간을 도스에 기반해서 운영하다가 옮겨간게 아니죠. 충분히 윈도우 환경에 적응했고, 윈도우 소프트가 다량 있을 시기에 옮겨감. 

 

8086은  20bit 어드레싱으로 2의 20제곱 1M의 주소공간을 가지며, 각 주소는 1Byte 마다 주어짐. 즉 총 1MB의 실제 메모리를 다룰 수 있음. 반면 같은 16bit CPU인 80286은 24bit 어드레싱으로 총 16MB를 다룰 수 있음. 주소가 있어야 메모리(램) 어디에 있는 데이터를 가져와라 거기에 저장해라, 어디에 있는 데이터와 저기에 있는 데이터를 더해라 빼라, 그리고 값을 어디에 저장해라 이런 것을 할 수 있겠죠. 현실에서 전화번호, 주소 등이 있어야 연락을 하던가.. 물건을 보내고 받던가 할 수 있듯이요.)

 

 

 

https://youtu.be/WIQwBodYDdE

1992년 4월에 출시 된 32비트 운영체제 OS/2 2.0

 

 

현대 OS에 있어서 B​​IOS가 사정이 나쁜것은 리얼모드용으로 만들어진 BIOS는 멀티 태스킹 환경아래서 사용하도록 만들어지지 않은것, 반드시 1MB 이하의 메모리 공간 (16bit CPU 인 8086 주소 공간) 내에 배치해야 한다 등이다.

 BIOS 자신의 업데이트 때를 포함해 지금도 긴급 부팅시 MS-DOS를 필요로 하는 것도  있는데, 그때문에 BIOS를 준비해도 실제 OS가 시작되면 전혀 사용하지 않는 것이 쓸데없이 많다. 또한 모처럼 BIOS를 준비해도 확장 ROM BIOS의 경우 그것을 배치 가능한 주소 공간은 한정되어 있다.

 BIOS 사양 (MS-DOS 사양)에서는 BIOS는 640KB에서 1​​MB 사이에 위치해야 하는데,이 공간이 모두 사용 가능한 것은 아니다 (대부분 (다른장치의) 예약 완료). SCSI 호스트 어댑터 등을 이용하는 사용자라면 주소 공간의 부족으로 인해 확장 ROM BIOS를 로드 할 수 없다는 오류를 본 적이 있을지도 모른다. 시스템에 탑재되는 평균적인 메모리량이 256MB에서 512MB가 되고 있는 현재 640KB에서 1​​MB 사이의 불과 384KB의 공간을 가지고 싸우는 것은 그야말로 부자연스럽다.

 또한 최근 등장한 핫 플러그​​ 가능한 시리얼 버스로 대표되는 새로운 (PC / AT의 시대에는 없었던) 주변 장치는 BIOS에 의한 지원이 쉽지 않다. 많은 시스템의 BIOS 설정은 USB 키보드 지원 등 항목이 있고,이를 통해 USB에 연결된 키보드에 대해 BIOS 레벨에서 에뮬레이션이 행해지지만 이러한 개별 대응을 모든 장치에 대해 행할 수 없는 것은 분명하다. 다양한 장치를 OS가 부팅하기 전의 환경에서 사용할 수 있도록 하려면 개별 장치에 맞는 드라이버를 내장 가능한 펌웨어가 필요하게 된다.

 


EFI 프레임워크를 IA-32에도 도입

 

 

EFI 프레임 워크의 구성. 노란색 부분을 정의한 것이 EFI 다

 

 

 이러한 문제를 해결하는 것으로서 이번 IDF에서는 EFI에 준수한 펌웨어 (을 위한 프레임 워크)를 IA-32 기반의 PC에서도 채용하려는 움직임 (Intel Platform Innovation Framework for EFI)이 나타났다 . Extensible Firmware Interface의 약자인 EFI는 펌웨어와 OS 간의 인터페이스 사양.

 이미 IA-64 플랫폼에서는 이 EFI에 준수한 펌웨어가 채용되고 있다. 32bit OS를 실행하는 능력을 가지지 않고 (또는 끊고) 레거시 없는 컴퓨터 환경으로 출범한 IA-64에서는 MS-DOS (기존 BIOS)와의 호환성 등을 배려할 필요가 없기 때문에 새로운 펌웨어 인터페이스를 채용하는 것이 가능했다. OS도 EFI를 지원하는 전용 64bit OS 만 제공된다.

 EFI를 IA-32에 가져올때 필수적인 것은 기존 OS나 BIOS와의 호환성이다. 현시점에서 IA-32 용으로 EFI에 대응하는 OS가 존재하지 않기 때문에, EFI가 아무리 뛰어나다 할지라도 기존 OS와 호환 없이는 쓸모가 없다. Longhorn가 첫 번째 대응 OS가 될 예정이다.

 또 EFI로 되는 순간 기존의 확장 ROM BIOS를 탑재한 확장 카드를 사용할 수 없게 되어도 곤란하다. 이 점을 감안해 EFI 대응 펌웨어 조직이 Tiano라는 코드 명으로 개발되어 왔다. Tiano의 정식 명칭이 "Intel Platform Innovation Framework for EFI '라는 것이다.

 EFI 프레임 워크는 고도로 모듈화 된 구성으로 드라이버와 응용 프로그램을 통합 할 수있다. 메모리 모델은 32bit 리니어 공간이기 때문에 펌웨어가 1MB 이하의 좁은 공간을 가지고 싸울 필요는 없다. 넓은 주소 공간은 드라이버와 응용 프로그램의 통합에 의해 다양한 기능 확장에도 필수적이다.

 

Michael J. Fister 씨

 


 Michael J. Fister (마이클 J 피스터) 인텔 엔터프라이즈 부분 부사장의 키 노트는 핸드 헬드 (iPAQ)에서 서버의 펌웨어에 원격으로 드라이버를 추가하는 데모가 행해졌는데, 이런 재주는 기존의 BIOS는 불가능하다. 물론 이 추가된 드라이버 (특정 실리콘에 대응 한 지원 소프트웨어)가 제공하는 기능은 시스템 시작시에 이용할뿐만 아니라 실행중인 OS에서도 사용할 수 있다. 기능적으로 복잡하지 않은 하드웨어라면 기본적인 기능의 대부분을 EFI 드라이버에 맡기고 OS 측의 드라이버 지원을 간소화 할 수 있는 것이다. 여기에 더해 , 드라이버 및 펌웨어를 제공하는 측에서는, 기술에 고급 언어 (C 언어)를 이용할 수 있다는 장점도 있다.


시스템 벤더에 의미 있는 EFI 프레임 워크


 이와 같이 EFI 프레임 워크의 도입으로 시스템은 크게 변화하고, 그 영향을 받는 것은 주로 시스템 벤더 및 통합으로, 사용자에게 직접 혜택이 아닐지도 모른다.

 사용자가 가장 영향을 받는 것은 시스템의 구성 부분 (현재 BIOS 설정에 해당하는 부분)이지만 미래에 채용되는 EFI 프레임 워크 준수의 펌웨어 사용자 인터페이스가 어떻게 될지는 현재는 잘 모르겠다. IA-64 용의 그것은 MS-DOS 명령 프롬프트 같은 것으로, 지금의 일반 사용자의 손에 곤란한 물건이지만, 주소 공간에 제약이 없는 EFI 프레임 워크 준수의 펌웨어 사용자 인터페이스를 제공하는 프로그램을 만들면 좋은정도의 이야기라고 생각된다.

 이런 EFI 프레임 워크의 도입이지만, 이번 발표로 점차 확산 될 것으로 기대되고 있다. 현재 AMI (American Megatrends, Inc)와 Insyde Software가 특정 하드웨어를 전제로 한 펌웨어의 제공이 가능하며, Gateway가 EFI 프레임 워크를 준수하는 최초의 시스템을 제공하기 위해 개발을 진행하고 있다 ( 개발중인 와이드 액정 디스플레이 일체형 PC. 루이스 번즈 부사장의 키 노트에서 소개). 내년에는 더 많은 공급 업체가 채용 할 예정이며, Intel 자신도 향후 2 ~ 3 년에 레퍼런스 보드를 EFI 프레임 워크를 준수한 것으로 해 나가는 것으로 되어 있다. 2007년 까지는 "BIOS"라고 하면 이 EFI 프레임 워크를 기반으로 한 것을 가리킨게 된다 Intel은 생각하고 있다.

 

2003년 9월 19일 기사 입니다.

 

[분석정보] 32bit 시스템의 EFI 화는 2006년

 

 

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

 

 

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

 

 

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

 

 

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

 

 

[고전 1998.04.02] PC 2000 - 그것은 PC/AT와 결별?

 

 

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