APP下载

国产操作系统稳定性测试系统设计与实现

2022-02-21甘兴龙杨英豪

科技信息·学术版 2022年3期
关键词:设计与实现

甘兴龙 杨英豪

摘要:在信息技术应用创新的大背景下,对自主、安全、稳定提出更高要求,操作系统是计算机软件和应用正常运行的必备基础条件,其稳定性与上下游软硬件可靠性正相关。操作系统稳定性是指在有异常输入或压力条件下,系统能够继续正确运行的程度,即当其上运行的应用、硬件层或设备驱动器错误时,操作系统拒绝或反应能力的指标。当前国产操作系统大多沿用Linux技术体系及成果,Linux作为宏内核的典型代表,除最基本的进程管理、线程管理、内存管理外,文件系统、驱动、网络协议等均在内核模块,优点是效率高,缺点是稳定性差,通过国产操作系统稳定性测试技术研究进而提升其稳定性是信息技术应用创新的重要工作。

关键词:国产;操作系统稳定性;测试系统;设计与实现

引言

智能卡又称为IC卡,根据不同的集成电路可以分为存储器卡、逻辑加密卡、CPU卡和射频卡。由于CPU卡中集成了微处理器、存储单元以及芯片操作系统COS(ChipOperatingSystem),从而构成一个完整的计算机系统。CPU卡的操作系统COS是芯片实现主要应用功能最为重要的部分,它是安全芯片中数据,文件、密钥等重要信息进行安全存储、访问的关键。而芯片中实际功能的应用必须依靠COS功能的正常实现,所以对于COS功能的正确实现与否必须有其针对性的测试,以保证产品的正常高效的使用。

1稳定性测试系统设计与实现

国产操作系统稳定性测试系统主要采用Java语言实现,具备平台可移植性;各测试脚本具有配置界面,便于在不同的条件下对国产操作系统稳定性进行测试;各指标的稳定性通过变异系数计算求得,该系数广泛应用于诸多领域中,本系统将该系数移植到国产操作系统的稳定性评估中,具有一定的含义;为了综合不同的指标,采用熵值法对不同指标分配权重,更加客观。在功能实现方面,操作系统稳定性测试工具支持以下功能:(1)测试参数配置,对于单独模块的测试,可通过修改测试参数配置实现自定义测试,配置项和具体使用到的测试工具相关。(2)稳定性分析,通过调用第三方内存测试工具,得到一系列的测试数据用于稳定性分析,当有多个指标时,采用熵值法进行综合评估。(3)记录历史测试结果,当测试完成时,会将本次测试的一些重要信息记录在文件中,可用于对比分析。(4)选择测试模块,综合测试模块中包含各个模块的测试,用户可根据需要选择不同的测试组合进行综合测试。(5)上传文件,选择上传待分析的测试数据,一般为文本文件。(6)稳定性分析,首先会对上传的文件做校验,检查其文件内容格式是否正确,再对文件内容做进一步分析,得到各指标值。(7)支持测试结果的持久化保存及管理。

2国产操作系统稳定性测试系统介绍

2.1开源软件测试工具

(1)数量大:仅在opensourcetesting.org网站上统计的开源软件测试工具就有超过360种,其中面向Java程序的单元测试开源软件工具就有70多种。(2)目标单一:开源软件测试工具往往是面向一个非常具体的领域,而不像商业软件测试工具会将各种功能模块集成起来,解决各个领域的问题。例如,每种开源的软件单元测试工具往往只能支持一种开发语言。(3)运行需求各异:不同的开源软件测试工具有不同的运行需求,包括不同的操作系统版本、不同的脚本语言版本(如不同版本的waitr需要先安裝不同版本的Ruby)。(4)用户使用不便:很多开源软件测试工具都缺乏良好的用户使用界面,也缺乏稳定的维护团队。这些特点决定了将开源测试工具整合起来并不容易。在后面的讨论中,我们按照单元测试、功能测试、性能测试的顺序推荐了一些较为成熟、使用较为广泛的开源软件测试工具。要说明的是,考虑到广泛使用的国产操作系统一般都是基于Linux或类似产品开发的,本文中只讨论能基于Linux使用的开源测试工具。同时考虑到目前国产操作系统上较常使用的开发环境,本文中重点讨论针对Java、C和C++的开源测试工具。

2.2COS基础测试

COS基础测试虽然无法覆盖COS的全部命令与功能,但是对COS的基础功能进行了较为细致、全面的检测。在当前情况下,COS的测试都是由应用方或应用行业进行测试,其着重点主要在于功能实现,即指令集的功能正常。少数安全性要求较高的行业会涉及参数测试,但是对于COS的错误代码机制,是否留有隐藏文件/隐藏指令方面关注较为匮乏。COS中的错误代码是卡片当前状态的重要参考,而隐藏文件与隐藏指令则会为将来的行业应用带来使用安全、功能稳定性等多种类的风险。因此,COS基础测试可以为COS的研发提供质量参考,促进卡片COS质量提升。

