首页> 中国专利> 一种提高操作系统可靠性的方法及装置

一种提高操作系统可靠性的方法及装置

摘要

本发明涉及一种提高操作系统可靠性的方法,包括:接收BIOS启动引导指令;读取主引导扇区,根据所述主引导扇区加载与其对应的操作系统引导程序;通过所述操作系统引导程序加载操作系统内核;加载文件系统,通过所述文件系统加载预设的应用程序组件;所述操作系统引导程序、操作系统内核、文件系统以及应用程序组件以镜像文件的形式存储在第一存储区中,且所述第一存储区为只读存储区;所述应用程序组件以及操作系统内核运行时的数据存储在第二存储区中,所述运行时的数据包括生成的文件、日志和数据库记录中的至少一种,且所述第二存储区为可读写存储区。上述方法能够提高操作系统的可靠性。

著录项

  • 公开/公告号CN104751062A

    专利类型发明专利

  • 公开/公告日2015-07-01

    原文格式PDF

  • 申请/专利权人 研祥智能科技股份有限公司;

    申请/专利号CN201310754684.X

  • 发明设计人 姜伟琼;杨明舟;

    申请日2013-12-31

  • 分类号G06F21/57(20130101);G06F11/14(20060101);

  • 代理机构44224 广州华进联合专利商标代理有限公司;

  • 代理人何平

  • 地址 518057 广东省深圳市南山区高新中四道31号研祥科技大厦

  • 入库时间 2023-12-18 09:38:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-21

    专利权的转移 IPC(主分类):G06F21/57 专利号:ZL201310754684X 登记生效日:20230710 变更事项:专利权人 变更前权利人:研祥智能科技股份有限公司 变更后权利人:深圳市研祥智慧科技股份有限公司 变更事项:地址 变更前权利人:518057 广东省深圳市南山区高新中四道31号研祥科技大厦 变更后权利人:518057 广东省深圳市南山区粤海街道麻岭社区高新中四道31号研祥科技大厦1701

    专利申请权、专利权的转移

  • 2019-03-19

    授权

    授权

  • 2016-12-07

    实质审查的生效 IPC(主分类):G06F21/57 申请日:20131231

    实质审查的生效

  • 2015-07-01

    公开

    公开

说明书

技术领域

本发明涉及操作系统技术领域,特别是涉及一种提高操作系统可靠性的方 法及装置。

背景技术

特种计算机往往在高温、低温、潮湿、震动、非法开关机、不规范操作、 电磁干扰和电压不稳定等严酷的环境下工作,这些环境严重影响特种计算机的 可靠性。而特种计算机要求具备高可靠性,否则会造成财产损失甚至人员伤亡, 比如地铁、高铁、数控机床、医疗器械和电力变电所等设备,若是出现设备故 障,后果往往是很严重的。特种计算机的操作系统可靠性是特种计算机的一项 重要的指标。

然而,发明人经研究发现,现有技术中的操作系统启动、加载、运行及异 常处理的过程至少存在以下问题,以嵌入式linux操作系统为例,传统技术中使 用的linux都是在发行版的linux系统(例如fedora,ubuntu、cenos、debian、suse 等)的基础上删除了部分组件的系统(或称为精简版的linux系统),而由于嵌 入式linux系统非常庞大复杂,所以这种方式往往导致系统定制者对系统组件的 依赖性和组件本身的可靠性无法把握,从而造成定制系统出现概率性的各种异 常现象。而且,传统的操作系统启动、加载和运行方法很容易导致操作系统无 法启动,以及无法启动时又没有机制可以恢复系统。因此,传统技术中的操作 系统的可靠性不高。

发明内容

基于此,有必要提供一种提高操作系统可靠性的方法。

一种提高操作系统可靠性的方法,包括:

接收BIOS启动引导指令;

读取主引导扇区,根据所述主引导扇区加载与其对应的操作系统引导程序;

通过所述操作系统引导程序加载操作系统内核;

加载文件系统,通过所述文件系统加载预设的应用程序组件;

所述操作系统引导程序、操作系统内核、文件系统以及应用程序组件以镜 像文件的形式存储在第一存储区中,且所述第一存储区为只读存储区;

所述应用程序组件以及操作系统内核运行时的数据存储在第二存储区中, 所述运行数据包括生成的文件、日志和数据库记录中的至少一种,且所述第二 存储区为可读写存储区。

