目录
一、前言
本篇安装SPIN的教程虽然是在Ubuntu 18.04系统上操作的,但是针对旧版本(如16.10、16.04、14.04等)Ubuntu都是适用的。其余的话不多说,直接开始吧。
二、SPIN的基本介绍
(一) 基本概况
SPIN(Simple Promela Interpreter)是一种适合于并行系统的开源软件验证工具,尤其是协议一致性的辅助分析检测工具,主要用于多线程软件应用程序的形式验证
,全世界成千上万的人都在使用它。SPIN最早是在1980年由计算科学研究中心Unix小组的贝尔实验室所开发,自1991年开始免费提供,经过不断发展以跟上新发展的步伐,并且在2002年4月获得了ACM系统软件奖。
(二) 功能介绍
- SPIN旨在有效
验证多线程软件
,而不是硬件电路的验证。 - SPIN为
嵌入式C代码
的使用提供了直接支持,作为模型规范的一部分。 - SPIN为使用
多核计算机
进行模型检查运行提供直接支持——支持安全性和活性属性的验证。 - SPIN
即时工作
,这意味着它不需要预构建全局状态图或Kripke结构,作为验证系统属性的先决条件。 - SPIN可以用作完整的
LTL模型检查
系统,支持线性时间逻辑中可表达的所有正确性要求,但它也可以用作高效的动态验证器,以获得更基本的安全性和活跃性。 - SPIN支持
集合和缓冲消息传递
,以及通过共享内存
进行通信,还支持使用同步和异步通信的混合
系统。
(三)主要模式
- 作为
模拟器
,允许使用随机、引导或交互式模拟进行快速原型设计。 - 作为
详尽的验证者
,能够严格证明用户指定的正确性要求的有效性。 - 作为
证明近似系统
,甚至可以验证具有最大状态空间覆盖的非常大的系统模型。 - 作为
群体验证的驱动程序
(一种可以利用任意大小的云网络的新型群体计算),可以充分利用大量可用的计算核心来利用并行性和搜索多样化技术,从而增加定位缺陷的机会在非常大的验证模型中。
(四)工作原理
- 首先,SPIN从一个描述的协议系统的高层模型规格开始,经分析没有
语法错误
后,对系统的交互进行模拟,直到确认系统设计拥有预期的行为; - 然后,SPIN将产生一个用C语言描述的
验证程序
,经检验器编译后被执行,执行中如果发现了违背正确性说明的任何反例,则可反馈给交互模拟机,通过重现细节剔除引起错误的原因。
关于更详细介绍请点击这里进入官方网站查看
三、SPIN的安装过程
(一)软件准备
-
SPIN首页下载完整的软件包 spinXX.tar.gz,点击此处进入SPIN首页,如下图所示,点击下载含有源码的完整软件包spin649.tar.gz。
-
这里作者也将完整的软件包上传到了百度网盘,需要的小伙伴们请点击这里前往下载,提取码为mvry。
(二)相关依赖安装
【注意】下面所有的安装步骤请以root用户进行操作
1.安装byacc:
apt-get install byacc
2.安装tcl:
apt-get install tcl
3.安装tk(在wish中):
apt-get install wish
(1)安装完wish后,查看wish所在目录:
whereis wish
(2)将wish拷贝到/usr/local/bin/目录:
cp /usr/bin/wish /usr/local/bin/
4.安装SPIN:
(1)解压下载的压缩包:
tar -zxvf spin649.tar.gz
(2)进入源码目录:
cd Spin/Src*
(3)编译源码:
make
(4)拷贝编译好的spin程序:
cp spin /usr/local/bin/
(5)查看是否安装成功:
spin –V
5.安装ISPIN(图形化的SPIN工具):
(1)进入Spin下的iSpin目录:
cd Spin/iSpin
(2)运行install.sh进行安装:
sh install.sh
(3)安装成功后,启动ispin:
ispin
(4)ispin启动成功后的结果如下图所示。
四、致谢
至此,Ubuntu 18.04系统下SPIN就安装成功了,关于SPIN的使用请另行参考其他教程。感谢大家的阅览!