2012-10-09 1 views
0

나는 리눅스 OS의 부팅 프로세스를 배우기 시작했다. 프로세서가 실행 한 첫 번째 프로그램은 BIOS입니다. instruction pointer의 내용이 무엇인지 알고 싶습니다. 마이크로 프로세서에 의해 실행되는 첫 번째 명령은 무엇입니까?리눅스 부팅 프로세스

더욱이이 BIOS 명령어는 실제로 main memory에 들어가서 실행됩니까? 그렇다면이 명령어가로드되는 곳은 starting address입니다. 그렇지 않다면, 그 (것)들을 기억으로 가져 오지 않는 이유는 무엇입니까?

이것들을 추가하면 interrupt vector table은 실제로 어디에 있습니까? RAM 또는 ROM ??

답변

2

참고 : 이것은 모두 x86 용입니다. 이는 다른 플랫폼에서 다를 수 있습니다.

명령어 포인터가 먼저 가리키는 것은, 음, 의존합니다. 일반적으로 프로세서는 재설정시이 값을 0으로 설정하지만 프로세서 및 궁극적으로 누가 그것을 만들었는지에 따라 정의됩니다. x86의 경우 0xFFFFFFF0 (source)으로 점프합니다. 여기에는 BIOS 코드의 유용한 부분으로 건너 뛰기 만하면됩니다.

그러면 BIOS가 시스템 설정을 시작해야합니다. 이렇게하려면 메모리가 현재 올바르게 초기화되지 않았으므로 ROM 칩에서 직접 실행됩니다. 이것은 플랫폼에 따라 다르지만 일반적으로 x86에서는 BIOS가 CPU를 캐시 모드로 설정하여 메모리를 설정하는 동안 임시 저장소를 허용합니다.

그런 다음 시스템의 나머지 부분을 설정합니다. 여기에는 메모리 (0x0) 및 기타 유용한 내용 (source 1, source 2)의 맨 아래에있는 IVT가 포함됩니다.

+0

감사합니다. 지금은 분명히 ... :) :) – nitish712

0

BIOS는 운영 체제와 아무 관련이 없습니다. 그것은 프로세서 아키텍처에 따라 다르며 이에 대한 답변을 찾으려면 특정 프로세서 개발자 안내서를 검토해야합니다.

x86 기반 컴퓨터의 경우 명령 포인터는 첫 번째 BIOS 명령의 시작 주소가 들어있는 ROM의 마지막 메모리 위치를 가리 킵니다. 점프 주소 프로세서를 사용하여 BIOS 루틴을 실행 한 다음 부팅 장치에 제어 장치를 넘깁니다.

+0

그래서, ROM의 마지막 메모리 위치에있는 명령어가 무엇인지 알고 계십니까 ?? – nitish712

+0

나는 그것이 점프 명령이라고 말했다 –

+0

그럼, 내 마지막 질문은 어떨까요 ?? IVT는 RAM 또는 ROM에 있습니까 ?? – nitish712