在其中一个实施例中,所述加载文件系统的步骤之后还包括:

以虚拟帧缓存方式加载QT应用组件,所述应用程序组件基于所述QT应用 组件。

在其中一个实施例中,所述主引导扇区包括第一主引导扇区和第二主引导 扇区;

所述读取主引导扇区,根据所述主引导扇区加载与其对应的操作系统引导 程序的步骤包括:

读取第一主引导扇区,若读取成功,则加载与所述第一主引导扇区对应的 操作系统引导程序;读取失败,则读取第二主引导扇区,根据所述第二主引导 扇区加载与其对应的操作系统引导程序,通过所述与所述第二主引导扇区对应 的操作系统引导程序恢复所述第一主引导扇区并重启。

在其中一个实施例中,所述方法还包括:

在内存中建立虚拟硬盘区,通过所述虚拟硬盘区存储读写频率大于阈值的 数据;

定期将所述虚拟硬盘区中的数据持久化存储到所述第二存储区中。

在其中一个实施例中,所述加载文件系统的步骤为:

通过操作系统内核获取所述文件系统的镜像文件的起始地址,根据所述起 始地址读取文件系统的镜像文件,将其解压后加载文件系统。

此外,还有必要提供一种提高操作系统可靠性的装置。

一种提高操作系统可靠性的装置,包括:

指令接收模块,用于接收BIOS启动引导指令;

MBR读取模块,用于读取主引导扇区,根据所述主引导扇区加载与其对应 的操作系统引导程序;

内核加载模块,用于通过所述操作系统引导程序加载操作系统内核;

应用组件加载模块,用于加载文件系统,通过所述文件系统加载预设的应 用程序组件;

所述操作系统引导程序、操作系统内核、文件系统以及应用程序组件以镜 像文件的形式存储在第一存储区中,且所述第一存储区为只读存储区;

所述应用程序组件以及操作系统内核运行时的数据存储在第二存储区中, 所述运行数据包括生成的文件、日志和数据库记录中的至少一种,且所述第二 存储区为可读写存储区。

在其中一个实施例中,所述应用组件加载模块还用于以虚拟帧缓存方式加 载QT应用组件,所述应用程序组件基于所述QT应用组件。

在其中一个实施例中,所述主引导扇区包括第一主引导扇区和第二主引导 扇区;

所述MBR读取模块还用于读取第一主引导扇区,若读取成功,则加载与所 述第一主引导扇区对应的操作系统引导程序;读取失败,则读取第二主引导扇 区,根据所述第二主引导扇区加载与其对应的操作系统引导程序,通过所述与 所述第二主引导扇区对应的操作系统引导程序恢复所述第一主引导扇区并重 启。

在其中一个实施例中,所述装置还包括虚拟硬盘模块,用于在内存中建立 虚拟硬盘区,通过所述虚拟硬盘区存储读写频率大于阈值的数据;

定期将所述虚拟硬盘区中的数据持久化存储到所述第二存储区中。

在其中一个实施例中,所述应用组件加载模块还用于通过操作系统内核获 取所述文件系统的镜像文件的起始地址,根据所述起始地址读取文件系统的镜 像文件,将其解压后加载文件系统。

上述提高操作系统可靠性的方法及装置中,预先在只读的第一存储区中读 取操作系统引导程序、操作系统内核、文件系统以及应用程序组件的镜像文件 并加载。传统技术中的标准版操作系统上进行删减得到的操作系统,由于用户 对删减掉的应用组件对其他组件的运行是否有影响并未得知,也较难通过测试 得出,因此,操作系统引导程序、操作系统内核、文件系统以及应用程序组件 都是按照特种计算机平台的接口和功能从零开始一个个添加,所添加的内容都 是自己知道的,这种方式定制操作系统风险较可控。而且,将操作系统启动、 加载和运行过程做了镜像、只读和异常修复设计,可以保证操作系统能稳定可 靠地启动、加载和运行。因此,上述方法及装置可提高操作系统的可靠性。

附图说明

图1为一个实施例中提高操作系统可靠性的方法的流程图;

图2为一个实施例中计算机系统的存储区域的逻辑结构图;

图3为一个实施例中提高操作系统可靠性的装置结构示意图;

图4为另一个实施例中提高操作系统可靠性的装置的结构示意图。

