OS안의 OS - 멀티부팅 시스템 만들기

현재 대부분의 사용자들의 운영체제는 MS사의 Windows 시리즈 이다. 가장 뒤늦게 대대적으로 광고를 하며 발표된 Windos XP 또한 95의 발표 때 보다는 폭발적인 인기를 누리지 못했지만 (한국 MS의 이상한 논리의 가격 문제와 인증 문제에 발목을 잡히며 유저들의 반감이 더더욱 증폭되었다)  ì‹œê°„이 지나면서 XP의 흐름에 동참해가고 있는 것이 마치 가랑비에 옷 젖는 줄 모르는 것 같다.

하지만 상당한 시스템 자원 (늘 그렇듯 최소요구 사항의 2.5ë°° 정도는 되어야 한다)을 요구하며 약간은 무거운 듯한 그러나 9X시리즈 보다는 높은 안정성과 화려한 인터페이스를 보여주는 XP에 손을 들어줄 수도 있으나 출시 된지 상당한 시간이 흘러 원숙미와 가벼움으로 게임에서는 여전히 가장 뛰어난 퍼포먼스로 무장하고 있지만  ì´ë¯¸ 단종 발표 소식이 들려오는 98SE도 여전히 매력적이다.

나름대로의 장단점이 존재 하는 관계로 동시에 여러 가지 운영체제를 구축할 수는 없을까?

이처럼 두 가지 아니 그 이상의 OS를 하나의 물리적인 하드디스크에 사용할 수 있는 방법이 있다. 즉 듀얼 멀티부팅 시스템을 만드는 방법이다. (아마도 많은 유저들이 멀티OS시스템을 사용하고 있을 것이다)

▣ 멀티 OS 시스템의 장점이라면

1. 여러 OS의 활용으로 PC의 활용을 초극대화

2. 파일 시스템, 파티션, 이 기종간의 네트워크의 이해

3. 다양한 OS에서의 랭귀지 실습

4. 극도의 호기심 해결

첫 번째로 상용 S/W를 이용하는 방법이 있다. 예로  íŒŒì›Œí€˜ìŠ¤íŠ¸ì‚¬ì˜ PartionMagic내에 독립적인 유틸리티로 존재하는 BootMagic을 사용하는 방법이 있다.

 PartionMagic7

두 번째로 H/W적인 방법이 있다. 하드디스크 셀렉터를 구입 또는 자작하거나 가장 안전하고 든든하게 추가적인 하드디스크와 하드랙을 구입해서 사용시마다 번갈아가며 사용하는 방법이 있지만 추가비용이 많이 든다는 아주 치명적인 단점이 있다.

세 번째로 가장 보편적으로 사용하는 OS자체 내에서 제공하는 Windows 제품군에서는 부트로더(boot loader)로 리눅스를 사용한다면 리로(LILO)를 사용하게 된다. 단점이라면 부트 파티션에 문제가 생겨서 포맷하게 된다면 로더와 리로를 재설정 해주는 번거로움이 있다.

많은 유저들이 98과 XP 또는 2000과 XP를 듀얼로 사용하고 있다는 생각에서 잠시 파일들의 역할과 부팅과정을 알아보기로 한다. (이하 Windows는 NT라 칭한다)

· Ntldr : 시스템이 처음 시작되면 NT를 불러들이는 역할을 수행한다.

· Boot.ini : 부트 메뉴를 통해서 사용자가 선택할 수 있도록 하는 정보를 담고 있는 텍스트 파일이다.

· Bootsectdos: 부팅이 NT가 아닌 다른 운영체제가 선택되어질 때 파티션 정보를 담고 있는 파일이다.

· Ntdetect.com: 하드웨어를 검색하고 ê·¸ 정보를 레지스트리에 기록하는 실행파일이다.

· Ntbootdd.sys: 바이오스가 없는 스카시 컨트롤러에 연결된 디스크에서 NT가 부팅되는 경우를 위한 파일이다.

· Ntoskrnl.exe: 커널을 메모리에 적재하는 역할을 한다.

부팅절차

1. Post(Power Self On Test): 부팅하게 되면 시스템 자체적으로 검사작업을 수행한다.

2. 바이오스가 시스템을 제어하고 하드디스크의 MBR(Master Boot Record)를 읽게된다.

MBR: 운영체계가 어디에 어떻게 위치되어 있는지에 관한 정보로 하드디스크에 첫 번째 섹터에 저장되며 부팅시 가장먼저 MBR을 체크하고 넘어가게 된다. 로더와 리로 파일이 이곳에 저장되게 된다.

3. 부트섹터에 존재하는 Ntldr이 실행되고 운영체제가 로드되며 이때 바이오스는 Ntldr에게 시스템 제어권을 넘겨준다.

4. Ntldr은 boot.ini 파일을 읽어서 부트 메뉴를 보여주게 되며 드라이버들을 로드하게 된다.

5. 사용자가 부트메뉴에서 NT를 선택하게 되면 Ntdetect.com을 실행시켜 시스템에 존재하는 하드웨어 드라이버들을 로드하게 된다. NT가 아닌 운영체제(95, 98, DOS)를 선택시 Bootsect.dos를 읽게 되며  í•´ë‹¹ 운영체제에 관한 정보를 전달하고 제어권은 넘겨주게 된다.

6. Ntdetect.com이 하드웨어에 관한 정보를 가지게 되면 이 정보는 HKEY_LOCAL_MACHINEHARDWARE 레지스트리에 기록되게 되며 제어권을 Ntldr에게 넘긴다.

7. ntldr는 시스템에 대한 권한을 커널에 넘기고 커널은 시스템 하이브에 있는 정보를 읽어 들여서 우선순위에 따라 필요한 시스템과 드라이버들을 메모리에 적재하게 된다.

8. 위의 과정으로 부트작업은 마치게 되며 로딩과정이 시작된다.

9. 로딩과정이 시작되면 커널은 초기화 되고 서비스 매니저를 시작으로 페이지 파일을 설정하게 된다.

10. winlogon 프로세서 실행으로 유저로 시스템에 로그온 할 수 있게 한다.

 


케이벤치 많이 본 뉴스