设备启动方法、装置、计算机设备和存储介质与流程

文档序号:18188248发布日期:2019-07-17 05:27阅读:223来源:国知局
设备启动方法、装置、计算机设备和存储介质与流程

本申请涉及计算机操作系统技术领域,特别是涉及一种设备启动方法、装置、计算机设备和存储介质。



背景技术:

随着linux操作系统在运动dv、行车记录仪、智能手机等终端设备的应用越来越广泛,对其执行速度的要求也越来越高,如何减少设备冷启动时间成为人们日渐关注的问题。

传统的快速冷启动方案是采用双核加双系统实现的,具体地,利用一个核运行实时操作系统,加载与最小业务逻辑相关的模块,另一个核运行linux操作系统,实现wifi、ui、usb、网络相关app等服务。

然而,上述双核加双系统的快速冷启动方案,存在需求资源较多,进而导致开发复杂度高的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种需求资源较少、开发简单的设备启动方法、装置、计算机设备和存储介质。

第一方面,本申请实施例提供一种设备启动方法,所述方法包括:

调用驱动程序将虚拟内存文件从闪存分区读取到内存中;所述虚拟内存文件包括与业务逻辑无关的文件;

调用内核获取所述虚拟内存文件在所述内存中的地址;

调用所述内核根据所述地址从所述内存中获取所述虚拟内存文件;

调用所述内核根据所述虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备。

在其中一个实施例中,所述调用所述内核根据所述虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备,包括:控制所述内核合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件;控制所述内核根据所述整体根文件加载资源,以启动设备。

在其中一个实施例中,所述控制所述内核合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件,包括:控制所述内核启动所述虚拟内存文件,以调度堆叠文件系统;控制所述内核根据所述堆叠文件系统合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件。

在其中一个实施例中,所述控制所述内核根据所述整体根文件加载资源,以启动设备之前,还包括:控制所述内核根据所述虚拟内存文件加载业务逻辑所需的第一模板资源。

在其中一个实施例中,所述控制所述内核根据所述整体根文件加载资源,以启动设备,包括:控制所述内核根据所述整体根文件,加载业务逻辑所需的第二模板资源;控制所述内核根据所述第一模板资源和所述第二模板资源,以启动设备。

在其中一个实施例中,所述控制所述内核加载业务逻辑所需的第一模板资源与所述控制所述内核根据所述堆叠文件系统合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件并行运行。

在其中一个实施例中,所述调用所述内核根据所述虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备之前,还包括:调用所述内核将所述业务逻辑文件、所述配置文件从闪存分区读取到内存中;调用所述内核从所述内存中获取所述业务逻辑文件和所述配置文件。

第二方面,本申请实施例提供了一种设备启动装置,所述装置包括:

第一调用模块,用于调用驱动程序将虚拟内存文件从闪存分区读取到内存中;所述虚拟内存文件包括与业务逻辑无关的文件;

第二调用模块,用于调用内核获取所述虚拟内存文件在所述内存中的地址;

第三调用模块,用于调用所述内核根据所述地址从所述内存中获取所述虚拟内存文件;

第四调用模块,用于调用所述内核根据所述虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备。

第三方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中任一实施例所述方法的步骤。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一实施例所述的方法的步骤。

本申请实施例中提供的设备启动方法、装置、计算机设备和存储介质,通过调用驱动程序将虚拟内存文件从闪存分区读取到内存中,调用内核获取虚拟内存文件在内存中的地址,调用内核根据地址从内存中获取虚拟内存文件,进而调用内核根据虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备,由于根据驱动程序裸读闪存分区到内存,相比内核本身读取闪存分区到内存速度更快,且只需要用到内核的虚拟内存文件等模块,无需新增rtos等软件资源,进而能够实现在需求资源少,开发简单的情景下,减少设备启动时间。

附图说明

图1为一个实施例中计算机设备的内部结构图;

图2为一个实施例中提供的设备启动方法的流程示意图;

图3为图2实施例中s204的实现方式的流程示意图;

图4为图3实施例中s301的另一种实现方式的流程示意图;

图5为图3实施例中s302的实现方式的流程示意图;

图6为另一个实施例中提供的设备启动方法的流程示意图;

图7为另一个实施例中提供的设备启动方法的流程示意图;

图8为一个实施例中设备启动装置的结构框图;

图9为另一个实施例中设备启动装置的结构框图;

