本发明涉及计算机领域,尤其涉及一种基于Hypervisor的QNX操作系统启动方法及装置。
背景技术:
基于Hypervisor的QNX是一种商用的遵从POSIX规范,常用用在汽车及路由器上,QNX是一种嵌入式实时操作系统,一般对系统启动速度有较高的要求。当前的Hypervisor QNX操作系统启动都是整体性启动,整个系统从底层到应用一步步进行,中途不可中断,并且必须要等到所有组件加载完成。
针对QNX系统的启动,常采用的方案是剪切部分不需要的快速启动的功能模块,并优化各系统模块的代码,但这种方案可优化的空间有限,难以较大程度提升系统启动速度。
技术实现要素:
本发明实施例提供了一种基于Hypervisor的QNX操作系统启动方法及装置,用于实时性启动QNXA系统,提升启动速度。
在本发明实施例的第一方面,提供了一种基于Hypervisor的QNX操作系统启动方法及装置,包括:
标记Hypervisor的QNX操作系统中预优先启动的任务;
启动编译脚本分别为所述预优先启动的任务和一般任务生成一级镜像和二级镜像;
所述QNX操作系统上电后,加载所述一级镜像,当所述一级镜像加载成功,则加载所述二级镜像以完成所述QNX操作系统的启动。
在本发明实施例的第二方面,提供了一种基于Hypervisor的QNX操作系统启动装置,包括:
标记模块:用于标记Hypervisor的QNX操作系统中预优先启动的任务;
编译模块:用于启动编译脚本分别为所述预优先启动的任务和一般任务生成一级镜像和二级镜像;
加载模块:用于所述QNX操作系统上电后,加载所述一级镜像,当所述一级镜像加载成功,则加载所述二级镜像以完成所述QNX操作系统的启动。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,通过标记优先启动的任务,利用编译脚本生成两个不同的镜像,分别加载两个镜像就可以完成系统启动,使得在系统上电后就可以根据镜像确定加载顺序,以便于快速执行相应的应用程序,提升QNX系统启动速度,实现系统的实时加载。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于Hypervisor的QNX操作系统启动方法的一个流程示意图;
图2为本发明实施例提供的基于Hypervisor的QNX操作系统启动方法的另一个示意图;
图3为本发明实施例提供的基于Hypervisor的QNX操作系统启动装置的结构示意图;
具体实施方式
本发明实施例提供了一种基于Hypervisor的QNX操作系统启动方法及装置,用于解决现有QNX操作系统启动较慢的问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一:
请参阅图1,本发明实施例提供的一种基于Hypervisor的QNX操作系统启动方法的流程示意图,包括:
S101、标记Hypervisor的QNX操作系统中预优先启动的任务;
所述Hypervisor的QNX操作系统是一种嵌入式实时操作系统,常用于汽车领域,该系统一般对启动速度有较高要求。所述预优先启动任务为QNX系统必须首先加载或执行的任务,以及根据用户需求而优先执行的任务。例如,需要优先加载系统的语音提示,则可以对系统语音提示模块进行标记。
可选的,标记所述预优先启动的任务对应的库文件和组件。除标记优先启动的任务外,还需要标记需要加载的资源文件等,避免系统启动时需要临时寻找请求资源。
S102、启动编译脚本分别为所述预优先启动的任务和一般任务生成一级镜像和二级镜像;
所述编译脚本用于根据任务的优先级将系统镜像文件分为一级镜像和二级镜像,并编译启动程序以在系统上电后快速执行。所述一般任务即除预优先启动任务外需要启动的任务。
将所述预优先启动的任务设为一级镜像,将所述一般任务设为二级镜像,这样可以根据用户需要优先启动执行部分任务。
S103、所述QNX操作系统上电后,加载所述一级镜像,当所述一级镜像加载成功,则加载所述二级镜像以完成所述QNX操作系统的启动。
在所述二级镜像加载完成前系统优先执行的任务能提前完成一部分功能的运行,这样可以提高系统效能。
可选的的,所述所述QNX操作系统上电后,加载所述一级镜像还包括:
当所述一级镜像加载失败,判断最高优先级任务是否成功启动检测机制,当所述最高优先级任务成功启动检测机制,则保存系统日志并进入控制台查看所述一级镜像中执行失败的任务。
可选的,所述则加载所述二级镜像以完成所述QNX操作系统的启动还包括:
当所述二级镜像加载失败,判断最高优先级任务是否成功启动检测机制,当所述最高优先级任务成功启动检测机制,则保存系统日志并进入控制台查看所述二级镜像中执行失败的任务。
可选的,所述判断最高优先级任务是否成功启动检测机制还包括:
当所述最高优先级任务启动检测机制失败,则退出当前QNX操作系统的启动进程。
在本发明实施例中,通过标记优先启动任务,在系统上电前编译镜像文件,能加快QNX系统启动速度。
为便于理解,根据图1所描述的实施例,下面结合图2对步骤S103中的基于Hypervisor的QNX操作系统启动过程进行描述:
在图2中,当系统上电后会分别加载一级镜像和二级镜像,具体的,在S202之前,系统上电后会进入bootloader,初始化硬件设备。
系统初始化后,会首先在S202中一级镜像文件,若加载失败,则进入检测机制,查看最高优先级任务,所述最高优先级任务为系统优先设定且默认用于保存日志并查看任务执行情况。通过所述最高优先级任务,可以查看当前一级镜像中任务执行情况,并可提示执行失败的任务。对于失败执行的任务,可以排查出错原因或重启系统。
在S204中,若最高优先级任务执行失败,则退出当前系统的启动。可选择重启系统或排查出错问题。
在S205中,当二级镜像加载失败,则判断所述最高优先级任务是否执行成功,若执行成功,则保存当前系统启动日志,并提示执行执行失败的任务有哪些。若执行失败,则退出当前系统。
上述分别在系统镜像加载失败后,保存任务执行日志,既有利于排查出错原因,又能避免系统崩溃,保证了系统启动安全
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二:
上面主要描述了一种基于Hypervisor的QNX操作系统启动方法,下面将对一种基于Hypervisor的QNX操作系统启动装置进行详细描述。
图3示出了本发明实施例中QNX操作系统启动装置一个实施例结构图,所述系统包括:
标记模块310:用于标记Hypervisor的QNX操作系统中预优先启动的任务;
可选的,所述标记模块310包括:
标记单元:用于标记所述预优先启动的任务对应的库文件和组件。
编译模块320:用于启动编译脚本分别为所述预优先启动的任务和一般任务生成一级镜像和二级镜像;
加载模块330:用于所述QNX操作系统上电后,加载所述一级镜像,当所述一级镜像加载成功,则加载所述二级镜像以完成所述QNX操作系统的启动。
可选的,所述加载模块330包括:
第一加载单元:用于当所述一级镜像加载失败,判断最高优先级任务是否成功启动检测机制,当所述最高优先级任务成功启动检测机制,则保存系统日志并进入控制台查看所述一级镜像中执行失败的任务。
可选的,所述加载模块330包括:
第二加载单元:用于当所述二级镜像加载失败,判断最高优先级任务是否成功启动检测机制,当所述最高优先级任务成功启动检测机制,则保存系统日志并进入控制台查看所述二级镜像中执行失败的任务。
可选的,所述判断最高优先级任务是否成功启动检测机制还包括:
当所述最高优先级任务启动检测机制失败,则退出当前QNX操作系统的启动进程。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、单元和/或方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。