CN109298891B - ***启动方法和装置、***编译方法和装置 - Google Patents

***启动方法和装置、***编译方法和装置 Download PDF

Info

Publication number
CN109298891B
CN109298891B CN201811037731.8A CN201811037731A CN109298891B CN 109298891 B CN109298891 B CN 109298891B CN 201811037731 A CN201811037731 A CN 201811037731A CN 109298891 B CN109298891 B CN 109298891B
Authority
CN
China
Prior art keywords
file
image file
length
loading
data
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
CN201811037731.8A
Other languages
English (en)
Other versions
CN109298891A (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.)
Aizhi Technology Shenzhen Co ltd
Original Assignee
Zmodo Technology Shenzhen Corp ltd
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 Zmodo Technology Shenzhen Corp ltd filed Critical Zmodo Technology Shenzhen Corp ltd
Priority to CN201811037731.8A priority Critical patent/CN109298891B/zh
Publication of CN109298891A publication Critical patent/CN109298891A/zh
Application granted granted Critical
Publication of CN109298891B publication Critical patent/CN109298891B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种***启动方法和装置、***编译方法和装置。所述方法包括:在根据***启动指令启动***时,获取***镜像文件中的文件压缩部分,文件压缩部分中包括***启动数据,提高了获取***启动数据的速度,从而提高了根据***启动数据启动***的速度。在根据***启动数据启动***后,再获取***镜像文件中的文件剩余部分,根据文件剩余部分加载***功能,使得***完全启动,从而大大提高了***的启动速度。

Description

