레이블이 booting인 게시물을 표시합니다. 모든 게시물 표시
레이블이 booting인 게시물을 표시합니다. 모든 게시물 표시

9/23/2008

windows XP 부팅 순서

** windows XP 부팅 순서

1. The system is powered up, the video is initialized, and the hardware self-tests are performed. The BIOS performs these tests, which are called POSTs (power-on self tests). Usually, the memory test is the most visible one; its progress is shown on most computer screens.

2. After running POST, the system initializes each adapter. If the adapter has its own built-in BIOS, the adapter's BIOS is called to perform its own initialization. For IDE adapters (most computers have either two or four IDE adapters), each connected drive(there may be up to two drives for each IDE adapter, allowing for a total maximum of eight IDE type drives) is queried for its specifications and access method.

Some adapters, such as Adaptec's SCSI adapters, display messages and allow the user to interact. Some adapters that don't have a BIOS aren't initialized until Windows XP loads their drivers much later in the boot-up process.

3. After all the adapters that have a BIOS have been initialized, the system boot loader reads in the sector located at the very beginning of the first bootable disk drive and passes commands to this code. This sector is called the boot sector, or the MBR(Master Boot Record), and it is written by the operating system when the operating system is installed.

4. The code in the MBR then loads the NTLDR file. (This file has no extension, thoughit is an executable file.) Once loaded, the MBR passes control to the code in NTLDR.

5. NTLDR then switches into 32-bit mode. (Remember, an Intel x86 processor always boots into 16-bit real mode.) It then loads a special copy of the necessary file systemI/O files and reads in the file boot.ini.

6. The file boot.ini has information about each operating system that can be loaded. Remember, Windows XP supports multiboot configurations. It is trivial to create a Windows XP installation that can boot Windows NT, Windows XP, and Windows 95 or Windows 98. The boot loader can even boot two different copies of Windows XP with either the same or different version numbers. NTLDR then processes boot.ini, displaying boot information that allows the user to select which operating system will be loaded. At this point, let's assume that Windows XP will be loaded.

7. When you select Windows XP to be loaded, NTLDR loads the file ntdetect.com. This program then collects information about the currently installed hardware and saves this information for the registry. Most of this information is stored in the HKEY_LOCAL_MACHINE hive.

8. Once NTDETECT has detected the hardware, control is passed back to NTLDR, and the boot process continues. At this point, the registry has been substantially updated with the current hardware configuration, which is stored in HKEY_LOCAL_MACHINE\Hardware.

9. The prompt to select the configuration is then presented. This prompt, "Press spacebar now to invoke Hardware Profile/Last Known Good menu," allows you to force Windows XP to use a specific configuration as stored in the registry hiveHKEY_LOCAL_MACHINE.

10. Following the detection of NTDETECT, NTLDR loads and initializes the Windows NT kernel, loads the services, and then starts Windows.

11. When the kernel is loaded, the HAL is also loaded. (The HAL—Hardware Abstraction Layer—is used to manage hardware services.) Next, the registry system subkey HKEY_LOCAL_MACHINE\_System is loaded into memory. Windows XP scans the registry for all drivers with a start value of zero. This includes those drivers that should be loaded and initialized at boot time.

12. You can see the beginning of the next stage, kernel initialization. The screen switches to a blue background, and you see a message about the Windows XP build number and the number of system processors. Again, the system scans the registry and finds all drivers that must be started at the kernel initialization stage.

13. From this point, Windows XP starts various components and systems. Each component and system reads the registry and performs various tasks and functions. In the final stage, the program that manages the user logon, WinLogon, starts. WinLogon allows the user to log on and use Windows XP.

1/05/2007

[win98] windows98 booting

- 하드디스크 곳곳에는 부팅에 관련된 파일이 숨겨져 있다.
부팅이란 '부트스트랩(Bootstrap)'을 편의상 줄인 말로, 컴퓨터를 동작하는 데 필요한 프로그램이나 과정을 의미한다. 좀더 구체적으로 말한다면, PC 전원이 켜진 후 장착된 하드웨어를 검사하고 운영체제가 로딩되는 과정을 뜻하는 것이다. 부트스트랩은 본래 부츠를 신기 위해 잡아당기는 가죽 조각(손잡이)을 가리키는 것으로, 구형 자동차에서 엔진에 시동을 걸 때 사용된 가죽끈에서 유래되었다는 설도 있다.

