파다 평범일상
임베디드 시스템과 툴체인, 호스트와 타겟, 크로스 컴파일의 개념 본문
임베디드 시스템 (Embeded System)
보통 우리가 쓰는 데스크탑과 노트북은 범용 컴퓨터이지만, 임베디드 시스템 (Embeded System)은 딱 한 가지 일을 잘하기 위해 존재하는 컴퓨터이다.
- 자동차의 브레이크 제어 장치 (ABS ECU)
- 전자렌지 안의 온도 제어 시스템
- 엘레베이터 층 선택 버튼 제어기
임베디드 시스템은 특화된 하드웨어에 전용 소프트웨어가 결합된 장치라고 생각할 수 있다.
툴체인 (Toolchain)
툴체인은 소프트웨어를 만들기 위한 도구들의 조합이다.
컴파일러 (Compiler) | C/C++ 코드를 기계어로 번역 |
어셈블러 (Assembler) | 어셈블리어 → 기계어로 변환 |
링커 (Linker) | 여러 코드 조각을 하나로 연결 |
디버거 (Debugger) | 코드를 타겟에서 추적하고 분석 |
objcopy/objdump | 바이너리 포맷을 변환하거나 분석 |
호스트 (Host)와 타겟 (Target)
호스트 (Host)는 개발자가 실제로 코드를 작성하고 컴파일하는 개발용 컴퓨터 환경을 의미한다. 일반적으로 Windows, Linux가 설치된 데스크탑이나 노트북 또는 도커환경이 될 수 있다. 이런 환경에는 IDE, 컴파일러, 디버거등 다양한 개발 도구를이 설치되어 있다. 이러한 호스트 환경에서 소스 코드를 작성하고, 툴체인을 사용하여 타겟에서 동작할 바이너리 코드를 생성한다.
타겟 (Target)은 호스트 (Host)에서 생성한 바이너리 코드가 실제로 실행될 임베디드 시스템 또는 디바이스를 의미한다. 훨씬 제약된 환경을 가지고 있으며 CPU 구조, 메모리 용량, 주변장치 구성 등이 호스트와는 다를 것이다.
개발자는 둘의 환경이 다르다는 것을 인식하고, 호스트 환경에서 코드를 작성하고 크로스 컴파일을 통하여 타겟 전용 바이너리를 생성한다. 호스트는 개발의 출발점, 타겟은 코드의 실행 지점이라고 볼 수 있다.
크로스 컴파일 (Cross Compile)
호스트에서 만든 프로그램을 타겟에서 실행하려면, 그 구조에 맞는 방식으로 코드를 변환해 줘야 한다. 개발 중인 호스트에서, 타겟 시스템에서 실행 가능한 실행 파일을 만드는 과정을 크로스 컴파일이라고 한다. 이 작업을 하기 위해서는 툴체인이 필요하다.
'컴퓨터 IT' 카테고리의 다른 글
차량용 인포테인먼트(IVI, In-Vehicle Infotainment) 보안 솔루션 개발에 필요한 내용들 (1) | 2025.04.15 |
---|---|
벨킨 (belkin) 부스트업 140W 멀티 4포트 GaN PD 3.1 고속 충전기 WCH014kr (0) | 2025.01.24 |
팔얼블 (8BitDo Ultimate Bluetooth Controller NS, 닌텐도 스위치 버전) (0) | 2025.01.12 |
리눅스 파일시스템 (Linux File System) (2) | 2024.10.20 |