대부분의 임베디드 시스템은 온보드 부트로더와 함께 제공된다. 부트로더(Bootloader)는 컴퓨터 시스템 또는 임베디드 시스템을 시작하는 데 사용하는 프로그램이다. 부트로더는 JTAG과 같은 특수 하드웨어를 사용하지 않고도 시스템을 업데이트할 수 있도록 도와준다. 이를 통해 소프트웨어 업데이트시마다 서비스 센터를 찾아가지 않아도 되는 이점이 있다. 부트로더는 임베디드 시스템의 무결성을 확인하는 가장 빠른 시점이 될 수도 있다. 이는 부트로더가 시스템 이미지를 관리하기 때문이다.
임베디드 부트로더는 다양한 크기와 특징을 가지고 있다. 요구사항에 따라 부트로더 상태도 UART, CAN, I2C, Ethernet, USB와 같은 다양한 프로토콜을 통해 통신할 수 있으며, 두 개 이상의 어플리케이션 이미지를 가지고 있으며 시스템 동작과 동시에 업데이트를 시도할 수 있다. 부트로더를 통해 제품을 출시한 이후에도 기능을 추가하거나 시스템 버그를 수정할 수 있다.
부트로더는 주로 아래의 기능들을 수행한다.
1. 하드웨어 초기화 : 시스템의 하드웨어를 초기화하고 구성하여 운영체제가 올바르게 작동할 수 있도록 준비한다. 이는 프로세서, 메모리, 입출력 장치 등의 초기화를 포함할 수 있다.
2. 부트스트랩 로더 (Bootstrap Loader) : 실제 운영체제 이미지를 로드하기 위한 부트스트랩 로더 역할을 수행한다. 이를 통해 부트로더는 저장 장치(하드 디스크, 플래시 메모리 등)에서 운영체제 이미지를 찾아 메모리로 복사한다.
3. 부트로더 설정 및 구성 : 시스템 구성이 필요한 설정 정보를 읽고 적용한다. 예를 들어, 부트로더는 부트 옵션, 부팅 우선 순위, 디바이스 드라이버 등을 설정할 수 있다.
4. 보안 기능 : 일부 부트로더는 시스템의 보안을 강화하기 위해 암호화, 인증, 무결성 검사 등의 보안 기능을 제공한다. 이를 통해 부트로더는 악의적인 소프트웨어나 변경된 운영체제를 감지하고 대응할 수 있다.
5. 업데이트 및 복구 : 운영체제 또는 펌웨어의 업데이트를 지원하며, 문제가 발생한 경우 시스템을 복구할 수 있는 기능을 제공한다. 이를 통해 소프트웨어 업데이트나 시스템 수정이 용이해진다.
'Embedded : : Linux > : : Bootloader' 카테고리의 다른 글
Boot Sequence in Android (0) | 2024.11.01 |
---|