图10为另一个实施例中设备启动装置的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的设备启动方法可以应用于终端设备,该终端设备可以是运动dv、行车记录仪等,本实施例中以运动dv为例,运动dv内部结构图可以如图1所示。该运动dv包括通过系统总线连接的嵌入式处理器、显示屏、镜头模块、通讯模块。其中,该运动dv的镜头模块包含摄影用的镜片组合、感光组件、传输接口等;嵌入式处理器用于提供计算和控制能力,存储器可集成于嵌入式处理器内部,存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机程序被处理器执行时以实现一种设备启动方法;通讯模块为可以无线或有线方式传递信号的通讯接口,无线通信的传输方式可为wi-fi、蓝牙、红外线等,有线传输的方式可为usb、hdmi等;该运动dv的显示屏可以是液晶显示屏或者触控屏等类型。

本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

图2为一个实施例中设备启动方法的流程图,该方法的执行主体为图1所示的运动dv,该方法涉及的是设备启动的具体过程,如图2所述,该方法具体包括以下步骤:

s201,调用驱动程序将虚拟内存文件从闪存分区读取到内存中;所述虚拟内存文件包括与业务逻辑无关的文件。

其中,虚拟内存文件ramdisk可以是压缩文件包的形式,其包括所有与busybox相关的配置、可执行文件、依赖的库,其中,busybox是一个集成了多个最常用linux命令和工具的软件,ramdisk放全程不会被写入的文件,这是由于ramdisk存在于内存当中,断电之后无法保存,如果有必要的业务逻辑存放其中的话,会造成信息断电丢失,且ramdisk本身的文件系统格式是squashfs,是只读的;闪存分区是指flash存储介质,驱动程序可以是bootloader。

具体地,由于内核在内存上运行,在设备开机启动时,调用驱动程序将虚拟内存文件从闪存分区读取到内存中,以便调用内核后续运行工作。需要说明的是,在通常情况下,ramdisk在根文件系统完全启动完毕之后相关的资源会被释放掉,而本申请中将ramdisk作为最终整体根文件系统不可缺少的一部分,在整个业务逻辑的生命周期内都必须存在并被使用,直到设备关机即业务逻辑销毁。

s202,调用内核获取所述虚拟内存文件在所述内存中的地址。

其中,内核作为设备的管理中枢,用于统筹管理、分配和协调资源。具体地,驱动程序在将虚拟内存文件从闪存分区读取到内存中后,会生成一个指令信息,其中,指令信息中包括虚拟内存文件在内存中的地址,然后利用内核的cmdline中的initrd=addr_start,sizeinit=/dev/ram0获取ramdisk的地址;也可通过使用设备树传递initrd的地址,进而内核获取虚拟内存文件在内存中的地址。

s203,调用所述内核根据所述地址从所述内存中获取所述虚拟内存文件。

示例性地,内核根据ramdisk在内存中的地址,接管ramdisk,由于ramdisk是压缩文件包的形式,获取ramdisk的过程即对ramdisk解压的过程。

s204,调用所述内核根据所述虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备。

其中,业务逻辑文件是指与业务逻辑主应用相关的可执行文件、依赖的库、配置文件等;配置文件是指可进行读写的文件;虚拟内存文件、业务逻辑文件和配置文件是预先配置好存储在设备flash中的。具体地,可控制内核将业务逻辑文件和配置文件相应地从flash分区读取到内存,进而调用内核根据虚拟内存文件、业务逻辑文件和配置文件加载资源,实现设备的启动。

上述实施例中,通过调用驱动程序将虚拟内存文件从闪存分区读取到内存中,调用内核获取虚拟内存文件在内存中的地址,调用内核根据地址从内存中获取虚拟内存文件,进而调用内核根据虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备,由于根据驱动程序裸读闪存分区到内存,相比内核本身读取闪存分区到内存速度更快,且只需要用到内核的虚拟内存文件等模块,无需新增rtos等软件资源,进而能够实现在需求资源少,开发简单的情景下,减少设备启动时间。

作为一种可选地实施方式,如图3所示,s204“所述调用所述内核根据所述虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备”,包括:

s301,控制所述内核合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件。

其中,可通过特定的合并文件系统实现虚拟内存文件、业务逻辑文件和配置文件的合并。可选地,s301“控制所述内核合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件”,包括:

s401,控制所述内核启动所述虚拟内存文件,以调度堆叠文件系统。

其中,堆叠文件系统是指overlay文件系统,表示一个文件系统覆盖在另一个文件系统上面,用于实现多文件系统的合并。由于控制内核启动虚拟内存文件可以理解为将虚拟内存文件压缩包解压的过程,具体地,通过控制内核解压虚拟内存文件,获取busybox工具箱的操作命令,进而控制内核根据busybox操作命令,调度overlay文件系统。

