(10101101)173/WINDOWS2009. 1. 4. 11:19
윈도우 시스템에서 레지스트가 하는 일은 별것 아닌것 처럼 보이지만 상당히 중요한 일을 합니다. 기본적으로 부팅에 한 부분을 담당하고 있기 때문에 부팅에 관련된 레지스트리가 삭제된다거나 잘못 수정되면 부팅이 되지 않는 불상사가 일어나기도 합니다.

윈도우의 부팅 과 레지스트리의 관계는 다음과 같습니다.
1. 윈도우 커널(ntoskrnl.exe)이 레지스트리의 디바이스 드라이버에 대한 정보를 읽어온다.
2. 읽어온 정보를 바탕으로 윈도우의 실행 환경을 구성한다.
(이 과정에서 PnP(Plug and Play)관리자가 레지스트리를 통해 각 장치들이 사용하는 시스템 자원에 대한 정보를 검색한 뒤, 적당한 INF파일을 선택해 드라이버를 구동 시킵니다. 만약 INF파일이 없다면 새로운 드라이버를 설치할 수 있도록 안내합니다.)
3. 위 과정으로 새로 바뀌거나 추가된 시스템 정보를 다시 레지스트리에 기록한다.

흔히 레지스트리는 실행창(Windows키 + R)에서 "regedit"를 입력해 "레지스트 편집기"를 띄우게 됩니다.

Root Key라 불리우는 5형제가 보이는대 다음과 같은 이름을 가집니다.
Root Key이름이 길기 때문에 줄여서 쓰기도 합니다.(이하 줄임으로 표현)
HKEY_CLASSES_ROOT = HKCR
HKEY_CURRENT_USER = HKCU
HKEY_LOCAL_MACHINE = HKLM
HKEY_USERS = HKU
HKEY_CURRENT_CONFIG = HKCC

이 5형제가 하는 일은 다음과 같습니다.(레지스트리 편집기에 도움말 기준)
HKCR : HKEY_LOCAL_MACHINE\Software의 하위 키입니다. 이 곳에 저장되는 정보는 Windows 탐색기를 사용하여 파일을 열 때 정확한 프로그램이 열리도록 합니다.

HKCU : 현재 로그온하고 있는 사용자의 구성 정보 루트가 들어 있습니다. 사용자의 폴더, 화면색 및 제어판 설정이 여기에 저장됩니다. 이 정보를 사용자 프로필이라고 합니다.

HKLM : 임의 사용자의 컴퓨터에 특정 구성 정보가 들어 있습니다.

HKU : 컴퓨터의 모든 사용자 프로필 루트가 들어 있습니다. HKEY_CURRENT_USER는 HKEY_USERS의 하위 키입니다.

HKCC : 시스템을 시작할 때 로컬 컴퓨터에서 사용하는 하드웨어 프로필에 대한 정보가 들어 있습니다.

조금 쉽게 말하자면
HKCR : 윈도우에서 사용하는 프로그램과 각 프로그램에 연결된 확장자에 대한 정보, 단축키, 윈도우의 OLE[각주:1]에 관련된 정보를 가지고 있습니다. 이 내용은 다른곳에 동일한 내용이 있는대 그 위치는 HKLM→SOFTWARE→Classes입니다.

HKCU : 사용자가 설정한 윈도우 환경 정보가 들어 있습니다.

HKLM : 컴퓨터에 설치된 H/W, S/W의 설정 정보가 들어있습니다. 특히 H/W를 구동시키는대 필요한 드라이버 설정 사항이 들어 있습니다.

HKU : HKCU에 저장된 정보 전체와 데스크톱 설정, 네트워크 연결 등의 정보가 들어있습니다.

HKCC : HKLM의 하위키인 Config 키의 내용을 담고 있습니다. HKLM→Config 키에는 디스플레이에 관한 설정, 폰트 종류, 프린터에 관한 설정 등이 저장되어 있습니다.

하지만 위에 설명한 바와 같이 하위키 계념을 가지고 있기 때문에 따지고 보면 실질적으로 중요한 키는 HKLM과 HKU입니다. 정확히 5형제가 아니라 그냥 형제 인것 입니다.
HKLM→SOFTWARE→Classes = HKCR
HKCU = HKU 아래
HKCC = HKLM→Config와 동일

5형제들을 처음 펼치게 되면 나오는 키들을 하이브(Hive)라고 부르는대 이중 HKLM과 HKU키의 내용은 여러개의 파일로 따로 저장 합니다. 기본적으로 Windows\system32\config폴더에 보면 DEFAULT, SAM, SECURITY, SOFTWARE, SYSTEM이라는 5개의 파일에 나누어 보관하고 있습니다. 기본적으로 확장자가 존재하지 않으며 같은 이름으로 확장자를 가진 파일들이 있습니다. 확장자가 LOG일 경우 해당 하이브의 로그 및 감시 기록을, SAV일 경우 시스템이 충돌을 일으킨 경우에 하이브를 자동으로 복구할 수 있도록 레지스트리의 복사본을 가지고 있습니다.
사용자 프로필이 저장되어 있는 HKU키의 하이브 파일은 사용자별로 관리할 수 있도록 C:\Documents and Settings\[사용자 이름]폴더에 NTUSER.DAT파일로 저장되어 있습니다. 또 HKCR의 일부 데이터는 C:\Documents and Settings\[사용자 이름]폴더\Local Settings\Application Data\Microsoft\Windows에 Usrclass.dat 파일로 저장되어 있습니다.

틀린부분은 알려주시면 수정하도록 하겠습니다.





  1. OLE(Object Linking and Embedding) : 윈도우 3.1에 등장하며 응용 프로그램 사이의 데이터 공유를 담당 [본문으로]
Posted by Special Alex