방금퇴근하고 복습했다. 여전히 뻘글 천지구나.
NIN 은 참고해봐.
x86, 32비트 계열의 부트스트랩 과정은 다음과 같아.
1.power on 이나 reset 후에 cpu는 항상 real mode 에서 시작한다.
2.real mode로 시작한후, 바로 BIOS로 jump 한다.
3.BIOS는 셀프테스트후(메모리 테스트등) , 첫번째 디스크의 첫번째 섹터(512바이트) 를 0x7C00:0000 번지에 로딩한다.(부팅오더가 플로피나 하드디스크가 첫번째라고 가정함)
4.BIOS는 0x7C00:0000 번지로 jump 한다.
따라서, 512바이트 부트스트랩코드를 어떤방법을 쓰던지간에 디스크의 첫번째 섹터에 복사한후, 부팅시키면 , 니가 작성한 512바이트 부트섹터 코드가 cpu 제어를 얻을수 있어. 그때부터 PC는 너의 것이 되지.
보다 정확한 spec은 IA-32 문서를 보면 돼. 인텔사가면 받을수 있어.
예전엔, 요청하면 공짜로 책을 보내줬는데, (졸라 두꺼운거 3권이다)
요즘은 모르겠네. 한번 알아봐.
ps. 오늘도 떡밥을 던지고 자려고 했는데, 너무 피곤해서, 이만 잔다. 수고들해라
NIN 은 참고해봐.
x86, 32비트 계열의 부트스트랩 과정은 다음과 같아.
1.power on 이나 reset 후에 cpu는 항상 real mode 에서 시작한다.
2.real mode로 시작한후, 바로 BIOS로 jump 한다.
3.BIOS는 셀프테스트후(메모리 테스트등) , 첫번째 디스크의 첫번째 섹터(512바이트) 를 0x7C00:0000 번지에 로딩한다.(부팅오더가 플로피나 하드디스크가 첫번째라고 가정함)
4.BIOS는 0x7C00:0000 번지로 jump 한다.
따라서, 512바이트 부트스트랩코드를 어떤방법을 쓰던지간에 디스크의 첫번째 섹터에 복사한후, 부팅시키면 , 니가 작성한 512바이트 부트섹터 코드가 cpu 제어를 얻을수 있어. 그때부터 PC는 너의 것이 되지.
보다 정확한 spec은 IA-32 문서를 보면 돼. 인텔사가면 받을수 있어.
예전엔, 요청하면 공짜로 책을 보내줬는데, (졸라 두꺼운거 3권이다)
요즘은 모르겠네. 한번 알아봐.
ps. 오늘도 떡밥을 던지고 자려고 했는데, 너무 피곤해서, 이만 잔다. 수고들해라
오 굿~~ 제일 처음엔 F000:FFF0에 있는 바이오스 루틴을 기계적으로 동작시키고 이후에 부트스트랩코드가 512바이트만큼 07C0:0000에 복사돼서 실행하는구나 ㅋㅋ 대답해준 형들 고마웡