***启动方法和装置、***编译方法和装置
技术领域
本申请涉及通信技术领域,特别是涉及一种***启动方法和装置、***编译方法和装置。
背景技术
随着通信技术的发展,越来越多的数据都可以通过网络进行传输。其中,通信技术也应用到摄像机上,使得摄像机也可以通过网络对采集到的图像进行传输。
然而,随着网络摄像机的应用越来越广泛,对网络摄像机的要求也越来越高,在传统的网络摄像机的***启动过程中,需要加载较多的***启动数据,导致网络摄像机的***启动速度较慢。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高***启动速度的***启动方法和装置、***编译方法和装置。
一种***启动方法,所述方法包括:
当监听到***启动指令时,获取***镜像文件中的文件压缩部分;
解压所述文件压缩部分,得到***启动数据;
根据所述***启动数据启动***;
获取所述***镜像文件中的文件剩余部分;
根据所述文件剩余部分加载***功能。
一种***编译方法,所述方法包括:
获取原始镜像文件中的***启动数据;
对所述***启动数据进行压缩,得到***镜像文件的文件压缩部分;
获取原始镜像文件的原始长度和文件压缩部分的压缩文件长度;
根据所述原始长度和所述压缩文件长度,从所述原始镜像文件中提取文件剩余部分;
将所述文件压缩部分和所述文件剩余部分合并,生成***镜像文件。
一种***启动装置,其特征在于,所述装置包括:
文件获取模块,用于检测到所述***启动指令时,获取***镜像文件中的文件压缩部分;获取***镜像文件中的文件剩余部分;
文件解压模块,用于解压所述文件压缩部分,得到***启动数据;
***启动模块,用于根据所述***启动数据启动***;
***加载模块,用于根据所述文件剩余部分加载***功能。
一种***编译装置,其特征在于,所述装置包括:
数据获取模块,用于获取原始镜像文件中的***启动数据;
文件压缩模块,用于对所述***启动数据进行压缩,得到***镜像文件的文件压缩部分;
长度获取模块,用于获取原始镜像文件的原始长度和文件压缩部分的压缩文件长度;
文件提取模块,用于根据所述原始长度和所述压缩文件长度,从所述原始镜像文件中提取文件剩余部分;
文件合并模块,用于将所述文件压缩部分和所述文件剩余部分合并,生成***镜像文件。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当监听到***启动指令时,获取***镜像文件中的文件压缩部分;
解压所述文件压缩部分,得到***启动数据;
根据所述***启动数据启动***;
获取所述***镜像文件中的文件剩余部分;
根据所述文件剩余部分加载***功能。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当监听到***启动指令时,获取***镜像文件中的文件压缩部分;
解压所述文件压缩部分,得到***启动数据;
根据所述***启动数据启动***;
获取所述***镜像文件中的文件剩余部分;
根据所述文件剩余部分加载***功能。
上述***启动方法和装置、***编译方法和装置,在根据***启动指令启动***时,获取***镜像文件中的文件压缩部分,文件压缩部分中包括***启动数据,提高了获取***启动数据的速度,从而提高了根据***启动数据启动***的速度。在根据***启动数据启动***后,再获取***镜像文件中的文件剩余部分,根据文件剩余部分加载***功能,使得***完全启动,从而大大提高了***的启动速度。
附图说明
图1为一个实施例中***启动方法的流程示意图;
图2为一个实施例中获取***镜像文件中的文件压缩部分的步骤的流程示意图;
图3为一个实施例中根据***启动数据启动***的步骤的流程示意图;
图4为一个实施例中根据文件剩余部分加载***功能的步骤的流程示意图;
图5为一个实施例中***编译方法的流程示意图;
图6为一个实施例中获取原始镜像文件中的***启动数据的步骤的流程示意图;
图7为一个实施例中原始镜像文件的编译示意图;
图8为一个实施例中***启动装置的结构框图;
图9为一个实施例中***编译装置的结构框图;
图10为一个实施例中计算机设备的内部结构图;
图11为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种***启动方法,该方法应用在安装有操作***的计算机设备上,该计算机设备可以是网络摄像机。本方法具体包括以下步骤:
步骤102,当监听到***启动指令时,获取***镜像文件中的文件压缩部分。
其中,***启动指令是***上电后,通过***引导进入启动阶段。进入启动阶段具体可以通过UBOOT(全称Universal Boot Loader)进行***引导。***镜像文件是***在启动时加载的镜像文件,用于启动***并加载***功能。所谓镜像文件和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用。文件压缩部分是***镜像文件的一部分,包含***启动数据。
具体地,当计算机设备检测到通过***引导进入启动阶段时,加载***参数,从***参数中获取***镜像文件对应的闪存地址和压缩文件长度。计算机设备根据***镜像文件对应的闪存地址在闪存中查询***镜像文件,并根据压缩文件长度,从***镜像文件中读取文件压缩部分,将读取到的文件压缩部分加载到内存。
在一个实施例中,计算机设备根据闪存地址在闪存中查询***镜像文件,对查询到的***镜像文件进行复制得到***镜像文件副本,根据压缩文件长度从***镜像文件副本中读取文件压缩部分。
步骤104,解压文件压缩部分,得到***启动数据。
其中,***启动数据包含了***启动过程中的关键数据。
具体地,计算机设备获取到文件压缩部分,确定文件压缩部分对应的文件压缩方式,根据与文件压缩方式对应的文件解压方式,对加载到内存中的文件压缩部分进行解压,得到***启动数据。
步骤106,根据***启动数据启动***。
具体地,计算机设备获取***启动数据的内存加载地址,将***启动数据加载到与内存加载地址对应的内存空间中,读取加载到内存空间中的***启动数据,根据读取到的***启动数据启动***。
在一个实施例中,当未获取到压缩文件长度时,计算机设备从***参数中获取***镜像文件对应的闪存地址和***启动数据的文件长度,根据***启动数据的文件长度读取***启动数据。获取***启动数据的内存加载地址,将***启动数据加载到与内存加载地址对应的内存空间中,读取加载到内存空间中的***启动数据,根据读取到的***启动数据启动***。
步骤108,获取***镜像文件中的文件剩余部分。
其中,文件剩余部分是***镜像文件中除去文件压缩部分余下的部分镜像文件。
具体地,计算机设备获取***镜像文件的总长度和文件压缩部分对应的压缩文件长度,根据***镜像文件的总长度和压缩文件长度确定文件剩余部分的剩余长度,根据文件剩余部分的剩余长度从***镜像文件中提取文件剩余部分。
在一个实施例中,计算机设备从对***镜像文件进行复制,得到***镜像文件副本,根据文件压缩部分对应的压缩文件长度确定***镜像文件副本中的文件压缩部分,从***镜像文件副本中删除确定的文件压缩部分,得到文件剩余部分。
步骤110,根据文件剩余部分加载***功能。
其中,***功能是***正常工作时能够实现的功能。文件剩余部分中包括***启动后能够实现***功能的数据。
具体地,计算机设备的***启动后,计算机设备将获取到的文件剩余部分加载到内存运行内存中的文件剩余部分,通过运行内存中的文件剩余部分为***加载***功能。
在一个实施例中,当完整的***镜像文件被压缩时,计算机设备以***镜像文件对应的闪存地址读取压缩后的***镜像文件,对压缩后的***镜像文件进行解压,得到解压后的***镜像文件,从解压后的***镜像文件中提取***启动数据和文件剩余部分,根据***启动数据启动***,根据文件剩余部分对启动后的***加载***功能,以完成***的正常启动。
本实施例中,在根据***启动指令启动***时,获取***镜像文件中的文件压缩部分,文件压缩部分中包括***启动数据,提高了获取***启动数据的速度,从而提高了根据***启动数据启动***的速度。在根据***启动数据启动***后,再获取***镜像文件中的文件剩余部分,根据文件剩余部分加载***功能,使得***完全启动,从而大大提高了***的启动速度。
如图2所示,在一个实施例中,步骤102具体还包括获取***镜像文件中的文件压缩部分的步骤,该步骤具体包括如下步骤:
步骤202,获取***镜像文件对应的闪存地址和压缩文件长度。
其中,闪存(Flash Memory)是一种非易失性的存储器,在断电情况下仍能保持所存储的数据信息。闪存地址是***镜像文件在***闪存中的存储地址。压缩文件长度是文件压缩部分的长度,例如当压缩文件长度为N时,表示文件压缩部分是长度为N个字节的文件。
具体地,计算机设备读取预先配置的***参数,从读取到的***参数中提取,***镜像文件的闪存地址和***镜像文件中文件压缩部分的压缩文件长度。
步骤204,根据闪存地址在闪存中查询***镜像文件。
具体地,计算机设备在获取到***镜像文件的闪存地址后,确定与闪存地址对应的闪存空间,在确定的闪存空间中查询存储的***镜像文件。
步骤206,根据压缩文件长度从闪存中的***镜像文件中,读取文件压缩部分。
具体地,计算机设备根据***镜像文件对应的闪存地址和压缩文件长度,确定文件压缩部分在闪存中的起始地址和结束地址,并将起始地址与结束地址间的文件压缩部分加载到内存中。
在一个实施例中,计算机设备以***镜像文件对应的闪存地址作为文件压缩部分在闪存中的起始地址,根据闪存地址和压缩文件长度确定文件压缩部分在闪存中的结束地址,根据起始地址和结束地址读取文件压缩部分。
在一个实施例中,计算机设备将闪存地址和压缩文件长度相加,得到文件压缩部分在闪存中的结束地址。
本实施例中,***获取***镜像文件对应的闪存地址和压缩文件长度,在闪存中查询到与闪存地址对应的***镜像文件后,根据压缩文件长度从***镜像文件中读取文件压缩部分,通过***镜像文件对应的闪存地址和压缩文件长度,从***镜像文件中读取文件压缩部分,提高了对文件压缩部分读取的速度。
如图3所示,在一个实施例中,步骤106具体还包括根据***启动数据启动***的步骤,该步骤具体包括如下步骤:
步骤302,获取内存加载地址。
具体地,计算机设备获取预设的***参数,从预设的***参数中提取内存加载地址。预设的***参数为预先设定好的用于启动***的参数。
步骤304,根据内存加载地址将***启动数据加载到内存。
具体地,计算机设备获取内存加载地址后,根据内存加载地址查询内存空间,将***启动数据加载到查询到的内存空间中。
举例说明,计算机设备获取到的的内存加载地址为0x80008000,计算机设备获取到内存加载地址0x80008000后,查询与内存加载地址0x80008000对应的内存空间,将***启动数据加载到以地址0x80008000开始的内存空间中。
步骤306,根据加载到内存的***启动数据启动***。
具体地,计算机设备读取加载到内存中的***启动数据,根据读取到的***启动数据运行***启动程序,根据运行的***启动程序启动***。
举例说明,计算机设备从内存加载地址0x80008000开始读取***启动数据,根据***启动数据启动***,计算机设备获取初始启动图像,展示初始启动图片,完成初步启动。
本实施例中,获取内存地址,根据内存加载地址将***启动数据加载到内存,根据***启动数据启动***,通过运行解压到内存中的***启动数据启动***,提升了***启动的速度。
如图4所示,在一个实施例中,步骤110具体还包括根据文件剩余部分加载***功能的步骤,该步骤具体包括如下步骤:
步骤402,获取文件剩余部分中的功能加载部分的功能文件长度。
其中,文件剩余部分包括文件填充部分与功能加载部分。原始镜像文件包括***启动数据和功能加载部分。
具体地,计算机设备对原始镜像文件编译时,根据***编译脚本确定***启动数据在原始镜像文件中的文件长度。计算机设备获取原始镜像文件的原始长度和原始镜像文件中***启动数据的文件长度,根据原始长度和***启动数据的文件长度得到功能加载部分的功能文件长度。
步骤404,根据功能文件长度从文件剩余部分中读取功能加载部分。
具体地,计算机获取***镜像文件对应的闪存地址,根据获取到的闪存地址确定***镜像文件在闪存中的起始地址和结束地址。计算机设备根据功能加载部分的功能文件长度和***镜像文件在闪存中的结束地址,确定功能加载部分在闪存中的起始地址和结束地址,根据确定的起始地址和结束地址从读取功能加载部分。
在一个实施例中,计算机设备将***镜像文件在闪存中的结束地址减去功能加载部分的功能文件长度,得到功能加载部分的起始地址,根据功能加载部分的起始地址和***镜像文件在闪存中的结束地址,读取功能加载部分。
步骤406,根据功能加载部分加载***功能。
具体地,计算机设备将读取到的功能加载部分加载到内存中,从内存中读取功能加载部分,运行读取到的功能加载部分,根据运行的功能加载部分加载***功能。
本实施例中,获取文件剩余部分中的功能加载部分的功能文件长度,根据功能文件长度从文件剩余部分中读取功能加载部分,根据功能加载部分为启动的***添加***功能,使***完全启动,保证***的正常运行的。
在一个实施例中,如图5所示,提供了一种***编译方法,本实施例以该方法应用在具有编译功能的计算机设备上,计算机设备可以是电脑终端。本方法具体包括以下步骤:
步骤502,获取原始镜像文件中的***启动数据。
具体地,计算机设备获取***编译脚本和原始镜像文件,根据***编译脚本确定***启动数据在原始镜像文件中的文件长度,并根据文件长度从原始镜像文件中复制***启动数据。
在一个实施例中,计算机设备获取到原始镜像文件后,根据***启动数据在镜像文件中的文件长度,查询原始镜像文件中的***启动数据,对原始镜像文件中的***启动数据进行复制,提取到***启动数据。
例如,在***编译过程中,计算机设备通过复制命令从原始镜像文件中复制***启动数据,复制命令可以是Linux***中的dd命令。
步骤504,对***启动数据进行压缩,得到***镜像文件的文件压缩部分。
具体地,计算机设备确定预设的数据压缩方式,根据预设的数据压缩方式对***启动数据进行压缩,经过压缩得到文件压缩部分。文件压缩部分为***镜像文件中的一部分。
在一个实施例中,计算机设备获取压缩命令,根据压缩命令对***启动数据进行压缩,通过压缩得到***镜像文件的文件压缩部分。
举例说明,计算机设备lzma命令调用lzma压缩工具对***启动数据进行压缩,得到***镜像文件的文件压缩部分。lzma(Lempel-Ziv-Markov chain-Algorithm)是一种基于LZ77压缩算法改进的压缩工具。在一个实施例中,lzma压缩工具可以是海思lzma压缩工具,计算机设备通过海思lzma压缩工具对***启动数据进行压缩,得到***镜像文件的文件压缩部分。
步骤506,获取原始镜像文件的原始长度和文件压缩部分的压缩文件长度。
具体地,计算机设备对原始镜像文件的长度进行统计,得到原始镜像文件的原始长度;对文件压缩部分的长度进行统计,得到文件压缩部分的压缩文件长度。
在一个实施例中,计算机设备获取文件长度获取命令,根据文件长度获取命令获取原始镜像文件的原始长度和文件压缩部分的压缩文件长度。文件长度获取命令可以是Linux***中的du命令。du命令是Linux中的命令,用于统计目录或文件所占磁盘空间的大小。
步骤508,根据原始长度和压缩文件长度,从原始镜像文件中提取文件剩余部分。
具体地,计算机设备根据原始长度和压缩文件长度,得到原始镜像文件中的文件剩余部分的长度,根据文件剩余部分的长度从原始镜像文件中提取文件剩余部分。
在一个实施例中,计算机设备将原始长度减去压缩文件长度,得到原始镜像文件中文件剩余部分的长度。
在一个实施例中,计算机设备获取剩余部分获取命令,根据剩余部分获取命令,确定原始镜像文件中与文件剩余部分的长度匹配的文件剩余部分,获取确定的文件剩余部分。举例说明,剩余部分获取命令可以是用于输出文件的末尾部分的tail命令。
步骤510,将文件压缩部分和文件剩余部分合并,生成***镜像文件。
具体地,计算机设备将文件压缩部分和文件剩余部分拼接合并,得到***镜像文件。
在一个实施例中,计算机设备可以将文件压缩部分的尾部与文件剩余部分的头部拼接,得到***镜像文件。计算机设备还可以将文件压缩部分的头部与文件剩余部分的尾部拼接,得到***镜像文件。
在一个实施例中,计算机设备获取文件拼接指令,根据文件拼接指令将文件压缩部分和文件剩余部分拼接,得到***镜像文件。举例说明,文件拼接指令可以是cat命令,cat命令为用于显示或把多个文本文件连接起来的命令。
本实施例中,在***编译时,获取原始镜像文件中的***启动数据,对***启动数据进行压缩得到文件压缩部分,根据获取的原始镜像文件的原始长度和文件压缩部分的压缩文件长度,从原始镜像文件中提取文件剩余部分,将文件压缩部分和文件剩余部分合并,生成***镜像文件。这样可以保证在***启动时,获取***镜像文件中的文件压缩部分,文件压缩部分中包括***启动数据,提高了获取***启动数据的速度,从而提高了根据***启动数据启动***的速度。
如图6所示,在一个实施例中,步骤502具体还包括获取原始镜像文件中的***启动数据的步骤,该步骤具体包括以下内容:
步骤602,获取***编译脚本和原始镜像文件。
其中,***编译脚本为用于对原始镜像文件进行编译所用的格式文件。***编译脚本中包括控制计算机进行一系列操作的数据。
具体地,编译脚本和***编译脚本被存储在指定的存储空间中。计算机设备获取指定的存储地址,根据获取到的存储地址从指定的存储空间中读取***编译脚本和原始镜像文件。
步骤604,根据***编译脚本,确定***启动数据在原始镜像文件的文件长度。
具体地,计算机查询读取***编译脚本中文件长度获取命令,根据文件长度获取命令,统计***启动数据在原始镜像文件的文件长度。
步骤606,根据文件长度从原始镜像文件中提取***启动数据。
具体地,计算机设备在确定***启动数据的文件长度时,根据文件长度确定原始镜像文件中的***启动数据,对原始镜像文件中的***启动数据进行复制,提取到***启动数据。
本实施例中,获取***编译脚本和原始镜像文件,根据***编译脚本确定***启动数据在原始镜像文件中的文件长度,根据确定的文件长度从原始镜像文件中提取***启动数据,保证了从原始镜像文件中提取***启动数据的准确性。
图7为一个实施例中生成***镜像文件的示意图。具体地,参照图7,计算机设备对原始长度为M的原始镜像文件中的***启动数据进行压缩,得到压缩文件长度为N的文件压缩部分,将原始镜像文件中提取长度为M-N的文件剩余部分,文件剩余部分中包括功能加载部分,将文件压缩部分和文件剩余部分合并生成***镜像文件。
应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种***启动装置800,包括:文件获取模块802、文件解压模块804、***启动模块806、***加载模块808,其中:
文件获取模块802,用于监听到***启动指令时,获取***镜像文件中的文件压缩部分;获取***镜像文件中的文件剩余部分。
文件解压模块804,用于解压文件压缩部分,得到***启动数据。
***启动模块806,用于根据***启动数据启动***。
***加载模块808,用于根据文件剩余部分加载***功能。
本实施例中,在根据***启动指令启动***时,获取***镜像文件中的文件压缩部分,文件压缩部分中包括***启动数据,提高了获取***启动数据的速度,从而提高了根据***启动数据启动***的速度。在根据***启动数据启动***后,再获取***镜像文件中的文件剩余部分,根据文件剩余部分加载***功能,使得***完全启动,从而大大提高了***的启动速度。
在一个实施例中,文件获取模块802还用于获取***镜像文件对应的闪存地址和压缩文件长度;根据闪存地址在闪存中查询***镜像文件;根据压缩文件长度从闪存中的***镜像文件中,读取文件压缩部分。
本实施例中,***获取***镜像文件对应的闪存地址和压缩文件长度,在闪存中查询到与闪存地址对应的***镜像文件后,根据压缩文件长度从***镜像文件中读取文件压缩部分,通过***镜像文件对应的闪存地址和压缩文件长度,从***镜像文件中读取文件压缩部分,提高了对文件压缩部分读取的速度。
在一个实施例中,***启动模块806还用于获取内存加载地址;根据内存加载地址将***启动数据加载到内存;根据加载到内存的***启动数据启动***。
本实施例中,获取内存地址,根据内存加载地址将***启动数据加载到内存,根据***启动数据启动***,通过运行解压到内存中的***启动数据启动***,提升了***启动的速度。在一个实施例中,***加载模块808还用于获取功能加载部分的功能文件长度;根据功能文件长度从文件剩余部分中读取功能加载部分;根据功能加载部分加载***功能。
本实施例中,获取文件剩余部分中的功能加载部分的功能文件长度,根据功能文件长度从文件剩余部分中读取功能加载部分,根据功能加载部分为启动的***添加***功能,使***完全启动,保证***的正常运行的。
在一个实施例中,如图9所示,提供了一种***编译装置900,包括:数据获取模块902、文件压缩模块904、长度获取模块906、文件提取模块908、文件合并模块910,其中:
数据获取模块902,用于获取原始镜像文件中的***启动数据。
文件压缩模块904,用于对***启动数据进行压缩,得到***镜像文件的文件压缩部分。
长度获取模块906,用于获取原始镜像文件的原始长度和文件压缩部分的压缩文件长度。
文件提取模块908,用于根据原始长度和压缩文件长度,从原始镜像文件中提取文件剩余部分。
文件合并模块910,用于将文件压缩部分和文件剩余部分合并,生成***镜像文件。
本实施例中,在***编译时,获取原始镜像文件中的***启动数据,对***启动数据进行压缩得到文件压缩部分,根据获取的原始镜像文件的原始长度和文件压缩部分的压缩文件长度,从原始镜像文件中提取文件剩余部分,将文件压缩部分和文件剩余部分合并,生成***镜像文件。这样可以保证在***启动时,获取***镜像文件中的文件压缩部分,文件压缩部分中包括***启动数据,提高了获取***启动数据的速度,从而提高了根据***启动数据启动***的速度。
在一个实施例中,数据获取模块902还用于获取***编译脚本和原始镜像文件;根据***编译脚本,确定***启动数据在原始镜像文件的文件长度;根据文件长度从原始镜像文件中提取***启动数据。
本实施例中,获取***编译脚本和原始镜像文件,根据***编译脚本确定***启动数据在原始镜像文件中的文件长度,根据确定的文件长度从原始镜像文件中提取***启动数据,保证了从原始镜像文件中提取***启动数据的准确性。
关于***启动装置、***编译装置的具体限定可以参见上文中对于***启动方法、***编译方法的限定,在此不再赘述。上述***启动装置、***编译装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是安装有操作***的计算机设备,其内部结构图可以如图10所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和图像采集装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。图像采集装置用于采集当前场景的图像。该计算机程序被处理器执行时以实现一种***启动方法。计算机设备可以是网络摄像机。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图11所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种***编译方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10-11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:当监听到***启动指令时,获取***镜像文件中的文件压缩部分;解压文件压缩部分,得到***启动数据;根据***启动数据启动***;获取***镜像文件中的文件剩余部分;根据文件剩余部分加载***功能。
在一个实施例中,获取***镜像文件中的文件压缩部分包括:获取***镜像文件对应的闪存地址和压缩文件长度;根据闪存地址在闪存中查询***镜像文件;根据压缩文件长度从闪存中的***镜像文件中,读取文件压缩部分。
在一个实施例中,根据***启动数据启动***包括:获取内存加载地址;根据内存加载地址将***启动数据加载到内存;根据加载到内存的***启动数据启动***。
在一个实施例中,根据文件剩余部分加载***功能包括:获取文件剩余部分中的功能加载部分的功能文件长度;根据功能文件长度从文件剩余部分中读取功能加载部分;根据功能加载部分加载***功能。
本实施例中,在根据***启动指令启动***时,获取***镜像文件中的文件压缩部分,文件压缩部分中包括***启动数据,提高了获取***启动数据的速度,从而提高了根据***启动数据启动***的速度。在根据***启动数据启动***后,再获取***镜像文件中的文件剩余部分,根据文件剩余部分加载***功能,使得***完全启动,从而大大提高了***的启动速度。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取原始镜像文件中的***启动数据;对***启动数据进行压缩,得到***镜像文件的文件压缩部分;获取原始镜像文件的原始长度和文件压缩部分的压缩文件长度;根据原始长度和压缩文件长度,从原始镜像文件中提取文件剩余部分;将文件压缩部分和文件剩余部分合并,生成***镜像文件。
在一个实施例中,获取原始镜像文件中的***启动数据包括:获取***编译脚本和原始镜像文件;根据***编译脚本,确定***启动数据在原始镜像文件的文件长度;根据文件长度从原始镜像文件中提取***启动数据。
本实施例中,在***编译时,获取原始镜像文件中的***启动数据,对***启动数据进行压缩得到文件压缩部分,根据获取的原始镜像文件的原始长度和文件压缩部分的压缩文件长度,从原始镜像文件中提取文件剩余部分,将文件压缩部分和文件剩余部分合并,生成***镜像文件。这样可以保证在***启动时,获取***镜像文件中的文件压缩部分,文件压缩部分中包括***启动数据,提高了获取***启动数据的速度,从而提高了根据***启动数据启动***的速度。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:当监听到***启动指令时,获取***镜像文件中的文件压缩部分;解压文件压缩部分,得到***启动数据;根据***启动数据启动***;获取***镜像文件中的文件剩余部分;根据文件剩余部分加载***功能。
在一个实施例中,获取***镜像文件中的文件压缩部分包括:获取***镜像文件对应的闪存地址和压缩文件长度;根据闪存地址在闪存中查询***镜像文件;根据压缩文件长度从闪存中的***镜像文件中,读取文件压缩部分。
在一个实施例中,根据***启动数据启动***包括:获取内存加载地址;根据内存加载地址将***启动数据加载到内存;根据加载到内存的***启动数据启动***。
在一个实施例中,根据文件剩余部分加载***功能包括:获取文件剩余部分中的功能加载部分的功能文件长度;根据功能文件长度从文件剩余部分中读取功能加载部分;根据功能加载部分加载***功能。
本实施例中,在根据***启动指令启动***时,获取***镜像文件中的文件压缩部分,文件压缩部分中包括***启动数据,提高了获取***启动数据的速度,从而提高了根据***启动数据启动***的速度。在根据***启动数据启动***后,再获取***镜像文件中的文件剩余部分,根据文件剩余部分加载***功能,使得***完全启动,从而大大提高了***的启动速度。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取原始镜像文件中的***启动数据;对***启动数据进行压缩,得到***镜像文件的文件压缩部分;获取原始镜像文件的原始长度和文件压缩部分的压缩文件长度;根据原始长度和压缩文件长度,从原始镜像文件中提取文件剩余部分;将文件压缩部分和文件剩余部分合并,生成***镜像文件。
在一个实施例中,获取原始镜像文件中的***启动数据包括:获取***编译脚本和原始镜像文件;根据***编译脚本,确定***启动数据在原始镜像文件的文件长度;根据文件长度从原始镜像文件中提取***启动数据。
本实施例中,在***编译时,获取原始镜像文件中的***启动数据,对***启动数据进行压缩得到文件压缩部分,根据获取的原始镜像文件的原始长度和文件压缩部分的压缩文件长度,从原始镜像文件中提取文件剩余部分,将文件压缩部分和文件剩余部分合并,生成***镜像文件。这样可以保证在***启动时,获取***镜像文件中的文件压缩部分,文件压缩部分中包括***启动数据,提高了获取***启动数据的速度,从而提高了根据***启动数据启动***的速度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种***启动方法,所述方法包括:
当监听到***启动指令时,获取***镜像文件对应的闪存地址和压缩文件长度,根据闪存地址在闪存中查询***镜像文件,对查询到的所述***镜像文件进行复制得到***镜像文件副本,根据压缩文件长度从所述***镜像文件副本中读取文件压缩部分;
解压所述文件压缩部分,得到***启动数据;
根据所述***启动数据启动***;
从所述***镜像文件副本中删除所述文件压缩部分,得到文件剩余部分;
根据所述文件剩余部分加载***功能;
根据所述压缩文件长度从闪存中的***镜像文件中,读取文件压缩部分。
2.根据权利要求1所述的方法,其特征在于,所述根据所述***启动数据启动***包括:
获取内存加载地址;
根据所述内存加载地址将所述***启动数据加载到内存;
根据加载到内存的***启动数据启动***。
3.根据权利要求1所述的方法,其特征在于,所述根据所述文件剩余部分加载***功能包括:
获取文件剩余部分中的功能加载部分的功能文件长度;
根据所述功能文件长度从所述文件剩余部分中读取所述功能加载部分;
根据所述功能加载部分加载***功能。
4.一种***编译方法,所述方法包括:
获取原始镜像文件中的***启动数据;
对所述***启动数据进行压缩,得到***镜像文件的文件压缩部分;
获取原始镜像文件的原始长度和文件压缩部分的压缩文件长度;
根据所述原始长度和所述压缩文件长度,从所述原始镜像文件中提取文件剩余部分;
将所述文件压缩部分和所述文件剩余部分合并,生成***镜像文件,确定所述***镜像文件所对应的闪存地址,将所述***镜像文件存储在所述闪存地址中。
5.根据权利要求4所述的方法,其特征在于,所述获取原始镜像文件中的***启动数据包括:
获取***编译脚本和原始镜像文件;
根据所述***编译脚本,确定***启动数据在所述原始镜像文件的文件长度;
根据所述文件长度从所述原始镜像文件中提取***启动数据。
6.一种***启动装置,其特征在于,所述装置包括:
文件获取模块,用于当监听到***启动指令时,获取***镜像文件对应的闪存地址和压缩文件长度,根据闪存地址在闪存中查询***镜像文件,对查询到的所述***镜像文件进行复制得到***镜像文件副本,根据压缩文件长度从所述***镜像文件副本中读取文件压缩部分;以及,从所述***镜像文件副本中删除所述文件压缩部分,得到文件剩余部分;
文件解压模块,用于解压所述文件压缩部分,得到***启动数据;
***启动模块,用于根据所述***启动数据启动***;
***加载模块,用于根据所述文件剩余部分加载***功能。
7.根据权利要求6所述的装置,其特征在于,***启动模块包括:
内存加载地址获取单元,用于获取内存加载地址;
***启动数据加载单元,用于根据所述内存加载地址将所述***启动数据加载到内存;
***启动单元,用于根据加载到内存的***启动数据启动***。
8.一种***编译装置,其特征在于,所述装置包括:
数据获取模块,用于获取原始镜像文件中的***启动数据;
文件压缩模块,用于对所述***启动数据进行压缩,得到***镜像文件的文件压缩部分;
长度获取模块,用于获取原始镜像文件的原始长度和文件压缩部分的压缩文件长度;
文件提取模块,用于根据所述原始长度和所述压缩文件长度,从所述原始镜像文件中提取文件剩余部分;
文件合并模块,用于将所述文件压缩部分和所述文件剩余部分合并,生成***镜像文件,确定所述***镜像文件所对应的闪存地址,将所述***镜像文件存储在所述闪存地址中。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN201811037731.8A 2018-09-06 2018-09-06 ***启动方法和装置、***编译方法和装置 Active CN109298891B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811037731.8A CN109298891B (zh) 2018-09-06 2018-09-06 ***启动方法和装置、***编译方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811037731.8A CN109298891B (zh) 2018-09-06 2018-09-06 ***启动方法和装置、***编译方法和装置

