随着物联网技术的发展,物联网设备安全性问题将是急需解决的核心问题之一。同时,在保障物联网设备安全的所有措施中操作系统层面的安全是重中之重,从本质上讲,可以说物联网操作系统的安全性直接决定了整个物联网设备系统的可靠性。
本文在上述背景下提出了一套行之有效的针对物联网操作系统的理论,目的是解决上述核心问题。
1 操作系统安全性
传统的操作系统设计方法主要依赖于人的以往经验和简单的逻辑分析,因此无法从根本上保证操作系统设计的安全性和正确性。
形式化方法的核心就是形式化语言,以及基于形式化语言构建出来的形式化模型。其基础思路是将高可靠性系统用语义明确的形式化语言进行建模,采用模型检测、定理证明的方法对系统目标属性进行正确性推演和验证。因此,采用该方法进行操作系统的设计和验证能够保证操作系统的安全性和确定性[1-2]。
2 操作系统形式化设计理论模型
经过大量的工程实践比较与研究,本文提出了基于线性时态逻辑的操作系统形式化设计理论模型[2],如图1所示。
![aa38563095fb50c56827faee040f5103.gif](https://img-blog.csdnimg.cn/img_convert/aa38563095fb50c56827faee040f5103.gif)
如图1所示的设计方法由四部分组成:
(1)一阶数理逻辑+集合论建立顶层数理逻辑模型,该模型是原始需求的数学规格化描述,是进一步设计求精和验证的依据;
(2)线性时态逻辑表达式,是时态逻辑的规格化描述;
(3)针对并发体描述抽象的第二步线性时态逻辑规格化描述[3];
(4)针对线性时态逻辑规格化描述的模型验证[3-5]。
3 基于Zephyr物联网操作系统内存管理核心功能的设计验证案例
下面结合图1的模型以开源物联网操作系统Zephyr的一个核心内存管理功能为例,说明线性时态逻辑在操作系统内核安全性、正确性设计中的具体应用。
本案例基于Zephyr内存分配器功能进行需求建模、设计求精和验证。
3.1 顶层逻辑模型设计
按照在图1中描述的形式化方法,首先要对内存分配需求进行顶层逻辑建模。为了更好地兼容后面线性时态逻辑的求精和验证,本文选用目前在业界成熟应用的TLA+作为建模工具。顶层的逻辑模型首先考虑构造一个四叉树模型来表示内存池,树中的每一个节点代表一个内存块,每一层的大小一致,从根到叶子降序排列,允许多线程访问。选用TLA+的Record+Function模型来表达这一概念,如图2所示。
图2中k_mem_pool为一个record模型,max_sz是这颗四叉树顶层最大内存块尺寸,levels是一个