부트로더

2019. 4. 29. 17:56임베디드/임베디드리눅스

임베디드 리눅스 시스템에서 부트로더는 시스템을 기본 수준으로 초기화하고 커널을 로드하는 두 가지 주요 작업을 수행한다

 

전원을 켜거나 리셋한 뒤 부르토더 코드의 첫 줄이 실행됐을 때, 시스템은 아주 최소 상태에 있다

DRAM 컨트롤러가 시작되지 않았기 때문에 주 메모리에는 접근할 수 없다. 마찬가지로 다른 인터페이스에도 구성되지 않았기 때문에 NAND 플래시 컨트롤러, MMC 컨트롤러 등을 통해 접근하는 저장소도 사용할 수 없다

흔히 처음에 동작하는 자원은 CPU 코어와 약간의 온칩 정적 메모리뿐이다

 

결과적으로 시스템 부트스트랩은 여러 단계의 코드로 이뤄지고, 각각은 시스템의 더 많은 부분을 작동시킨다. 부트로더의 마지막 동작은 커널을 램에 로드하고 그를 위한 실행환경을 만드는 것이다

 

부트로더는 커널과의 인터페이스에서 두 가지 일을 수행한다

1. 하드웨어 구성 정보를 담고 있는 구조체의 포인터를 전달한다

2. 커널 커맨드라인의 포인터를 전달한다

 

COPYRIGHT 임베디드 리눅스 프로그래밍 완전정복 / 크리스 시먼즈