3.3 软件系统
有多种操作系统或运行环境用于物联网终端设备。本节着重讨论软件系统所需内存空间、软件开发环境和实时处理的要求。
3.3.1 内存空间
在计算处理中,可执行程序占用内存空间的大小指明执行该程序的实时内存要求。大程序要占用的内存空间大。通常软件本身不会用到其占用内存空间的最大值。相反,运行环境引入的数据组织结构可增加占用内存的空间。比如在Java程序中,占用的内存空间主要是Java虚拟机(Java Virtual Machine,JVM)运行环境。
3.3.2 软件开发环境
软件开发环境,有时称为集成开发环境(Integrated Development Environment,IDE),是一种为计算机程序员提供的程序开发综合平台的软件。软件开发环境通常由源代码编辑器、代码自动生成工具和调试器组成。Arduino平台提供用于微控制器编程的IDE,支持C、C++和Java等编程语言。企业物联设备的建造者应考虑需要为程序员提供什么样的IDE。
3.3.3 操作系统
操作系统,或者运行环境,通常包含许多应用程序调用的软件。在IoP应用领域,有大家熟知的Linux和Microsoft Windows操作系统;而在物联网IoT应用领域,需要另外一种叫作实时操作系统的操作系统。
实时操作系统(Real-Time Operating System,RTOS)是一种针对时序要求严格的应用程序提供服务的操作系统。处理时间要求(包括任何操作系统延迟)在0.1s甚至更短的时间内。RTOS的一个关键特性是接收和完成一个应用程序的任务所花费时间的一致性程度。在RTOS中,重要的是最小的中断延迟和最小的线程切换延迟,而不是评价其在给定的时间段内执行的工作量,它们是评价操作系统响应的快速性和可预测性的指标,以风河系统公司(Wind River)为例,它的RTOS用于支持实时处理。当然,随着处理器的速度越来越快,智能设备的需求越来越广泛,在有些情况下不会采用传统的操作系统。
另外,Android、iOS和Windows等操作系统是为IoP开发的,在构建用户界面方面投入了相当大的精力。但是为什么用于压缩机、高空作业平台和风力发动机的操作系统也需要用户接口呢?有一些类似阿托姆顿公司的软件公司已着手开发一类物联网所需的软件,其目的是在物联网上便捷地进行传感器的增删、网络安全的管理及软件的升级。