윈도는 일반 사용자층을 위한 95·98, 그리고 Me와 고급 사용자를 위한 NT·2000으로 구분되며, 종류에 관계없이 레지스트리라는 기본적인 내부 처리 지침을 가지고 있다. 레지스트리는 윈도가 작동하는 데 필요한 수많은 정보들을 제어하는 핵으로, 사람으로 말하면 심장과 같은 기능을 하는 곳이다.
레지스트리의 이해
레지스트리(Registry)란 윈도라는 운영체제의 모든 구성 데이터의 중앙 저장소라고 생각하면 이해하기 쉽다. 윈도의 시스템 구성, 하드웨어 구성, Win32 기반 응용 프로그램에 대한 구성 정보, 사용자 정보 등이 모두 이 레지스트리에 기록된다. 윈도가 레지스트리를 채택하고 있는 이유는 일단 리얼 모드 메모리를 최소화하기 위해서다. 이로써 보다 빠른 속도의 명령 처리가 가능해지게 되기 때문이다. 윈도 95 이전의 윈도 3.X에서는 Win.ini와 System.ini라는 파일에 이러한 정보를 저장해 사용했었는데, ini 파일에 기록된 내용을 한 줄 한 줄 읽어들여야 했기 때문에 부팅시 바탕화면이 보일 때까지의 시간이 오래 걸렸고 자연히 시스템의 메모리를 많이 소모하게 되었다. 이런 낭비를 막고자 윈도 NT에서 사용하던 레지스트리라는 개념을 윈도 95부터 도입하게 된 것이다.
레지스트리 파일은 크게 2개로 구분할 수 있다. 첫번째는 사용자와 관련된 정보를 담고 있는 User.dat 파일이다. 윈도 98이나 Me의 경우는 C 드라이브에 윈도를 설치했을 경우 C:\windows 폴더에 기본적으로 저장되며 윈도 2000의 경우는 C:\Documents and Settings\Administrator에 Ntuser.dat라는 파일 형식으로 존재한다. 다만 이 위치는 일정하지 않기 때문에 해당 위치에 파일이 존재하지 않는다고 해서 특별히 염려할 필요는 없다. 두 번째 파일은 System.dat 파일로 이 파일에는 하드웨어나 컴퓨터와 관련된 설정들, 즉 하드웨어 초기화 파일의 정보가 담겨 있다.
이 파일은 윈도의 모든 플러그&플레이 설정과 하드웨어 구성, 응용 프로그램 설정을 저장하고 있으며 윈도 98과 Me의 경우 윈도가 설치된 폴더에 숨김 파일의 형식으로 저장되어 있다. 이는 파일의 중요성 때문에 당연히 보호 모드인 숨김 파일로 지정되어 있는 것이며, 따라서 이 파일을 보기 위해서는 폴더 옵션에서 '숨김 파일 및 폴더 표시' 부분에 체크해 주어야 한다. 아래의 설명은 기본적으로 윈도 9x 커널을 바탕으로 진행하면서 NT 커널에 관한 부분은 특징적인 부분들만 소개하기로 하겠다.
레지스트리의 구조
레지스트리 편집기를 실행시키면 전체 레지스트리 구조를 한눈에 볼 수 있다.
윈도의 레지스트리는 하이브(hive)라고 불리는 단층 구조로 이루어져 있다. 윈도 98과 Me의 경우는 총 6개의 하이브로, 윈도 2000의 경우에는 HKEY_DYN_DATA를 제외한 5개의 하이브로 이루어져 있다. '시작→실행'을 클릭한 다음 빈 칸에 'regedit'라고 입력하고 엔터 키를 치게 되면 윈도의 레지스트리의 내용을 확인 및 편집할 수 있는 화면이 뜨게 된다. 앞으로 자주 만나게 될 이 화면이 바로 윈도의 레지스트리 편집기다. 마치 윈도 탐색기를 실행한 것과 같은 화면이므로 쉽게 이해할 수 있을 것이다. 각각의 루트 키의 이름은 HKEY_로 시작된다. 이것은 'Key Handle'의 약자로 각각의 고유한 식별 표지라고 생각하면 된다.
HKEY_CLSSES_ROOT
이 루트 키에 해당하는 정보는 System.dat 파일에 저장된다. 이 루트 키에는 윈도에서 사용되는 각종의 파일에 대한 정의가 기록된다. 따라서 임의의 새로운 파일 확장자를 만들고 싶다면 이 루트 키를 편집해야 한다. 이 루트 키에는 파일 종류와 파일 종류의 등록 정보, 아이콘 이름 등이 기록되며, 마우스의 오른쪽 버튼에 입력되는 정보를 함께 기록하고 있다. 또한 ActiveX 구성 요소에 대한 정보도 가지고 있다.
HKEY_CURRENT_USER
이 루트 키에는 현재 로그인 중인 사용자에 대한 등록 정보가 기록된다. 또한 응용 프로그램의 우선 순위, 화면 색상, 보안 접근 허용 여부 등에 대한 정보도 담고 있다. 루트 키의 하위로 트리 구조를 열게 되면 나타나는 서브키에는 특정 이벤트 발생시에 들리는 사운드 효과, 제어판 설정, 응용 프로그램이 최근에 설치된 위치, 키보드 레이아웃, 현재 사용자의 소프트웨어 설정 상태 등에 대한 정보가 담겨 있다.
HKEY_LOCAL_MACHINE
이 루트 키는 사용자들이 가장 많이 접해본 것일 것이다. 특히 게임을 즐기는 독자라면 배틀넷 등의 접속 순서 등을 바꾸기 위해 한번쯤 들어가본 경험이 있을 것이다. 이 키에 있는 구성 값은 System.dat 파일에 기록된다. 이 루트 키에는 사용자가 사용하고 있는 하드웨어 및 소프트웨어에 대한 모든 정보들이 기록된다. 하드웨어 구성 초기화 파일을 모아놓았기 때문에 제어판과 긴밀한 연관을 가지고 있으며, 간단한 수준에서의 레지스트리 편집은 대부분 이 루트 키 값을 변경하는 것에서부터 시작한다.
HKEY_USERS
이 키는 위에서 설명한 HKEY_CURRENT_USER와 유사하지만 과거에 로그인했던 사용자들을 위해 예전의 사용자 초기화 파일을 보관하고 있다는 점이 다르다. 만약 두 키 사이에 유사한 내용이 있다면 HKEY_CURRENT_USER가 우선권을 가지게 된다.
HKEY_CURRENT_CONFIG
현재 사용 중인 윈도의 디스플레이(화면 글꼴이나 해상도) 정보를 가지고 있고 프린터와 관련된 정보를 가지고 있는 키이다. 관련 정보는 System.dat 파일에 기록된다.
HKEY_DYN_DATA
윈도에서 사용되는 정보들 중에는 RAM에 기록되어 빠르게 입출력이 가능해야 하는 경우가 있다. RAM에 기록되는 모든 정보는 이 루트 키에 기록되며 윈도가 재부팅될 때마다 새로운 값으로 갱신된다.
레지스트리의 백업
윈도 98과 Me 모두 레지스트리에 하드웨어 및 소프트웨어, 사용자에 대한 등록 정보가 기록되기 때문에 아무리 숙달된 파워 유저(고급 사용자?)라 하더라도 그 편집에 있어서 주의를 기울이지 않으면 안 된다. 편집에서뿐만 아니라 인증되지 않은 프로그램이나 하드웨어 설치시에도 시스템이 손상되는 경우가 있는데 이 때 다시 원래의 설정을 복구하기 위해서도 레지스트리의 백업은 매우 중요한 작업이다. 원칙적으로는 항상 새로운 하드웨어나 소프트웨어를 설치하기 전에 레지스트리를 백업하는 것이 가장 좋다.
▶ 레지스트리 검사기를 이용하여 수동으로 백업하기
'시작→실행'을 클릭하고 'scanregw.exe'를 입력한 다음 '확인'을 클릭하면 된다. 그러면 레지스트리 검사기가 실행되는데 레지스트리에 문제가 없는 경우에는 추가적으로 백업을 할지의 여부를 묻는 팝업 창이 뜨게 된다. 백업된 레지스트리 정보는 C:\windows\Sysbackup 폴더에 압축 파일인 .cab의 형태로 저장된다.
▶ 레지스트리 편집기에서 백업하기
'레지스트리 파일 내보내기'를 선택하면 특정한 위치에 .reg 형식의 파일을 만들 수 있다.
레지스트리 편집기를 이용해서 백업을 할 수도 있다. 공식적인 백업의 방법은 아니지만 백업과 동일한 효과를 얻을 수 있다. '시작→실행'을 클릭하고 'regedit'를 입력하여 편집기를 불러온다. 그 다음 화면 좌측 상단에 있는 '레지스트리'를 클릭하면 '레지스트리 파일 내보내기'라는 항목이 있다. 이것을 클릭하면 저장할 위치와 범위를 지정하여 레지스트리를 내보낼 수 있다. 단, 이 경우에는 이미 부팅이 된 상태를 전제로 한다.
레지스트리의 편집
자신이 편집하고자 하는 부분은 '찾기' 명령을 이용해서 위치를 파악하도록 하자.
레지스트리 편집을 위해서 기본적으로 윈도에 내장되어 있는 편집기는 regedit.exe이다. 편집기를 실행시키기 위해서는 '시작→실행'을 누른 다음 'regedit'라고 입력하고 '확인' 버튼을 눌러주면 된다.
초보자의 경우에는 가능하면 레지스트리를 직접 편집하는 것보다는 제어판이나 시스템 정책 편집기(poledit.exe)와 같은 관리 도구를 사용하여 윈도의 구성을 변경하는 것이 좋다. 일반적인 프로그램과 달리 레지스트리 편집기에서 작업을 했을 때는 경고 메시지가 나오지 않기 때문이다. 경고 메시지가 나오지 않는다는 것은 편집기를 이용하여 사용자가 어떠한 작업을 했을 때 비록 그것이 잘못되었다 해도 경고를 해주지 않는다는 뜻이다. 또한 레지스트리 편집기를 이용해 수정된 레지스트리 값은 바로 시스템에 직접 반영되기 때문에 어쩌면 윈도를 다시 설치해야 하는 상황이 발생할 수도 있으므로 편집에 항상 주의를 기울여야 하고 사전에 미리미리 레지스트리를 백업 받아놓도록 해야 한다.
레지스트리 편집기를 사용하면서 가장 많이 사용하게 되는 것은 아마도 '찾기' 명령어일 것이다. 레지스트리 편집 창을 실행시킨 상태에서 키를 눌러주면 된다.