具体实施方式

如图1所示,在一个实施例中,一种提高操作系统可靠性的方法,该方法 的执行依赖于计算机程序,可运行于基于冯洛伊曼体系的计算机系统上。

该方法包括:

步骤S102,接收BIOS启动引导指令。

步骤S104,读取主引导扇区,根据主引导扇区加载与其对应的操作系统引 导程序;

步骤S106,通过操作系统引导程序加载操作系统内核。

步骤S108,加载文件系统,通过文件系统加载预设的应用程序组件。

且在本实施例中,操作系统引导程序、操作系统内核、文件系统以及应用 程序组件以镜像文件的形式存储在第一存储区中,且第一存储区为只读存储区。

应用程序组件以及操作系统内核运行时的数据存储在第二存储区中,运行 数据包括生成的文件、日志和数据库记录中的至少一种,且第二存储区为可读 写存储区。

在本实施例中,如图2所示,图2中的MBR1和MBR2即为主引导扇区, MBR1和MBR2中存储操作系统引导程序Grub1和Grub2在第一存储区中的起 始地址,可根据该起始地址在第一存储区中找到Grub1和Grub2的镜像文件。 第一存储区和第二存储区既可以是同一磁盘上的不同区域,也可以是不同的磁 盘。优选的,第一存储区可以是只读的固态存储卡(CF卡,Compact Flash卡)。 操作系统引导程序的镜像文件存储在该固态存储卡的主引导扇区中,操作系统 内核、文件系统以及应用程序组件的镜像文件则存储在该固态存储卡中。第二 存储区则可为任意可读写的存储介质,用来存储应用程序组件以及操作系统内 核运行时的数据。

将操作系统引导程序、操作系统内核、文件系统以及应用程序组件以镜像 文件的形式存储在只读的第一存储区中,使得操作系统在运行时对磁盘的写输 入不会对操作系统内核镜像文件的数据产生破坏,使得系统在下次启动时,不 会由于操作系统内核的程序文件被破坏而导致启动失败。

BIOS即Basic Input Output System,为一组固化到计算机内主板上一个ROM (Read-Only Memory,只读存储器)芯片上的程序,它保存着计算机最重要的 基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。其 主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

计算机系统在上电之后即会触发BIOS启动引导指令,从而读取BIOS中的 系统自启动程序并执行。

主引导扇区(MBR,Master Boot Record),又叫做主引导扇区,是计算机开 机后访问硬盘时所必须要读取的首个扇区。主引导扇区记录着硬盘本身的相关 信息,例如MBR、DBR和分区表信息等内容,是数据信息的重要入口。

在linux系统中,操作系统引导程序通常为Grub(Grand Unified Boot  Loader),可用于加载操作系统。在本实施例中,操作系统引导程序以镜像文件 的形式存储在第一存储区中。

也就是说,通过BIOS中的系统自启动程序读取主磁盘上的主引导扇区中的 MBR信息,然后根据MBR信息引导加载操作系统引导程序的镜像文件并执行。

在一个实施例中,主引导扇区包括第一主引导扇区和第二主引导扇区。读 取主引导扇区,根据主引导扇区加载与其对应的操作系统引导程序的步骤包括:

读取第一主引导扇区,若读取成功,则加载与所述第一主引导扇区对应的 操作系统引导程序;读取失败,则读取第二主引导扇区,根据所述第二主引导 扇区加载与其对应的操作系统引导程序,通过所述与所述第二主引导扇区对应 的操作系统引导程序恢复所述第一主引导扇区并重启。

如图2,主磁盘上的主引导扇区包括两部分,即第一主引导扇区MBR1和第 二主引导扇区MBR2。MBR1用于引导Grub1,即MBR1中包含了Grub1的地 址;MBR2用于引导Grub2,即MBR2中包含了Grub2的地址。Grub1和Grub2 的镜像文件存储在第一存储区中。Grub2包含操作系统引导程序和MBR1的修 复命令,Grub1包含操作系统引导程序。在读取操作系统引导程序时,可优先通 过MBR1引导Grub1执行,若MBR1损坏,则可再通过Grub2中的修复命令修 复MBR1。

对MBR1修复后重启计算机,则重新执行前述的步骤S102和S104,在执 行到通过MBR1引导Grub1的步骤时,由于MBR1已经被Grub2中的修复命令 修复,因此,必然能够被加载执行,使得在即使出现事故导致向MBR1中写入 数据引起系统错误的情况下,系统仍然可在重启正常启动,从而提高了可靠性。

