CN110674046B - 提高星载嵌入式文件系统可靠性的方法 - Google Patents

提高星载嵌入式文件系统可靠性的方法 Download PDF

Info

Publication number
CN110674046B
CN110674046B CN201910909423.8A CN201910909423A CN110674046B CN 110674046 B CN110674046 B CN 110674046B CN 201910909423 A CN201910909423 A CN 201910909423A CN 110674046 B CN110674046 B CN 110674046B
Authority
CN
China
Prior art keywords
file
partition
satellite
borne
redundant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910909423.8A
Other languages
English (en)
Other versions
CN110674046A (zh
Inventor
白亮
关宁
游红俊
程利甫
田文波
王茂森
双小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Spaceflight Electronic and Communication Equipment Research Institute
Original Assignee
Shanghai Spaceflight Electronic and Communication Equipment Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Spaceflight Electronic and Communication Equipment Research Institute filed Critical Shanghai Spaceflight Electronic and Communication Equipment Research Institute
Priority to CN201910909423.8A priority Critical patent/CN110674046B/zh
Publication of CN110674046A publication Critical patent/CN110674046A/zh
Application granted granted Critical
Publication of CN110674046B publication Critical patent/CN110674046B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种提高星载嵌入式文件系统可靠性的方法,包括:在当前星载综合电子计算机文件系统存储介质上,创建主分区和冗余分区;将文件上载到文件系统中时,分别存储至主分区和冗余分区;为上载到文件系统的每一份文件中添加MD5(Message‑Digest Algorithm信息摘要算法)校验码值,并在文件加载时进行MD5校验码值比对;在启动星载应用程序时,对主分区,或冗余分区中的星载应用程序进行校验,若校验成功,则启动对应分区的文件;按照预设的周期,对主分区和冗余分区中上载的文件进行回读刷新。从而可以有效保证每次加载运行的应用程序是完整和可靠的,对于维持卫星长期在轨运行提供可靠性保证。

Description

提高星载嵌入式文件系统可靠性的方法
技术领域
本发明涉及宇航技术领域,具体地,涉及提高星载嵌入式文件系统可靠性的方法。
背景技术
当星载综合电子系统运用嵌入式操作系统后,使用文件系统能够使得综合电子系统软件的开发更加灵活和便捷。充分利用嵌入式操作系统提供的动态加载特性,将各个应用程序编译成单独文件个体,从而实现软件每次的调试加载和软件工程化管理。另外,综合电子系统软件的开发涉及多方合作开发时,可以实现背靠背式开发,最后各家只需要提交一个可执行程序即可实现软件集成,改变传统软件开发模式。
卫星在轨运行环境相对地面较恶劣,可能会受到各种高能粒子的干扰和影响,而存储器件,如NorFlash较易受影响,进而使其内部存储的数据被改变。然而,在轨卫星文件数据被改变是件极其危险的事情。综合电子系统只能通过遥测数据监控卫星在轨运行状况,周期性的对文件系统中关键文件进行回读刷新处理,从而保证文件的完整性和可靠性,进而保证综合电子系统的可靠性,提高卫星在轨使用寿命。
嵌入式文件系统在宇航星载系统中有着广泛的应用,而现有实现技术中,主要有以外下两种实现方式:
1)、利用FPGA控制NandFlash存储器实现的简易文件系统,只有文件编号和简单时间的抽象概念,生成的文件无法与现有文件系统兼容,并且无法与现有嵌入式操作系统实现接口对接,控制较难。
2)、利用NorFlash或者NandFlash作为文件系统的存储介质,其没有利用嵌入式操作系统的动态加载特性,将应用程序和操作系统编译为一体,无法对文件系统的可靠性进行加固,降低了文件系统可维护性,从而降低星载综合电子系统的可靠性。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种提高星载嵌入式文件系统可靠性的方法。
根据本发明提供的一种提高星载嵌入式文件系统可靠性的方法,包括:
步骤1:在当前星载综合电子计算机文件系统存储介质上,创建主分区和冗余分区;
步骤2:将文件上载到文件系统中时,分别存储至所述主分区和所述冗余分区;
步骤3:为上载到所述文件系统的每一份文件中添加MD5校验码值,并在文件加载时进行MD5校验码值比对;
步骤4:在启动星载应用程序时,对所述主分区,或所述冗余分区中的星载应用程序进行校验,若校验成功,则启动对应分区的文件;
步骤5:按照预设的周期,对所述主分区和所述冗余分区中上载的文件进行回读刷新。
可选地,所述主分区和所述冗余分区为物理上不连续的存储区。
可选地,所述文件包括:星载应用程序文件、动态库文件、内核驱动模块文件和配置文件。
可选地,所述步骤3包括:
在同目录下生成3份相同的文件以及对应的MD5校验码值,并将所述MD5校验码值写入文件中,得到包含MD5校验码值的文件;所述MD5校验码值用于在加载文件时,与生成的MD5校验码值进行比对,若比对一致,则允许文件加载;若比对不一致,则不允许被加载。
可选地,所述步骤4包括:
每次启动星载应用程序时,先对主分区中的星载应用程序文件进行校验,若所述主分区中的星载应用程序校验通过时,则直接启动主分区内文件;
若所述主分区中的星载应用程序校验失败时,则对所述冗余分区中的星载应用程序文件进行校验,若所述冗余分区中的星载应用程序文件校验通过,则直接启动冗余分区内文件。
可选地,所述步骤5包括:
按照预设的周期对所述主分区和所述冗余执行回读刷新处理,若任一分区的文件校验不通过时,利用另一分区的文件进行文件恢复。
可选地,还包括:
步骤6:在所述冗余分区中存储动态库文件的目录;所述存储动态库文件的目录用于在所述主分区中未找到对应动态库文件时,从冗余分区中搜索到对应的动态库文件。
与现有技术相比,本发明具有如下的有益效果:
本发明提供的提高星载嵌入式文件系统可靠性的方法,通过为每一份文件分别在主分区和冗余分区保存备份件,当其中一份受损时,不会影响到该文件的加载执行和链接,并通过MD5算法文件进行校验,保证文件的一致性,从而可以有效保证每次加载运行的应用程序是完整和可靠的,对于维持卫星长期在轨运行提供可靠性保证。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明中文件系统存储结构的示意图;
图2为本发明加载执行应用程序和动态库文件的流程图;
图3为本发明按照周期性进行回读刷新操作的流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提供了一种提高星载嵌入式文件系统可靠性的方法,包括以下步骤:
步骤1:在当前星载综合电子计算机文件系统存储介质上,创建主分区和冗余分区;所述主分区和所述冗余分区为物理上不连续的存储区。
本实施例中,可以保证在发生单粒子翻转或者受非正常因素作用时,不会互相受到影响。可选地,当使用NorFlash(非易失性闪存)或者NandFlash(非易失性闪存)作为存储介质的星载文件系统时,可以将文件系统的存储介质至少分为两个分区,且要求这两个分区在物理介质上必须是不连续且独立的,从而保证受影响时不具有连续性,且为星载系统提供可靠性。
具体地,图1为本发明中文件系统存储结构的示意图,如图1所示,针对星载综合电子计算机中嵌入式文件系统的存储介质——NorFlash,创建物理地址上不连续的两个分区,且都格式化为Yaffs2(Yet Another Flash File System2嵌入式文件系统)文件系统,从而可以被嵌入式操作系统所识别。两个分区在物理上不连续是为保证在发生单粒子翻转或者高能粒子打到时,不会连续受影响。
步骤2:将文件上载到文件系统中时,分别存储至所述主分区和所述冗余分区;所述文件包括:星载应用程序文件、动态库文件、内核驱动模块文件和配置文件。
本实施例中,通过在所述主分区和所述冗余分区中都各存储一份星载应用程序文件、星载应用程序文件所链接的动态库文件、内核驱动模块文件及重要的配置文件。从而可以在其中一个分区中的文件(应用程序文件或者动态库文件)被破坏时,可以利用另一个分区中的文件进行启动,且可以恢复到正确版本;保证系统文件的可靠性和完整性。
具体地,凡是需要在星载综合电子计算机中加载运行,或者被链接执行,或者是在程序运行过程中,需要提前加载到内核的模块,或者是初始化时所需要的所有配置文件,都需要为其作冗余备份。主分区和冗余分区中各放置一份,启动、配置、链接和加载时,以先主分区,后冗余分区的顺序执行,为星载系统提供健壮性。
步骤3:为上载到所述文件系统的每一份文件,在同目录下生成3份相同的文件以及对应的MD5(Message-Digest Algorithm信息摘要算法)校验码值,并将所述MD5校验码值写入文件中。
本实施例中,上载的每份文件包括星载应用程序文件、动态库文件、内核驱动模块文件和配置文件等等;为上载的每份在同目录下生成3份相同的文件以及对应的MD5校验码值,并将所述MD5校验码值写入文件。
具体地,本实施例通过引进检查文件完整性较优的MD5算法,提高星载文件系统中所有用户文件完整性。所有用户上载的应用程序文件、可链接的动态库文件、被加载的内核驱动模块和关键配置文件,为每个文件都生成一个MD5校验码值,并且在该文件同一目录下,存储3份相同的MD5校验码值文件,文件中存储着该文件数据被加载到文件系统中时生成的MD5校验码值。为保证后续在加载执行时,为有效校验文件完整性,需要实时计算该文件对应的MD5校验值,并与MD5校验码值文件中记录的值相比较,只有MD5校验码通过的程序文件才可以被加载执行,防止因为单粒子翻转造成Flash中数据被修改时,影响到可执行程序无法执行和动态链接库无法链接。
步骤4:每次启动星载应用程序时,先对主分区中的星载应用程序文件进行校验,若所述主分区中的星载应用程序校验通过时,则直接启动主分区内文件;若所述主分区中的星载应用程序校验失败时,则对所述冗余分区中的星载应用程序文件进行校验,若所述冗余分区中的星载应用程序文件校验通过,则直接启动冗余分区内文件。
步骤5:按照预设的周期,对所述主分区和所述冗余分区中上载的文件进行回读刷新。
本实施例中,通过周期性地对所述主分区和所述冗余分区中上载的文件进行回读刷新处理,可以保证文件的完整性。
具体地,星载应用程序在轨运行期间,会周期性对文件系统中存储的所有可执行程序、动态链接库文件、配置文件及NorFlash中存储的操作系统镜像进行“回读刷新”操作。针对主分区和冗余分区执行相同的操作,先执行MD5校验操作,当校验操作不通过时,利用另一分区内的数据文件进行恢复本分区内的数据文件。
在一种可选的实施方式中,还可以包括:
步骤6:在所述冗余分区中存储动态库文件的目录。
本实施例中,为操作系统环境变量LIB(Library库)添加扩展搜索路径,便于在所述主分区中无法找到对应动态库文件时,从冗余分区中搜索到对应的动态库文件。
具体地,为星载嵌入式操作系统环境变量LIB添加冗余路径选择,由原来的单一主分区,添加冗余分区中存储动态链接库的目录,当在加载执行应用程序时,在主分区中无法找到对应的链接库文件时,可以从冗余分区中搜索,进一步增强系统的可靠性和容错性。
本发明利用多模冗余的思想,为每一份文件分别在主分区和冗余分区保存备份件,当其中一份受损时,不会影响到该文件的加载执行和链接。因为三份文件同时受损的概率极低,且可以利用三份中正确的文件数据恢复受损文件。即使利用MD5算法校验失败时,还可以利用按位“三取二”取得完整正确的文件。
本发明利用数字签名技术MD5算法,保证文件系统中任意使用的文件的一致性。为每一份现存文件生成对应的数字签名,在使用文件时,利用数字签名进行校验文件的完整性,保证星载系统的可靠性。
综上所述,本发明方式以多重冗余方式显著提高以NorFlash作为存储介质的文件系统的在轨可靠性,从而提高星载综合电子系统的可靠性,进一步增强整星系统的在轨可靠性。同时,对于文件系统内有文件变动时,会为其动态生成相应的MD5校验码,维持数字签名的动态完整性。相比于传统星载软件开发模式及仅用ramfs(内存文件系统)文件系统的星载综合电子系统,该种方式可以极大提高星载软件的开发和维护的灵活性,具有较强的工程实践价值。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (5)

