Linux 커널은 컴퓨터 아키텍처에 대해 어떻게 알 수 있습니까?

Linux 커널은 컴퓨터 아키텍처에 대해 어떻게 알 수 있습니까?

에서 start_kernel()커널이 가장 먼저 하는 일은 실행이다 setup_arch(). setup_arch()지원되는 각 아키텍처에 대해 정의되므로 적절한 명령줄에 대한 포인터가 전달됩니다.

이 포인터는 어떻게 초기화되며, 커널은 언제 어떻게 컴퓨터 아키텍처를 얻습니까?

답변1

특정 커널은 단일 아키텍처용으로 구축되었으므로 단일 setup_arch.일반적인start_kernel이를 호출하지만 초기화된 포인터를 명령줄에 전달하는 대신 명령줄 포인터에 대한 포인터를 전달하고 setup_arch해당 포인터를 초기화하는 것이 작업의 일부입니다.

예를 들어,x86에는 전역 command_line변수 가 있습니다,그리고setup_arch 에서 제공하는 포인터에 주소를 저장합니다.start_kernel.

따라서 커널은 컴퓨터가 구축될 때 컴퓨터의 아키텍처를 효과적으로 캡처합니다.

관련 정보