一种星务软件的在轨重构及多版本管理系统的制作方法

摘要: 本发明属于星务软件的开发与维护,具体涉及一种星务软件的在轨重构及多版本管理系统。背景技术:1、星务软件是卫星综合电子系统的核心组成部分,是支撑卫星在轨功能实现、...
一种星务软件的在轨重构及多版本管理系统的制作方法

本发明属于星务软件的开发与维护,具体涉及一种星务软件的在轨重构及多版本管理系统。

背景技术:

1、星务软件是卫星综合电子系统的核心组成部分,是支撑卫星在轨功能实现、保障星地数据交互的核心控制与信息处理中枢,直接决定卫星在轨运行的稳定性与任务执行能力。在航天技术快速发展的背景下,卫星在轨服役寿命大幅延长,在轨工作环境、任务需求会随时间不断发生动态变化;同时,现代卫星星务软件功能迭代升级、复杂度持续提升,地面测试受场景、环境、测试周期等条件限制,无法完全复刻复杂多变的在轨工况,难以彻底排查软件潜藏的深层次程序缺陷。因此,星务软件需不断进行在轨版本更迭,重构能力已经成为卫星全生命周期运行中的重要基础,是弥补地面测试短板、适配在轨状态变化、保障卫星长期可靠服役的关键手段。

2、卫星入轨后的星务软件版本更新,主要依靠地面测控站程序上注的方式实现。然而,卫星在轨运行的测控弧段资源十分有限,单次有效上行传输窗口仅约十分钟,可用于软件上注的作业时间极度紧张;同时,星地通信链路存在不稳定性,在轨传输过程中极易出现数据误码、帧丢失、传输中断等问题,严重影响星务软件在轨更新的效率与安全性。现有的在轨重构方案主要存在以下痛点:

3、1.全量上注模式更新效率低,测控资源消耗大:传统全量上注方式需将完整的新版本程序二进制文件经星地链路传输至星上,随着星务软件体量持续增大,完整版本的传输耗时大幅增加,单个测控弧段往往难以完成一次完整的程序上注。此外,大量数据在不可靠链路上的长时间传输显著提升了误码与丢帧概率,进一步降低了更新成功率,难以满足在轨快速响应的运维需求。

4、2.差异更新方法受限于语句级粒度,大范围修改时补丁体积急剧膨胀:为减少上注数据量,现有方法多采用语句级差异更新策略,仅适用于变量值、常量值等所占字节数不变的局部修改。此类修改不会引起可执行文件后续区域的地址重排,差异文件体积较小。然而,当程序中新增语句、新增函数或调整代码结构时,修改位置之后的指令地址、指针地址及寄存器地址将发生大范围偏移,传统逐字节差异算法将大量地址偏移视为独立的新增数据,生成的补丁文件体积急剧增加,接近甚至超过全量上注的数据量,丧失了差异更新的优势。

5、3.差异更新高度依赖算法与基准版本的完整性,缺乏全量与差异灵活切换的冗余能力:差异重构以旧版本程序作为差异计算的基准,一旦在轨运行期间因单粒子翻转等异常事件导致旧版本程序部分区域损坏或版本信息异常,差异计算将无法正确执行,重构流程随之中断。现有方案缺乏在全量上注与差异上注之间灵活切换的冗余机制,当差异更新无法进行时,无法快速回退至全量重构以恢复系统正常运行,在轨容错能力不足。

6、4.多版本管理缺乏统一维护能力,版本一致性维护成本高:为提升可靠性,星务软件通常在星上存储多个版本备份,涉及待启动版本、当前启动版本、默认启动版本等多种状态的管理。现有方案在某一版本完成更新后,若需使其他备份版本保持一致,往往需要重新上注相同程序,造成测控资源浪费;同时,版本间的程序校验、版本搬移与启动状态切换缺乏统一的指令化调度能力,操作流程繁琐、可靠性低,难以满足大规模星座长期运维中频繁的版本管理需求。

技术实现思路

1、针对上述现有技术的缺陷,本发明提出了一种星务软件在轨重构及多版本管理系统,通过差异计算、压缩编解码、数据接收与校验与版本管理四个模块的协同设计,系统性地解决在轨重构效率低、容错能力不足与版本管理分散的问题。

2、所述包括差异计算模块、压缩编解码模块、数据接收与校验模块和多版本存储管理模块;

3、差异计算模块部署于地面端,基于星务软件的旧版本可执行文件与新版本可执行文件,采用bsdiff增量更新算法进行差异计算,生成程序差异块;压缩编解码模块在地面端对上注的程序块进行二次压缩,在星上端对压缩差异块进行解压缩;数据接收与校验模块部署于星上端,按照星地通信协议接收重构数据文件,将各包数据组合成完整的重构文件,对接收到的差异块与原始版本进行组合构建新程序,并进行程序校验;多版本存储管理模块负责星上多个版本程序的存储管理、版本间数据搬移及启动版本选择。

4、进一步,差异计算模块中进行的操作包括旧文件后缀数组构建、新文件逐段最长匹配查找、近似匹配扩展及差异块封装。

5、进一步,旧文件后缀数组构建:将新旧版本星务软件可执行文件视作字节序列,对旧文件构建字典序后缀数组,以此实现新文件子串在旧文件中的二分匹配定位;

