컴퓨터

BIOS PC를 뛰어넘은 애플 펌웨어

Subi Lee 2009. 12. 22.
반응형

How Apple’s Firmware Leapfrogs BIOS PCs (Itanium)

Saturday, August 20, 2006

애플은 새 인텔맥에서 인텔의 현대적인 EFI를 채용함으로써 다른 컴퓨터 제조업체들보다 한 세대를 앞서게 되었다. MBR과 APM, GPT에 서 필자는 오늘날 PC에서 사용하는 BIOS와 미래의 PC에서 사용할 EFI 간의 차이점에 대해 보여줬었다. 이번 글에서는 그 차이점에 대해 좀더 깊게 들어가보자. 특히 맥오에스텐과 윈도우즈 양자를 애플 하드웨어로 돌리는 데에 흥미를 가진 사용자들에게 있어서 그 차이가 어떤 의미를 갖는지 알아보도록 하겠다.

The Seamless Move from PowerPC to Intel
올해 인텔맥이 나오기 전에, 애플은 APM이라 불리는 고유의 디스크 파티셔닝 시스템과 Open Firmware를 사용했었다. 새 인텔 맥도 기존의 APM 드라이브를 읽을 수는 있지만, 그 드라이브에서 부팅시킬 수는 없다. 맥오에스텐 10.4.2 이후 버전을 돌리는 PowerPC 맥 또한 GPT 포맷 디스크를 읽을 수는 있되, 그 디스크에서 부팅할 수는 없다.

타이거는 현재 유니버설이 아니기 때문에 맥오에스텐 부팅디스크는 인텔, 혹은 PowerPC 용이어야 한다. 따라서 똑같은 종류의 디스크로부터 인텔과 PowerPC 맥 아키텍쳐를 부팅시킬 수 있는 능력은 그리 중요하지 않다.

레퍼드(Leopard)는 PowerPC와 인텔 맥 모두를 설치될 수 있는 단일 버전으 로 나온다. 레퍼드를 선보인 다음에, 애플은 PowerPC 맥이 만들어내는 APM 드라이브로부터 인텔맥 부팅을 시킬 수 있도록 새로운 펌웨어를 발표할 것 같다. 즉, 어떠한 맥 컴퓨터이건 다시 단일 드라이브로 부팅시킬 수 있도록 한다는 뜻이다. GPT 드라이브로 PowerPC 맥을 부팅시키는 일도 이뤄질 듯 하다.

물론 애플의 유니버설 바이너리 아키텍쳐는 이미 프로세서 독립적으로 애플리케이션이 나올 수 있도록, 프로세서에 상관없이 "잘 돌아가도록" 애플리케이션을 만들 수 있도록 해준다.

실질적으로 인텔맥을 APM 하드디스크로 부팅시키는 일이 완전히 불가능하지는 않지만, 아직 지원은 못받고 있다. 인텔맥은 APM 인스톨러 DVD로 부팅이 가능하며, 눈치 빠른 사용자들은 APM 하드드라이브로 인텔맥을 부팅시키는 꼼수를 발견한 모양이다. 그러나 현재의 타이거가 유니버설이 아니기에, 대부분의 사용자들에게 있어서 그런 꼼수는 복잡하기도 하고 유용하지도 못하다.

적어도 예전 맥과 새 맥이 서로의 디스크를 읽을 수는 있기 때문에, 현실적인 문제는 없다고도 볼 수 있겠다. 인텔맥에서의 APM 부팅 제한은 불필요한 복잡함을 막기 위해 애플이 인위적으로 제한시킨 이유도 있다.

옛 맥과 새 맥의 부드러운 상호운용은, 누구나 부트캠프에서 발견할 수 있듯, 표준적인 PC에서 새 인텔맥으로의 점프보다 훨씬 다듬어져 있다. 애플의 새 인텔맥도 PC이지만, 다른 회사의 PC보다는 한 세대 앞선 PC이다.

BIOS PCs, Intel Macs, and EFI
맥(HFS+)이 사용하는 디스크포맷과 윈도우즈(NTFS, FAT)가 사용하는 디스크포맷의 차이점도 차이점이지만, 각 플랫폼의 펌웨어와 연결되어 있는 파티셔닝 시스템 문제도 있다. 위에 언급한 것처럼 Open Firmware PowerPC 맥은 APM을 사용하고, BIOS-기반의 PC는 항상 MBR을 사용해왔다. 그리고 EFI는 새로이 GPT라 불리우는 포맷을 선보였다.

