Windows 7의 XP Mode 그리고 가상화 기술

비스타가 정착에 실패한 가장 큰 이유는 비스타 자체의 문제점도 있겠지만 윈도우 XP의 존재 때문이었다.

PC 판매량은 꾸준히 증가하고 있다. 1999년, 처음으로 1억 대가 넘는 PC가 팔리기 시작했다. 잠시 닷컴 버블 붕괴로 2001년의 판매량은 조금 줄었지만 2002년에 판매된 PC의 수는 1.37억 대였다. 그런데 2007년에는 이 두 배에 가까운 2.64억 대가 팔렸다고 한다 (참고 자료). 윈도우의 시장 점유율은 2009년 7월 현재 전세계적으로 93%라고 한다. 따라서 2002년에서 2007년까지 판매된 엄청난 PC 중 사실 상 대부분의 컴퓨터는 윈도우 XP가 깔렸다고 볼 수 있다. 이런 엄청난 XP의 판매량은 오히려 부메랑이 되어 비스타의 채용을 더욱 더디게 만들었다.

또 하나, 이렇게 절대적으로 많은 컴퓨터가 XP다 보니 대부분의 프로그램과 하드웨어 드라이버도 XP를 기준으로 만들어져 있다. 그런데 아쉽게도 사람은 근본적으로 게으르고, 소프트웨어 개발자들은 더욱 더 게으르기 때문에 아무리 윈도우 비스타가 나와도 배째는 드라이버와 소프트웨어가 부지기수다. 윈도우 비스타가 XP와는 상당히 다른 보안 정책 등으로 혼란을 빚은 것은 맞다. 그러나 비스타가 추구한 방향은 옳다. UAC가 많은 욕은 먹었지만 그건 제대로 잘 마감이 안되어서 그렇지 UAC 도입 자체는 매우 합리적이다.

소프트웨어 개발자도 이런 방향을 따라야 하는데 그냥 놀고 업데이트는 무시한다. 나는 비스타를 첫 출시부터 썼고, 더군다나 64비트를 썼지만, 소프트웨어 호환성 문제를 겪은 적이 (거의) 없다. 물론 몇몇 하드웨어 드라이버는 문제가 있었다. 거지 같은 로지텍의 구닥다리 웹캠이 드라이버 업데이트를 공식적으로 배째서 못 쓰고 버렸다.

 

어찌되었건 비스타는 이런 저런 이유로 결국 실패했다. 그 중에서도 XP 호환성이 큰 이유라는 것을 잘 아는 마이크로소프트는 Windows 7에서 어떻게 보면 매우 단순하지만, 한편으론 매우 옳은 방법으로 XP 호환성 문제를 해결하려 한다. 바로 가상화(virtualization) 기술을 이용한 것이다.

가상화 기술(Full virtualization)은 컴퓨터 안에 온전한 컴퓨터를 몇 개나 더 만들어 준다.

컴퓨터 잘 다루는 분들은 이미 VMware Workstation 같은 프로그램으로 윈도우 위에서 리눅스나 아니면 다른 버전의 윈도우를 돌려본 경험이 있을 것이다. 맥 사용자라면  Parallels라는 가상화 소프트웨어로 윈도우를 맥 위에서 작동시킬 수 있다. 여기에 사용된 기술이 바로 가상화라는 기술인데, 물리적으로 하나인 컴퓨터를 마치 여러 대인 것처럼 속이는 기술이다. 서버 시장에서는 여러 물리적인 컴퓨터를 하나로 합칠 수 있기에 (즉 원가 절감) 매우 중요한 기술이지만, 상대적으로 클라이언트 데스크탑에서는 윈도우에서 리눅스를 깔아보는 것과 같은 일종의 장난감 역할을 주로 했다.

그런데 이 가상화 기술은 윈도우 비스타가 겪은 하위 호환성 문제를 푸는데 아주 멋진 해법을 제시한다.

