윈도우 XP의 부팅 과정
컴퓨터 작동 순서
① Power On → 전원 테스트(Power On Self Test)
② CPU : 시스템 BIOS(Basic Input Output System) 실행
③ 그래픽 테스트, 메모리 테스트, 키보드 테스트
④ 하드디스크, ODD, 플로피 디스크 테스트, 연결된 장치(모뎀, 마우스, 키보드, 랜카드 등) 테스트
⑤ 부팅 필수 파일(BOOT.INI,NTDETECT.COM, NTOSKRNL.EXE) 검사
⑥ 부팅 완료 : 마스터 부트 레코딩 로딩 → 운영체제(OS) 실행
※ BIOS(Basic Input Output System)란?
하드웨어와 소프트웨어의 중간형태인 펌웨어(firmware)로서 주로 ROM에 들어 있다.
컴퓨터 전원을 켜면 CMOS를 메모리에서 읽어오고 시스템 상태를 점검하는 POST(Power On Self Test) 과정을 수행한다.
운영체제가 사람과 컴퓨터 사이에서 요구 사항을 입력받고 처리된 결과를 출력하는 역할을 담당하는 시스템 소프트웨어라면 BIOS는 운영체제보다 먼저 실행되어 컴퓨터에 전원이 들어오면 가장 먼저 구동되어 컴퓨터의 메인보드에 연결된 각종 부품들을 인식하고, 각
부품들이 정상적으로 작동하고 있는 지를 테스트하며, 하드드시크에 저장된 운영체제를
불러와 실행할 수 있는 환경을 준비하는 가장 기본적인 역할을 수행하는 미니 운영체제
※ POST(Power On Self Test)란? 컴퓨터 전원 스위치를 켜면 맨 먼저 컴퓨터의 파워섶플라이에서 각 부품으로 전기가 들어가고 냥각팬 및 하드디스크가 ‘윙~’하는 소리가 나는데, 컴퓨터의 각 부품에 전원이 들어오면 컴퓨터의 부품에 이상이 있는 지 없는 지를 체크하는 과정을 의미함. |
윈도우 XP의 부팅 과정 | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
■ 전원 ON | ||||||||||||||||||||||||||||||||||
전원을 켜자마자 PC가 처음으로 하는일은 사람이 잠에서 깨어나 기지개를 펴듯 메인보드의 ROM에 저장된 BIOS프로그램을 불러온다 | ||||||||||||||||||||||||||||||||||
BIOS는 우선 그래픽카드 정보를 읽고 이것을 화면으로 보여준다. 그런다음 자기 진단 프로그램인 POST(Power-On Self Test)가 M/B, CPU, MEMORY, SCSI controller, HDD등 DEVICE CHECK를 하고 BIOS정보와 다를 경우 BEEP음이 울리는데 BIOS제조회사와 DEVICE에 따라 상이할수 있다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
■ BOOT 정보 찾기 | ||||||||||||||||||||||||||||||||||
다음으로 BIOS는 하드웨어를 돌리는 소프트 웨어 즉 구동 드라이버를 찾는다. 구동 드라이버 파일의 앞부분에는 MBR(MASTER BOOT RECODER) 영역이 있고 여기에는 BOOTSTRAP IPL과 하드디스크 파티션 구성을 알려주는 네가지 ‘파티션 테이블’ 정보가 기록되어 있다. | ||||||||||||||||||||||||||||||||||
선택된 BOOT DEVICE의 MBR에서 BOOT FILE을 읽어들인다. | ||||||||||||||||||||||||||||||||||
MBR(Master Boot Record) 읽기 BootStrap Searchs PBR(Partition Boot Record, Partition table) for Active Partition | ||||||||||||||||||||||||||||||||||
BootStrap 가동 | ||||||||||||||||||||||||||||||||||
*부팅은 BIOS, BOOTSTRAP LOADER, NT LOADER가 함께하는 과정임 | ||||||||||||||||||||||||||||||||||
■ NTLDR | ||||||||||||||||||||||||||||||||||
부트섹터에 다음 부팅과정에 로딩 할 부트 로더로 NTLDR이 지정이 되어 있는 경우 ACTIVE 파티션의 루트 디렉토리에서 NTLDR을 찾아 램에 로딩시키며 이 때부터 부팅의 전체 과정은 NTLDR이 주도하게 되며 XP의 실행을 위해 다음의 일들을 진행 시킨다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
만일 드라이브의 루트 디렉토리에서 NTLDR을 찾을 수가 없다면 오류 메세지를 보이게 되는데 부트 파일 시스템이 FAT방식이라면 “BOOT:Couldn’t find NTLDR’이며, 파일 시스템이 NTFS 라면 “NTLDR is missing” 이라는 메시지가 나타난다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
NTLDR은 실행 초기에는 DOS와 같은 방식으로 램을 이용하며(램의 1MB만 이용하며 이를 리얼모드라 한다) 곧바로 윈도우를 실행할 수 있는 환경으로 전환시킨다. (이를 보호모드로 전환한다고 하며 XP는 보호모드 환경에서만 실행 될 수 있다) 이것이 NTLDR이 첫 번째로 하는 일이며 이제 메모리의 전체를 모두 사용 할 수 있다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
NTLDR은 자신의 내부에서 제공하는 함수를 이용해 디스플레이 장치와 IDE 방식의 하드디스크를 제어하고 하드디스크의 파일을 직접 읽을 수 있는 환경이 된다. 하드디스크의 방식이 IDE 방식이 아니고 스카시 방식인 경우엔 부팅 파티션의 루트 디렉토리에 존재하는 NTBOOTDD.SYS를 먼저 읽어 들여 이 파일의 지시에 의한 부팅과정을 계속 진행하게 된다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
이제 NTLDR은 FAT방식과 NTFS 방식의 파일시스템을 모드 인식 할 수 있는 상태가 되며 다음 과정으로 부팅을 계속하기 위해 BOOT.INI 파일을 찾아 WINDOW가 수행될 장소를 알아둔다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
▪ BOOT.INI | ||||||||||||||||||||||||||||||||||
Windows XP Professional 설치 시 자동적으로 부팅 파티션의 루트에 Boot.ini 파일이 만들어 진다. Boot.ini 파일은 컴퓨터 시작 시 부팅 선택 메뉴에 보여지는 부분에 대한 정보를 포함하고 있으며 부팅 시 NTLDR에 의해 사용된다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
Boot.ini 파일 구성요소 | ||||||||||||||||||||||||||||||||||
[boot loader] Timeout 설정과 Default OS의 경로를 세팅한 부분이다. Timeout은 메뉴를 보여줄 시간을 의미하며 이 시간동안 부팅 할 운영체제를 선택하지 않으면 자동으로 Default로 설정된 운영체제로 부팅하게 된다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
[operating systems] 컴퓨터에 설치된 각각의 OS의 경로에 대한 정보를 가지고 있는 부분이다. 이런 방식으로 경로를 표현하는 방식을 ARC 경로라 하며 ARC는 Advanced RISC Computing 의 약자이며 RISC 기반의 시스템에서 사용되던 파티션 절대 경로다. 그리고 이것은 Windows XP Professional의 부트 파티션을 지정하기 위해 쓰인다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
multi(x)disk(x)rdisk(x)partition(x)\%systemroot%(운영체제가 설치된 디렉토리) multi와 disk는 IDE에서 실제로 쓰이지 않고 항상 0이다. rdisk 는 물리적인 디스크를 말하며 첫 번째 IDE 콘트롤러에서는 0 또는 1이며 두 번째 콘트롤러에서는 2와 3이다. rdisk(1)인 경우엔 일반적으로 두 번째 하드디스크로 부팅 됨을 의미한다. Partition()은 1부터 시작하며 디스크의 파티션 번호이다. multi()의 의미는 드라이브가 INT13에 응답하게 된다는 의미이다. IDE 시스템에서는 MULTI()가 primary, secondary의 두 채널로 최대 4개의 디스크를 사용한다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
BOOT.INI 스위치(부팅 시 실행 옵션) | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
BOOT.INI를 편집 할 수 있는 도구 1. BOOTCFG(복구콘솔 또는 명령프롬프트) 2. MSCONFIG.EXE 3. 제어판 4. 메모장 등의 텍스트 편집기 | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
▪ F8 부팅 시 운영체제 선택 메뉴에서 부팅 할 운영체제를 선택한 후 바로 F8키를 누르면 고급 시작 메뉴를 볼 수 있으며 여기서 원하는 방식으로 윈도우를 부팅 시킬 수 있다. 부팅 시 선택 할 수 있는 부팅 메뉴는 다음과 같다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
1. 안전모드 | ||||||||||||||||||||||||||||||||||
ㄱ. 안전모드 가장 기본적인 장치 드라이버, 서비스로 부팅하는 윈도우 환경을 말하며 정상적인 부팅이 안 되는 경우나 윈도우의 오류를 해결하기 위해 사용된다. 부팅 시 로딩되는 장치드라이버와 서비스는 다음과 같다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
ㄴ. 안전모드 (네트워크 사용) 안전모드에서 네트워크를 이용해 데이터를 백업해야 하는 경우 등에 유용하게 사용 될 수 있다. 부팅 시 로딩되는 장치드라이버와 서비스는 다음과 같다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
ㄷ. 안전모드 (명령 프롬프트 사용) 윈도우 부팅 시 윈도우 탐색기를 사용하지 않고 명령 프롬프트로 시작하는 환경이며 윈도우 사작 시 실패의 원인이 윈도우 탐색기(EXPLORER.EXE) 때문인지를 확인해 볼 수 있다. 즉, 바탕화면이 보이는 부분에서 윈도우가 멈추는 원인 분석에 사용된다. 윈도우에서 실행되는 모든 응용 프로그램들은 EXPLORER.EXE의 도움을 받아 실행되며 EXPLORER.EXE를 SHELL이라 한다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
2. 부트 로깅 사용 윈도우 시작 시 로딩한 장치 드라이버에 관한 자세한 로그파일을 작성하면서 부팅하기 위한 옵션이다. 정상적인 상태의 로그파일이 준비되어 있다면 문제 발생시 이 옵션으로 부팅해서 현재의 로그파일과 비교 분석해서 부팅 관련 문제의 원인분석이나 장치드라이버 관련 오류를 해결하기 위해 사용된다. 부팅 시 작성되는 로그파일은 WINDOWS\NTBTLOG.TXT 이다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
3. VGA 모드 사용 부팅 후 윈도우 화면은 보이지 않지만 웹 서비스 등 다른 기능은 정상적으로 작동 하는 경우에 사용해서 문제를 해결하기 위해 제공되는 부팅 옵션이다. 모니터 재생 빈도 오류, 그래픽 카드 드라이버 손상, 그래픽 카드의 장치 손상 시에 사용된다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
4. 마지막으로 성공한 구성(작동한 최근 설정 값) 레지스트리 손상이나 장치 드라이버 관련 손상 등의 오류로 인해 부팅이 안 되거나 윈도우의 기능에 문제가 발생한 상황에서 사용 할 수 있는 도구다. 그러나 하드웨어 손상이나 작동 오류 윈도우 시스템 파일의 손상 시엔 효과가 없다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
5. 디렉터리 서비스 복원 모드(윈도우즈 도메인 컨트롤러만 가능) 도메인 컨트롤러 컴퓨터의 액티브 디렉토리 정보를 복원하기 위해 사용되는 옵션이다. 미리 시스템 상태 백업이 된 경우에 복원이 가능하다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
6. 디버그 모드 시스템이 윈도우로 부팅이 되지 않는 상황이나 블루 스크린이 발생하는 경우 직렬포트로 연결해서 오류의 원인을 분석하기 위해(디버깅) 사용되는 옵션이다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
▪ NTDETECT.COM NTNDR은 사용자가 BOOT.INI에서 보여주는 메뉴에서 XP를 선택해서 부팅을 진행하게 되면 다음 과정으로 NTDETECT.COM을 실행시켜 현재 구성된 하드웨어의 자세한 정보를 수집하게 한다. 이렇게 수집된 정보를 ,NTLDR이 미리 설정진 구조로 가공하게 된다.NTLDR은 NTOSKRNL.EXE를 실행시키고 NTDETECT.COM이 수집한 정보를 SYSTEM32 폴더안에 담긴 NTOSKRNL.EXE에게 제공하게 된다. NTDETECT.COM이 수집하는 정보는 다음과 같다. 시간 날짜 등의 시스템 기본정보 시스템 버스와 관련 제어 장치 VGA 어댑터 키보드 통신 포트 저장 장치 입력장치(마우스 등) 병렬 포트 ISA 방식의 장치 ACPI를 지원하지 않는 시스템에서는 바이오스가 설정한 하드웨어 자원을 XP가 이용하게 되고 ACPI 기능을 사용하는 시스템에서는 XP가 하드웨어 리소스를 다시 할당하게 되는 과정을 거치게 되므로 NTDETECT.COM은 ACPI기능을 사용하지 않는 시스템에서 더욱 중요한 역할을 한다. 다음 과정으로 NTDETECT.COM은 하드웨어 프로필을 선택하게 되는데 데스크탑 시스템에서 사용자가 추가로 프로필을 설정해 주지 않은 경우 기본 프로필로 부팅을 계속 진행하게 된다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
■ NTOSKRNL.EXE(윈도우즈 커널) | ||||||||||||||||||||||||||||||||||
NTLDR은 이제 윈도우의 커널(NTOSKRNL.EXE)과 HAL(hardware abstraction layer) 파일을 램에 불러들여 실행하게 된다. HAL은 시스템의 하드웨어 구성에 따라 다른 파일이 사용되며 XP 설치 시 시스템에 맞는 HAL을 선택해서 설치하게 된다. 설치 될 수 있는 HAL은 다음과 같다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
NTOSKRNL.EXE와 HAL.DLL은 윈도우 커널 하위 요소로 불리는 소프트웨어 구성요소들을 사용가능한 상태로 만든다. 윈도우 커널 하위 요소는 레지스트리의 설정값을 실행시키고 서비스를 시작시키고 장치 드라이버를 로딩시키기 위한 프로세스를 진행시킨다. 커널 하위 요소에 의해 초기화 되는 과정은 다음과 같다. 1) Object Manager 2) Executive 3) Microkernel 4) Security Reference Monitor 5) Memory Manager 6) Cache Manager 7) LPCS 8) I/O Manager 9) Process Manager | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
■ I/O MANAGER I/O MANAGER가 초기화되면 I/O MANAGER는 시스템에서 사용되는 모든 장치 드라이버 파일을 로딩시킨다. I/O MANAGER는 장치 드라이버 로딩 우선순위에 대한 정보를 모으고 이 정보에 따라 드라이버를 순서대로 하나씩 로딩시키게 된다. 만일 이 단계에서 오류가 발생하면 시스템이 재 부팅 되면서 마지막으로 성공한 구성값(Last Known Good Configuration)으로 다시 한번 부팅을 시도하게 된다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
■ SMSS(Session Manager Subsystem) SMSS는 윈도우에게 그래픽 인터페이스를 제공하는 사용자모드 환경을 만들어 주는 역할을 담당한다. 이 과정이 성공적으로 진행되면 이제 윈도우는 그래픽 환경에서 나머지 프로세스를 진행할 준비가 갖춰지게 된다.. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
■ WIN32KEY.SYS SMSS는 WIN32 그래픽 하위시스템을 실행가능하게 해 주는 WIN32KEY.SYS를 로딩시켜 실행하게 한다. WIN32KEY.SYS가 실행되면 시스템 화면이 그래픽모드로 나타난다. 서비스 하위시스템은 자동으로 실행되게 설정된 모든 서비스를 실행시킨다. 모든 드라이버와 서비스가 성공적으로 실행되면 윈도우는 부팅에 성공했다고 판단하고 지금까지 부팅에 사용 된 설정들을 마지막으로 성공한 구성값으로 레지스트리에 기록하게 된다. | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
■ LOG ON(winlogon.exe) 사용자 로그온 화면이 나타나며 이 로그온 박스는 대략적으로 네트워크 관련 서비스가 시작될 쯤에 화면에 보이게 된다. | ||||||||||||||||||||||||||||||||||
(userint.exe가 이용자 설정을 읽고 로그온이 제대로 되면 explorer.exe를 수행하면서윈도우 바탕화면을 그려낸다.) | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
■ 플러그 &플레이 장치 검색 로그온 과정의 시작과는 비동기적으로 PNP 장치 검색과정이 시작된다. 바이오스 정보, 하드웨어, 드라이버를 검색하고 새로운 장치가 존재하는 경우엔 이 장치를 사용할 수 있게 모든 설정을 해준다. 장치 드라이버가 필요한 경우엔 사용자에게 장치 드라이버를 요구하기도 한다. XP는 ACPI기능을 사용하는 경우 이 기능을 사용하는 장치의 원할한 사용을 위해 최적화된 환경을 구성해 주기도 한다. |
'시리즈' 카테고리의 다른 글
판매촉진,인적판매 그리고 판매관리의 과정 (0) | 2013.03.24 |
---|---|
양파의 효능, 맛있게 먹는 법 그리고 문헌 자료 (0) | 2013.03.22 |
다시 읽는 카프카(Franz Kafka 1883~1924 유대계 독일 작가)의 <변신> (0) | 2013.03.19 |
양파의 효능:거의 만병 예방약 (0) | 2013.03.18 |
영국의 정치:근대의회 민주주의의 발상지,모범적인 양당 정치,의원내각제,입헌 군주국 (0) | 2013.03.18 |