大数跨境

每天了解一个物联网操作系统(十三)(RIOT OS操作系统)

每天了解一个物联网操作系统(十三)(RIOT OS操作系统) 数组智控产业发展科技院
2021-08-02
1
导读:RIOT意思为The friendly Operating System for the Internet

RIOT意思为The friendly Operating System for the Internet of Things,即友好的物联网操作系统。


RIOT官方的口号是:if your tiny IoT device can't run Linux, use RIOT(如果你的资源受限,设备运行不了Linux操作系统,就用RIOT)。


RIOT是面向开发者的、开源的、适合物联网的操作系统。它的背后没有某个公司的支持,完全是由社区驱动。RIOT OS是一种开源社区项目,自从2008年就启动了,其致力于开发者友好、资源友好、物联网友好,关键的功能包括C/C++支持、多线程、能量效率、部分遵守POSIX标准等。RIOT能够在众多平台上运行,包括嵌入式设备、PC、传感器等。


RIOT OS拥有易于使用的API。该操作系统因用电量和资源需求方面能够做到高效而闻名。RIOS的硬件要求是1.5KB内存和5KB闪存,要求几乎与Tiny OS一样低。不过,它也提供了诸多功能,比如多线程、动态内存管理、硬件抽象、部分的POSIX(Portable Operating System Interface of UNIX)可移植操作系统接口标准兼容和C++支持,这些功能在Linux中很常见,而在轻量级实时操作系统中却是不常见的功能。其他功能包括:低中断延迟(约40个时钟周期)、基于优先级的调度等。其可以在Linux下进行开发,使用原生移植版,部署到嵌入式设备中。


RIOT OS的一些特性如下:


● 标准的C/C++编程。


● 标准的GCC编译环境。


● 可以运行在8位、16位和32位的嵌入式系统上。


● 部分的POSIX接口标准兼容(以后的目标是全兼容)。


● 支持在Linux/UNIX的虚拟机上运行。


● 实时性,快速的中断响应(~50 clock cycles)。


● 微内核,组件都可以动态加载,并且通过Message来实现服务


● 极小开销的多线程支持(< 25 bytes per thread)。


● 丰富的网络支持:6LoWPAN, IPv6, RPL, CoAP and CBOR。


● 高精度的定时器。


● 丰富的工具(System shell, SHA-256, Bloom filters……)


RIOT的CPU的IP驱动基本都有一套统一接口,但是没有任何抽象层,被放在源代码的cpu\\periph中。这意味着在做新的平台支持时,需要注意驱动的接口要和API文档里的一致,比如ADC的adc_init和adc_read函数。板级驱动的源代码则放在drivers\下,比如NXP的MMA8541,利用I2C统一接口来访问。


由于是微内核(microkernel)的实现,所有的系统服务包括时钟、网络协议栈、网络服务等,都是通过创建独立的线程来实现。在线程中都有event_loop来接收服务请求,处理并发送服务结果。RIOT中最关键的是GNRC(Generic networkstack)网络协议栈,它实现了从MAC层一直到传输层的各种协议,如6LowPan、IPv4/v6、RPL、TCP/UDP。并且这些不同的协议栈之间通过netapi统一接口开放给用户。对于应用层来说,GNRC提供了conn和socket两种API。在安全方面,802.15.4这层似乎没有加入AES的支持,只提供tinyDTLS在应用层给用户使用。由于RIOT的POSIX的部分兼容性,以及提供BSD socket的接口,很多应用都可以方便地移植过来,在pkg/下能找到例如libcoap和openwsn这样的应用。


RIOT OS架构框图


RIOT OS最早是由柏林自由大学开发的,目前完全由社区维护。


总之,RIOT OS是一个很有想法的微内核,加上开发环境对于之前熟悉Linux的开发者来讲很友好,应该是个潜力股。


RIOT物联网操作系统是嵌入式系统中最好用、生态最好的Linux OS。空间小于1.5KB,支持芯片多。RIOT的官网提供了一个强大的功能,即函数、文件、名称查找功能。可以通过RIOT提供的例程去学习,是一个很好的学习方法,例程里面包含了数据联网层的无线通信、UDP无线通信、RPL、border routers,以及COAP协议等功能。


RIOT是一个纯C语言编写的操作系统,确实是很好用的操作系统。


几个物联网操作系统比较

注:√表示完全支持;●表示部分支持;×表示不支持。


参考

● RIOT操作系统的源代码网址为https://github.com/RIOT-OS/RIOT。

● RIOT操作系统官网的网址为https://riot-os.org/#nutshell。

● 关于代码下载的网页为https://github.com/RIOT-OS/RIOT。

● RIOT的官网提供了函数、文件、名称查找功能,网址是http://www.riot-os.org/api/index.html。



【声明】内容源于网络
0
0
数组智控产业发展科技院
以AI技术为底层能力,聚焦智慧园区、城市公共安全、数智警务、健康医疗、能源电力、科研实验及平安校园等领域,提供从感知到决策的全流程软硬件一体化的国产装备智能体产品解决方案。
内容 986
粉丝 0
数组智控产业发展科技院 以AI技术为底层能力,聚焦智慧园区、城市公共安全、数智警务、健康医疗、能源电力、科研实验及平安校园等领域,提供从感知到决策的全流程软硬件一体化的国产装备智能体产品解决方案。
总阅读2.3k
粉丝0
内容986