first.S에서 초기에 Ox9A000로 이동하는 이유

송형주 2007.03.13 03:00 조회 수 : 2595 추천:136

저번 토요일에 분석 first.S를 분석한 내용 중에

first.S는 BIOS에 의해 0x07C00으로 처음에 로딩이 되지만,
0x07C00에서 0x9A000으로 복사를 합니다.
그후 점프를 한 곳 이후의 코드를 계속 진행했었죠??


왜 이럴까 궁금해서 찾아보니까.. 다음과 같은 이유가 있네요..


출처 : http://www.kernelman.com

----------------------------------------------------
first.S에서 초기에 Ox9A000로 이동하는 이유
----------------------------------------------------

이렇게 복제하는 이유는 다른 OS로 멀티 부팅시 0x07c00 주소를
사용하기 때문입니다. 2장 3절‘MS-윈도우즈의 부팅의 경우' 는
리눅스와 윈도우즈를 멀티 부팅시 윈도우즈를 선택한 경우를
설명하고 있읍니다.
과정을 살펴보겠읍니다.

----------------------------------------------

lilo 설치시 MBR에 있는 윈도우즈의 bootsect는 /etc/boot.0300
에 보관된다.

1) boot: 프롬프트에서 '윈도우즈'를 선택하면 second.S는
boot.0300를 0x90400에 로딩한다.

2) 이때 chain.S 도 로딩되어 제어가 chain.S로 넘어간다.
(프롬프트에서 '리눅스' 를 선택하면 second.S는 setup.S를
로딩하여 setup.S 로 제어가 넘어간다.)

3) chain.S는 윈도우즈 bootsect를 0x07c00에 복사한다. 이후
0x07c00로 제어가 넘어가 윈도우즈 부팅이 이루어진다.

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 커널 스터디 관련 Q&A 게시판 입니다. [5] woos 2016.04.09 2200
» first.S에서 초기에 Ox9A000로 이동하는 이유 송형주 2007.03.13 2595
44 저번주 스터디 내용 좀 정리해 주세요. [3] 정필섭 2007.03.12 4521
43 제가 참고한 자료들입니다. [3] file 김종화 2007.03.12 4808
42 PPC 제본한거 남은거 있나요? [1] 원민수 2007.03.12 4605
41 지난시간에 약간 모호했던 부분중... 선준규 2007.03.11 2643
40 lilo 21.4.4 source 파일입니다. file 송형주 2007.03.11 2567
39 3월 10일 LKSAS 세번째 모임 수고 하셨습니다. 강형석 2007.03.11 2856
38 메일링 리스트 만들었습니다. 유상민 2007.03.11 2654
37 lilo 분석 링크 유상민 2007.03.11 3329
36 AAA ~ AND 까지 입니다. 박경태 2007.03.10 8491
35 아~ RGB 케이블 찾았습니다. 강형석 2007.03.10 2506
34 늦었지만 지난주 Instruction ANDPD ~ BTS 강석천 2007.03.10 4053
33 volume 1. LIDT ~ LODS 입니다. 늦어서 죄송합니다;; 선준규 2007.03.10 2786
32 Vol.1의 CMPS ~ CVTPD2PS 입니다. 늦어서 죄송합니다. file 지현구 2007.03.10 64225
31 제가 ppc 책 없었는데 책 파신분요. 유태경 2007.03.10 4710
30 분담 5(PREFETCHh ~ RCL/RCR/ROL/ROR) 입니다. 늦어서 죄송합니다 file 지현구 2007.03.10 6260
29 저한테 저번주에 할당되어 있던 Instruction올립니다. 남용우 2007.03.09 3767
28 vol2의 분담3과 vol1 명령어입니다. 이종우 2007.03.09 3810
27 명령어 정리 - 늦어서 죄송.. 송형주 2007.03.09 14528
26 Instruction 정리. 남현우 2007.03.09 4745
XE Login