需要说明的是,在本实施例中,MBR2为不可写入的状态,也就是说,对操 作系统开放操作的主引导扇区只为MBR1部分,MBR2部分仅可由BIOS中的 系统自启动程序在读取主引导扇区时读取。从而防止操作系统的行为对MBR2 中备份的操作系统引导程序造成破坏。

操作系统内核即为操作系统的核心部分。它由操作系统中系统调度、进程 通信、外设驱动和加载文件系统这些部分组成,提供了操作系统运行的基本功 能。操作系统内核通常运行进程,并提供进程间的通信。

以linux操作系统为例,发布版本的linux内核(linux kernel)为一个提供硬 件抽象层、磁盘及文件系统控制、多任务等功能的系统软件,但并不是一个完 整的操作系统。加载文件系统即加载与文件系统相关的库文件。文件系统被加 载后,即可根据加载完毕的文件系统查找到应用程序组件并将其加载。预设的 应用程序组件可由用户根据实际需求独立添加,例如,用户若需要浏览器组件, 则可预先添加浏览器应用组件的程序文件及其相应的库文件到第一存储区中; 用户若需要添加xml文件解析组件,则可预先添加xml文件解析应用组件的程 序文件及其相应的库文件到第一存储区中。

也就是说,在本实施例中定制操作系统的方式与传统技术中在发布的完整 版本的操作系统的基础上进行删减的方式不同,采用的定制方式为从相应的官 网上一个个下载操作系统的引导程序、内核、文件系统以及应用程序组件的源 码包,编译移植。从零开始一个个组件添加和组合成操作系统。

在本实施例中,将操作系统引导程序、操作系统内核、文件系统以及应用 程序组件都做成镜像文件,以及将这些镜像文件放在一个只读的第一存储区中。 在操作系统启动时将操作系统的镜像文件解压到内存中,在操作系统正常使用 过程中都是在内存中运行的,可以极大的减少对存储器的访问,从而减少存储 器的损坏造成操作系统文件的损坏。通过这三重文件保护方法,操作系统文件 是不可能被损坏的。这样设计操作系统的方式可以保证操作系统能一直正常运 行,从而提高了可靠性。

在本实施例中,加载文件系统的方法可具体为:通过操作系统内核获取文 件系统的镜像文件的起始地址,根据起始地址读取文件系统的镜像文件,将其 解压后加载文件系统。

也就是说,首先将文件系统制作成镜像文件,然后将该镜像文件的起始地 址写入操作系统内核中,操作系统内核加载完毕后,可由相应的事件处理函数 读取该地址信息得到起始地址,然后由该起始地址读取文件系统的整个镜像文 件并解压,然后加载解压后的文件系统。

在一个实施例中,加载文件系统的步骤包括以虚拟帧缓存方式加载QT应用 组件,应用程序组件基于QT应用组件。

在本实施例中,操作系统内核为linux内核,以QT应用组件运行应用组件, 其显示方式为采用虚拟帧缓存方式显示,即直接刷屏的方式,从而不依赖与X11 系统组件,使得图形系统不会因为某些系统文件缺失或损坏而启动不了,从而 提高了可靠性。

在一个实施例中,还可在BIOS中加入系统还原程序。

接收BIOS启动引导指令的步骤之后还可判断还原状态是否为开启,若是, 则启动系统还原程序读取并加载备份操作系统镜像。

还原状态可通过BIOS中的看门狗程序来设置。例如,当操作系统运行时出 现异常时,看门狗程序即可检测到异常,并将BIOS中的还原状态设置为开启, 然后重启系统。重启系统并再次接收到BIOS启动引导指令后,则由系统还原程 序判断还原状态是否为开启,若是,则可读取备份的操作系统镜像。该操作系 统镜像可以是前述CF卡中存储的操作系统内核,也可以是用户在操作过程中自 行备份的操作系统的镜像文件。

进一步的,还可接收远程输入的系统还原指令;根据系统还原指令将还原 状态设置为开启并重启系统。