1.一种提高星载嵌入式文件系统可靠性的方法,其特征在于,包括:
步骤1:在当前星载综合电子计算机文件系统存储介质上,创建主分区和冗余分区;
步骤2:将文件上载到文件系统中时,分别存储至所述主分区和所述冗余分区;
步骤3:为上载到所述文件系统的每一份文件中添加MD5校验码值,并在文件加载时进行MD5校验码值比对;
步骤4:在启动星载应用程序时,对所述主分区,或所述冗余分区中的星载应用程序进行校验,若校验成功,则启动对应分区的文件;
步骤5:按照预设的周期,对所述主分区和所述冗余分区中上载的文件进行回读刷新;若任一分区的文件校验不通过时,利用另一分区的文件进行文件恢复;
步骤6:在所述冗余分区中存储动态库文件的目录;所述存储动态库文件的目录用于在所述主分区中未找到对应动态库文件时,从冗余分区中搜索到对应的动态库文件。
2.根据权利要求1所述的提高星载嵌入式文件系统可靠性的方法,其特征在于,所述主分区和所述冗余分区为物理上不连续的存储区。
3.根据权利要求1所述的提高星载嵌入式文件系统可靠性的方法,其特征在于,所述文件包括:星载应用程序文件、动态库文件、内核驱动模块文件和配置文件。
4.根据权利要求1所述的提高星载嵌入式文件系统可靠性的方法,其特征在于,所述步骤3包括:
在同目录下生成3份相同的文件以及对应的MD5校验码值,并将所述MD5校验码值写入文件中,得到包含MD5校验码值的文件;所述MD5校验码值用于在加载文件时,与生成的MD5校验码值进行比对,若比对一致,则允许文件加载;若比对不一致,则不允许被加载。
5.根据权利要求1所述的提高星载嵌入式文件系统可靠性的方法,其特征在于,所述步骤4包括:
每次启动星载应用程序时,先对主分区中的星载应用程序文件进行校验,若所述主分区中的星载应用程序校验通过时,则直接启动主分区内文件;
若所述主分区中的星载应用程序校验失败时,则对所述冗余分区中的星载应用程序文件进行校验,若所述冗余分区中的星载应用程序文件校验通过,则直接启动冗余分区内文件。
CN201910909423.8A 2019-09-24 2019-09-24 提高星载嵌入式文件系统可靠性的方法 Active CN110674046B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910909423.8A CN110674046B (zh) 2019-09-24 2019-09-24 提高星载嵌入式文件系统可靠性的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910909423.8A CN110674046B (zh) 2019-09-24 2019-09-24 提高星载嵌入式文件系统可靠性的方法