1981 년 IBM PC 이래 생겨난 모든 PC 하드웨어는 펌웨어-수준의 디바이스 관리자로서 단순하고 오래됐으며, 낡은 BIOS를 계속 사용하고 있다. BIOS는 사실 MBR과 묶여있기 때문에, 여기서의 오래된 파티셔닝 시스템은 비효율적이고 안전하지도 않으며, 제한도 심하다.

맥의 Open Firmware가 가진 현대적인 기능을 PC 세계로 끌여들이기 위해, 인텔은 새로운 PC의 현대적인 아키텍쳐로서 EFI를 선보였다.

원래 EFI는 IA64 Itanium 플랫폼용 디자인이었다. Itanium은 인텔이 오래된 x86 펜티엄 플랫폼을 대체하리라 희망하면서 제작한 완전히 새로운 64-비트 프로세서 아키텍쳐였다.

Apple’s Lead in EFI
그러나 Itanium과 EFI는 인텔의 소망처럼 되지 못하였다. 그러나 새 인텔맥에 애플이 EFI를 탑재시키자, 이제 PC 메이커들은 애플의 선도를 따라잡기 위해 EFI를 채택할 전망이다.

인텔의 USB 기술과 똑같은 일이 또 일어난 것이다. 마이크로소프트가 윈도우즈 안에 USB의 소프트웨어 지원을 하기 위해 비슷한 실패를 겪을 동안 PC 메이커들은 일단 USB에 한 발 들여다 놓고서, 자기들 컴퓨터에 USB 포트를 장착시키려고 허술한 노력을 펼쳤다. 그때문에 잘 작동하지 않을 때가 종종 있었다. 한 번 발을 뻗쳤으니, 진퇴양난(進退兩難)이었다.

그러다가 애플이 아이맥의 주변기기 활용 방법으로서 USB를 채택시키자, 그제서야 USB는 주목을 받게 되었다. 1998년에 애플이 한 발짝 앞서나가지 못했더라면 BIOS PC는 여전히 2006년에도 그 대부분이 PS/2RS-232 시리얼, Centronics parallel 포트나 쓰고 있을 터이다.

델과 같은 일류 PC 메이커들도 USB 키보드와 USB 마우스를 탑재시키기까지는 거의 10년이 걸렸다! EFI에 대해서 마이크로소프트와 다른 업체들은 과연 몇 년이나 걸릴까? 누가 알리오? 하지만 애플은 이미 고유의 장점을 살려가며 사용중이다. EFI는 고가를 요구하지 않고서도, 애플의 하드웨어를 차별화시켜주며 애플 하드웨어에 고품질의 컴퓨터로서의 더 높은 가치를 부여해준다.

How EFI's GPT Partitions Work
EFI는 기본적으로 Open Firmware의 인텔 버전으로서, MBR 지원을 위한 별도의 기능이 덧붙여져있다. MBR은 디스크상의 파티션 위치를 기록하기 위해 BIOS PC가 사용하는 오래된 시스템이다. MBR은 다음 그림과 같게 보인다.



EFI에서 인텔은 MBR의 부팅이 가능한 프라이머리 파티션 네 개 이상의 공간을 넣어서, 새로운 파티션 테이블을 디자인하였다. 표준 EFI 테이블은 128 개의 공간을 허용한다. 각 파티션은 GUID가 규정한다. 첫 번째 GUID는 파티션의 종류(맥 HFS나 PC Data)를 정하고, 두 번째는 그 파티션의 시리얼 넘버를 정한다.



GPT 또한 파티션 테이블을 복제하여, 디스크 끝에 별도의 백업을 유지시킨다. 따라서 주된 중요 파티션 정보가 손상되더라도, 드라이브를 읽을 수 있게 된다. 양 테이블 모두 계산을 해 놓고 있기 때문에, 시스템이 파티션 인덱스에서 손상된 파일을 검출할 수 있으며, 복제할지를 알 수 있다. 이 과정은 GPT 디스크 인덱스를 보호하고 원상회복시킬 수 있도록 해준다.



MBR과의 하위호환성을 유지하기 위해 GPT는 MBR 보호 구역을 따로 만들어 놓는다. 디스크 상에서 MBR을 사용하도록 가정하는 디스크 유틸리티가 GPT 정보를 덮어쓰지 않도록 하기 위함이다.

윈도우즈 유틸리티가 GPT 디스크 상에서 파티션을 바꾸려 한다면, 이들은 더미 MBR만을 보게 되고, 변화는 오로지 윈도우즈상에서만 반영된다. 이들은 맥 파티션을 검출할 수 없지만, MBR로부터 자기 기록을 지울 수는 있다. 그런 일이 일어난다면, 윈도우즈는 맥 디스크를 더이상 볼 수 없게 된다.