* 부팅은 크게 두가지 과정을 거친다.
- 바이오스에서 검사하는 POST(Power On Self Test)와 운영체제가 시작되는 로딩 과정이다. 메인보드 안에 내장된 롬 형태의 바이오스는 전원이 켜지면 메모리의 용량과 이상 유무를 확인하고 그래픽 카드가 이상 없는지 확인한다. 이어서 입출력 포트와 하드디스크, 플로피 드라이브를 검사한다. 이 때 만일 바이오스에 기억된 정보와 다른 점이 발견되면 모니터 화면이나 스피커의 비프음을 통해 경고 메시지를 알려준다. 하드웨어적으로 이상이 없으면, 바이오스는 하드디스크의 부트 섹터를 찾아 부팅 파일을 메모리로 불러들인다. 이 때 플로피디스크가 일차 부팅 드라이브이면 플로피디스크부터 읽고, 다음에 하드디스크를 읽는다. 만일 하드디스크에서도 부팅 파일을 찾지 못하면 에러 메시지를 내고 부팅 파일을 요구한다. 부팅 파일을 메모리에 적재한 후에는 command.com과 config.sys, autoexec.bat 파일을 불러 그 안의 명령대로 관련 드라이버를 메모리에 로딩한다. 마지막으로 윈도 98을 실행할 win.com이 실행되면 부팅이 완료되며 운영체제가 명령권을 인수한다.

* 부팅 과정
- PC에 전원을 켜면 7단계의 과정을 거쳐 부팅이 이루어진다. 전체 과정 중 1번부터 5번까지는 POST라고 한다.

1. 전원 켜기
2. CPU 초기화
3. 그래픽 카드 검사
4. 메모리 검사
5. 입출력장치 검사
6. 부팅 파일 찾기
7. 부팅 파일 메모리 적재

- 바이오스(BIOS) : 'Basic Input/Output System'의 약자로, 키보드, 마우스, 디스크, 모니터 등 기본적인 입출력장치에 대한 제어 및 관리를 한다. 바이오스는 소프트웨어이지만 칩 안에 내장된 펌웨어 형태로 존재한다.