Publications (2)

Publication Number Publication Date
CN110674046A CN110674046A (zh) 2020-01-10
CN110674046B true CN110674046B (zh) 2023-08-01

Family

ID=69079166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910909423.8A Active CN110674046B (zh) 2019-09-24 2019-09-24 提高星载嵌入式文件系统可靠性的方法

Country Status (1)

Country Link
CN (1) CN110674046B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111580844B (zh) * 2020-05-09 2024-02-02 上海航天电子通讯设备研究所 支持在轨动态更新的软硬件协同的应用程序维护方法
CN115549770B (zh) * 2022-11-03 2024-06-18 上海航天计算机技术研究所 一种星载文件同步方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530138A (zh) * 2012-07-02 2014-01-22 京信通信技术(广州)有限公司 基于嵌入式linux的文件系统数据保护方法及装置
CN105279046A (zh) * 2015-11-04 2016-01-27 研华科技(中国)有限公司 一种提高嵌入式系统可靠性的方法
CN106951521A (zh) * 2017-03-20 2017-07-14 广东欧珀移动通信有限公司 日志文件的读写方法、装置及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216800A (zh) * 2014-08-27 2014-12-17 福建星网视易信息系统有限公司 一种基于数据冗余的系统故障自动恢复方法及装置
CN105739961B (zh) * 2014-12-12 2020-11-03 南京中兴新软件有限责任公司 一种嵌入式系统的启动方法和装置
CN106980557B (zh) * 2017-03-30 2021-04-23 上海航天控制技术研究所 一种基于存储分区的星载软件异构备份方法
CN108958814B (zh) * 2018-06-13 2020-09-01 北京航空航天大学 一种多模冗余的嵌入式操作系统启动方法
CN109614122B (zh) * 2018-12-04 2022-03-29 上海无线电设备研究所 一种星载多处理器软件在轨编程系统及其设计方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530138A (zh) * 2012-07-02 2014-01-22 京信通信技术(广州)有限公司 基于嵌入式linux的文件系统数据保护方法及装置
CN105279046A (zh) * 2015-11-04 2016-01-27 研华科技(中国)有限公司 一种提高嵌入式系统可靠性的方法
CN106951521A (zh) * 2017-03-20 2017-07-14 广东欧珀移动通信有限公司 日志文件的读写方法、装置及系统