2.3LPDDR4芯片测试

集成电路产业是国民经济和社会发展的战略性、基础性和先导性产业,是培育发展战略性新兴产业、推动信息化和工业化深度融合的核心与基础,是调整经济发展方式、调整产业结构、保障国家信息安全的重要支撑。发展集成电路产业是信息技术产业发展和工业转型升级的内部动力,同时也是市场激烈竞争的外部压力,已上升为国家战略。近几年,随着社交网络的普及和推广,使得智能手机迎来了爆发式发展,游戏、照片、视频等各种应用需要更大容量的存储器和更高带宽的数据传输。LPDDR4(第4代低功耗双倍数据速率动态随机存储器)芯片以其高频率、高带宽、低功耗等特点在智能手机领域被大量使用。因此,设计一种能够在各种SoC系统上对LPDDR4芯片进行各种边界条件下功能性能测试的软硬件系统就变得愈发重要。LPDDR4具有小体积和低功耗的特点,通常应用于移动终端。LPDDR4的通信协议是在2014年8月发布的,基本构架从单通道设计改进为双通道的设计,减小了芯片内部的走线距离,通过并行操作提高了运行速率。工作电压降低为1.1V,工作频率最高可提升到2133MHz(数据速率为4266Mb/s),带宽为LPDDR3的两倍。在提升速度和带宽的同时,减少了电量的消耗,ECC技术也是在LPDDR4中引入的。通常情况下,在系统端对LPDDR4芯片进行测试时改变的条件有温度和供电电压。温度调节通过高低温试验箱来实现,测试的温度范围是-10℃至+55℃或者-40℃至+85℃,这取决于LPDDR4芯片的温度等级以及客户的要求。电压调节是本文的重点,调节范围通常是正常供电电压上下浮动5%。因此,针对LPDDR4芯片在系统上的边界测试就分为高温高压、高温低压、低温高压和低温低压4种。常用的内存测试软件有Memtester、Rebooter、3DMark等,另外,还可以使用内存眼图工具在各种边界条件下测试LPDDR4芯片的眼图裕度。

2.4安全芯片测试

安全芯片操作系统测试装置由Python语言构建,主要包括PCSC通信接口层、算法库接口层、功能指令接口层、基本算法接口层、脚本编写和执行层。 PSC通信接口层用于实现与作为测量对象的安全芯片的通信。 算法接口层主要用于封装适用于作为测量对象的安全芯片的多种安全算法的接口。 功能接口层主要用于封装作为测量对象的安全芯片的操作系统内的功能指令。 基本的算法接口层主要用于二次组合和封装所述算法库接口层的接口,同时添加运算函数。 脚本编写和执行层用于存储、执行和修改测试脚本,以便一键切换阶段。 脚本编写执行层通过组合调用PCSC通信接口层、算法库接口层、功能指令接口层和基本算法接口层,实现了对测量对象的安全芯片的测试 该安全芯片OS测试装置通过采用Python语言,与其他程序语言相比,具有语法简单、可读性高、用较少的代码完成复杂的功能,节约脚本的开发时间的优点。 整个Python框架的构建使得结构更加清晰,各层界面维护更加清晰的功能更加通用,在构建过程中,以基础功能结构为前提,留下了后期进一步开发的空间,应用更加广泛的PC系统的无状态。 脚本的执行速度也将提高。通过利用强大的标准库支持和开源第三方算法库,您可以完成并处理各种任务,如设计GUI、生成文档等。

3国产操作系统稳定性测试系统方法实现

3.1错误代码检测

错误代码检测是与指令功能相对的,用于验证COS是否对指令进行了辨别,对文件进行了区分。相对于成功执行指令的场景,错误代码从IC卡的返回状态字SW出发,测试不应成功执行指令的场景中,指令是否如预期一样执行失败,并且返回的SW是否符合标准要求。如:使用SELECT命令选择不存在的文件,IC卡应返回6A82;UPDATERECORD,UPDATEBINARY中发送数据域超出文件的长度,应返回6A84;READRECORD,READBINARY所读文件与指令类型不符应返回6981;在无响应数据时发送GETRESPONSE命令应返回6900;VERIFYPIN认证失败时需要返回63CX等。错误代码检测从每条指令的错误代码设计出发,验证IC卡的指令是否按照所声明设计。在当前文件结构下无法实现指令的错误代码时,如SW=6A81(不支持此功能),可以考虑构建符合此错误代码场景的测试EF,以进行此项测试,验证卡片COS指令功能。