6、新文件逐段最长匹配查找:遍历新文件,依托后缀数组查找字节序列最长匹配段,通过八字节差异筛选规则剔除冗余匹配,精准界定有效匹配区间;

7、近似匹配扩展:将精准匹配区间双向扩展,以不低于50%的字节匹配比例为约束,划分出未修改区块与源码修改区块,形成独立近似匹配区间;

8、差异块封装:整合匹配与差异数据,封装含控制流、差异数据以及额外数据三区的差异块,通过对应指令实现旧文件到新文件的精准重构。

9、进一步,压缩编解码模块中进行的操作包括burrows-wheeler变换、move-to-front编码、run-length编码、霍夫曼编码和星上解压缩。

10、进一步,burrows-wheeler 变换:对程序差异块字节序列执行burrows-wheeler变换,排序数据流所有循环位移使同类字符聚集;

11、move-to-front 编码:对burrows-wheeler 变换输出数据开展move-to-front编码,依托256字节有序表替换字节索引并更新列表;

12、run-length 编码:对move-to-front 编码输出数据进行run-length编码,将连续重复字符序列替换为字符与重复次数组合;

13、霍夫曼编码:基于run-length 编码输出数据的字节出现频率构建最优前缀编码树,按频率分配长短编码,最终生成压缩差异块数据流,记为压缩差异块;

14、星上解压缩:星上合并完整压缩差异块后,逆向执行多级解码与burrows-wheeler逆变换,无损还原原始程序差异块。

15、进一步,数据接收与校验模块中进行的操作包括重构流程启动与基准文件读取、数据块分包接收与逐包校验、压缩差异块合并与解压缩、差异解码与新文件构建、全量上注模式处理和程序完整性与一致性校验。

16、进一步,重构流程启动与基准文件读取:星上接收读取指令后开启上注使能,读取指定版本程序数据至重构缓冲区,记录程序长度,确立差异上注基准文件;

17、数据块分包接收与逐包校验:星上接收地面上行的各类型数据指令包,对每包数据执行crc校验,校验通过则排序缓存并回执,异常则上报并等待数据重发;

18、压缩差异块合并与解压缩:完成所有数据包接收后,按包号拼接为完整压缩差异块,调用压缩编解码模块通过bzip2算法解压缩,还原原始程序差异块;

19、差异解码与新文件构建:依据差异块控制流区的add和insert指令,分别完成旧数据差值叠加和新增数据写入操作,逐指令处理完成新版本程序文件构建;

20、全量上注模式处理:针对星上旧程序损坏无法作为基准的场景启用该备份模式,进行压缩全量程序上注,星上自动识别压缩标识并跳过差异解码流程;

21、程序完整性与一致性校验:比对新程序文件的crc校验值与有效长度,校验通过则写入存储并回读核验,校验失败则上报错误,等待地面重新上行数据。

22、进一步,多版本存储管理模块中进行的操作包括启动版本确定与程序加载、重构程序写入与关键信息更新、启动版本切换和版本搬移。

23、进一步,启动版本确定与程序加载:整星上电读取三模冗余存储的版本关键参数,经三取二表决确定启动版本,加载程序并完成crc校验,异常时回退至默认启动版本;

24、重构程序写入与关键信息更新:将校验通过的新程序写入对应存储区并回读核验,以三模冗余方式更新该版本程序长度、crc校验值及启动状态;

25、启动版本切换:通过三模冗余方式修改星上待启动版本号,更新启动配置,使设备下次上电加载指定版本程序;

26、版本搬移:响应地面指令将源版本程序完整拷贝至目标版本存储区,仅复制程序内容,后续由地面校验并更新目标版本参数。

27、进一步,所述三模冗余具体为每项参数均写入三份存储设备。

28、本发明所述系统的有益效果为:

29、1.显著降低上注数据量:差异计算模块采用bsdiff增量更新算法,将可执行文件视为不透明字节流,通过后缀数组最长匹配与近似匹配扩展,充分利用可执行文件二阶变动区域内容稀疏变化及地址位移一致的规律,生成的程序差异块体积远小于传统逐字节差异方法;压缩编解码模块进一步通过bzip2算法对程序差异块进行二次压缩,大幅减少了星地传输数据量。

30、2.提高在轨更新效率:程序差异块经二次压缩后体积大幅减小,使得在有限的测控圈次内可完成更多程序内容的更新,缩短了星务软件在轨重构所需时间,提升了卫星对软件问题的快速响应能力。

31、3.提供全量重构冗余能力:在保留高效差异上注方式的同时,重构处理模块支持全量上注模式。当在轨发生单粒子翻转等异常导致旧版本程序损坏、无法作为差异基准时,可通过全量上注完成程序恢复,保障在轨可靠性。

32、4.实现多版本高效管理:多版本存储管理模块通过版本搬移机制实现备份版本间的一致性同步,避免相同程序重复上注,节约测控资源;通过外部存储关键参数三模冗余存储,提高抗单粒子翻转能力;通过灵活的启动版本切换机制,支持在轨版本回退与快速恢复,适用于大规模星座的长期运营管理。