윈도우 비스타나 윈도우 7이 XP와의 완벽한 호환성을 목표로 했다면, 과거 구현의 단점을 계속 벗어 나지 못할 것이다. 소프트웨어 개발한 분들은 절감하겠지만, 예전 버전 호환성을 늘 지키는 것이 얼마나 괴로운지 잘 알 것이다. 윈도우는 이 하위 호환성 문제가 매우 심각하다. 단적인 예로 늘 문제가 되는 ActiveX 정책을 들 수 있다. 최초로 ActiveX가 나왔을 때는 이걸 이용한 보안 취약성 문제를 고려하기 힘들었다. 그래서 사용자의 어떠한 개입 없이도 특정 웹페이지만 가면 ActiveX가 다운로드 되어 컴퓨터에 설치될 수 있었다. 그러나 각종 스파이웨어나 악성 프로그램이 이 경로로 설치되자 XP 서비스 팩 2부터는 사용자의 명시적인 클릭 없이는 설치되지 않도록 했다. 그리고 윈도우 비스타, 7 역시 하위 호환성을 위해 ActiveX는 여전히 제공되지만 더욱 더 많은 장벽을 두어 악성 프로그램이 쉽게 깔리지 않도록 하고 있다.

이걸 마이크로소프트가 첨부터 설계를 멍청하게 해서 그랬다고 욕할 수도 있다. 그러나 90년대 초반에 이런 보안 취약성 문제를 생각한 사람은 거의 없다. 그런데 ActiveX 뿐만 아니라 지금 우리가 쓰는 데스크탑 운영체제와 소프트웨어, 더 나가 CPU가 근본적으로 보안을 심각히 고려해서 설계된 것이 아니다. 사실 원초적인 소프트웨어 취약성은 CPU 자체가 너무나 낮은 수준의 보안 기능을 제공하기 때문이다. 과거에는 컴퓨팅 파워가 약했는데 보안 및 권한에 많은 자원을 써버리면 정작 계산을 별로 할 수가 없었다. 그래서 과거에는 보안에 별로 신경 쓰지 않은 것이 큰 문제가 되지 않았는데, 이것이 지금 와서 큰 문제를 만드는 것이다. 윈도우 95가 나올 당시 개인용 데스크탑 컴퓨터가 인터넷에 늘 연결되리라고 상상한 사람은 별로 없었다.

따라서 미래의 윈도우 운영체제가 늘 과거 운영체제의 취약한 보안 문제점을 가지면서 하위 호환성을 지키는 것은 좋은 선택이 아니다. 이보다는 완전히 독립된 가상 머신에 예전 운영체제를 띄우고 거기서 프로그램을 돌게 하는 것이 더욱 합리적이다. 가상 머신이 하나의 완벽한 샌드박스를 제공하므로 아무리 악성 소프트웨어가 가상 머신을 망가뜨려도 여러분의 컴퓨터는 말짱하다. (물론, 미래의 아주 무시무시한 악성 프로그램이 가상 머신을 통해 호스트 컴퓨터를 공격할지도 모른다) 그래서 Windows 7의 XP Mode 도입은 매우 중요한 의미를 가진다.

 

Windows 7의 XP Mode는 사실 아무것도 아니다. 이미 마이크로소프트가 제공하는 가상화 소프트웨어인 Virtual PC에다 미리 깔려있는 XP를 사용하기 더 쉽도록 배포한 것이다. Windows 7을 깔고 XP Mode를 다운 받으면 끝난다. 너무 간단하다. 윈도우 XP가 하나 뜬다.

가상 머신을 써본 분에게는 전혀 새로울 것도 없는 익숙한 화면일 것이다. 여기다 비스타에서 잘 안 돌던 프로그램을 깔면 된다. 그런데 이런 모습으로만 제공되었다면 정말 별 볼일 없는데, 다행스럽게도 XP Mode에서 뜨는 프로그램이 윈도우 7 데스크탑에 녹아 들어가 훨씬 자연스러운 인터페이스를 볼 수 있다. 구현은 원격 데스크탑을 이용한 것으로 보인다. VMware의 클라이언트 가상화 프로그램에서도 Unity라는 기능으로 데스크탑을 공유할 수 있다. 그러나 완벽하지는 않다. 써보면 조금씩 이상한 점을 발견하지만 그래도 상당히 이음새 없이 잘 쓸 수 있다.

