옛날 옛적에 BIOS라는 물건이 있었다. 파워 유저들은 BIOS에 들어가서 새로 장착한 하드디스크를 인식하도록 만들고, 하드디스크를 포맷하고, 부팅 순서(플로피, CD-ROM, HDD)도 변경하는 등 여러 가지 묘기를 부렸고 여러 잡지에서 이런 기술(?)을 일목 요연하게 정리한 팁을 제공하기도 했다. 하지만 운영체제의 기능이 비약적으로 발전하며, 주변 장치 역시 엄청나게 발전함에 따라 BIOS는 부팅 시간만 잡아먹는 애물단지로 전락해버렸다. BIOS가 기반을 두고 있는 16비트 1Mbytes 메모리 주소 체계와 더불어 구식 장비에나 어울릴법한 각종 서비스 함수들은 역사적인 가치를 제외하고서는 요즘과 같은 세상에서 살아남기란 힘들 것 같다. 하지만 BIOS가 사라진다고 해서 운영체제와 하드웨어를 이어주는 가교가 필요없다는 이야기는 결코 아니다. 인텔이 총대를 매고 (원래 아이태니엄을 위해) EFI(Extensible Firmware Interface) 아키텍처를 발표했고, 애플이 2006년 인텔 CPU로 이주하는 과정에서 기존 Forth 언어 셸로 유명한 오픈 펌웨어를 헌신짝처럼 버리고 EFI로 갈아타면서 대중에게 알려지기 시작했다. UEFI는 인텔이 EFI를 Unified EFI Forum에 기부한 결과로 나온 확장판이다.
그렇다면 UEFI는 어떤 기능을 수행할까? UEFI를 겉보기에 그래픽이 강화된 BIOS 정도로 생각하기 쉬운데, 크게 (향상된) 디바이스 진단과 관리, (안정성을 높인) 운영체제 부팅 관리, 텍스트와 그래픽 셸, 프로세서에 독립적인 디바이스 지원 등을 꼽을 수 있다. 또한 UEFI는 유서깊은 MBR(Master Boot Record)를 사용하는 표준적인 PC 디스크 파티션 대신 GPT(GUID Partition Table)라는 새로운 파티션 기법을 제공해 파티션 숫자와 크기에 대한 제약을 풀어버렸다는 사실도 눈여겨 볼 필요가 있다. GPT는 첫 부분(섹터 0)에 Protective MBR 영역을 포함하고 있으므로 구식 소프트웨어에 대한 호환성도 담보하고 있다. 최신 윈도우와 리눅스 모두 UEFI의 GPT를 인식하도록 설계되어 있으므로 제약많은 구닥다리 MBR은 점차 사라질 운명으로 보인다.
최근 국내외 보안 관련 문제점이 터지면서 UEFI에서 제공하는 안전 부트에 대해 관심이 높아지고 있는데, 이 기능을 사용할 경우 신뢰할 수 있는 디지털 서명이 들어있는 드라이버 또는 운영체제 로더만을 인식하므로 부팅 과정에서 악성 프로그램이 끼여들 여지를 줄일 수 있다. 보안성을 높이기 위해 UEFI는 하드웨어적으로 안전한 저장소 내에 설정, 데이터, 키를 보관하도록 되어 있다. 하지만, 기본으로 설치된 KEK(Key Exchange Key)가 마이크로소프트에서 발급했기에 윈도우와는 달리 리눅스의 경우 키 배포 문제로 인해 GPLv3를 따르는 GRUB 부트로더를 사용하지 못한다. 하드웨어 업체에게 리눅스 전용 키를 담도록 만들 뾰족한 유인책이 없는 상황에서 래드햇이나 수세와 같은 상용 배포판 업체에서는 마이크로소프트 KEK를 인식하도록 커널을 수정하는 동시에 SUSE and Secure Boot: The Details에서 설명하듯 GPLv3와 호환이 가능한 GRUB2 활용 기법을 고안하고 있다. 하지만 오픈소스 진영에서 이를 바라보는 시선은 차갑디 차갑다. 일례로 토발즈가 쌍욕을 해버린 사건은 이를 극명하게 보여주고 있다.
결론: 보안과 자유는 양립하기 어렵다. T_T
마지막 사진 제대로군요. 하하하..
답글삭제// whiterock님
답글삭제자체 검열(?)로 인해 싣지는 못했는데...
http://www.youtube.com/watch?v=MShbP3OpASA&feature=player_detailpage#t=2997s 동영상 버전도 있답니다. :)
흠 어쩐지 리눅스가 잘 인식도 안되고 부팅이 잘 안된다 싶더라니... UEFI... 리누스 토발즈 형님이 저렇게 하실 정도면ㄷㄷㄷㄷ
답글삭제