* io.sys
- io.sys는 '리얼 모드 운영체제 파일'이라고 부른다. POST 과정이 끝나면 바이오스는 부트 섹터에 있는 io.sys 파일을 우선적으로 불러들인다. 부팅 파일 중 최전선에 있는 셈이다. io.sys는 과거 도스에서는 하드웨어의 제어에서 데이터 입출력을 담당했지만, 윈도 98에서는 msdos.sys와 io.sys의 역할을 모두 하고 있다. 여기에는 도스에서 config.sys와 autoexec.bat가 하는 역할도 포함되어 있다. 이런 이유로 config.sys나 autoexec.bat 파일에 특별한 지정을 하지 않아도 최적의 환경으로 부팅이 가능하다.
io.sys는 사용자가 함부로 수정할 수 없는 파일로, 메모리에 로딩될 때 himem.sys나 ifshlp.sys, setver.exe, dblspace.bin의 드라이버를 함께 로딩한다. io.sys에 포함된 항목을 수정하려면 config.sys나 autoexec.bat 파일을 사용해야 한다. 다음은 io.sys에 포함된 항목과 그에 대한 설명이다.
himem.sys : 하이 메모리 영역(HMA: High Memory Area)을 사용할 수 있는 드라이버이다. 연장 메모리(Extended Memory)의 65KB 부분인 HMA를 사용하므로 기본 메모리를 절약할 수 있다.
dos=high : himem.sys로 하이 메모리를 사용할 때에는 dos=high 문을 사용하여 활성화시켜야 한다. io.sys에서는 config.sys 파일에 EMS386을 사용할 경우 자동으로 dos=umb 문도 추가된다.
ifshlp.sys : 리얼 모드 파일 시스템과 네트워크 관련 API를 지원하는 드라이버로, 설치 가능 파일 시스템 관리자(Installable File System Manager)에 의해 관리된다. 이 드라이버로 인해 윈도의 32비트 파일 지원이 가능하다.
setver.exe : 일부 도스 프로그램들은 버전이 맞아야만 실행되는 경우가 있다. 이 때 setver.exe를 사용하면 프로그램의 버전에 맞춰 실행되도록 한다. 이 경우 setver.exe가 로딩되어야 한다.
Files= : 프로그램이 한 번에 처리할 수 있는 파일의 수를 정의한다. 기본값은 '60'으로 너무 수가 적으면 프로그램을 실행할 수 없고, 너무 크면 메모리를 낭비한다.
Lastdrive= : 윈도에서 사용할 수 있는 드라이브의 이름을 지정한다. 기본값은 'Z'로 C, D, E 등의 드라이브 이름을 Z까지 사용할 수 있다는 의미이다. 마지막 드라이브 이름을 바꾸려면 config.sys에서 수정하면 된다.
Buffers= : 데이터를 읽어들이는 버퍼의 크기를 지정한다. 윈도 98에서는 필요 없지만 도스 호환 프로그램에서는 필요하다. 기본값은 '30'이며, 이 값이 크면 역시 메모리를 낭비한다.
Stacks= : 스택은 하드웨어 인터럽트를 저장하는 메모리 공간이다. 윈도 98에서는 필요하지 않지만 일부 프로그램과의 호환성을 위해 io.sys에 포함된다. 기본값은 '9,256'으로, 256KB의 9개 스택을 사용한다는 의미하다. 역시 너무 많은 스택 지정은 메모리 낭비를 가져오며, 너무 적으면 에러 메시지가 나타난다.
- 로딩(Loading) : 프로그램이나 데이터를 불러들이는 작업. 문서를 편집하기 위해 문서 파일을 불러들이거나 메모리에서 연산할 데이터를 불러들이는 과정을 말한다.
- API(Application Program Interface) : 소프트웨어 호환성을 유지하기 위한 규약이다. 게임이나 그래픽 프로그램에서 하드웨어를 제어하고자 할 때 각 프로그램 업체가 직접 제어장치를 만들지 않고 공통 API를 거쳐 손쉽게 개발할 수 있다.

* msdos.sys
- msdos.sys는 '특수한 시작값'이라고 부른다. 도스에서는 메모리 관리, 시스템 호출 등의 기능을 하는 중요한 부팅 파일이었지만, 윈도 98에서는 부팅시 옵션을 조정하는 정도로 사용된다. 특히 msdos.sys 파일은 사용자가 수정할 수 있어 부팅시 다양한 설정이 가능하다.
사용자가 직접 msdos.sys 파일을 수정하려면, 읽기 전용과 숨김 속성을 '기록'으로 바꾼 후 수정해야 한다. 수정 후에는 다시 읽기 전용과 숨김으로 속성을 되돌린다. 이 때 파일 아래의 반복되는 문자열은 건드리지 말아야 한다. 이 문자열은 파일 크기를 맞추기 위한 것으로, 이를 삭제하여 파일 크기가 변경되면 부팅되지 않을 수도 있다. 다음은 msdos.sys에 사용되는 섹션과 항목 설정 방법이다.

[Paths] 섹션
- HostWinBootDrv= : 부팅되는 드라이브의 루트 디렉터리를 지정한다. 일반적으로 'C'로 지정하면 된다.
- WinBootDir= : 부트 디렉터리를 지정한다. 일반적으로 'C:\Windows'이다.
- WinDir= : 윈도 98이 설치된 디렉터리를 지정한다. 기본값은 'C:\Windows'이다.