XP Mode에서 실행된 IE7이나 인터넷 뱅킹 프로그램이 Windows 7 데스크탑 위에서 작동 중이다.

IE7에서 C:\ 같은 것을 치면 탐색기도 잘 뜨고 아무런 프로그램을 다 실행시킬 수 있다. 자동으로 내 컴퓨터의 드라이브도 다 연결되어 파일 공유도 간단하다. 다만 XP Mode의 창으로 파일을 끌어다 놓을 수는 없다.

XP Mode에서 프로그램을 깔면 바로 윈도우 7 메뉴에 해당 프로그램 단축키가 설정이 되기도 한다. 무척 편리하게 잘 만들었다. (물론 어떤 경우에는 잘 안 되기도 하지만 대부분 프로그램은 바로 추가가 된다) 어떻게 하면 이렇게 추가되는지는 이 동영상을 참고.

 

단, 하나 아쉬운 것은 XP Mode에서 게임 같은 것을 돌리는 것은 불가능에 가깝다. 이건 XP Mode 뿐만 아니라 현재 구현되고 있는 데스크탑 가상화 기술이 가지고 있는 공통적인 문제이다. 가상화 기술에서 CPU와 램은 연구가 많이 이루어져서 해법이 많이 나와있다. 하드디스크도 가상화도 간단하다. 그러나 아직까지 VGA, 그래픽 카드에 대한 가상화는 별로 잘 이루어진 것이 없다. 일반적으로 가상 머신에서 작동 중인 게스트 운영체제는 VGA 하드웨어 가속을 쓸 수 없으므로 DirectX 기반이 게임은 작동되기 어렵다. 물론, 맥에서 쓸 수 있는 Parallels 사의 가상화 제품은 DirectX 9.0과 256MB의 비디오 메모리를 지원한다. (써보지는 않아서 얼마나 원활한 성능이 나오는지는 모르겠다. 혹시 DirectX 기반의 게임도 무난히 작동 되는지 궁금하다) 그러나 아직까지 XP Mode는 이런 기능까지는 지원되지 않는다. 그래도 간단한 동영상 보는 것은 전혀 문제 없었다.

보다시피 XP Mode 안의 XP에서 잡히는 VGA는 듣보잡으로 잡힌다.


Windows 7의 XP Mode 도입은 간단하지만 상당히 의미 있는 일이다. 미려하게 인터페이스만 잘 다듬고 정말로 내부에 윈도우 XP가 도는지도 모르게 만든다면 윈도우 운영체제가 겪은 고질적인 하위 호환성 문제도 풀 것이다.

한줄요약: 그지 깽깽이 같은 인터넷 뱅킹 AcitveX는 이제 XP Mode에서만 볼지어다.

한줄 더: nProtect 더 이상 너를 안 봐도 되는구나.. ㅠㅠ

(그러나 현실은 가상머신에서 도는 것을 감지, 안 되게 막아 놓은 곳도 많다고 합니다)

 

p.s. 다른 Windows 7 컴퓨터에 세팅한 XP Mode를 전송하는 방법은 단순히 vhd 파일만 복사하면 된다. 그러나 디폴트 XP Mode VM 설정 같은 방법이 전통적인 레지스트리를 통하지 않아 약간의 삽질이 필요했다. 참고 삼아 찾은 링크를 기록 차원에서 남김: 링크1(가장 확실한 방법), 링크2, 링크3

by object | 2009/09/02 15:36 | 컴퓨터 | 트랙백 | 덧글(28)
트랙백 주소 : http://minjang.egloos.com/tb/2416006
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by Ha-1 at 2009/09/02 15:39
하위 버전 호환성은 기계돌이에게는 일종의 표준품 재고 활용이 되겠군요. 참 쥐약이죠 ;;
Commented by 로리 at 2009/09/02 16:25
저거 없으면 집에 있는 스캐너가 깡통이 되기 때문에... T_T