GPT도 되는 유틸리티가 파티션에 변경을 가할 경우, 이 유틸리티는 더미 MBR 정보를 업데이트시킨다. 즉, 윈도우즈 XP를 포함한 옛날 애플리케이션들은 올바른 디스크 정보로 돌아가게 된다.

GPT and Windows
윈도우즈 XP 소매 버전은 GPT 볼륨 사용을 지원하지 않는다. 윈도우즈 XP 상에서 GPT 포맷 드라이브는 보통의 드라이브로 나타나지만, 윈도우즈는 프로텍티브 MBR을 읽고, 이 디스크가 보통의 1981-스타일의 MBR 디스크라 여길 뿐이다. 부트캠프로 만든 하드드라이브를 PC에 끼울 경우, 윈도우즈 파티션을 읽을 수 있게 되는데, 이때 애플 파티션은 읽을 수 없는 드라이브로 나타난다.

하지만 이 경우, PC는 맥에서 만든 윈도우즈 설치본으로 부팅을 성공스럽게 할 수가 없다. 윈도우즈가 특정 하드웨어 드라이버용으로 셋팅되어있기 때문이다. 보통 윈도우즈 부팅 디스크는 동일한 하드웨어 간이 아니면 다른 컴퓨터로 옮겨다니면서 부팅시킬 수 없다. 대조적으로 대부분의 맥 부팅 디스크는 어떠한 맥에서도 부팅을 시킬 수 있다.

마이크로소프트의 64-비트 Itanium 버전 윈도우즈는 GPT 볼륨을 사용할 수도 있고, 거기서 부팅도 가능하다. Itanium 플랫폼이 EFI를 사용하기 때문이다. 그러나 x86(IA-32) BIOS PC와 Itanium(IA-64)은 전혀 비호환이다. Itanium은 완전히 별개의 플랫폼이다.

Itanium vs. PowerPC
Itanium은 PC에 64-비트 프로세서를 제공하기 위한 인텔의 첫 번째 시도였다. Itanium은 x86의 후계자로서, 모두가 결국은 채택하게 될 새 아키텍쳐였다.

사람들은 컴팩의 Alpha 프로세서나, SGI의 MIPS, 그리고 HP의 PA-RISC 모두 Itanium이 펼칠 새 세상 앞에 무릎을 꿇으리라 예상하였다. 그리고 어떤 이들은 애플도 PowerPC를 포기하고 Itanium을 채택해야 하리라 장담하기도 하였다. 다행히도 애플은 아니었다!

인텔로서는 Itanium이 PowerPC의 직접적인 경쟁 프로세서로 비춰질 필요가 있었다. PowerPC는 비교적 신제품이었기에 인텔 x86 플랫폼은 퇴물로 비춰지고 있었다. 90년대 중후반, PowerPC의 AIM(애플과 IBM, 모토로라) 파트너들의 득세가 있었고, 당시 PowerPC는 오히려 Itanium 대신 x86 플랫폼을 자기가 대체할 것이라는 기대감도 만들어냈었다.

당 시 모토로라는 PowerPC로 윈도우즈 NT를 포팅시켰고, IBM 역시 PowerPC 용으로 OS/2를 포팅시켰으며, 애플도 68k 맥을 PowerPC로 이주시키는 중이었다. 심지어 BeOS도 범용 PowerPC 플랫폼에서 OS를 돌릴 계획을 세웠고, PowerPC로 OS를 포팅시킴에 있어서 NeXT도 어느정도 진전을 보이고 있단 와중이었다. 후에 NeXT는 소프트웨어 기업으로 돌아서게 된다.

PowerPC에 더해서, 윈도우즈 NT는 원래 Alpha 프로세서와 MIPS에 서 돌아가도록 디자인되어 있었다. 그러나 마이크로소프트는 양 플랫폼에 걸쳐 애플리케이션을 제공할 수 없었으며, PowerPC를 제외한 모두가 인텔의 Itanium에 흔들리고 있었다. 따라서 마이크로소프트는 x86 BIOS PC를 제외한 모든 다른 플랫폼 지원을 포기하였고, Itanium이 나올 경우 Itanium을 채택하겠노라 계획을 세워두었다.