[Options] 섹션
- Autoscan= : 부팅시 디스크 검사를 하는 항목이다. 기본값은 '1'로, 'Autoscan=1'이라고 지정하면 디스크 검사를 하겠냐는 메시지가 나온 후 디스크 검사를 한다. 반대로 '2'로 지정하면 메시지가 나오지 않고 자동으로 디스크 검사를 한다. '0'의 경우 디스크 검사를 하지 않는다.
- BootDelay= : 부팅시 'Starting Windows' 메시지가 나타난 후 기다리는 시간이다. 부팅시 키를 눌러 부팅 메뉴로 들어갈 때 시간을 확보하기 위한 것으로, 기본값 '2'는 2초 동안 기다린다는 의미이다. '0'으로 지정하면 키를 누를 시간을 주지 않는다. 이 경우 부팅 시간은 단축되지만 부팅 메뉴에서 안전 모드로 들어갈 수 없다.
- BootGUI= : 부팅을 윈도 모드로 할지 정한다. 기본값은 '1'로 일반적인 윈도 98 환경으로 부팅된다. 만일 '0'으로 지정하면 도스처럼 부팅된다. 물론 부팅 후 'win'을 입력하면 윈도 98이 시작된다.
- BootKeys= : 부팅시 기능키 사용 여부를 지정한다. 기본값은 '1'로 부팅 중 , 등의 기능키를 눌러 부팅 메뉴를 호출할 수 있지만, '0'으로 두면 기능키를 눌러도 동작하지 않는다. 이 때에는 BootDelay= 기능도 사용할 수 없다.
- BootMenu= : 부팅시 부팅 메뉴를 보여준다. 기본값은 '0'으로, 이 경우 부팅시 키를 눌러야 부팅 메뉴를 볼 수 있다. 만일 '1'로 지정하면 부팅할 때마다 부팅 메뉴를 보여준다.
- BootMenuDefault= : 부팅 메뉴의 기본 항목을 선택한다. 뒤에 붙이는 번호에 따라 부팅 메뉴에서 메뉴 번호에 반전이 된다. 기본값은 '3'으로 안전 모드로 부팅된다. 값을 '1'로 하면 일반 모드로 부팅하도록 지정할 수 있다.
- BootMenuDelay= : 부팅 메뉴 지연 시간을 지정한다. 기본값은 '30'으로, 30초 동안 부팅 메뉴가 나타나며, 30초 이후에는 자동으로 선택된 메뉴로 부팅된다.
- BootMulti= : 이전 도스 모드로 부팅할 수 있게 한다. 기본값은 '0'이며, 부팅 메뉴에서 이전 도스 모드를 표시하지 않는다. 하지만 '1'로 지정하면 마지막 메뉴에 이전 도스 모드가 나타난다. 참고로, 이전 도스 모드는 도스에서 윈도 98을 설치할 경우에만 사용할 수 있다. 윈도 98만 설치된 PC에서는 이 항목을 '1'로 지정해도 이전 도스 모드 메뉴를 볼 수 없다.
- BootWarn= : 안전 모드로 부팅에 성공하였을 경우 경고 메시지 창을 보이게 한다. 기본값은 '1'이다.
- DblSpace= : 압축된 디스크 드라이브를 사용하기 위한 드라이버(dblspace.bin)를 로딩할 것인지 결정한다. 기본값은 '1'이며, 디스크 압축을 사용하지 않는다면 값을 '0'으로 설정하여 로딩되지 않도록 해야 한다.
- DrvSpace= : DblSpace와 마찬가지로 압축된 디스크 드라이브를 사용하기 위해서 메모리에 로딩되는 드라이버이다. drvspace.bin 파일을 로딩하며, 기본값은 '1'이다. 역시 디스크 압축을 사용하지 않는다면 값을 '0'으로 준다.
- Logo= : 시스템 시작시 움직이는 윈도 98 로고가 표시되도록 한다. 기본값은 '1'이며, '0'으로 설정하면 로고가 보이지 않는다.

[winxp]xp booting 순서

1. Ntldr은 Boot.ini 파일을 읽어 어떤 운영체제로 부팅할지 결정한다.

2. Ntdetect.com 파일을 실행하고 하드웨어를 검색한다.

3. Ntldr은 다시 화면을 모두 지우고 윈도우 XP 시작을 준비하는 과정을 거친다. 화면 아래쪽에 화살표 모양으로 진행 상태를 나타낸다.

4. 윈도우 XP 커널 모드를 구성하는 파일을 읽어들인다.

5. 레지스트리에서 장치 관리자에 대한 정보를 읽어와 어떤 장치 드라이버가 필요한지 찾는다.

6. 부트 드라이버를 읽어들인 다음 Ntoskrnl.exe를 실행한다.

7. 사용자 이름과 암호를 입력한다. 레지스트리 구성이 마무리 되고 시스템 환경 설정 작업이 끝나면 로그온 프로세스(Winlogon.exe)를 시작한다.