물론 집에 넷북이 있으니 못 쓸 것은 없지만서도요
Commented by Lohengrin at 2009/09/02 16:56
재밌는 정책이군요. 여러모로 Windows 7은 정말 XP세상을 바꿀 수 있을것 같네요
Commented by 코카스 at 2009/09/02 17:05
VMware workstation 도 6.5부터 guest의 3D 가속 기능을 지원합니다. 많은 게임을 돌려보진 못했는데 마비노기가 채팅이나 간단한 거래 정도는 가능할 정도로 돌았습니다.
Commented by xeraph at 2009/09/02 17:07
VMWare 취약점들 보면 게스트를 통해 호스트를 감염시키는게 이미 가능했었죠.. 패치가 계속 나오지만.. ㅎㅎ
Commented by uriel at 2009/09/02 17:57
parallels의 경우 wine의 d3d 관련 구현을 이용해서 성능을 어느 정도 냅니다. parallels의 guest os tool에서 이걸 덮어버린다는 것 같네요. 자세한 것은 http://wiki.winehq.org/Parallels 을 참고하세요.
Commented by 루돌 at 2009/09/02 18:01
XP를 선호하는 친구에게 윈도우7을 권하면서 XP모드가 있다고 설득을 하니, 이렇게 되묻더군요.

"그냥 XP쓰면 되는데, 왜 윈도우7에서 XP모드를 띄워서 XP를 써?"

참 할 말이 없어지는...
Commented by 나인테일 at 2009/09/02 19:22
저는 어차피 윈도우에서는 IE 밖에 쓰는게 없고 나머지 어지간한 어플은 다 WINE으로 굴리는지라 이거저거 좀 손이 많이 가도 속도 하나는 끝내주게 빠른 SUN 버추얼박스를 씁니다..;;
Commented by oO천랑Oo at 2009/09/02 19:45
window 7 한국어 일반 판매는 아직이죠?
Commented by Cicero at 2009/09/02 20:03
끝까지 native XP를 위해 저항하는 이런 세력도 있답니다 (...)
http://www.mma.go.kr
윈도우 7 64를 사용중인데, 저 병무청 홈페이지에서 공인인증한답시고 까는 ActiveX는 64비트용도 없는 주제에 VM을 감지해서 XP Mode에선 돌아가지도 않게 막아놨더군요. 좀 미친 것 같아요 -_-
Commented by 안타깝게도 at 2009/09/02 20:07
아래 덧글을 적는 중에 적으시다닝 (..)

네 이렇다니까요 ;ㅂ;
Commented by object at 2009/09/02 22:44
정말 할 말이 없군요..
Commented by 고어핀드 at 2009/09/04 12:15
강하다. 정녕 강하다. 최고다. (...)
Commented by 안타깝게도 at 2009/09/02 20:07
> 한줄요약: 그지 깽깽이 같은 인터넷 뱅킹 AcitveX는 이제 XP Mode에서만 볼지어다.
> 한줄 더: nProtect 더 이상 너를 안 봐도 되는구나.. ㅠㅠ

..그렇게 안되옵니다.

2007년에 국민은행 인터넷 뱅킹이 해ㅋ킹ㅋ 당하면서 보안지침에 추가된 것이 몇가지 더 있습니다.
(아무리 봐도 사용자 삽질로 인한 악성 코드 감염인데.. 책임은 은행이 지죠 :P)

1. E2E 키보드 보안: input type='text' 또는 'password' 타입의 필드에서 전송되는 것중 E2E 암호화가 적용되면 아예 처음부터 암호화되어 들어갑니다. 즉 폼의 각 필드를 합쳐서 SEED로 전체 암호화하는 것으로 끝나는게 아니라, 필드를 합치기 전에 암호화를 한번 더해서 박아넣습니다. 주민번호, 비밀번호 필드가 해당됩니다.

2. E2E와 함께 추가된 악질(-_-) 조항: VPC 또는 Terminal / Remote Session 연결에서의 입력 차단
AhnLab AOS, nProtect KeyCrypt 등에 적용되어 있는 것 같습니다. 터미널 서비스 또는 VNC는 차단됩니다.