3.2对目标和当前操作系统进行依赖要素比对

构建好库函数模型后'依据分级好的操作系统兼容性依赖要素'以库函数为单位对目标和当前操作系统进行依赖要素比对(比对之前需要确认在目标操作系统中是否可以找到当前操作系统提供的库文件'在找不到库文件的情况下'认为目标操作系统缺少需要的库文件'不能兼容于当前操作系统(在找到所有的库文件后'按照依赖要素分级'分别对当前操作系统以及目标操作系统中每一个库文件94Mb4段%库文件下库函数的94Mb4段%库函数签名的94Mb4段进行逐级比对'如果比对过程中有库文件的94Mb4段一致'则认为该库文件下的所有库函数未进行修改'可以判定该库文件下的所有依赖要素未影响操作系统的兼容性#如果库文件的94Mb4段不一致'则需要对该库文件下的所有库函数进行之后的两个94Mb4段的比对'若比对过程中某一级的94Mb4段一致'则认为库函数未进行对操作系统兼容性有影响的修改'判断该库函数的修改未影响操作系统兼容性(如果所有库函数的修改都被判定为未影响操作系统兼容性'则认为操作系统的修改没有影响到程序的运行'目标操作系统兼容于当前操作系统#若对某个库函数的比对过程中每一级依赖要素的比对结果都不一致'则认为该库函数的修改影响了程序的调用'对该库函数进行调用的应用程序无法在目标操作系统上正确运行'目标操作系统不能兼容于当前操作系统。

3.3性能测试

性能测试使用测试工具模拟各种正常、高峰和异常的负载条件,并测试系统的各项性能指标。 负荷测试和压力测试都是性能测试。 JMeter是Apache开发的基于Java的性能测试工具,测试静态文件、Java小程序、CGI脚本、Java对象、数据库和FTP服务器等静态资源和动态资源 可以模拟负载,在不同的压力下测试服务器、网络或对象的强度,并分析其整体性能。 DBMonster是一种性能测试工具,通过生成随机数据来测试SQL数据库。 DBMonster是一个Java开源项目,可以通过JDBC方法连接到数据库,并在支持Java和JDBC的任何平台上运行。 DBMonster的目的是为数据库开发人员提供服务,可以帮助数据库开发人员生成大量规则和不规则的数据,从而方便数据库开发人员根据这些数据进行数据库的调整。 DBMonster控制为表示要连接的数据库、用于连接的用户名和密码、需要操作的模式、重试次数等全局设置的两个XML文件,以及为每个数据表中的每个字段生成数据的规则。

结束语

针对国产操作系统设计并现了一套综合测试系统,可对适配不同厂商的操作系统,具备良好的通用性,界面操作简便,极大地提高了测试效率,无需测试人员编写测试脚本,降低了测试难度,弥补了对国产操作系统进行综合测试区域的空白,为对国产操作系统进一步测试研究打下了基础。

参考文献:

[1]梅磊,刘娜.基于国产操作系统的软件测试方法研究[J].航天标准化,2019(01):34-40.

[2]左芸,沈雷,张杨.基于Cantata的高安全性操作系统软件单元测试[J].数字技术与应用,2019,37(01):202-204.

[3]郝继锋,李运喜,任晓瑞,徐晓光.一种轻量级操作系统测试框架设计与实现[J].航空计算技术,2018,48(05):80-84.

[4]王晖.国产操作系统自动化测试平台技术研究[J].无线互联科技,2017(10):48-51.

[5]许侃,张志华,牟永敏.桌面linux操作系统整机兼容性测试方法研究[J].数字技术与应用,2017(05):69-70+73.

[6]落红卫.移动操作系统安全机制与测试验证[J].保密科学技术,2017(03):38-41.

[7]刘春梅,韩锐,郭志川.智能电视操作系统组件层自动化测试的实现[J].网络新媒体技术,2016,5(05):45-50.

[8]陈万桥,杜承烈,江南.操作系统实时性指标研究与测试结果分析[J].航空計算技术,2014,44(01):109-112.

作者简介:甘兴龙,1979.2 男,汉族,籍贯湖南龙山,研究生,主要研究方向IT专业技术研究和项目管理工作;杨英豪,1995.6 男,汉族,籍贯浙江省舟山市,工学学士学位,工程师,研究方向信息化工作

猜你喜欢

设计与实现
统一通信系统客户端的设计与实现研究
校园网络电视媒体直播系统的设计与实现
测绘产品质检管理系统的设计与实现
网络安全中入侵检测系统的设计与实现
配调一体配网自动化系统的设计与实现
校园电商平台的设计与实现
高校文化建设中视觉识别系统的设计和实现
科研院所科研信息化管理系统的设计与应用
基于PHP的医院管理信息系统的设计与实现