s402,控制所述内核根据所述堆叠文件系统合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件。

其中,overlay文件系统合并文件的目的是让虚拟内存文件、业务逻辑文件和配置文件拥有一个统一的操作接口,在启动过程中,用户可以无感知的切换到整体根文件环境下。上述实施例中,通过利用overlay文件系统组合ramdisk与真正存放业务逻辑相关功能的业务逻辑文件,最终组合成为一个整体的根文件系统,实现设备快速启动的目标。

s302,控制所述内核根据所述整体根文件加载资源,以启动设备。

其中,加载业务逻辑所需的资源一部分是跟整体根文件相关的,另一部分是与整体根文件无关的,当业务逻辑所需的资源全部加载完毕后,才可实现设备的启动。具体地,控制内核根据整体根文件加载与整体根文件相关的资源,以启动设备。

上述实施例中,由于控制内核合并虚拟内存文件、业务逻辑文件和配置文件,得到整体根文件,控制内核根据整体根文件加载资源,以启动设备,由于只需要用到内核的虚拟内存文件、堆叠文件系统等模块,无需新增rtos等软件资源,进而能够实现在需求资源少,开发简单的情景下,减少设备启动时间。

在其中一个实施例中,所述控制所述内核根据所述整体根文件加载资源,以启动设备之前,还包括:控制所述内核根据所述虚拟内存文件加载业务逻辑所需的第一模板资源。

其中,与整体根文件无关的资源存储在虚拟内存文件,其中,在虚拟内存文件启动,即ramdisk解压完毕后,与整体根文件无关的资源即可加载。可选地,控制内核加载业务逻辑所需的第一模板资源与控制内核根据堆叠文件系统合并虚拟内存文件、业务逻辑文件和配置文件并行运行。

具体地,控制内核加载业务逻辑所需的第一模板资源、控制内核根据堆叠文件系统合并虚拟内存文件、业务逻辑文件和配置文件、获取业务逻辑文件和配置文件可以并行处理。

上述实施例中,通过控制内核加载业务逻辑所需的第一模板资源与控制内核根据堆叠文件系统合并虚拟内存文件、业务逻辑文件和配置文件并行运行,进而在多核环境应用中,减少设备启动时间。

在其中一个实施例中,s302“控制所述内核根据所述整体根文件加载资源,以启动设备”,包括:

s501,控制所述内核根据所述整体根文件,加载业务逻辑所需的第二模板资源。

具体地,由于加载业务逻辑所需资源有一部分是与整体根文件相关的,因此控制内核加载与根文件系统相关的第二模板资源。

s502,控制所述内核根据所述第一模板资源和所述第二模板资源,以启动设备。

其中,加载业务逻辑所需的资源中与整体根文件相关为第二模板资源,与整体根文件无关的为第一模板资源,当业务逻辑所需的资源全部加载完毕后,才可实现设备的启动。

在其中一个实施例中,所述调用所述内核根据所述虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备之前,还包括:

s601,调用所述内核将所述业务逻辑文件、所述配置文件从闪存分区读取到内存中。

其中,虚拟内存文件、业务逻辑文件和配置文件位于flash的不同分区,例如,虚拟内存文件位于flash的第一分区,业务逻辑文件位于flash的第二分区,配置文件位于flash的第三分区,示例性地,在调用驱动程序bootloader将第一分区的虚拟内存文件从flash读取到内存,并启动虚拟内存文件后,调用内核将业务逻辑文件、配置文件分别从第二分区、第三分区读取到内存中。

s602,调用所述内核从所述内存中获取所述业务逻辑文件和所述配置文件。

其中,业务逻辑文件和配置文件也可以是压缩文件包的形式,调用内核从内存中获取业务逻辑文件和配置文件的过程即对业务逻辑文件和配置文件解压的过程。

在其中一个实施例中,提供了一种设备启动的整体实现流程,如图7所示,在设备启动时,s701:调用驱动程序将虚拟内存文件从flash读取到内存,同时还会将内核文件也从flash读取到内存;s702:调用内核获取虚拟内存文件在内存中的地址并启动接管;s703:调用内核启动第一模板资源且可以并行地调用内核解析业务逻辑和配置文件、并行地调用内核执行多文件系统的合并;s704:解析业务逻辑文件和配置文件并合并多文件系统;s705:调用内核加载第二模板资源;s706:在业务逻辑所需的所有模板资源(第一模板资源和第二模板资源)都加载完毕后,启动业务逻辑,即实现设备的启动。

