임베디드

임베디드 S/W 개발과 Application

마달랭 2024. 9. 29. 17:39
반응형

Application란?

운영체제 안에서 동작하는 프로그램을 App 이라고 한다.

 

모바일 app의 경우 안드로이드라는 운영체제 안에서 동작되는 프로그램이므로, App이다.

마리오카트와 같은 게임도 닌텐도 OS에서 동작되는 프로그램이기에 App이 맞다.

 

그럼 리눅스에서 C언어로 개발하는 프로그램도 App일까?

리눅스 운영체제 안에서 돌아가는 프로그램이기에 App이 맞다.

 

임베디드 개발자의 구분

임베디드 S/W 개발자를 아래와 같이 나눌 수 있다.

  1. Application Level 개발자
  2. Middleware Level 개발자
  3. Low Level 개발자

 

Application level 개발자

임베디드 S/W 개발자라고 무조건 Firmware 같은 Low Level 개발만 하지 않는다.

임베디드에서 사용되는 운영체제는 다음과 같다.

  1. 리눅스
  2. RTOS
  3. 자체적으로 작은 운영체제 개발 (Firmware)

 

임베디드 S/W 개발자 중, Application Level 개발자는 다음과 같은 S/W를 만든다.

  • 리눅스 운영체제 같은 경우 : 리눅스 App 개발
  • RTOS 운영체제 같은 경우 : RTOS 운영체제 App 개발
  • GUI 개발자 : C++ (Qt, GTK 라이브러리 사용)
  • 검증 S/W 개발자 : 테스트하는 프로그램을 C 언어로 개발

 

Middleware level 개발자

Middleware (미들웨어)란?

Application과 운영체제 중간 다리 역할을 한다.

  • 운영체제의 신호를 App이 가져갈 수 있는 API
  • App Level에서 운영체제에게 신호를 전달하는 API

 

미들웨어 S/W 개발

  • Application Level 개발자를 위한 Library / API 개발자
  • 성능 최적화
  • 시스템 통합 및 테스트

 

Low Level 개발자

Firmware 개발

  • H/W 를 제어하는, 작은 운영체제를 직접 개발
  • 주 언어 : C언어, Assembly

 

Device Driver 개발

  • 커널 내부에서 동작되는 프로그램으로, H/W 를 제어하는 프로그램 개발
  • 주 언어 : C언어

 

임베디드 S/W 개발자가 알아야할 언어

Application Level

  • 1 순위 : C언어 (Linux, RTOS)
  • 2 순위 : C#, C++ (GUI 개발시)

 

Middleware Level

  • 1 순위 : C언어
  • 2 순위 : Java (for Android)


Low Level

  • 1 순위 : C언어
  • 2 순위 : Assembly

 

임베디드 S/W개발자는 필수적으로 Assembly를 할 줄 알아야 하는건 아니지만 알면 좋다.

파이썬은 주로 라즈베리파이를 활용한 교육용 임베디드 보드 다룰 때 사용한다.

혹은 Linux App Level 에서, 자동 스크립트 제작할 때 Bash 쉘 스크립트 대안으로 사용한다.

728x90
반응형

'임베디드' 카테고리의 다른 글

임베디드 센서, MEMS, Driver  (1) 2024.10.24