Publications (2)

Publication Number Publication Date
CN109298891A CN109298891A (zh) 2019-02-01
CN109298891B true CN109298891B (zh) 2021-09-21

Family

ID=65166248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811037731.8A Active CN109298891B (zh) 2018-09-06 2018-09-06 ***启动方法和装置、***编译方法和装置

Country Status (1)

Country Link
CN (1) CN109298891B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552479A (zh) * 2020-05-06 2020-08-18 湖南国科微电子股份有限公司 镜像文件编译方法、装置和电子设备
CN113656078A (zh) * 2021-07-28 2021-11-16 北京车和家信息技术有限公司 设备启动方法、装置、存储介质及电子设备
CN113645412B (zh) * 2021-10-15 2021-12-24 北京创米智汇物联科技有限公司 启动方法、装置、摄像机及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639782A (zh) * 2009-07-14 2010-02-03 上海市共进通信技术有限公司 基于嵌入式操作***的***引导载入方法
CN102141923A (zh) * 2010-09-28 2011-08-03 华为终端有限公司 内存文件***加载方法及装置
CN104102506A (zh) * 2014-04-25 2014-10-15 华南理工大学 一种基于ARM平台的Android启动加速方法
CN104750492A (zh) * 2015-03-31 2015-07-01 广东欧珀移动通信有限公司 基于嵌入式操作***的移动设备的开机控制方法及装置
CN105760201A (zh) * 2016-02-29 2016-07-13 华为技术有限公司 一种嵌入式装置的启动方法和装置
CN108287733A (zh) * 2017-12-19 2018-07-17 广东睿江云计算股份有限公司 一种虚拟机加载启动方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639782A (zh) * 2009-07-14 2010-02-03 上海市共进通信技术有限公司 基于嵌入式操作***的***引导载入方法
CN102141923A (zh) * 2010-09-28 2011-08-03 华为终端有限公司 内存文件***加载方法及装置
CN104102506A (zh) * 2014-04-25 2014-10-15 华南理工大学 一种基于ARM平台的Android启动加速方法
CN104750492A (zh) * 2015-03-31 2015-07-01 广东欧珀移动通信有限公司 基于嵌入式操作***的移动设备的开机控制方法及装置
CN105760201A (zh) * 2016-02-29 2016-07-13 华为技术有限公司 一种嵌入式装置的启动方法和装置
CN108287733A (zh) * 2017-12-19 2018-07-17 广东睿江云计算股份有限公司 一种虚拟机加载启动方法