일단 2. 에 의해 XP Mode가 차단되는데, 그 원인이 Virtual PC라서 차단하는 것인지 아니면 리모트 연결이라 차단하는지는 모르겠습니다. XP Mode의 경우 그전에 Virtual Server 2005부터 썼던 것으로 보이는 Remote Desktop Client를 변형한듯한 콘솔로 접속을 하는데 이것을 감지해서 막힌 것인지, 아니면 가상 머신을 잡아서 차단하는지 모르겠습니다.

대략 보험사들 중 안랩 AOS 쓰는 곳 막혔고, SC 제일은행 막혔고, 몇군데 더 막힌 듯 한데 모르겠네요.
시티은행은 뭘 쓰는지 까먹었는데 안막혔고, K-defense 쓰는 곳은 안막힌 것 같고..
아마 안막힌 곳도 지적당하면 다 막히는 쪽으로 가겠..죠?
Commented by Cicero at 2009/09/02 20:10
VM 감지 ActiveX에 이런 내막이 있었군요. 근데 정작 문제의 발단이던 KB 인터넷뱅킹은 잘 되네요 (...)
Commented by object at 2009/09/02 22:48
일부 USB 키보드로는 안된다는 이야기를 듣고 저도 그 점이 우려스러웠는데 결국 또 이렇게 나가나요. 일단 신한은행은 문제 없이 되었습니다. 정말 해도해도 너무하군요.
Commented by 몽몽이 at 2009/09/02 21:36
저두 VM에서 안된다구 적으려고 했는데 이미 두분이나;;;
VM 감지하는거 이게 뭔가 다른 이유가 있었는데... 원격 접속을 굳이 못하게 하려는 이유는 아니고요.
VM을 이용해서 키보드 보안을 우회할 수 있다고 그랬던가 뭐 그랬던거 같은데 잘 기억이 안나네요;;;
언젠가 정말 기존 방법으로 찾기 힘든 신종 루트킷이 나온 후에 그 탐지 방법을 찾던 업체들이 VM을 이용하면 할 수 있더라... 그런 내용을 본 적이 있습니다. 거꾸로 루트킷이 그런 방법을 쓸 수도 있는 것 같고요.
(이상 CPU 차원의 VM 지원을 말하는듯)
여하튼, 리눅스에서 윈도우 VM 띄워서 전자결제 하는게 지금은 거의 다 안되는걸로 알고 있습니다.
윈도우7도 마찬가지겠죠.
Commented by 송경환 at 2009/09/03 01:41
전 좀windows7은 아니지만 비슷한 일례로 메인 운영체제인 ubuntu에서 VirtualBox를 돌려서 저런 문제를 같이 해결 보고 있습니다.
virtualBox또한VirtualPC와 유사한 기능들을 많이 제공하기 때문에 Simless모드를 통해서 xp도 우분투의 인터페이스와 녹아들 수 있더군요.
그런데 리눅스위에도 돌아가는 윈도우 VM이 전자결제가 안되던가요? 제 VirtualBox에서는 왠만한 은행결제를 잘 처리하던거 같았습니다만...(방금확인해 본게 VirtualBox에서는 병무청 ActiveX도 잘 설치되었네요.)
게임의 경우는..잘 모르겠습니다만 VirtualBox도 wine의 d3d를 이용하던거 같습니다만 그렇다고 해도 만족할 만한 성능이 안나오던거 같더군요 이 부분은 아직 한참 먼 나라 이야기 였던 것 같습니다.
Commented by object at 2009/09/03 02:09
제가 알기로 VGA/GPU 자체가 가상화되지 않았기 때문에 현재의 D3D 가속에는 한계가 꽤 있을 것 같군요. (simelss -> seamless)
Commented by ㅁㄴㅇㄹ at 2009/09/03 15:59
이런 질문 해도 될지 모르겠는데.. 윈도우7 xp mode에서 사용할 수 있는 탐색기 대체 프로그램 없을까요? 토탈커맨더 쓰는데 얘는 가상머신에서 호스트의 파티션에 접근을 못하더군요.. 내컴퓨터 가면 있는데.. (눈물)
Commented by object at 2009/09/04 01:05
저도 아는 바가 없습니다. \\tsclient\이런게 토탈커맨드라는 프로그램이 이해하면 될 것 입니다.
Commented by object at 2009/09/04 01:05
특정 분께 예의 없는 댓글을 삭제 처리.
Commented by PRNM at 2009/09/04 03:48
저는 OS X에서 현재 VMWARE로 윈도우즈XP를 가상머신으로 돌리고 있습니다.
가상머신상에서 인터넷 뱅킹을 하고 있는데, 아직까지는 은행,인터넷주문등 ActiveX 관련된 문제는 없었습니다. 하지만 걱정하시는 바와 같이, 제가 업무상 사용하는 특정사이트가 유일하게 가상머신을 감지해서 보안상의 이유로 접속을 허락하지 않습니다. 어쩔수 없이 듀얼부팅을 이용해 해결하고 있습니다.