Also Published As

Publication number Publication date
CN110674046A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
US10936441B2 (en) Write-ahead style logging in a persistent memory device
US6990611B2 (en) Recovering data from arrays of storage devices after certain failures
US8176009B2 (en) Performing a pre-update on a non volatile memory
US20050085222A1 (en) Software updating process for mobile devices
US7676795B2 (en) Error detection in a data processing system
CN111176890B (zh) 一种星载软件数据存储及异常恢复方法
US20090037418A1 (en) Method and system for copying a snapshot tree
CN110674046B (zh) 提高星载嵌入式文件系统可靠性的方法
CN107220097B (zh) 一种大规模复杂结构软件的在轨烧写与重载方法
KR20170054767A (ko) 데이터베이스 관리 시스템 및 그의 데이터 변경 및 복구 방법
CN113312114A (zh) 星载软件的在轨重构方法、装置、设备及存储介质
US8595271B1 (en) Systems and methods for performing file system checks
EP2368187B1 (en) Replicated file system for electronic devices
CN111857884B (zh) 高可靠星载软件启动系统及方法
CN114356369A (zh) Ssd固件一致性加载方法、装置、计算机设备及存储介质
CN110474673B (zh) 一种支持断点续传的动态在轨热更新方法
CN114691183A (zh) 基于嵌入式gpu的星载软件增量更新方法及星上处理平台
Miles et al. Software resilience using kokkos ecosystem
CN111611000A (zh) 一种高可靠的固件空中升级方法及系统
CN111580844B (zh) 支持在轨动态更新的软硬件协同的应用程序维护方法
JP2016021110A (ja) オブジェクトストレージシステムおよびその制御方法およびその制御プログラム
CN113760829B (zh) 基于fuse文件接口的安全存储系统及操作系统
CN113703848B (zh) 面向位翻转效应的基于SoC芯片可重构柔性化控制方法
Liu et al. Surviving transient power failures with sram data retention
US11403189B2 (en) System and method of resyncing data in erasure-coded objects on distributed storage systems without requiring checksum in the underlying storage

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant