티스토리 뷰

이전 글 ”Yocto Project vs. Buildroot”에서 언급하였던 ELC 2016 자료를 보면 Google의 IOT Smart Device를 위한 Brillo Operating System과 Weave Communication Platform에 대한 발표 자료가 있다. 


아직까지는 google에서 제한된 개발자를 대상으로 invite only로 오픈하고 있기 때문에 이같은 공개 자료는 brillo, weave에 대한 전반적인 정보를 얻으려는 이에게는 유용한 자료가 될 것이다. 아래 링크를 참조하면 해당 동영상 자료와 PDF 형식의 presentation 파일을 볼 수 있다. 

Hello Brillo (Dave Smith, NewCircle) (Youtube 동영상)

Brillo/Weave Part 1: High Level Introduction (Bruce J. Beare, Intel) (Youtube 동영상)

Brillo/Weave Part 2: Deep Dive (Bruce J. Beare, Intel) (Youtube 동영상)


위 발표 내용을 기준으로 간략하게 Brillo 와 Weave 를 정리해 본다. 



Brillo는 IOT smart device를 위한 Operating System으로, 쉽게 생각하면 Android나 Raspberry Pi와 같이 사서 바로 사용할 수 있는 IOT 제품의 전용 OS 이다. 이의 사용자는 android와는 달리 일반인이 아니라 개발자라고 볼 수 있다. 물론 궁극적으로 IOT 개발자는 프로그래머가 아니라 DIY로 스마트 홈을 꾸미고 싶어하는 일반인이 될 것이다. 


Mbedwicedzephyr 등과 같은 IOT OS는 전구, 센서 등의 작은 기기에 들어갈 수 있는 OS 라면, Brillo는 스마트홈을 꾸미기 위한 덩치가 큰 IOT OS라고 할 수 있다. 기본 사양도 MMU가 있는 CPU, 32MB RAM 이다. 예를 들면 home theatre, 로보트 등이 될 듯하다. 


Brillo는 google에서 이런 개념으로 android를 기반으로 IOT용으로 만든 OS이다. 

아래 두 그림은 Anroid와 Briilo의 구성이다(위 ‘Hello Brillo’의 PPT 자료에서 발췌).




Brillo는 android에서 앱과 화면 표시를 위한 Java runtime과 application framework를 제거하고 chrome OS의 사양을 접목한 것이라고 한다. 실제로 Brillo source도 android repository에서 같이 관리하고 있다. 


Brillo, weave 자료는 현재는 제한된 개발자만 공개하고 있지만 구글에서 개발하는 오픈소스 이기 때문에 googlesource를 보면 git 소스로 개발 진행상황을 볼 수 있다. 

- Brillo: https://android.googlesource.com/brillo/manifest/

- Weave: https://weave.googlesource.com


Weave는 IOT 통신 플랫폼으로 기기 셋업, 스마트폰과 IOT 기기 간 직접 연결을 위한 local API, cloud 연결을 위한 cloud API 등을 제공한다. 제품 사양에 따라서 MMU-enabled 용 libweave와 micro controller 용 libuweave 가 있다.


Brillo의 core service는 weave, metrics & crash reports, robust OTA updates 이다. 또한 IOT에서 가장 중요하게 강조하는 security도 android의 리소스를 활용하였기 때문에 다음과 같다. 

- SELinux

- Verified Boot

- A/B updates (업그레이드 이중화)

- User Account Controls

- TLS + Data Encryption


Smart device를 위한 IOT OS로는 google의 brillo 말고도 Ostro 가 있다. Brillo는 weave를 사용한다면 ostro는 Open Connectivity Foundation(OCF)의 IoTivity 를 사용한다. 


Brillo와 Ostro의 가장 큰 차이는 무엇보다도 cloud 서버일 듯 하다. Ostro에서는 이 부분에 대해서 다양한 가능성이 열려 있지만 Brillo의 경우 google에서 만든 것 답게 google  account를 이용한다. 즉, brillo의 cloud는 오픈 소스의 범위가 아니다. 물론 android에서 별도의 플레이 스토어를 만들어 내듯이, brillo도 오픈 소스이므로 개조해서 자신의 cloud로 연결하게 하는 것은 가능하다. 


Ostro의 Brillo의 차이점은 다음과 같다. 

Brillo의 경우 android와 동일하게 상업적인 사용이 명확하도록 GPL license를 제외한 구성이다. 


Brillo

Ostro

build system

Android.mk

Yocto (bitbake)

libc

bionic

eglibc

IPC

Binder, Ashmem

D-BUS, System V

shell

toybox

busybox

init

init.rc

init.d


Weave와 OCF/IoTivity의 비교는 아래와 같다. 이를 보면 두 개의 정책 차이가 명확히 보인다. 


Weave

OCF/IoTivity

Existing/Available Cloud Infrastructure

Google

No

Open Source Cloud Infrastructure

No

Yes

Able to self-organize a network

No

Yes

Request/Response Protocol

HTTPS (tcp)

CoAP (tcp, udp)

Multi-OS, Multi-Platform

Limited

Yes

Gateway Support to non-native devices

Planned

Yes


차후에 각각에 대해서 좀더 자세하게 정리해 볼 예정이다.

댓글
댓글쓰기 폼