IT_etc/유용한 전산 지식들..

윈도우 비스타 레지스트리 구조와 레지스트리 가상화

JJun ™ 2008. 1. 25. 13:34

윈도우 비스타에서 윈도우 운영체제는 한 층 업그레이드 된 느낌을 받지요. 그렇지만, 레지스트리에 관해 말하자면, 아마도 개선하기가 제일 힘든 부분 일 것입니다. 그래서인지, 윈도우 비스타의 레지스트리(Registry) 구조는 윈도우 NT, 윈도우 XP의 그것과 큰 차이가 없습니다. 윈도우 비스타에 새로운 프로그램이 번들 되어서 이들에 대한 레지스트리 항목이 있다는 점을 제외하고는 거의 같습니다. 그런데, 레지스트리 구조 자체는 큰 차이가 없지만, 레지스트리와 관련해서 윈도우 비스타에서 달라진 점이 몇 가지 있기는 합니다. 이에 대해서는 잠시 후에 살펴 보기로 하고 우선 전통적인 레지스트리 구조에 대해 알아 보겠습니다.

1. 레지스트리 구조

레지스트리 편집기를 열어 보면 왼쪽 탐색 창에 다섯 개의 레지스트리 폴더가 있음을 확인할 수 있습니다. 대부분 이 다섯 개의 폴더가 서로 다른 하위 폴더와 파일을 가지고 있을 것이라고 생각하시겠지만, 실제로는 주 폴더는 두 개일 뿐이고 나머지 세 개는 보조 폴더입니다. 세 개의 보조 폴더 중 두 개는 주 폴더의 일부분을 그대로 옮겨 놓은 것이 불과하고 나머지 하나는 고정적인 내용이 저장되는 것이 아니라 부팅 때 마다 새롭게 생성됩니다. 레지스트리 구조를 표로 정리하면 다음과 같습니다.

레지스트리 폴더(하이브)

약어

설명

주 폴더

HKEY_LOCAL_MACHINE

HKLM

컴퓨터에 특정한 구성 정보가 포함됩니다. 이곳에 저장된 정보는 컴퓨터에 여러 개의 사용자 계정이 있는 경우 모든 사용자 계정에 적용됩니다. 따라서 이 폴더에서 레지스트리를 수정하면 모든 사용자에게 적용됩니다.

HKEY_USERS

HKU

컴퓨터에 로드 된 모든 사용자 프로필이 포함됩니다. 대부분의 경우 이곳에서 레지스트리를 수정할 일은 거의 없고 대신 HKCU에서 하게 됩니다.

보조 폴더

HKEY_CLASSES_ROOT

HKCR

HKCR은 HKEY_LOCAL_MACHINE\Software 에 있는 정보의 별칭이며, 윈도우 탐색기를 이용하여 프로그램을 열 때 올바른 프로그램이 열리도록 하는 정보가 들어 있습니다. 이 곳의 정보는 HKEY_LOCAL_MACHINHKEY_CURRENT_USER 에 저장 되는데, HKEY_LOCAL_MACHINE\Software\Classes 키에는 모든 사용자에게 적용할 수 있는 기본 설정이 포함되고 HKEY_CURRENT_USER\Software\Classes 키에는 현재 로그온 한 사용자에게만 적용되는 설정이 포함됩니다. 따라서, 레지스트리 수정은 모든 사용자에게 적용되는 수정은 HKEY_LOCAL_MACHINE\Software\Classes 에서 현재 로그온 한 사용자에게만 적용되는 수정은 HKEY_CURRENT_USER\Software\Classes에서 하게 됩니다.

HKEY_CURRENT_CONFIG

HKCC

컴퓨터 시작 시 사용되는 하드웨어 프로필에 대한 정보가 저장되는 곳입니다. 따라서 부팅 때 마다 새롭게 작성되는 내용이 많습니다.

HKEY_CURRENT_USER

HKCU

HKEY_USERS\현재 로그온 된 사용자의 security ID 의 별칭이며, 현재 로그온 되어 있는 사용자에 대한 구성 정보의 루트가 포함됩니다. 사용자의 폴더, 화면 색상 및 제어판 설정이 여기에 저장됩니다. 이 정보는 사용자 프로필과 관련됩니다.

위 레지스트리 구조를 보면 왜 대부분의 레지스트리 관련 팁이 HKML 또는 HKCU 에서 이루어지는 가를 알 수 있을 것입니다.

 

 

 

2. 윈도우 비스타 레지스트리 가상화

윈도우 비스타의 특징 중의 하나가 관리자 계정으로 로그인 하더라도 일반 사용자 토큰으로

윈도우를 운영한다는 점입니다. 따라서, 정상적으로 설치된 프로그램이라고 하더라도 프로그램을

실행 시 또는 실행 후에 레지스트리에 설정파일을 저장하려 시도한다든지 하는 등의 관리자 권한을 필요로 하는 일을 수행하려 하면 에러가 날 수 도 있습니다. (지금 설명하는 내용은 프로그램 설치 시의 관리자 권한 상승을 필요로 하는 것이 아니라, 프로그램 설치 후의 프로그램 운영시의 문제 이므로 일반 사용자 토큰이 유지되어야 합니다.) 새로 나온 프로그램은 윈도우 비스타의 이런 권한 층을 이해하여 문제가 없도록 제작 되어 있지만, 이전에 출시된 프로그램 중에는 문제가 생길 소지도 있습니다. 그래서, 만들어진 기능이 파일 시스템과 레지스트리 가상화 기술입니다. 레지스트리 가상화에 대해 말하자면, 특정 프로그램이 HKLM\Software 에 레지스트리 키를 추가하려 시도할 때 이를 HKCR\Software\Classes\VirtualStore(주로,

HKCR\Software\Classes\VirtualStore\MACHINE\SOFTWARE 로 리다이렉트 해 주게

됩니다. 앞에서 살펴본 것처럼 HKLM은 컴퓨터에 있는 모든 사용자에게 영향을 미치는 설정이

보관되어 있는 반면, HKCR에는 현재 로그온 한 사용자에게만 적용되는 설정들이 보관되어 있으므로 이 부분에 대해서만 일반 사용자 토큰으로 키를 추가할 수 있게 해 주는 것입니다. 이렇게 해서 프로그램 실행 시 VirtualStore 폴더를 먼저 살펴 보고 그 뒤에 HKLM에 있는 설정을 보게 하는 방식으로 이전 프로그램 호환성에 있을 수 있는 문제를 해결하는 기능이 레지스트리 가상화라고 할 수 있겠습니다.

이 레지스트리 가상화 기술은 임시적으로만 존재하는 기술이 될 것입니다. 장기적으로는 필요가 없는데다, 자세히는 모르겠지만, 이 부분 때문에 보안 결함이 생길 수 도 있으니까요.

 

 

3. 윈도우 비스타 레지스트리 관련 다른 특징

뭐 중요한 것은 아니지만, 윈도우 XP에서는 파일 백업의 고급 옵션을 이용하면 레지스트리를 백업할 수 있었지만, 윈도우 비스타에서는 파일 백업에서 레지스트리를 백업하는 옵션이 없다는 점입니다. 레지스트리를 수동으로 백업하려면, CCleaner 같은 프로그램을 이용하거나, 레지스트리 편집기의 내보내기 기능을 이용해야 합니다. (이때 백업 용도로는 레지스트리를 저장할 때 '레지스트리 하이브 파일' 형식을 이용해야 합니다.)

 

레지스트리 백업만큼은 윈도우 비스타가 윈도우 XP 보다 더 불편한 것이 아니냐고 반문 할 수도 있지만, 꼭 그렇지 만은 않습니다. 윈도우 비스타의 시스템 복원 기능이 보다 강력해 졌기 때문입니다. 비스타의 시스템 복원 시점은 하루에 한 번 또는 드라이버 설치 시나 프로그램 설치 시 자동으로 만들어 지도록 설정되어 있습니다. 물론 수동으로 복원 지점을 만들 수도 있고요. 따라서, 시스템 복원 기능을 이용하면 윈도우 XP보다 더 불편하다고 말 할 수는 없을 것 같습니다. 단, 레지스트리 전체가 아닌 일부 폴더만 백업하려면, 여전히 레지스트리 편집기에서 할 수 밖에 없으니 조금 불편하기는 합니다만, 이건 윈도우 XP도 그랬던 것으로 기억합니다.

 

윈도우 비스타 레지스트리 관련해서 다른 특징은 일반 사용자는 레지스트리를 직접 수정할 할 이 거의 없다는 것입니다. 왜냐하면, 예전에는 레지스트리를 수정하는 외는 다른 대안이 없는 설정들이 GUI로 통합 된 기능이 많더군요. 예를 들어, 윈도우 미디어 플레이어의 최근 열어 본 파일 목록을 제거하기 위한 레지스트리 팁이 한 때 유행했지만, 지금은 윈미플 11의 옵션에서 처리할 수 있도록 통합되어 있더군요.

 

이상 윈도우 비스타의 레지스트리에 대해 알아 보았습니다.  레지스트리를 직접 만질 필요는

거의 없지만, 그래도 때때로 필요한 설정들이 있으면 포스팅 하도록 하겠습니다.

그런데, 윈도우 운영체제의 레지스트리에서 제일 맘에 안 드는 것은 무엇일까요?

저는 프로그램 하나 설치하면 너무 많은 레지스트리 키가 생긴다는 점과 프로그램을 제거해도

그 흔적들이 여러 곳에 그대로 남는다는 점이던데, 여러분은 어떻게 생각하시나요?