AIM 파트너들의 희망만큼 PowerPC를 채택한 곳은 많지 않았지만, 오히려 Itanium은 더 커다란 실패를 떠안게된다. Itanium은 2001년까지도 못나왔고, 여러가지 허풍으로 끝난 닷컴 거품시대 속에서 잊혀져갔다. 인텔이 Itanium을 일찍 내놓았더라면 인텔은 아마 돈방석에 올랐을 것이다.

그대신 Itanium은 Itanic으로 바뀌어버렸다. 뜨겁고 비효율적이며 고가에다가 소프트웨어도 거의 없었던 Itanium은 x86 소프트웨어를 호환 모드로 돌릴 수 있었지만 기대치보다 상당히 느린 것으로 판명났다.

The Itanium Killer
Itanium의 실패는 인텔의 더 작은 라이벌, AMD가 64-비트 익스텐션과 기존의 32-비트 x86 프로세서 아키텍쳐를 통합시킴으로써 그 종지부를 찍게 된다. AMD는 이를 x86-64, 즉 AMD64라 불렀다.

AMD64는 더 단순했고 하위호환성도 더 풍부했다. 따라서 64-비트 BIOS PC의 사실상 표준이 되었다. 이에 따라 인텔도 어쩔 수 없이 AMD식의 구현을 따를 수 밖에 없었다. 인텔은 자신들의 호환 버전을 EM64T라 불렀다. 뜻은 이정도가 아닐까 싶다. "Embarrassing Maneuver in 64-bit Technology"

마이크로소프트는 인텔의 EM64T와 AMD64에 대응하였다. 하지만 x64를 지원하는 윈도우즈 버전도 GPT로 부팅할 수는 없다. Itanium(IA64)와는 달리 x64가 다른 모든 32비트처럼 보통의 오래된 BIOS PC에 기반하기 때문이다.

x64 BIOS PC상에서 돌라가는 윈도우즈는 그래도 GPT 볼륨을 이용할 수는 있다. 부팅만 안될 뿐이다. 이때문에 자연스럽게 혼란이 생겨난다.

Platforms and GPT Compatibility



Imaging and Disk Utilities for GPT Volumes
애플은 맥오에스텐과 윈도우즈 XP를 부팅시킬 수 있는 맥 드라이브를 간편하게 준비할 수 있는 방법으로 부트캠프를 제공한다. 여기에 대해서는 부트캠프는 어떻게 돌아가는가에서 다루었다.

현재로서는 한 번 만들어진 GPT 파티션을 안전하게 변경시키는 기능을 갖춘 쓰기 쉬운 디스크 유틸리티가 없다. 애플의 디스크유틸리티는 GPT 파티션을 만들고 윈도우즈 설치 공간까지 조성할 수는 있지만, 드라이브의 콘텐츠를 모두 지우지 않을 경우 파티션 구조를 변경시킬 수 없다.

디스크유틸리티는 또한 NTFS 디스크 이미지도 만들 수 없다. NTFS 상에서 쓰기를 할 수 없기 때문이다. Carbon Copy ClonerSuperDuper도 쓸 수 없다. 이들은 맥 볼륨 전용이다.

Carbon Copy Cloner의 저작자, 봄비치(Mike Bombich)는 NetRestore라는 이미징 유틸리티를 만들어냈는데, 이 유틸리티는 Apple Software Restore 기반이면서, ntfsprogs 기반으로 NTFS 이미징도 지원한다. ntfsprogs는 오픈소스 리눅스 프로젝트로서 윈도우즈 NTFS 볼륨용 디스크 유틸리티를 만들자는 프로젝트이다.

윈도우즈의 NTFS는 복잡한 파일시스템이며, 윈도우즈 외의 NTFS 지원은 아직 완전히 개발이 안되어있다. NTFS와의 상호운용성을 위해 리눅스 프로젝트들이 생겨나고 있으며, 이들이 진전을 보일 경우, 그 성과는 맥오에스텐에도 덧붙여질 것이다. 완전한 지원은 아직 나오지 않았지만 ntfsprogs덕분에 NetRestore는 성공스럽게 NTFS 볼륨을 이미징시킬 수 있다.

무슨 뜻일까? IT 관리자들이 이제는 윈도우즈 파티션을 여러대 머신에 재빠르게 복제시킬 수 있다는 의미다. 달리 말해서, 윈도우즈용 랩톱으로서 맥북을 빠르게 갖다 놓을 수 있다는 의미이다. 이 작업에 대해서는 다음 기사에서 보여주겠다.

I really like to hear from readers. What do you think? Leave a comment or email me with your ideas.

How Apple’s Firmware Leapfrogs BIOS PCs
__________________

반응형

댓글