例如,当计算机系统正常运行时,远程用户可通过SSH(Secure Shell,安 全外壳协议)或telnet等工具远程登录该计算机系统,并通过输入系统还原指令 将BIOS中的还原状态设置为开启。设置为开启后,可远程将计算机系统重启。 计算机系统重启后,BIOS中的系统还原程序即可对还原状态是否开启进行判断, 然后通过备份的操作系统镜像进行还原。

在一个实施例中,还可在内存中建立虚拟硬盘区,通过虚拟硬盘区存储读 写频率大于阈值的数据;定期将所述虚拟硬盘区中的数据持久化存储到所述第 二存储区中。

如图2所示,虚拟硬盘区即为将内存中的一块区域虚拟成硬盘使用,操作 系统可将磁盘的较为频繁的写操作数据映射到该虚拟硬盘区中(实际上写操作 发生时仍是存储在虚拟硬盘区中,只是定期再将虚拟硬盘区中的数据持久化存 储到第二存储区)。

也就是说,可将操作系统的写操作(或写操作次数频率较多的应用组件的 写操作)限定在虚拟硬盘区中,然后定期通过将虚拟硬盘区持久化对其进行备 份,从而可提高操作系统的读写速度。若遇到断电或其他突发情况导致内存中 的虚拟硬盘区中缓存的数据遗失,还可由第二存储区读取持久化的数据对其进 行备份。

在一个实施例中,如图3所示,一种提高操作系统可靠性的装置,包括指 令接收模块102、MBR读取模块104、内核加载模块106以及应用组件加载模 块108:

指令接收模块102,用于接收BIOS启动引导指令。

MBR读取模块104,用于读取主引导扇区,根据主引导扇区加载与其对应 的操作系统引导程序。

内核加载模块106,用于通过操作系统引导程序加载操作系统内核。

应用组件加载模块108,用于加载文件系统,通过文件系统加载预设的应用 程序组件。

操作系统引导程序、操作系统内核、文件系统以及应用程序组件以镜像文 件的形式存储在第一存储区中,且第一存储区为只读存储区。

应用程序组件以及操作系统内核运行时的数据存储在第二存储区中,运行 数据包括生成的文件、日志和数据库记录中的至少一种,且第二存储区为可读 写存储区。

在本实施例中,应用组件加载模块108还用于通过预设的脚本和系统服务 以虚拟帧缓存方式加载QT应用组件,应用程序组件基于QT应用组件。

在本实施例中,主引导扇区包括第一主引导扇区和第二主引导扇区。

MBR读取模块还用于读取第一主引导扇区,若读取成功,则加载与第一主 引导扇区对应的操作系统引导程序;读取失败,则读取第二主引导扇区,根据 第二主引导扇区加载与其对应的操作系统引导程序,通过与第二主引导扇区对 应的操作系统引导程序恢复第一主引导扇区并重启。

如图4所示,在一个实施例中,BIOS中还包括系统还原程序。该装置还包 括系统还原模块110,用于判断还原状态是否为开启,若是,则启动系统还原程 序读取并加载备份操作系统镜像。

在一个实施例中,系统还原模块110还用于接收远程输入的系统还原指令; 根据系统还原指令将还原状态设置为开启并重启系统。

在本实施例中,该装置还包括虚拟硬盘模块112,用于在内存中建立虚拟硬 盘区,通过虚拟硬盘区存储读写频率大于阈值的数据,定期将虚拟硬盘区中的 数据持久化存储到第二存储区中。

在本实施例中,应用组件加载模块108还用于通过操作系统内核获取文件 系统的镜像文件的起始地址,根据起始地址读取文件系统的镜像文件,将其解 压后加载文件系统。

上述提高操作系统可靠性的方法及装置中,预先在只读的第一存储区中读 取操作系统引导程序、操作系统内核、文件系统以及应用程序组件的镜像文件 并加载。传统技术中的标准版操作系统上进行删减得到的操作系统,由于用户 对删减掉的应用组件对其他组件的运行是否有影响并未得知,也较难通过测试 得出,因此,操作系统引导程序、操作系统内核、文件系统以及应用程序组件 都是按照特种计算机平台的接口和功能从零开始一个个添加,所添加的内容都 是自己知道的,这种方式定制操作系统风险较可控。而且,将操作系统启动、 加载和运行过程做了镜像、只读和异常修复设计,可以保证操作系统能稳定可 靠地启动、加载和运行。因此,上述方法及装置可提高操作系统的可靠性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细, 但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域 的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和 改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附 权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号