일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- nas
- linux job
- Notification
- github
- NAS HDD교체
- 3D프린터 입문
- 3D모델링
- kubernetes
- OnlineIDE
- 3D프린터
- 3D
- 3d프린터 초보
- 3D 프린터 용어
- ci/cd
- gitlab
- 리눅스 파일동기화
- Token인증방식
- docker container
- C언어
- IoTNetwork
- 네이버클라우드
- Jenkins
- git
- Kotlin
- 데이터 직렬화 포맷
- octoprint
- data serialization formats
- docker
- 3D프린터입문
- 코틀린개발환경
- Today
- Total
0과 1을 공부하다.
[IoT] Mbed란 ? 본문
스마트폰 Embedded Operating System은 주로 냉장고, 세탁기 등과 같은 가전기기와 산업용 기계, 소형 IoT 디바이스와 같은 작은 기기에서 퍼스널 PC대비 낮은 사양, 적은 메모리, 저전력 환경에서 운용되는 운영체제이다. 현재 IoT OS 시장에는 Embedded Linux, TinyOS, Contiki, Mbed, Windows 등 다양한 운영체제가 존재하는데, 적용하는 HW마다 특성이 상이하기 때문에 특징을 간단하게 정의하기 쉽지 않아 표준화된 IoT OS는 없는 실정이다.[1] 마치 국내 스마트폰 시장 초기에 LG, 펜택, 삼성 등 다양한 기업에서 스마트폰 시장에 뛰어 들었지만 현재 삼성 스마트폰으로 좁혀진 것처럼 향후 저전력, 경량화, 보안성, 개발 용이성이 고려된 OS가 표준화된 OS로 좁혀 질 것으로 개인적으로 예상한다. 이러한 특수한 환경에서 동작하는 Embedded OS는 1. 호환성, 2. 간단한 구조, 3. 유연성, 4. 신뢰성, 5. 일관성 등 5개 항목을 고려하여 목적에 맞게 사용해야 한다[2]. 본문에서는 최근 보안성과 사용성을 겸비한 ARM기반의 Mbed OS의 특징을 IoT를 개발하고 있는 개발자 관점에서 분석하고 개인적인 견해를 적도록 하겠다.
1. Mbed란 ?
Mbed OS는 ARM에서 설계한 Cortex-M 기반의 OS이다[3]. C++기반의 프레임워크로 구성되어 있으며, RTOS이므로 다중소프트웨어, 실시간 소프트웨어를 제공하여 실시간처리가 가능하고 Online 컴파일러를 제공하여 호환성이 높다[3]. 또한 TLS/DTLS 프로토콜을 제공하여 보안성이 뛰어나며, 가장 큰 장점으로 다양한 라이브러리를 제공과 인터페이스 표준을 준수하여 개발자의 편의성을 높였다.
2. 통합 개발환경 (IDE)
Mebed는 ARM 기반의 보드를 PC와 연결하여 프로그래밍과 컴파일(Cross Compile)을 진행하는데 [그림 1]과 같이 Internet, 퍼스널PC, 다른 IDE 및 터미널 명령어에서 통합개발환경(IDE)를 지원한다. Online Compile를 지원하며 간단한 구조로 사용성을 높이고, 특정 OS에서 사용가능한 것이 아닌 개발환경에 맞는 OS를 선택할 수 있는 점에서 호환성을 높였다. Online 환경뿐만 아니라 폐쇄망(Private)환경에서와 다른 개발도구를 활용 할 수 있도록 Mbed Studio와 CLI를 제공하여 Offline 개발환경도 제공하고 있다.
3. 센서 및 모듈
ARM Mbed 공식 홈페이지를 참조하면 ARM 보드의 다양한 모듈과 센서를 제공하고 있다. 해당 센서와 모듈의 라이브러리와 예제를 함께 제공하여 사용자의 편리성을 높였고, 호환성이 뛰어날 가능성이 매우 높다.
4. 다양한 API제공 및 커뮤니티
Mbed는 RTOS, 이벤트처리, 드라이버, 메모리, 시간, 파일처리, 네트워크, 보안 등 다양한 Open API를 제공하고 있다. 소프트웨어 개발자가 플랫폼을 선택함에 있어 중요한 것은 API의 존재유무와 범용성 일 것이다. 물론 API가 없어도 프로그래머가 해당 기능 구현은 가능하지만 개발 효율은 떨어질 것이다. 시스템과 관련된 API를 플랫폼사에서 제공함으로써 사용자의 편리성과 개발효율성은 증대되어 더욱 유연한 프로그램과 시간을 단축시킬 수 있을 것이다.
5. 보안
Mbed의 가장 큰 장점으로 꼽을 수 있는 TLS 보안 프로토콜을 제공한다. [그림 3]과 같이 TLS는 핸드쉐이크 절차를 통해 서버와 클라이언트가 암호화된 세션을 생성하기 전에 핸드쉐이크를 통해 상호인증을 하여 알고리즘을 이용하여 필요한 키를 교환하는 방식이다[4]. Mbed는 TLS 보안 프로토콜을 제공함과 동시에 관련 API를 제공하고 있다.
6. 결론
앞서 ARM Mbed OS의 분석 결과, 다양한 API를 제공과 온라인 컴파일로 제공을 통해 사용성이 높았고, 보안 프로토콜을 제공하여 보안성도 뛰어났다. 춘추전국시대에서의 Embedded Operating System은 IoT 환경에서 표준화 되기 위해 저전력에서 동작하고 경량화 된 OS와 보안성이 뛰어나야 한다. 또한 사용자의 개발편의성을 높여 우수한 개발환경을 유지해야 한다. 향후 ARM Mbed가 IoT 표준 OS가 될 수 있을지는 장담할 수 없지만, IoT OS에서 필요한 요구조건은 갖추거나 발전하고 있다고 생각한다.
본 게시물은 아주대학교 정보통신대학원 과제수행 자료 입니다. 해당 대학교의 과제수행 목적을 위한 인용을 금합니다.
※ 본 게시글의 정보가 잘못 되었거나 부족한 부분에 대한 피드백을 환영합니다.
* CopyRight 2022. Jay Park All rights reserved.
'Study > IoT' 카테고리의 다른 글
[IoT] IoT Network - 통신기술에 관하여 (0) | 2023.04.09 |
---|---|
[IoT] 실내측위에서의 UWB와 BLE의 효율성 비교 (0) | 2022.01.07 |
[IoT] Wifi Mesh와 Bluetooth Mesh (0) | 2022.01.02 |
[IoT] 에지컴퓨팅(Edge computing)과 사물인터넷(IoT) 융합의 필요성 (IoT Architecture 관점에서) (0) | 2022.01.01 |
[IoT] 인공지능(AI)와 사물인터넷(IoT) 융합의 필요성(Big-Data 관점에서) (0) | 2022.01.01 |