목차
- 들어가기
- 비교기준
- 솔루션 비교
- 라이센스
- 마무리
들어가기
Yocto 프로젝트에 OTA를 적용할 일이 생겼다. 관련된 문서를 찾아보다 보니 Yocto wiki 내에 다음 페이지가 있었다.
이 포스팅은 해당 wiki 내용을 정리한 내용이다.
이상적인 업데이트는 아래와 같다.
- 업데이트 과정이 깨지면 안된다.
- 업데이트 실패시에도 디바이스는 사용가능해야 한다. (ex : 복구모드)
- 최소한의 시스템 리소스를 사용해야 한다. (네트워크, 디스크, 램)
- 업데이트 중에 디바이스 downtime이 최소화되어야 한다.
- 모든 프로세스는 secure한 방식으로 진행되어야 한다.
비교기준
Type
- Block-based update : 파일시스템을 거치지 않고 파티션내의 block을 직접적으로 수정하는 형태의 업데이트이다. 이 방식에서는 모든 디바이스는 동일한 파티션 형태를 가져야하고 그 파티션들의 사이즈 또한 동일해야 한다.
- File-based update : 파일 및 디렉토리를 수정하는 형태의 업데이트이다. 서로 다른 파티션 사이즈를 가지고 있는 디바이스도 동일 업데이트 데이터를 사용할 수 있다. 그리고 재부팅없이 업데이트를 실시할 수 있다.
Disk layout
Rootfs
Updates from
Updates what
Code stability
OE/Yocto integration
Resource requirements on server / client
Failure resilience
Complexity
Downtime
Security
솔루션 비교
클릭하면 크고 아름답게 볼 수 있다.
분석해보자. 우선 오픈소스 프로젝트를 사용할 때 가장 중요한 것이 '여전히 활발히 개발중인가' 이다. 이에 해당하는 기준은 'Code stability'이다. 그런데 모든 솔루션들이 '활발히' 개발중이고 '안정성'이 있다고 주장하고 있다.
확인해보자.
- RAUC (github : 링크 / home : 링크) : 별 160개, 1300개 커밋, 8개 릴리즈, 36명의 컨트리뷰터, 한달전 커밋
- OSTree (github : 링크 / home : 링크) : 별 290개, 4000개 커밋, 90개 릴리즈, 90명의 컨트리뷰터, 4일전 커밋
- Mender (github : 링크 / home : 링크) : 별 337개, 1000개 커밋, 27개 릴리즈, 18명 컨트리뷰터, 한달전 커밋
- swupd-client (github : 링크 / home : 링크) : 별 46개, 1000개 커밋, 90개 릴리즈, 33명 컨트리뷰터, 3일전 커밋
- swupdate (github : 링크 / home : 링크) : 별 390개, 1000개 커밋, 20개 릴리즈, 50명 컨트리뷰터, 4일전 커밋
확인결과 유의미한 결과를 뽑지 못했다. 개인적으로는 별개수 (즐겨찾기)를 주요한 기준으로 보는데 그 기준으로는 Mender, swupdate, OSTree가 상대적으로 높았다.
사용하기 편한가의 기준으로 보면, swupdate와 mender가 높은 점수를 받을 수 있겠다. 실제로 문서를 봐도 mender의 경우 굉장히 상세하게 잘 정리되어 있는 걸 볼 수 있다.
그외 주요한 차이는 file-based 인지, block-based 인지이다. Downtime이나 Rootfs 기준의 경우 이 차이에 의해서 결정난다고 볼 수 있다. RAUC와 swupdate가 두 방식 모두를 지원하고 있고 swupd-client와 OSTree는 file-based, Mender가 block-based임을 알 수 있다.
라이센스
- Mender : Apache-2.0
- OSTree : LGPL-2.0
- RAUC : LGPL-2.1
- swupdate : GPL-2.0
- swupd-client : GPL-2.0
마무리
- block-based update : Mender
- file-based update : swupdate
'소프트웨어 > OTA(on-the-air)' 카테고리의 다른 글
Eclipse hawkBit 간략하게 살펴보기 (0) | 2019.01.22 |
---|---|
RAUC(Robust Auto-Update Controller) 살펴보기 (0) | 2019.01.21 |
Clear Linux & swupd 살펴보기 (0) | 2019.01.18 |
SWUpdate (Software Update for Embedded Systems) 살펴보기 (0) | 2019.01.16 |
Mender (Over-the-air software updates) 솔루션 살펴보기 (0) | 2019.01.16 |
목차
- 들어가기
- 비교기준
- 솔루션 비교
- 라이센스
- 마무리
들어가기
Yocto 프로젝트에 OTA를 적용할 일이 생겼다. 관련된 문서를 찾아보다 보니 Yocto wiki 내에 다음 페이지가 있었다.
이 포스팅은 해당 wiki 내용을 정리한 내용이다.
이상적인 업데이트는 아래와 같다.
- 업데이트 과정이 깨지면 안된다.
- 업데이트 실패시에도 디바이스는 사용가능해야 한다. (ex : 복구모드)
- 최소한의 시스템 리소스를 사용해야 한다. (네트워크, 디스크, 램)
- 업데이트 중에 디바이스 downtime이 최소화되어야 한다.
- 모든 프로세스는 secure한 방식으로 진행되어야 한다.
비교기준
Type
- Block-based update : 파일시스템을 거치지 않고 파티션내의 block을 직접적으로 수정하는 형태의 업데이트이다. 이 방식에서는 모든 디바이스는 동일한 파티션 형태를 가져야하고 그 파티션들의 사이즈 또한 동일해야 한다.
- File-based update : 파일 및 디렉토리를 수정하는 형태의 업데이트이다. 서로 다른 파티션 사이즈를 가지고 있는 디바이스도 동일 업데이트 데이터를 사용할 수 있다. 그리고 재부팅없이 업데이트를 실시할 수 있다.
Disk layout
Rootfs
Updates from
Updates what
Code stability
OE/Yocto integration
Resource requirements on server / client
Failure resilience
Complexity
Downtime
Security
솔루션 비교
클릭하면 크고 아름답게 볼 수 있다.
분석해보자. 우선 오픈소스 프로젝트를 사용할 때 가장 중요한 것이 '여전히 활발히 개발중인가' 이다. 이에 해당하는 기준은 'Code stability'이다. 그런데 모든 솔루션들이 '활발히' 개발중이고 '안정성'이 있다고 주장하고 있다.
확인해보자.
- RAUC (github : 링크 / home : 링크) : 별 160개, 1300개 커밋, 8개 릴리즈, 36명의 컨트리뷰터, 한달전 커밋
- OSTree (github : 링크 / home : 링크) : 별 290개, 4000개 커밋, 90개 릴리즈, 90명의 컨트리뷰터, 4일전 커밋
- Mender (github : 링크 / home : 링크) : 별 337개, 1000개 커밋, 27개 릴리즈, 18명 컨트리뷰터, 한달전 커밋
- swupd-client (github : 링크 / home : 링크) : 별 46개, 1000개 커밋, 90개 릴리즈, 33명 컨트리뷰터, 3일전 커밋
- swupdate (github : 링크 / home : 링크) : 별 390개, 1000개 커밋, 20개 릴리즈, 50명 컨트리뷰터, 4일전 커밋
확인결과 유의미한 결과를 뽑지 못했다. 개인적으로는 별개수 (즐겨찾기)를 주요한 기준으로 보는데 그 기준으로는 Mender, swupdate, OSTree가 상대적으로 높았다.
사용하기 편한가의 기준으로 보면, swupdate와 mender가 높은 점수를 받을 수 있겠다. 실제로 문서를 봐도 mender의 경우 굉장히 상세하게 잘 정리되어 있는 걸 볼 수 있다.
그외 주요한 차이는 file-based 인지, block-based 인지이다. Downtime이나 Rootfs 기준의 경우 이 차이에 의해서 결정난다고 볼 수 있다. RAUC와 swupdate가 두 방식 모두를 지원하고 있고 swupd-client와 OSTree는 file-based, Mender가 block-based임을 알 수 있다.
라이센스
- Mender : Apache-2.0
- OSTree : LGPL-2.0
- RAUC : LGPL-2.1
- swupdate : GPL-2.0
- swupd-client : GPL-2.0
마무리
- block-based update : Mender
- file-based update : swupdate
'소프트웨어 > OTA(on-the-air)' 카테고리의 다른 글
Eclipse hawkBit 간략하게 살펴보기 (0) | 2019.01.22 |
---|---|
RAUC(Robust Auto-Update Controller) 살펴보기 (0) | 2019.01.21 |
Clear Linux & swupd 살펴보기 (0) | 2019.01.18 |
SWUpdate (Software Update for Embedded Systems) 살펴보기 (0) | 2019.01.16 |
Mender (Over-the-air software updates) 솔루션 살펴보기 (0) | 2019.01.16 |