BIOS에 --linux 코어 설계 원칙의 연구 노트를 시작합니다

RAM : 임의 접근 메모리, 그 특징 RAM 메모리의 일반적인 유형이다 임의로 읽고 쓰는 능력에 따라, 정보는 정전 후에 사라진다.
RAM은 어떤 프로그램이 아닙니다했을 때, 누가 작업 부하 플로피 디스크 운영 체제를 완료?
대답은 : BIOS.

바이오스 원리를 시작합니다

BIOS가 메모리에 운영 체제를로드하는 방법을 살펴보기 전에, 우리는 먼저 BIOS 프로그램 자체가 시작되는 방법을 살펴 봅니다. 알고 컴퓨터를 사용하여 우리의 경험에서 : 프로그램을 실행하려면 윈도우에서 두 번 클릭하거나 명령 줄 인터페이스의 적절한 구현을 입력해야합니다. 실제로 운영 체제의 비주얼 인터페이스에서 프로그램을 실행하거나 명령 줄 인터페이스는 이미 실행 컴퓨터의 기본 메커니즘의 측면에서입니다. 그러나, 순간의 부팅 힘, 프로그램이 어떤 프로그램이 실행되지 않으며, 운영 체제의 사용자 인터페이스를 가지고하지, 어떤 운영 체제가 없을 수있는 대한 기억이 없다. 우리는 인위적으로 그것을 수행 할 BIOS 프로그램을 차례로 BIOS 프로그램을 실행할 수 없습니다?
비밀은 다음과 같습니다 0xFFFF0로! ! !

보기의 시스템 지점의 관점에서, 그 결론을 어렵지 않다 : 그것은 BIOS 소프트웨어 방법을 수행하는 것은 불가능하기 때문에, 그것은 단지 하드웨어 접근하여 수행 할 수 있습니다. 하드웨어 측면에서, 인텔 80X86 가족 CPU는 각 16 비트 리얼 모드와 32 비트 보호 모드에서 실행할 수 있습니다. 호환성을 위해, 그리고 시작의 문제를 해결하기 위해 시작하려면 CPU 하드웨어의 최신 모델을 포함한 인텔 80X86 시리즈의 모든 CPU는 전력 16 비트 리얼 모드 상태 작동에있다 할 수 있도록 설계되어있다. 동시에, CPU 하드웨어 로직 설계의 순시 전력 값 CS 0xF000로 설정된 강제 매우 중요한가, IP 값 0xFFF0로 설정되어,이 CS : IP는  1- 같이이 어드레스 0xFFFF0로 위치를 가리 키도록 도 1에 도시. 그것은 명확하게 그림 1-1는 BIOS의 주소 범위 0xFFFF0로 포인트에서 볼 수 있습니다.
바이오스 원리를 시작합니다
도 1-1 BIOS는 초기 상태와 메모리의 시작 위치에서 실행될

  • IP / EIP (명령 포인터) 명령 포인터 레지스터는 코드 세그먼트 오프셋 어드레스의 CPU에, 상기 명령의 메모리 어드레스가 실행될 명령어 레코드가 존재하고, CS는 수행되어야 할 조합이다. 실제 모드는 명령어 포인터 (16), 즉, IP의 절대 어드레스이다 보호 된 선형 주소 모드, 명령 포인터 (32), 즉, EIP이다.

  • CS (코드 세그먼트 레지스터) : 코드 세그먼트 레지스터는 CPU에 존재하는, 현재 실행 메모리 영역에서 CPU의 코드 포인트 (코드 메모리에 저장된 시작 주소를 정의).
    이 작업을 완료하는 순수 하드웨어 유의! 이 때 위치가 실행 코드가 아닌 경우, 그것은, 말을이 컴퓨터 충돌이 없었다. 이 위치에서 실행 코드가있는 경우 반대로, 컴퓨터는 함께 갈 수있는 후속 프로그램의 구현되었습니다, 여기에 코드를 시작합니다.
    BIOS 프로그램 항목의 주소는 정확하게 0xFFFF0로입니다! 즉, BIOS 프로그램의 첫 번째 명령은이 위치에 설계하는 것입니다.

추천

출처blog.51cto.com/14441798/2421406