基于申威-威焱831和统信操作系统下设计即时通讯系统的全流程研究

2024-09-12 00:00:00刘宁海殷卫强
物联网技术 2024年4期
关键词:信创即时通讯

摘 要:申威作为国内信创产业重要的生力军,其完全自主指令集核心处理器的优势备受瞩目。但是,基于申威架构的应用全流程开发尚未得到足够关注。因此,提出基于申威-威焱831和统信操作系统设计了即时通讯系统的全流程开发应用。文中详细阐述了系统框架设计、Qt源码编译、Qt Creator安装,并提出了一种自动化获取Qt运行时库脚本的方法,彻底解决应用程序发布难题。最后,利用DEBIAN包管理软件对应用程序打包,实验结果证明,应用程序发布到其他客户机同样能正常工作。

关键词:申威-威焱831;信创;即时通讯;Qt;自动化脚本;程序发布

中图分类号:TP311.1 文献标识码:A 文章编号:2095-1302(2024)04-0-04

DOI:10.16667/j.issn.2095-1302.2024.04.041

0 引 言

当前,在信息科技领域,大多数应用系统都运行在英特尔x86平台下,而“绝对垄断”的wintel(即Windows+Intel)组合已经主导了该行业多年。随着国家信息科技创新[1]产业的崛起,打破来自西方的所谓“卡脖子”行业的呼声越来越高,人们日益期待国内创造的自主设计产品能够替代进口产品,实现真正的自主创新。而其中基于申威处理器的优化研究一直在不断推进之中。例如,近期有关申威众核处理器上通信研究的文献[2]表明,通过基于寄存器的通信方式,该处理器的性能得到了大幅改善。然而,由于自主设计的处理器指令集架构与x86存在很大差异,因此为了在国产化环境中使用这些处理器,应用软件就必须适配国产处理器的指令集。目前,越来越多的应用程序已经开始基于国产处理器以及国产操作系统进行开发[3],如统信操作系统在行业和个人消费领域的应用不断提高[4],而在其系统上进行Ceph集群性能测试的研究也取得了显著进展[5]。此外,国产麒麟操作系统上应用软件的设计和开发随着信息创新产业的发展成为了一个新的方向[6]。可以看到,信息创新产业百花齐放。本文旨在探讨基于申威处理器以及统信操作系统的应用程序开发、移植、部署全流程问题。特别地,对于基于申威处理器移植的应用,其移植方式可以分为二进制翻译和源码编译两种。例如,解释性语言如Java可直接通过二进制翻译技术进行移植,并已有相关应用成功实现[7],而对于编译型语言如C/C++,则需要进行源代码编译。在部署方面,应用程序的实施部署也需要根据不同的平台系统特点适配,而不同的环境下,应用的发布方式也可能存在差异[8]。最后,本文以基于申威-威焱831和国产统信操作系统为基础实现的一款即时通讯应用为例来说明本文主旨。项目采用C++语言进行客户端开发,并使用定制化的Qt Creator IDE[9]及Qt库进行界面设计。由于需要开发环境的部署,在申威平台下需要定制Qt开发环境,并提出了一种自动化获取依赖的Qt运行时库脚本,使应用程序发布变得更为简便。最终,已将该应用成功打包成为可一键安装和卸载的deb安装包。通过上述研究,实验结果也说明了即使发布在其他客户机,应用同样可正常

工作。

1 软件设计

系统服务端架构如1所示。

具体说明如下:

(1)应用层:应用层主要为PC客户端(即时通讯客户端),消息存放在本地数据库中。

(2)服务层:服务层主要包含HTTP服务和TCP服务,HTTP服务包含消息、回执、人员信息,TCP服务主要用来推送消息。

(3)数据层:服务端的数据层主要用来存放人员登录、权限、消息、文件等信息。

客户端功能如图2所示。

(1)聊天功能:此为即时通讯的主要功能,包括支持发送文本、图片、视频、文件等消息内容。

(2)通讯录功能:从HTTP获取全量通讯录,支持模糊查找。

(3)群组功能:支持群组新建、修改、删除等功能。

(4)组织功能:获取组织下的所有人员信息。

2 Qt库编译及Qt Creator安装

由于Qt官网无提前编译好的基于申威平台的安装包,所以需要对Qt源码进行基于申威平台的编译适配,生成适配申威版Qt开发库。本文所使用的Qt版本为5.13.2。

2.1 编译基础环境

编译Qt源码需要基础运行环境及依赖库。需要依赖的基础环境见表1所列。

2.2 检查安装环境

基础环境安装完成后的检查流程如图3所示。

2.3 安装依赖包

申威平台下,Qt源码编译需要依赖相关库,包括平台相关、三维绘图、字体、开发工具包。其中部分是在编译过程中加载,部分在运行时加载,具体见表2所列。

2.4 编译及安装

上述安装包执行完后,在Qt源码目录下执行编译、安装命令,Qt库安装完成。

2.5 安装Qt Creator

安装命令:apt install qtcreator。

3 程序打包

针对在开发环境中编写的程序发布到其他申威831客户机上需要手动查找依赖库文件低效的问题,本文设计了一种自动化脚本解决方案。该脚本可以在开发环境中自动查找应用程序所依赖的所有库文件,并将其全部打包成为一个安装包。通过该方法可以避免手动查找依赖库文件耗费大量时间和精力的问题,并确保所找出的依赖库文件完整准确,提高应用程序发布的效率和可靠性。本文详细描述了该系统的原理以及具体实现方式,并在实验中验证了该方案的可行性和有效性。

Qt程序依赖的库文件主要分为libs、platforms、SQLdrivers三大类,所以脚本的编写主要围绕查找这三类

展开。

依赖库提取流程如图4所示。

