Subin

Mechanical & Software Engneering

[SW개발방법및도구 #4] RIOT OS

소프트웨어개발방법및도구

Report#4
기계공학과
양수빈
18.04.05

Selecting Right Operating System

  1. Surveys the famous (or interest) OS in your domain

RIOT OS

: The friendly Operating System for the Internet of Things.

  1. 주제 선정 동기

스마트홈, 스마트그리드를 위해서는 IoT 디바이스를 개발하고 환경을 구축해야 한다. PC용 OS는 사용자가 프로그램을 사용하기 위한 OS이다. IoT 제품들은 저전력을 사용하거나 무거운 프로그램을 사용할 필요가 없는 등 PC OS와 다른 OS를 사용하여야 한다. IoT에 적합한 OS 중 하나가 바로 RIOT 이다.

  • 주제

Sub 주제 : RIOS OS 홈페이지 글 일부 한글화 후 개인 블로그에 올리기

RIOT OS를 검색해보면서 한글로 된 자료가 거의 없고 영어로 된 자료가 대부분이었다. 그래서 홈페이지 일부를 한글화 해서 올려보고자 한다.

홈페이지에 설명이 잘 되어 있어 한글로 검색해서 설명을 볼 수 있으면 좋을 것 같다.

RIOT 공식 홈페이지

https://www.riot-os.org/

시작

RIOT : 사물인터넷에 친화적인 운영체제

우리의 회담이 다가오고 있다. 참여하세요!

2018년 9월 13-14일

RIOT : 사물인터넷에 친화적인 운영체제

리눅스가 인터넷을 움직이듯이 RIOT는 사물인터넷을 움직인다. RIOT는 전 세계에 퍼져있는 회사, 학계, 취미로 하는 사람들이 모인 grassroots community에 의해 개발된 무료이며 오픈 소스인 운영체제이다.

In a nutshell 용건만 간단히

RIOT는 대부분의 저전력의 IoT 디바이스와 마이크로컨트롤러 아키텍처(32-bit, 16-bit,8-bit)를 지원한다. RIOT는 연결된, 안전한, 지속적이고 사생활보호적인 사물인터넷을 지원하는 개방형 표준과 관련된 실행시키는 것을 목표로 하고 있다.

Community

RIOT에 참여하세요!

소셜

트위터 @RIOT_OS

개발자들

당신은 커널 개발 혹은 새로운 MCU와 플랫폼 지원을 통하는 일에 참가하고 기여하고 싶습니까? 환영합니다! 신입 가이드를 읽고 우리의 커뮤니티 프로세스를 둘러보세요. 당신이 질문이 있다면, RIOT-devel mailing list를 구독하는 것도 좋은 일입니다. 생방 토의를 위해서, IRC 채널 #rios-os at irc.freenode.net에 참여하세요.

RIOT 이슈 트레커는 버그와 향상된 요청을 알려줍니다. 당신은 또한 새로운 이슈, 논평, 요구철외에 대한 정보를 얻기 위해서 알림 메일 리스트를 구독할 수 있습니다.

사용자

RIOT읠 위한 어플리케이션을 만드는 것에 도우는 것을 알아보고 있다면, 더 배우고, 혹은 계속 하고 싶다면, RIOT-사용자 메일링 리스트에 참여하도록 초대받을 수 있다.

RIOTers 들은 매년 열리는 RIOT 회의에서 직접 만난다.

Features 특징

사물인터넷을 위한 새로운 운영체제를 생각하기 위한 3가지 좋은 이유가 있다.

1. RIOT 은 개발자 친화적이다.

프로그램이 당신이 사용하던 것과 같다. (익숙하다.) 복잡하고 새로운 환경에서 시간을 뺏기지 말자.

– C와 C++로 된 표준 프로그래밍

– gcc, gdb, valgrind와 같은 표준 툴

– 하드웨어 의존 코드 최소화

– 임베디드 프로그래밍에 필요한 러닝커브가 제로

– 한번의 코드가, 8비트 플랫폼(e.g. Arduino Mega 2560), 16비트 플랫폼(e.g. MSP430), 32비트 플랫폼에서 작동된다(e.g. ARM).

– 부분적인 POSIX를 준수한다. 전체적인 POSIX를 준수하도록 향한다.

– 네이티브 포트를 사용하여 리눅스와 맥OS에서 개발하고, 임베디드 디바이스에 배치한다.

2. RIOT는 리소스 친화적이다.

매우 가벼운무게의 장치 에서 마이크로커널 아키텍처와 tickles 스케쥴러의 이익을 얻을 수 있다.

– Robustness(강인성, 항내성) & 코드 발자국 유연하게

– 최대의 에너지 효율성 가능

– 매우 낮은 방해 레이턴시와 우선순위에 기초한 스케쥴링 때문에 실시간 가능

– Multi-threading with ultra-low threading overhead (<25 bytes per thread)

3. RIOT은 IoT 친화적이다.

표준 시스템 지원과 함께 인터넷에서 작은 것들에 준비된 당신의 어플리케이션을 만드세요

6LoWPAN, IPv6, RPL, and UDP

CoAP and CBOR

Static and dynamic memory allocation

High resolution and long-term timers

Tools and utilities (System shell, SHA-256, Bloom filters, …)

현재 운영체제 비교

깨져서 ㅠㅠ 홈페이지에서 다시 확인하기 ㅠㅠ

OS Min RAM Min ROM C Support C++ Support Multi-Threading MCU w/o MMU Modularity Real-Time
Contiki < 2kB < 30kB
Tiny OS < 1kB < 4KB
Linux ~ 1MB ~ 1MB
RIOT ~ 1.5kB ~ 5kB

Full support 
Partial support 
No support 

Get started

공개된 도구와 표준 플랫폼을 통한 개발과 배치

첫 단계

당신이 모든 정보를 얻으려면 GitHub wiki에서 시작해야 한다. 빠른 상위레벨 미리보기를 위해서, RIOT에 입문하기(introduction to RIOT)를 체크하라. 처음 실행 경험을 위해서, 당신은 튜토리얼을 시도해볼 수도 있다. 당신은 또한 질문에 대한 답변을 FAQ에서 찾아볼 수도 있다.

코딩에 참여

당신은 Github wiki에서 우리의 코딩 관습과 개발 절차를 찾을 수 있다.

다운로드

RIOT은 커뮤니티 프로젝트이며 공개적으로 이용할 수 있다. 우리는 소스 코드를 Github에서 관리한다. https://github.com/RIOT-OS/ 에서 코드를 확인하거나 최신 버전을 다운로드 하자.

Native Linux and Mac OS Port

임베디드가 아닌 프로그래밍에 친숙한 분들이라면, 당신은 RIOT의 native port를 시작해야 한다. 이것은 RIOT을 리눅스나 맥OS의 과정 안에서 작동할 수 있도록 허용해준다. 이것은 RIOT과 RIOT으로 쓰여진 프로젝트 둘 다의 개발과 디버깅을 쉽게 해준다. 이러한 네이티브 프로세스는 gdb와 valgrind와 같은 쉽게 이용 가능한 도구를 사용하여 분석될 수 있다. 당신은 설정 가능한 topology를 통해서 RIOT가 동시에 작동하고 함께 네트워크된 다중 인스턴스에 대한 가상 테스트베드를 생성할 수 있다. 당신이 필요한 것은 PC와 Linux 또는 Mac OS 이다!

API documentation

RIOT API는 doxygen을 사용한 코드에서부터 만들어질 수 있다. 최신 버전은 매일 http://riot-os.org/api 에 업로드된다.

테스팅

하이 코드 퀠리티 그리고 철저한 테스팅은 RIOT 커뮤니티의 주요 관심사이다. 따라서, embUnit – Unit Testing and Continuous Integration 와 같은 etablished 툴이 사용된다.

Development Environment in a Box

모든 것이 box안에 있다. RIOT은 Docker와 Vagrant를 지원한다. RIOT 개발 환경을 매우 쉽게 설정한다. 우리는 Docker repository와 또한 Vagrant image를 제공한다.

Usage

Out of the box usage in industry, research, and private environments.

하드웨어 지원

RIOT은 보통의 PC뿐만 아니라 임베디드 장치를 포함한 몇 개의 플랫폼 위에서 작동한다. 이것은 박스 밖에서 시작할 수 있도록 해주는 다중 드라이버를 지원한다. 하드웨어에 의존적인 코드는 최소로 줄여지고 커널 스스로에서부터 소거된다.

Architectures

AVR

ARM7

Cortex-M0

Cortex-M0+

Cortex-M3

Cortex-M4

Cortex-M7

MIPS32

MSP430

PIC32

x86

Boards

Airfy Beacon

Arduino Due

Arduino Mega 2560

Arduino Zero

Atmel samr21-Xplained Pro

f4vi

mbed NXP LPC1768

Micro::bit

Nordic nrf51822 (DevKit)

Nordic nrf52840 (DevKit)

Nucleo boards (almost all of them)

Boards (continued)

STM32F4DISCOVERY

STM32F3DISCOVERY

STM32F0DISCOVERY

STM32F7DISCOVERY

TelosB

Texas Instruments cc2538 Developer Kit

Texas Instruments EZ430-Chronos

UDOO Board (Cortex-M3 part)

Waspmote-pro

Zolertia Z1

… and many more: full list here

Drivers

Radio transceivers: CC2538, CC2420, AT86RF231 …

Environmental sensors: Sensirion SHT11 Humidity and Temperature Sensor, LPS331AP pressure sensor, SparkFun MQ-3 Alcohol Gas Sensor, Bosch BM180…

Battery gas gauges: Linear Technology LTC4150 Coulomb Counter

Acceleration sensors: Bosch SMB380 Triaxial Sensor, Pololu LSM303DLHC 3D Compass and Accelerometer…

Gyroscopes: ST L3G4200D three-axis digital output gyroscope…

Ultra sonic range finders: Robot Electronics SRF02/SRF08…

Light: RGB LED, ISL29020 light sensor…

Servo motors…

… and many more: full list here

Virtualization

Virtual hardware platform (i.e. board and cpu) to run RIOT inside a UNIX process

Nativenet transceiver to create virtual testbeds

Configurable topology

Standard sniffing tools such as Wireshark

No special hardware required

RIOT embedded on PC with Linux or Mac OS

Core Software Support

6LoWPAN: RFC6282 and RFC6775 compliant

RPL: RFC6550 compliant

CoAP, CBOR, and UBJSON

Arduino API

Additional Tools

Visualization via RIOT-TV

PCAP-based wireless sniffer

Network virtualization via desvirt

+++

Open Testbeds

IoT-LAB

RIOT 의 Github에서

다운로드를 위한 설명, 튜토리얼을 볼 수 있다.

https://github.com/RIOT-OS/RIOT

개인 블로그 포스팅

RIOT OS : 사물인터넷에 친화적인 운영체제

https://blog.naver.com/ysb8049/221245614058

Build RIOT on Windows OS

https://github.com/RIOT-OS/RIOT/wiki/Build-RIOT-on-Windows-OS

How to: Create a Virtual Box Image for RIOT development

https://github.com/RIOT-OS/RIOT/wiki/Howto:-Create-a-VirtualBox-Image-for-RIOT-development



68 total views, 4 views today

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다