특정OS의 특정 웹브라우져에서만 수행되는 단점을 겨우 보완해주는 유일한 접근통로가 막히지 않았으면 좋겠습니다.
Commented by object at 2009/09/04 04:25
Virtual PC가 쓰는 가상 하드 파일 포맷이 vhd인데 여기서 바로 물리적으로 부팅할 수 있는 방법이 있네요.

http://blogs.technet.com/koalra/archive/2009/06/13/vhd77-windows-7.aspx

문제는 VPC가 맥에서 돌아가는지 잘 모르겠고요.. VMware도 아마 그러한 기능이 있는 걸로 아는데..
Commented by 고어핀드 at 2009/09/04 12:16
그지 깽깽이 같은 인터넷 뱅킹 AcitveX는 이제 XP Mode에서만 볼지어다. (2)

...이렇게 되면 얼마나 좋겠습니까!!;;
Commented by say at 2009/09/07 23:32
win98 mode도 추가해주면 좋으련만 'ㅅ';
Commented by 엠제이 at 2009/09/23 08:30
한가지만 바로잡고자 합니다. 우리나라에서나 *개념 없이* ActiveX로 이런 저런 것을 마구잡이로 개발했죠. 당시 미국에 있었던 제가 알기로는 보안 문제는 초기부터 제기되어 왔습니다. 물론 초기에는 보안 문제 보다는 표준이 아닌 점과 프로그램의 완성도 문제로 더 시끄럽긴 했습니다. *수준이 떨어지는 개발자*에게는 편한 툴이었으나 초기 ActiveX로 만든 소프트웨어의 완성도는 정말 형편 없었기에 보통 수준 이상의 개발자에게는 무시당하는 툴 이었습니다. 더군다나 보통 이하의 개발자들이 사용하다가 보니까 버그 투성이인 것이 많았죠. 결국 *우리나라에서만* ActiveX를 마구잡이로 써서 파이어폭스도 못 쓰는 실정이죠.
Commented by nave at 2009/10/13 16:22
한 2년 된 구형 노트북에 원도우7 을 깔아 볼까 생각 해보고 있는데, cpu 가 T2250,, 따지고 보면 가상화기술(VT) 미지원 이더군요..생각 보다 예전 PC의 cpu가 VT 미지원으로 호환성 문제 때문에 원도우7으로 못가시는 분도 괘 있을듯....??

:         :

:

비공개 덧글

<< 이전 페이지 다음 페이지 >>





by 김민장 2008 이글루스 TOP 100
최근 등록된 덧글
개발자 입장에서의 수많은 ..
by Jiyoon at 02/04
저도 아들 돌잔치때 돌잡이 ..
by 박상욱 at 01/18
미국 대학원 원서 작성중에 p..
by 태클사이야 at 01/13
TO: 박PD 로그인 하지 않아..
by 박응용 at 01/10
http://gigglehd.com/zbx..
by dhunter at 12/28
우와.. 좋네요. 태반이 ..
by 윤광배 at 12/17
항상 좋은 글 잘 보고 있습니..
by y2k at 11/23
글이 좋아서 제 블로그에 담..
by 쏭섭 at 11/23
최근 등록된 트랙백
조엘 스폴스키의 강연 (Sta..
by 인덕원칸타타
[Redis] sds.c를 분..
by 조급하지말고 천천히
메뉴릿
이글루 파인더

website counter

Add to Google

rss

skin by 이글루스