- 임베디드 시스템: 내부에 Computer가 들어있는 제품 혹은 시스템
- 일반적인 계산 목적이 아니라 특별한 임무를 위한 시스템
- 목적에 알맞은 Processor의 특징에 의존한다
-
Hardware:
- SoC(System on Chip)
- Memory(DRAM)
- Flash(NOR/NAND)
- Ethernet Controller
- Sensor 등
-
Software:
- Bootloader
- 운영체제(Operating System)
- Device Driver
- Middleware
- Application 등
- 대량 생산 제품인 경우 가격에 민감한 경우가 많다.
- 일반 PC의 경우와는 다르게 즉각적인 응답이 필요한 경우가 있다.
- 따라서 비용대비 실시간의 필요성을 고려하여 개발해야한다.
- SW가 오동작 했을 경우 일반 PC보다 더 심각한 문제가 발생할 수 있다.
- PC에서는 발생하지 않는 전원에 대한 문제가 발생할 경우가 있다. (저전력 문제)
- 전력의 제약은 SoC의 선택, 속도의 선택에 영향을 미침
- 일반 PC보다 훨씬 적은 resource를 가지고 있어서 효과적인 개발을 위한 특정 툴과 개발방법이 필요하다.
- 전용 디버깅 장비를 사용하는 경우가 많음
- Cross-toolchain이 필요하다
- 디버깅에 제한을 많이 받는다.
- 일반 리눅스 커널(바닐라 커널)에서 특정 부분을 다시 맞춘 커널로 단순히 프레임워크와 배포를 제외한 커널에 관점을 두었음
- 일반 리눅스의 축소판
- 임베디드 시스템의 여러 제약 사항을 고려해서 패치 가함