应该理解的是,虽然图2-7流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种设备启动装置,包括:第一调用模块11、第二调用模块12、第三调用模块13和第四调用模块14,其中:

第一调用模块11,用于调用驱动程序将虚拟内存文件从闪存分区读取到内存中;所述虚拟内存文件包括与业务逻辑无关的文件;

第二调用模块12,用于调用内核获取所述虚拟内存文件在所述内存中的地址;

第三调用模块13,用于调用所述内核根据所述地址从所述内存中获取所述虚拟内存文件;

第四调用模块14,用于调用所述内核根据所述虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备。

在其中一个实施例中,如图9所示,在图8所示的基础上,第四调用模块14包括:

第一控制单元140,用于控制所述内核合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件;

第二控制单元141,用于控制所述内核根据所述整体根文件加载资源,以启动设备。

在其中一个实施例中,第一控制单元140具体用于控制所述内核启动所述虚拟内存文件,以调度堆叠文件系统;控制所述内核根据所述堆叠文件系统合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件。

在其中一个实施例中,第四调用模块还包括:第三控制单元,用于控制所述内核根据所述虚拟内存文件加载业务逻辑所需的第一模板资源。

在其中一个实施例中,第二控制单元141具体用于控制所述内核根据所述整体根文件,加载业务逻辑所需的第二模板资源;控制所述内核根据所述第一模板资源和所述第二模板资源,以启动设备。

在其中一个实施例中,所述控制所述内核加载业务逻辑所需的第一模板资源与所述控制所述内核根据所述堆叠文件系统合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件并行运行。

在其中一个实施例中,如图10所示,在图9所示的基础上,所述装置还包括第五调用模块15、第六调用模块16,其中:

第五调用模块15,用于调用所述内核将所述业务逻辑文件、所述配置文件从闪存分区读取到内存中;

第六调用模块16,用于调用所述内核从所述内存中获取所述业务逻辑文件和所述配置文件。

关于设备启动装置的具体限定可以参见上文中对于设备启动方法的限定,在此不再赘述。上述设备启动装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

调用驱动程序将虚拟内存文件从闪存分区读取到内存中;所述虚拟内存文件包括与业务逻辑无关的文件;

调用内核获取所述虚拟内存文件在所述内存中的地址;

调用所述内核根据所述地址从所述内存中获取所述虚拟内存文件;

调用所述内核根据所述虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:控制所述内核合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件;控制所述内核根据所述整体根文件加载资源,以启动设备。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:控制所述内核启动所述虚拟内存文件,以调度堆叠文件系统;控制所述内核根据所述堆叠文件系统合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:控制所述内核根据所述虚拟内存文件加载业务逻辑所需的第一模板资源。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:控制所述内核根据所述整体根文件,加载业务逻辑所需的第二模板资源;控制所述内核根据所述第一模板资源和所述第二模板资源,以启动设备。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述控制所述内核加载业务逻辑所需的第一模板资源与所述控制所述内核根据所述堆叠文件系统合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件并行运行。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:调用所述内核将所述业务逻辑文件、所述配置文件从闪存分区读取到内存中;调用所述内核从所述内存中获取所述业务逻辑文件和所述配置文件。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

调用驱动程序将虚拟内存文件从闪存分区读取到内存中;所述虚拟内存文件包括与业务逻辑无关的文件;

调用内核获取所述虚拟内存文件在所述内存中的地址;

调用所述内核根据所述地址从所述内存中获取所述虚拟内存文件;

调用所述内核根据所述虚拟内存文件、业务逻辑文件和配置文件加载资源,以启动设备。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:控制所述内核合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件;控制所述内核根据所述整体根文件加载资源,以启动设备。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:控制所述内核启动所述虚拟内存文件,以调度堆叠文件系统;控制所述内核根据所述堆叠文件系统合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件,得到整体根文件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:控制所述内核根据所述虚拟内存文件加载业务逻辑所需的第一模板资源。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:控制所述内核根据所述整体根文件,加载业务逻辑所需的第二模板资源;控制所述内核根据所述第一模板资源和所述第二模板资源,以启动设备。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述控制所述内核加载业务逻辑所需的第一模板资源与所述控制所述内核根据所述堆叠文件系统合并所述虚拟内存文件、所述业务逻辑文件和所述配置文件并行运行。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:调用所述内核将所述业务逻辑文件、所述配置文件从闪存分区读取到内存中;调用所述内核从所述内存中获取所述业务逻辑文件和所述配置文件。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1