跳转至

IoTOS 前置调研

从物联网到操作系统

  • 物联网实质上是对互联网的扩展和延伸,允许各种物体通过互联网交换信息和通信,其最鲜明的的效果就是物体的远程操控。以之为例,一个设备的工作流程大致包括:设备固有功能运行->上报数据与状态->服务器接受并处理->客户端获取相关信息并传输指令->服务器处理用户指令并发送->设备状态更改。
  • 在上述过程中,设备、服务器、客户端各自需要一个特定的软件。其中,客户端的软件可以借助浏览器来实现,而设备与服务器的软件各有特点:设备上的软件基本功能是调控设备的运行状态并实现联网功能;服务器上软件的功能则需要实现管理数据、处理请求等功能。
  • 对于多样化的硬件设备,不可能全部使用相应的硬件接口来完成,需要使用统一的操作系统支撑。
  • 由前所述,物联网的设备与服务器的分工不同,所要求的操作系统也有差异:设备上常常使用嵌入式操作系统,使用软件驱动即可;服务器上部署的操作系统则更加倾向于实现远程访问、历史记录、分析处理的抽象处理能力。

物联网操作系统的特点与要求

  • 设备上:连接功能、安全性、标准化、低功耗。
  • 服务器上:解决的是设备联网及之后的操作处理的问题,这一部分的发展受限于物联网的发展与普及并没有较为完备与先进的解决方案,以下重点分析服务器上的操作系统(简称物联网操作系统,IoTOS)的要求
  • IoTOS至少需要以下的特点:设备的接入、控制、管理;数据的采集检索分析;日志;基础算法库;安全性;扩展功能等。

常见物联网操作系统简介

物联网操作系统主要可分为由嵌入式RTOS发展而来以及各互联网公司云平台延伸而来。由于各互联网公司的操作系统的功能性有所限制,以下重点分析RTOS发展而来的开源或免费可开发的平台: - Vxworks:价格昂贵 - Canonical- Ubuntu Core:由Canonical公司发布的Ubuntu系统,核心似乎是snap包的相关处理,但是由于教程或资料较少,暂时放一放。 - RIOT:最初是由柏林自由大学(FU Berlin)、法国国家信息与自动化研究所(INRIA)和汉堡应用科技大学(HAW Hamburg)一同开发的,完全开源,有较好的官方文档,具体有待进一步研究分析。 - Contiki:一个小型、开源、极易移植的多任务操作系统,尤其适用于内存受限的嵌入式系统。从8位电脑到微控制器,Contiki只需几千字节的代码和几百字节的内存就能提供多任务环境和内建TCP/IP支持。在一个较为典型的配置中,Contiki系统只需2Kb的RAM与40Kb的ROM。简单来说,Contiki较为轻量级,但是官方文档? - FreeRTOS:一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,同时FreeRTOS也是市场占比较高的一项操作系统。同时也有较为完备的官方文档与开发教程。 - 嵌入式Linux:对传统Linux进行裁剪和添加实时操作系统功能,同样有较大的市场占比与较好的学习环境。 - LiteOS:来自华为的开源项目,有较好的官方文档。 - RT-Thread:国产操作系统,有较为优秀的国内开发社区环境

物联网相关选题背景知识

  • 概念框架:传感层->数据增强->通信管理->接收数据->获取数据并分析处理
  • 技术环境:硬件开发(树莓派等)、集成开发环境、协议(路由协议)、通信技术、操作系统与软件、云平台

物联网相关课题

From 2018-x-satu,物联网文件管理系统

  1. 以下内容参考于RT-Thread文档中的文件系统部分: 在早期的嵌入式系统中,需要存储的数据比较少,数据类型也比较单一,往往使用直接在存储设备中的指定地址写入数据的方法来存储数据。然而随着嵌入式设备功能的发展,需要存储的数据越来越多,也越来越复杂,这时仍使用旧方法来存储并管理数据就变得非常繁琐困难。因此我们需要新的数据管理方式来简化存储数据的组织形式,需要新的文件系统。 文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型 (Abstract data type),是一种用于向用户提供底层数据访问的机制。文件系统通常存储的基本单位是文件,即数据是按照一个个文件的方式进行组织。当文件比较多时,将导致文件繁多,不易分类、重名的问题。而文件夹作为一个容纳多个文件的容器而存在。RT-Thread并未实现一个新的FS,而是选择实现了一套被命名为DFS(Device File System)的虚拟文件系统
  2. RIOT的文件系统:RIOT的文件系统同样是使用了虚拟文件系统提供了对littleFS、FatFS等的接口。
  3. FreeRTOS:似乎并未在官方文档中看到相关描述,使用时似乎是直接移植开源的文件系统?
  4. LiteOS:提供一套轻量级的文件系统接口以支持文件系统的基本功能,包括vfs、ramfs、fatfs等。但未找到进一步描述。 可以看到,众多IoTOS的文件系统都没有重新开发,而是使用一系列文件接口来对接一些开源文件系统,由此可以提出文件系统方向的几个分支:
  5. 整合优化已有文件系统,提出更加先进的嵌入式文件系统
  6. 重新设计适用于物联网分布式文件系统
  7. 对未提供虚拟文件系统的IoTOS设计添加VFS
  8. 临时文件系统?使用本地内存进行文件系统的读取和写入,这通常比在 UFS 文件系统中读取和写入快得多。TMPFS 文件系统通过节省利用本地磁盘或网络读取和写入临时文件的成本,可以提高系统性能。重新引导或取消挂载后,TMPFS 文件系统中的文件即不存在。