qnx 镜像文件_一种基于Hypervisor的QNX操作系统启动方法及装置与流程

article/2025/1/16 2:42:50

bd5cd0da9da89037a29519f61bb9ebdc.gif

本发明涉及计算机领域,尤其涉及一种基于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操作系统的启动进程。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、单元和/或方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。


http://chatgpt.dhexx.cn/article/qHQtI7LS.shtml

相关文章

QNX操作系统和QNX Hypervisor简介

概述 QNX操作系统和QNX Hypervisor是由QNX Software Systems开发的两个重要的嵌入式技术。它们在嵌入式系统领域具有广泛的应用和卓越的表现。 QNX OS是一个实时操作系统,主要用于嵌入式系统和实时应用程序。它具有可靠性、安全性和高性能的特点。QNX OS支持多处理…

如何查找中文-英文文献 ?

查找外文文献 1、DPLP 计算机类的文献可以在德国的DPLP网站上根据需要直接获得所需文章的相关信息。 http://dblp.org/ 进入DPLP的主页后,在搜索框键入所要搜索的内容。 例如查找文章"A self-Organizing approach to background subtraction for visual surveillan…

如何寻找计算机领域的英文文献?

大家一定或多或少都有文献检索的经验吧,中文文献还好,我们总归是对自己的的母语比较熟悉,通过关键词或其他检索条件,总能得心应手地找到自己需要的文献。相较于中文文献,对外文文献的检索就显得难度增加了不少&#xf…

在哪里可以搜索英文文献?

15天读了100篇英文文献,秘诀在此! 如何段时间内阅读大量英文文献,相信很多人阅读英文文献最头疼的就是翻译问题了,没有好用的翻译工具,连检索英文文献都要费好大的劲,现在不用发愁啦,科研人经过…

检索下载中/英文论文的方法

目录 一、中文文献下载 1.本校的图书馆 2、百度学术百度学术https://xueshu.baidu.com/ 3.掌桥科研 二、英文文献下载方法 1.首推SCI-HUB 2、百度学术 3、semanticscholarsemanticscholarhttps://www.semanticscholar.org/ 4.必应搜索 5、其他搜索引擎 三、后记 一、中…

英文文献检索与下载

存档仅自用 谷歌学术镜像网站:谷歌学术镜像_Google镜像站主要提供谷歌学术搜索Google Scholar镜像和谷歌网页搜索镜像的导航站,实时更新最新镜像网站http://scholar.scqylaw.com/ 复制文献DOI号到此sci-hub文献检索sci-hub文献检索:提供sci-hub链接生成及论文搜索…

怎么查找和自己专业有关的英文文献?

参考文献是论文重要的组成部分,如何找到一篇适合自己论文参考文献更是重中之重,中文参考文献还好说,一眼过去可以了解大致内容,从而判断是否合适。而英文就不同了,相较于中文文献来说,英文文献找起来就比较…

移植tslib库 [五一勋章]

​​​​​​ 移植tslib库 tslib 为触摸屏驱动和应用层之间的适配层,它把应用程序中读取触摸屏 struct input_event 类型数据(这是输入设备上报给应用层的原始数据)并进行解析的操作过程进行了封装,向使用者提供了封装好的 API …

buildroot配置QT5和tslib

buildroot 移植参考文章 buildroot配置安装qt5 在buildroot下面,打开配置界面 make menuconfig 选择target packages项 找到QT5 勾选 进入QT5选项,勾选gui module 和 widgets module。 buildroot编译安装tslib 执行make menuconfig Target pack…

tslib的安装

tslib是嵌入式开发中使用qt开发之前需要搭建的一个必须的环境,通过tslib,你编写的qt程序才能通过触摸屏进行操作,而tslib进行进行你的qt程序和硬件之间的接口,因此, 学会如何搭建tslib是进行嵌入式开发的一个重要的环…

Linux·触摸板库tslib的编译和配置

作为基本输入设备,触摸板几乎是交互式嵌入式系统的标配。当我们知道了可以通过设备节点读取触摸板数据后,我们需要进一步优化这些直接获取的原生数据,比如去抖、消噪、校准等。 优化触摸板的 raw (原生)数据是一项十分…

嵌入式开发之tslib-1.4移植

目录 前言 一、下载tslib 二、编译和安装 1.编写编译脚本 2.编译时遇到的问题 三、移植到目标机 1.tslib文件移植 2.修改ts.conf内容 3.配置环境变量 4.测试 总结 前言 tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能…

QT tslib安装编译

1.下载源码 git clone https://github.com/libts/tslib.git 2.安装其他工具 sudo apt-get install automake sudo apt-get install autogen autoconf sudo apt install automake libtool m4 autoconf 3.进入目录,配置 ubuntuubuntu:~/Downloads/tslib$ ./auto…

QT和tslib的移植

QT(5.12.9)和tslib(1.4)的移植 前提条件: 添加交叉编译工具链到环境变量中 vim ~/.bashrc export PATHtoolchain_absolute_dir:$PATH # 保存退出source ~/.bashrc# 验证 echo $PATHTSlib移植 1、tslib源码获取 # …

tslib-1.21 ts_setup详解

几个月前买了Imx6ull的开发板,跟着韦东山老师的课程,把linux应用,驱动基础学完了,紧跟着课程又完成了第一个linux项目-电子量产工具。 虽然做完了项目,但毕竟不是完全靠自己编写的,所以决定重头看一下项目的…

tslib库编译与移植

tslib库编译与移植 1.tslib库简介 tslib 是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。 2…

tslib安装以及使用

tslib的一些小问题:https://blog.csdn.net/xiaodingqq/article/details/80807362 1.先在网上下载 tslib-1.4.tar.gz压缩包 2.然后在ubuntu编译: tar xzf tslib-1.4.tar.gzcd tslib./autogen.sh      mkdir tmp          //创建安…

使用 tslib 库

tslib 是专门为触摸屏设备所开发的 Linux 应用层函数库,并且是开源。 tslib 为触摸屏驱动和应用层之间的适配层, 它把应用程序中读取触摸屏 struct input_event 类型数据(这是输入设备上报给应用层的原始数据)并进行解析的操作过程…

tslib 的安装与使用

5 tslib 需要安装好触摸屏驱动 tslib 是一个触摸屏的开源库,可以使用它来访问触摸屏设备,可以给输入设备添加各种“filter”(过滤器,就是各种处理),地址是:http://www.tslib.org/。 编译 tslib 后,可以得到…

第三方库介绍——tslib库

文章目录 tslib 简介tslib 框架分析tslib 的框架 交叉编译、测试 tslibtslib应用程序 tslib 简介 tslib 是一个触摸屏的开源库,可以使用它来访问触摸屏设备,可以给输入设备添加各种“ filter ”( 过滤器,就是各种处理) 编译 tslib 后&#…