Also Published As

Publication number Publication date
CN109298891A (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
US11080066B2 (en) Method for starting embedded apparatus, and apparatus
CN109298891B (zh) ***启动方法和装置、***编译方法和装置
CN108614718B (zh) 启动操作***的方法、装置和实现装置
US8572054B2 (en) Forward compatibility guaranteed data compression and decompression method and apparatus thereof
KR20120055352A (ko) 스냅샷 이미지를 이용한 부팅 장치 및 방법
CN106909362B (zh) Bmc固件生成的方法和装置、bmc***启动的方法和装置
CN110018859B (zh) 设备启动方法、装置、计算机设备和存储介质
JP2012059024A (ja) 情報処理装置、起動制御方法、起動制御プログラム及び記録媒体
CN105938436A (zh) 一种操作***的启动控制方法及终端
US8281289B2 (en) Device, method, and program for generating and executing execution binary image, and computer-readable recording medium containing the execution binary image execution program
CN110989986B (zh) 基于软件模板的软件生成方法、装置和计算机设备
CN113672224A (zh) 小程序页面代码生成方法、装置及计算机设备
CN112882782A (zh) 页面生成方法、装置、计算机设备和存储介质
CN111708548A (zh) 软件安装方法、装置、设备及存储介质
KR102067974B1 (ko) 화상 형성장치 및 어플리케이션의 삭제방법
CN114327733B (zh) 开机启动交互界面的动态更新方法、装置、设备及介质
KR100640389B1 (ko) Nand플래시 메모리를 구비한 장치에서 어플리케이션을실행하는 방법 및 그 장치
JP2017126293A (ja) 情報処理装置及びリソース管理方法
CN114020308A (zh) 一种摄像设备升级方法、装置、设备及介质
JP2010020416A (ja) データ転送方法およびデータ転送装置
JP2004320591A (ja) 携帯通信端末
CN112506526A (zh) 数据呈现软件部署方法、装置及电子设备
CN112269601A (zh) 一种bmc及其部件资产信息管理方法、装置和存储介质
JP4845497B2 (ja) 電子装置及びその制御方法
CN116450535B (zh) 子应用调试方法、装置、计算机设备及存储介质

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
TR01 Transfer of patent right

Effective date of registration: 20221219

Address after: 518000 1F218, Building B, Guoren Building, No. 5, Keji Middle Third Road, Maling Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong

Patentee after: Aizhi Technology (Shenzhen) Co.,Ltd.

Address before: 518051 25 / F, block a, financial technology building, No. 11, Keyuan Road, Nanshan District, Shenzhen, Guangdong Province

Patentee before: ZMODO TECHNOLOGY SHENZHEN Corp.,Ltd.

TR01 Transfer of patent right