[译文]专注物联网的Bootloader——MCUBoot,开源且安全!

2017-05-151.6万
AI 快速预览详细 收起
MCUBoot是一个专为物联网设计的开源安全引导器,适用于存储空间有限的MCU系统。它支持Zephyr OS和Mynewt OS,通过四个槽位实现固件升级和安全启动。每个槽位末尾有一个镜像追踪器,用以指示槽位状态。MCUBoot包括闪存驱动、单线程和加密服务,确保物联网设备的安全启动和可靠的固件升级。
前言
原文链接:MCUBoot is an Open Source Secure Bootloader for IoT / MCUs。看到觉得很不错,特此翻译如下,水平有限,凑合着看。
正文
Bootloader(引导器)负责操作系统接手前完成硬件初始化。例如,U-Boot常被用在嵌入式系统中引导主操作系统如Linux或FreeBSD。同样,MCUBoot也是一个引导器,但是专注于物联网领域,特指运存和存储空间有限的MCU系统,它起源于Apache Mynewt OS开源RTOS操作系统,后来开发者决定剥离出来单独开发BootLoader,也就是MCUBoot。
  • Slot 0 为主镜像,代码通常从此处运行
  • Slot 1 为升级镜像
  • 需要升级时,BootLoader使用Scrarch交换slots (槽位)
  • 镜像追踪器会监控交换与升级状态
  • 【有点类似ESP8266的OTA升级】

MCUBoot设计运行在小体积低成本MCU系统上,其一般包括~512KB 闪存,~256KB运存,目前支持Zephyr OS和Mynewt OS,其他实时操作系统(RTOS)的支持也在考虑中。由于种种限制,MCUBoot目前仅实现必要的功能,包括闪存驱动,单线程和加密服务。
与此同时,该项目旨在解决安全和区块固件升级问题。闪存被分成四个槽位(镜像分区),一个是BootLoader槽位,一个是主镜像槽位,一个是固件升级槽位,最后是Scratch槽位,它的作用是在需要升级时交换槽位。每个槽位末尾有一个镜像追踪器,用以指示槽位状态(交换|升级)。
你可以从MCUBoot Github主页上找到源代码,同时 2017年在布达佩斯举办的Linaro Connect大会上的相关演讲可以提供更多细节。



创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
hnyzcj
hnyzcj
好活动
- 没有更多了 -