부팅시에...?
글쓴이: kkojiband / 작성시간: 일, 2003/07/06 - 12:57오후
매일 쓸데없는(?) 질문만 드립니다...
왠지 자세히 모르면 아무것도 모르는 것같은 느낌이 들어서요...--;
ibm pc 는 부팅시에 bios 가 컴퓨터 실행을 위한 초기화를 실행하는걸로 알고 있습니다...
메모리 최하단부에 인터럽트 벡터 테이블을 만들고, 사용할 변수들을 설정하고, f000:0000h~ffffh에 bios 자신을 올리고 등등...
근데 이런 실행을 하는건 대체 뭐죠?? cpu 의 실행은 메모리에 올라있는 명령어들에 대한 cs:ip 구조로 되어있는걸로 알고 있는데, 초기화되기전에는 이런 구조가 불가능하지 않나요?
bios 에 있는 명령어들을 cpu 가 바로 실행을 할수있는건지, 아님 따로 이런 초기화를 해주는 무언가(?)가 있는건지...요?
하드웨어쪽 괜찮다하는 책들을 몇권 보고 있는데 이렇게 자세한 내용들은 없네요...혹시 아시는 분 좀 도와주세요~
아...그리고 한 가지만 더 물어볼께요...T.T
요즘 하드 디스크들은 chs, lba mode 모두 지원하나요? 아니면 lba mode 만 지원하는데, bios 나 이런것들이 chs 를 받아들여서 lba 로 변환해서 하드 디스크를 읽는건가요??
Forums:
....................
x86 cpu에 전원이 인가되면 가장 먼저 실행되는 명령어 주소가
ffff:0입니다. 대부분 여기 bios 초기화 부분에 대한 점프코드가 들어 있죠.
(cs=0xffff, ip=0으로 세팅된 뒤에 명령어의 실행이 시작되죠)
한번 도스에서 jmp 0ffffh:0000 명령 하나만들어 있는 com 파일 만들어서
해보세요. 진짜 재부팅됩니다.
그리고 lba chs 변환은 bios가 다 해줍니다. 하드디스크 컨트롤러에서도
자동으로 해주고요. 다만 리눅스 커널같이 direct 접근을 하는 경우에는
lba chs 접근에 대한 구현을 다 할 필요가 있습니다.
Written By the Black Knight of Destruction
댓글 달기