4 一键生成程序deb包

本文探讨在统信操作系统下,针对应用程序依赖库文件、配置文件、数据库等其他内置文件的需求,提供一键安装及卸载软件功能。为此,我们使用deb作为包管理方式,将应用程序及其所需依赖的所有文件统一打包成一个软件包,并设计了一套完整的软件安装和卸载机制。通过这种方式,我们能够提供用户友好、方便快捷的软件安装和卸载体验,降低用户操作的难度和出错风险,延长软件生命周期,提高可维护性和稳定性。本文详细描述了如何构建deb软件包以及如何通过dpkg命令进行软件安装与卸载,同时提出了在实施过程中的注意事项和优化策略。

4.1 打包目录结构

统信平台下deb打包程序结构如下所示:

DEBIAN

control

preinst

postrm

usr

local

bin

IMpackage(程序目录)

share

applications(xxx.desktop)

4.2 脚本文件内容

control文件内容如下所示:

Package:imchat-sw

Version:2023-04-07

Section:Commercial

Priority:optional

Architecture:sw_64

Maintainer:Liunh

Provides:imchat-sw

Description:a tool for chat

注意:Package命名有规定,大写、数字、下划线都不能出现,Architecture指的是CPU架构类型,这里是申威平台架构:sw_64。

preinst文件内容如下所示:

#!/bin/bash

dir=/usr/local/Qt-5.13.2/lib/fonts

if [ ! -d \"$dir\" ]; then

mkdir -p /usr/local/Qt-5.13.2/lib/fonts

cp /usr/share/fonts/opentype/noto/* /usr/local/Qt-5.13.2/lib/fontsfi

dir1=/usr/local/Qt-5.13.2/plugins/platforminputcontexts

if [ ! -d \"$dir1\" ]; then

mkdir -p /usr/local/Qt-5.13.2/plugins/platforminputcontexts

cp /usr/lib/sw_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /usr/local/Qt-5.13.2/plugins/platforminputcontexts

chmod +x /usr/local/Qt-5.13.2/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so

fi

postrm文件内容如下所示:

#!/bin/bash

rm -rf /usr/local/Qt-5.13.2/lib/fonts

4.3 执行打包命令

上述目录中的脚本编写完成后,执行打包命令:

dpkg -b im-deb uos20_sw831_imchart.deb

5 实验结果及分析

5.1 实验结果

申威平台下即时通讯安装包截图如图5所示。

软件安装界面如图6所示,程序执行界面如图7所示。

5.2 实验问题分析

在基于申威831平台开发应用程序的过程中,遇到了区别于基于x86平台的问题,经过适配移植,最终实现了基于国产申威架构CPU平台、统信操作系统应用程序的开发与部署[10]。表3所列为申威平台环境下遇到的问题及解决

方案。

6 结 语

本文系统地介绍了基于申威831、统信操作系统平台下的应用软件开发、部署及实施流程,强调了该过程中因软硬件架构不同所带来的挑战以及解决这些挑战的具体方法。本文所有内容都基于作者在实践中积累的经验,为未来在信息创新产业环境中开发、部署应用软件提供了有益指导和借鉴。此外,本文也提出了可用于优化应用程序性能和简化环境部署的策略,从而提高国产处理器、操作系统等自主设计产品的应用范围和竞争力。

参考文献

[1]李韶光,刘雷,郎金鹏,等.CPU发展概述及国产化之路[J].网络空间安全,2020,11(4):114-117.

[2]李少迪,吴俊敏,张屹,等.申威26010处理器上协程间通信的研究[J].计算机应用与软件,2022,39(12):137-143.

[3]李勇.基于麒麟系统的即时通讯系统设计与实现[J].自动化技术与应用,2020,39(3):51-55.

[4]曹政.国产操作系统发力个人消费市场[N]. 北京日报,2022-12-24(7).

[5]康克松,张庆海,信寄遥,等.UOS操作系统Ceph集群性能测试工具对比研究[J].计算机技术与发展,2022,32(5):63-67.

[6]孙宝亮,王毅,薛凯,等.基于中标麒麟的测发控类软件一体化设计[J].计算机测量与控制,2021,29(12):145-149.

[7]鲍正刚,王兴元,王丰.Java项目在申威平台上的移植部署[J].网络安全技术与应用,2023,23(4):64-66.

[8]赵正旭,陶智,徐骞.基于国产操作系统应用软件部署对策的探讨[J].微型机与应用,2016,35(18):16-18.

[9]霍亚飞.Qt Creator快速入门(第3版)[M].北京:北京航空航天大学出版社,2017.

[10]冯前进.基于IMS的即时通讯系统的研究与实现[D].成都:电子科技大学,2009.

收稿日期:2023-05-23 修回日期:2023-06-26

作者简介:刘宁海(1988—),男,硕士,工程师,研究方向为国产操作系统软件开发移植、区块链。

殷卫强(1990—),男,本科,工程师,研究方向为国产操作系统移植测试。

猜你喜欢
信创即时通讯
信创浪潮下收费系统国产化改造探索
低代码开发平台加速信创落地
中国信息化(2021年8期)2021-09-07 21:34:32
华云数据:“全芯全栈”助力“信创强国”
中国信息化(2021年7期)2021-07-22 19:07:16
EasyStack下注信创云
江苏省信创生态构建发展新格局
江苏省信创生态构建发展新格局
即时通讯在高校体育教学中的应用研究
运动精品(2019年10期)2019-11-26 04:56:26
民事诉讼中即时通讯记录的证据采用进路
即时通讯软件发展模型的实证研究
东方教育(2016年19期)2017-01-16 12:34:53
科学技术哲学视域下的即时通讯
科技传播(2015年14期)2015-12-13 04:20:18