2013-09-03 1 views

답변

1

질문의 형식이 올바르지 않습니다. 물론 현대 CPU를 처음부터 초기화하는 데 필요한 모든 명령어가 gcc 단독으로 생성 될 수는 없으므로 일부 어셈블리를 사용해야합니다. 그러나 현대의 CPU가 실제로이 모든 것을 문서화하지 않고 대신 하드웨어 제조업체가 펌웨어를 제공하여 해당 작업을 수행 할 것으로 기대하기 때문에 일종의 학술적 사례입니다. 펌웨어를 초기화 한 후, 최신 PC는 구형 16 비트 8086 환경 ("레거시"BIOS) 또는 "EFI Boot Services"라는 환경 (사용자의 특정 하드웨어 플랫폼에 따라 다름)에서 32 또는 64 비트 환경을 유지합니다.

EFI 모드에서의 조작은 모두 C 함수 포인터를 사용하여 수행되며 사실 gcc를 사용하여이 환경을 구축 할 수 있습니다. EFI로 작업하는 훌륭한 예는 gummiboot 부트 로더를 참조하십시오.

+0

좋은 답변 주셔서 감사합니다. –

3

예, Linux 커널은 GCC로 컴파일되고 x86에서는 링 0에서 실행됩니다.

관련 문제