CN108073420A - 一种系统无盘启动方法及装置 - Google Patents

一种系统无盘启动方法及装置 Download PDF

Info

Publication number
CN108073420A
CN108073420A CN201610973979.XA CN201610973979A CN108073420A CN 108073420 A CN108073420 A CN 108073420A CN 201610973979 A CN201610973979 A CN 201610973979A CN 108073420 A CN108073420 A CN 108073420A
Authority
CN
China
Prior art keywords
linux
data packet
system data
executable file
host
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.)
Pending
Application number
CN201610973979.XA
Other languages
English (en)
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201610973979.XA priority Critical patent/CN108073420A/zh
Publication of CN108073420A publication Critical patent/CN108073420A/zh
Pending legal-status Critical Current

Links

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
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Landscapes

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

Abstract

本发明实施例提供了一种系统无盘启动方法及装置,其中,系统无盘启动方法包括:得电后,读取已存储的包括硬件初始化操作代码Coreboot及Coreboot的有效载荷的二进制可执行文件;在执行Coreboot以进行硬件初始化操作后,加载有效载荷;在加载的有效载荷中存在预定可执行文件时,运行预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行Linux系统数据包中存储的Linux内核程序启动Linux操作系统,其中,预定可执行文件为固件代码Uboot经编译后得到的Linux操作系统下的可执行文件。通过本方案可以降低直接通过Uboot实现X86系统的引导的复杂度、缩短开发周期。

Description

一种系统无盘启动方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种系统无盘启动方法及装置。
背景技术
X86系统是指基于X86架构的计算机系统,X86架构是由英特尔公司推出的一种复杂指令集,用于控制芯片的运行的程序。无盘启动是指X86系统在没有任何外存支持的情况下启动并运行操作系统。目前,X86系统的无盘启动方式主要采用的是BIOS(Basic InputOutput System,基本输入输出系统)结合PXE(Preboot Execute Environment,预启动执行环境)的方法实现,但是该方法须依赖TFTP(Trivial File Transfer Protocol,简单文件传输协议),从而导致该方法的接口单一;另外,由于TFTP自身特点稳定性得不到保障,并且由于BIOS工具比较缺乏,不利于系统的开发维护。
Coreboot是一种开源的固件代码,在X86系统上用于替代BOIS用以系统初始化及系统引导。Uboot(Universal Boot Loader,通用引导加载程序)是遵循GPL(GeneralPublic License,通用公共授权)条款的一种固件代码,Uboot的工具命令齐全,加之软件架构复杂度低,极大降低了系统开发的难度及维护成本,故Uboot可经过简单开发从多种接口实现无盘启动。
现有的直接使用Uboot实现X86系统引导的技术,由于Uboot程序根植于嵌入式平台,而且英特尔等公司并不提供任何基于Uboot开发固件的技术支持,直接将Uboot移植到X86系统上有很大难度,即便是完成了一个平台的移植其通用性也不好。从而使得通过Uboot实现X86系统引导的复杂度高、开发周期长。
发明内容
本发明实施例的目的在于提供一种系统无盘启动方法及装置,以实现降低直接通过Uboot实现X86系统的引导的复杂度、缩短开发周期。具体技术方案如下:
第一方面,本发明实施例提供了一种系统无盘启动方法,应用于基于X86架构的计算机子系统,所述方法包括:
得电后,读取已存储的二进制可执行文件,其中,所述二进制可执行文件中包括:硬件初始化操作代码Coreboot及所述Coreboot的有效载荷;
在执行所述Coreboot以进行硬件初始化操作后,加载所述有效载荷;
在加载的所述有效载荷中存在预定可执行文件时,运行所述预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行所述Linux系统数据包中存储的Linux内核程序启动Linux操作系统,其中,所述预定可执行文件为固件代码Uboot经编译后得到的Linux操作系统下的可执行文件。
可选的,在所述得电后,读取已存储的二进制可执行文件的步骤之前,所述方法还包括:
调用固件代码Uboot及硬件初始化操作代码Coreboot;
编译所述Uboot,得到Linux操作系统下的预定可执行文件,其中,所述预定可执行文件为所述Coreboot的有效载荷的一种可执行文件;
打包所述有效载荷与所述Coreboot为二进制可执行文件,并存储所述二进制可执行文件至基于X86架构的计算机子系统的闪存芯片中。
可选的,所述方法还包括:
在加载的所述有效载荷中不存在所述预定可执行文件时,执行断电操作,并在断电操作后重新得电。
可选的,所述在执行所述Coreboot以进行硬件初始化操作后,加载所述有效载荷的步骤之后,所述方法还包括:
在加载的所述有效载荷中存在所述预定可执行文件时,若接收到用户发送的中断指令,则通过所述预定可执行文件执行自维护操作。
可选的,所述运行所述预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行所述Linux系统数据包中存储的Linux内核程序启动Linux操作系统的步骤,包括:
发送Linux内核获取请求至主机,以使所述主机根据所述Linux内核获取请求为基于X86架构的计算机子系统分配Linux系统数据包及传输完成信息,其中,所述Linux系统数据包至少包括Linux内核程序,所述传输完成信息至少包括所述Linux系统数据包的传输结束标识符;
获取所述主机传输的所述Linux系统数据包及所述传输完成信息;
当根据所述传输完成信息中的传输结束标识符,确定所述Linux系统数据包传输完成时,校验所述Linux系统数据包的数据是否正确;
在所述数据正确时,获取并执行所述Linux系统数据包中存储的Linux内核程序,以启动Linux操作系统。
可选的,所述发送Linux内核获取请求至所述主机的步骤之后,所述方法还包括:
接收所述主机发送的对所述预定可执行文件安全性校验的结果;
如果所述结果为校验未通过,则输出未通过的提示信息至用户;
如果所述结果为校验通过,则执行所述获取主机传输的Linux系统数据包及传输完成信息的步骤。
可选的,所述当根据所述传输完成信息中的传输结束标识符,确定所述Linux系统数据包传输完成时,校验所述Linux系统数据包的数据是否正确的步骤,包括:
根据所述传输结束标识符,判断所述Linux系统数据包是否传输完成;
如果传输完成,判断与所述主机之间的交互接口的类型;
如果所述交互接口的类型为所述主机直接向所述基于X86架构的计算机子系统的内存传输数据的接口,则获取所述Linux系统数据包所在的内存地址,并校验存储在所述内存地址中的数据是否正确,其中,所述内存地址包含在所述传输完成信息中;
如果所述交互接口的类型为网络接口,则直接校验所述Linux系统数据包的数据是否正确。
可选的,所述在所述数据正确时,获取并执行所述Linux系统数据包中存储的Linux内核程序,以启动Linux操作系统的步骤,包括:
在所述数据正确时,获取并根据所述Linux系统数据包格式,拆解所述Linux系统数据包,得到所述Linux内核程序;
存储所述Linux内核程序至预设Linux内核内存地址;
在所述预设Linux内核内存地址内,调用并执行所述Linux内核程序,以启动Linux操作系统。
第二方面,本发明实施例提供了一种系统无盘启动装置,应用于基于X86架构的计算机子系统,所述装置包括:
读取模块,用于在基于X86架构的计算机子系统得电后,读取已存储的二进制可执行文件,其中,所述二进制可执行文件中包括:硬件初始化操作代码Coreboot及所述Coreboot的有效载荷;
加载模块,用于在执行所述Coreboot以进行硬件初始化操作后,加载所述有效载荷;
运行模块,用于在加载的所述有效载荷中包存在预定可执行文件时,运行所述预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行所述Linux系统数据包中存储的Linux内核程序启动Linux操作系统,其中,所述预定可执行文件为固件代码Uboot经编译后得到的Linux操作系统下的可执行文件。
可选的,所述装置还包括:
调用模块,用于调用固件代码Uboot及硬件初始化操作代码Coreboot;
编译模块,用于编译所述Uboot,得到Linux操作系统下的预定可执行文件,其中,所述预定可执行文件为所述Coreboot的有效载荷的一种可执行文件;
打包模块,用于打包所述有效载荷与所述Coreboot为二进制可执行文件,并存储所述二进制可执行文件至基于X86架构的计算机子系统的闪存芯片中。
可选的,所述装置还包括:
重启模块,用于在加载的所述有效载荷中不存在所述预定可执行文件时,执行断电操作,并在断电操作后重新得电。
可选的,所述装置还包括:
自维护模块,用于在加载的所述有效载荷中存在所述预定可执行文件时,若接收到用户发送的中断指令,则通过所述预定可执行文件执行自维护操作。
可选的,所述运行模块,包括:
发送子模块,用于发送Linux内核获取请求至主机,以使所述主机根据所述Linux内核获取请求为基于X86架构的计算机子系统分配Linux系统数据包及传输完成信息,其中,所述Linux系统数据包至少包括Linux内核程序,所述传输完成信息至少包括所述Linux系统数据包的传输结束标识符;
获取子模块,用于获取所述主机传输的所述Linux系统数据包及所述传输完成信息;
校验子模块,用于当根据所述传输完成信息中的传输结束标识符,确定所述Linux系统数据包传输完成时,校验所述Linux系统数据包的数据是否正确;
启动子模块,用于在所述数据正确时,获取并执行所述Linux系统数据包中存储的Linux内核程序,以启动Linux操作系统。
可选的,所述运行模块,还包括:
接收子模块,用于接收所述主机发送的对所述预定可执行文件安全性校验的结果;
输出子模块,用于在所述接收模块的结果为校验未通过时,输出未通过的提示信息至用户;
执行子模块,用于在所述接收模块的结果为校验通过时,执行所述获取主机传输的Linux系统数据包及传输完成信息的步骤。
可选的,所述校验子模块,包括:
第一判断单元,用于根据所述传输结束标识符,判断所述Linux系统数据包是否传输完成;
第二判断单元,用于在所述第一判断单元的判断结果为传输完成时,判断与所述主机之间的交互接口的类型;
第一校验单元,用于在所述交互接口的类型为所述主机直接向所述基于X86架构的计算机子系统的内存传输数据的接口时,获取所述Linux系统数据包所在的内存地址,并校验存储在所述内存地址中的数据是否正确,其中,所述内存地址包含在所述传输完成信息中;
第二校验单元,用于在所述交互接口的类型为网络接口时,直接校验所述Linux系统数据包的数据是否正确。
可选的,所述启动子模块,包括:
拆解单元,用于在所述数据正确时,获取并根据所述Linux系统数据包格式,拆解所述Linux系统数据包,得到所述Linux内核程序;
存储单元,用于存储所述Linux内核程序至预设Linux内核内存地址;
调用单元,用于在所述预设Linux内核内存地址内,调用并执行所述Linux内核程序,以启动Linux操作系统。
本发明实施例提供的系统无盘启动方法及装置,通过开源的硬件初始化操作代码Coreboot初始化基于X86架构的计算机子系统的硬件,不再需要向BIOS厂商购买BIOS代码,使得固件代码Uboot的移植更为简单,且具有较好的通用性;同时固件代码Uboot可以较为方便地实现Linux系统数据包的加载引导,进而降低实现基于X86架构的计算机子系统引导的复杂度、缩短开发周期。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的系统无盘启动方法的应用框图;
图2为本发明实施例的系统无盘启动方法的第一种流程示意图;
图3为本发明实施例的系统无盘启动方法的第二种流程示意图;
图4为本发明实施例的系统无盘启动方法的第三种流程示意图;
图5为本发明实施例的系统无盘启动方法的第四种流程示意图;
图6为本发明实施例的系统无盘启动装置的第一种结构示意图;
图7为本发明实施例的系统无盘启动装置的第二种结构示意图;
图8为本发明实施例的系统无盘启动装置的第三种结构示意图;
图9为本发明实施例的系统无盘启动装置的第四种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了降低直接通过Uboot实现X86系统的引导的复杂度、缩短开发周期,本发明实施例提供了一种系统无盘启动方法及装置。
下面首先对本发明实施例所提供的系统无盘启动方法进行介绍。
需要说明的是,本发明实施例所提供的一种系统无盘启动方法的执行主体为基于X86架构的计算机子系统。其中,实现本实施例所提供的一种无盘启动方法的功能软件为设置于基于X86架构的计算机子系统的软件。
其中,基于X86架构是指该类的计算机系统采用的是一套通用的计算机语言指令集,是一种现实中的冯.诺依曼计算机。如图1所示的本发明实施例的应用框图,本发明实施例的基于X86架构的计算机子系统101都是可以实现无盘启动的无盘系统,无盘系统可以不包含软驱、硬盘、光盘等外存设备,每一个基于X86架构的计算机子系统通过交互接口与主机102进行通信,主机为存放有Linux系统内存镜像的服务器、计算机等。
如图2所示,本发明实施例所提供的一种无盘启动方法,可以包括如下步骤:
S201,在基于X86架构的计算机子系统得电后,读取已存储的二进制可执行文件。
其中,二进制可执行文件中包括:硬件初始化操作代码Coreboot及Coreboot的有效载荷;二进制可执行文件存储在基于X86架构的计算机子系统的闪存芯片上,需要说明的是,本实施例中,闪存芯片为flash;Coreboot为一种开源的硬件初始化操作代码,在基于X86架构的计算机子系统上Coreboot用于替代BIOS以建立基于X86架构的计算机子系统的CPU(Central Processing Unit,中央处理器)与基于X86架构的计算机子系统的内存之间的存取交互通路、建立基于X86架构的计算机子系统的CPU与基于X86架构的计算机子系统的输入/输出接口之间的存取交互通路、初始化各种硬件设备到相应可工作状态及加载有效载荷Payload或操作系统;有效载荷指的是程序的运行负载,是执行一定任务的程序模块。
需要说明的是,在进行启动操作系统之前,基于X86架构的计算机子系统将初始化操作代码Coreboot及Coreboot的有效载荷打包为二进制可执行文件,并将该二进制可执行文件存储至自身的flash中;在基于X86架构的计算机子系统得电启动之后,从自身的flash中读取该二进制可执行文件。
S202,在执行Coreboot以进行硬件初始化操作后,基于X86架构的计算机子系统加载有效载荷。
需要说明的是,在基于X86架构的计算机子系统中,在外部电源给基于X86架构的计算机子系统通电时,基于X86架构的计算机子系统的硬件很难直接进入预期的可工作状态,需要有一个初始化的过程,逐步将硬件带入到预期的可工作状态,实现这个过程的代码为硬件初始化操作代码,在基于X86架构的计算机子系统执行Coreboot之后,基于X86架构的计算机子系统的硬件可以进入预期可工作的状态;Coreboot相较于现有的BIOS,大大降低了硬件初始化的复杂度。
需要强调的是,Uboot为固件代码的一种,除了Uboot以外,固件代码还包括其他代码,例如SeaBIOS;固件代码通过GCC(GNU Compiler Collection,GNU编译器集合)编译成Linux操作系统下的可执行文件,有效载荷Payload通过自带的加载工具加载上述编译之后得到的可执行文件,在执行Coreboot后,加载有效载荷Payload,相当于将编译后的可执行文件作为Coreboot的应用程序。有效载荷除了包括Uboot经编译后得到的可执行文件,还可以包括其他固件代码经编译后得到的可执行文件,例如软件SeaBIOS代码经编译后得到的可执行文件。加载有效载荷,也就是加载上述的可执行文件,即运行Coreboot的应用程序。
S203,在加载的有效载荷中存在预定可执行文件时,基于X86架构的计算机子系统运行预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行Linux系统数据包中存储的Linux内核程序启动Linux操作系统。
其中,预定可执行文件为固件代码Uboot经编译后得到的Linux操作系统下的可执行文件。需要说明的是,Uboot通过编译得到可执行文件,有效载荷Payload通过自带的加载工具加载该可执行文件,在执行Coreboot后,加载有效载荷Payload,即相当于将Uboot编译后的可执行文件作为Coreboot的应用程序,其中,Coreboot的有效载荷遵循Linux ELF(Executable and Linking Format,可执行连接格式)标准,相当于Coreboot的应用程序。
需要强调的是,有效载荷Payload中不仅仅包含Uboot经编译后得到的可执行文件,还可以包含其他固件代码经编译后得到的可执行文件,例如软件SeaBIOS代码经编译后得到的可执行文件。为了实现从多种接口无盘启动,本方案通过执行Uboot经编译之后得到的可执行文件进行操作系统的启动,因此,在进行执行Uboot经编译之后得到的可执行文件之前需要判断Coreboot的有效载荷中是否存在Uboot经编译之后得到的可执行文件,只有在存在的时候,才可以执行该可执行文件;否则需要断电重启动。
应用本发明实施例,通过开源的硬件初始化操作代码Coreboot初始化基于X86架构的计算机子系统的硬件,不再需要向BIOS厂商购买BIOS代码,使得固件代码Uboot的移植更为简单,且具有较好的通用性;同时固件代码Uboot可以较为方便地实现Linux系统数据包的加载引导,进而降低实现基于X86架构的计算机子系统引导的复杂度、缩短开发周期。
如图3所示,本实施例所提供的一种系统无盘启动方法,所述在基于X86架构的计算机子系统得电后,读取已存储的二进制可执行文件的步骤之前,系统无盘启动方法还可以包括如下步骤:
S204,调用固件代码Uboot及硬件初始化操作代码Coreboot。
其中,Coreboot为一种开源的硬件初始化操作代码,在基于X86架构的计算机子系统上Coreboot用于替代BIOS以建立基于X86架构的计算机子系统的CPU(CentralProcessing Unit,中央处理器)与基于X86架构的计算机子系统的内存之间的存取交互通路、建立基于X86架构的计算机子系统的CPU与基于X86架构的计算机子系统的输入/输出接口之间的存取交互通路、初始化各种硬件设备到相应可工作状态及加载有效载荷Payload或操作系统;Uboot为一种嵌入式系统的固件代码,在本发明实施例中作为Coreboot的有效载荷以执行基于X86架构的计算机子系统的Linux操作系统的加载操作。需要说明的是,Uboot及Coreboot均存储在基于X86架构的计算机子系统的flash上,基于X86架构的计算机子系统可以从自身的flash中直接调用Uboot和Coreboot。
S205,编译Uboot,得到Linux操作系统下的预定可执行文件。
其中,预定可执行文件为Coreboot的有效载荷的一种可执行文件;Coreboot的有效载荷包含很多种,可以包含Uboot经编译后得到的可执行文件,也可以包含其他固件代码经编译后得到的可执行文件,这里不再一一赘述。Coreboot的有效载荷遵循Linux ELF(Executable and Linking Format,可执行连接格式)标准,相当于有效载荷为Coreboot的应用程序。
S206,打包有效载荷与Coreboot为二进制可执行文件,并存储该二进制可执行文件至基于X86架构的计算机子系统的闪存芯片中。
需要说明的是,为了保证在执行Coreboot进行基于X86架构的计算机子系统硬件初始化之后,加载的有效载荷为满足操作系统启动所需要的有效载荷,在进行启动操作之前则须将Coreboot与有效载荷打包为同一个文件,并且该文件为二进制可执行文件;则能保证在执行Coreboot之后,加载相应二进制可执行文件中的有效载荷。需要说明的是,本实施例中,存储二进制可执行文件的闪存芯片为flash。
应用本实施例,通过开源的硬件初始化操作代码Coreboot初始化基于X86架构的计算机子系统的硬件,不再需要向BIOS厂商购买BIOS代码,使得固件代码Uboot的移植更为简单,且具有较好的通用性;同时固件代码Uboot可以较为方便地实现Linux系统数据包的加载引导,进而降低实现基于X86架构的计算机子系统引导的复杂度、缩短开发周期;并且在启动操作系统之前,将Coreboot与启动操作系统需要的有效载荷打包在一个二进制可执行文件中,保证在执行Coreboot进行硬件初始化之后,加载相应的有效载荷,提高程序执行的效率。
如图4所示,本实施例所提供的一种系统无盘启动方法,在所述基于X86架构的计算机子系统运行预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行Linux系统数据包中存储的Linux内核程序启动Linux操作系统的步骤之前,系统无盘启动方法还可以包括如下步骤:
S207,基于X86架构的计算机子系统判断在加载的有效载荷中是否存在预定可执行文件,如果是则执行S203,如果否则执行S208。
S208,基于X86架构的计算机子系统执行断电操作,并在断电操作后重新得电。
需要说明的是,在Coreboot的有效载荷中不存在Uboot经编译后得到的预定可执行文件时,则说明该预定可执行文件没有作为Coreboot的应用程序,只有在Uboot经编译后得到预定可执行文件,有效载荷Payload通过自带的加载工具加载该预定可执行文件,执行Coreboot时,加载有效载荷Payload,即相当于将Uboot经编译后得到的预定可执行文件作为Coreboot的应用程序时,才能实现降低Uboot移植到X86系统上的难度。因此,在Coreboot的有效载荷中不存在Uboot经编译后得到的预定可执行文件时,按照编译错误进行处理,即重新执行上电操作,基于X86架构的计算机子系统经断电后重新得电。
应用本实施例,通过开源的硬件初始化操作代码Coreboot初始化基于X86架构的计算机子系统的硬件,不再需要向BIOS厂商购买BIOS代码,使得固件代码Uboot的移植更为简单,且具有较好的通用性;同时固件代码Uboot可以较为方便地实现Linux系统数据包的加载引导,进而降低实现基于X86架构的计算机子系统引导的复杂度、缩短开发周期;并且通过判断Uboot经编译后得到的Linux操作系统下的预定可执行文件是否作为Coreboot的有效载荷,降低Uboot移植到基于X86架构的计算机子系统上的难度。
如图5所示,本实施例所提供的一种系统无盘启动方法,所述在执行Coreboot以进行硬件初始化操作后,基于X86架构的计算机子系统加载有效载荷的步骤之后,系统无盘启动方法还可以包括如下步骤:
S209,在加载的有效载荷中存在预定可执行文件时,若接收到用户发送的中断指令,则基于X86架构的计算机子系统通过预定可执行文件执行自维护操作。
需要说明的是,用户可以通过键盘按键或者是鼠标点击中断Uboot经编译后得到的预定可执行文件的执行过程,进入预定可执行文件的命令行,基于X86架构的计算机子系统通过该预定可执行文件的命令进行自维护操作,具体进入预定可执行文件的命令行及对系统进行调试维护的操作属于现有技术,这里不再一一赘述。
应用本实施例,通过开源的硬件初始化操作代码Coreboot初始化基于X86架构的计算机子系统的硬件,不再需要向BIOS厂商购买BIOS代码,使得固件代码Uboot的移植更为简单,且具有较好的通用性;同时固件代码Uboot可以较为方便地实现Linux系统数据包的加载引导,进而降低实现基于X86架构的计算机子系统引导的复杂度、缩短开发周期;通过中断操作实现对系统的调试维护。
可选的,在上述各实施例中,所述运行预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行Linux系统数据包中存储的Linux内核程序启动Linux操作系统的步骤,可以包括:
首先,基于X86架构的计算机子系统发送Linux内核获取请求至主机,以使主机根据Linux内核获取请求为基于X86架构的计算机子系统分配Linux系统数据包及传输完成信息。
其中,Linux内核获取请求为基于X86架构的计算机子系统向主机请求获取Linux系统内存镜像的请求数据包;Linux系统数据包至少包括Linux内核程序,传输完成信息至少包括传输结束标识符。
需要说明的是,基于X86架构的计算机子系统通过交互接口向主机发送Linux内核获取请求,交互接口可以是网络接口、NTB(Non Transparent Bridge,非透明桥)或者DMA(Direct Memory Access,直接内存访问),这些都是合理的;主机可以是存储有Linux系统内存镜像的数据库,也可以是存储有Linux系统内存镜像的计算机,这都是合理的。
其次,基于X86架构的计算机子系统获取主机传输的Linux系统数据包及传输完成信息。
需要说明的是,主机在接收到基于X86架构的计算机子系统通过交互接口发送的Linux内核获取请求后,会根据该Linux内核获取请求对不同的基于X86架构的计算机子系统进行区分,可以通过IP(Internet Protocol,互联网协议)地址进行区分,也可以通过NTB或者DMA的不同通道号加以区分,这都是合理的;主机针对不同的基于X86架构的计算机子系统,生成不同的Linux系统数据包,Linux系统数据包中包括Linux内核程序、文件系统数据等;并且主机在向基于X86架构的计算机子系统传输Linux系统数据包完成后,会传输一个传输完成信息,该传输完成信息包括传输结束标识符、Linux系统数据包所在的内存地址及Linux系统数据包长度等。基于X86架构的计算机子系统可以根据获取到的传输完成信息中的传输结束标识符确定Linux系统数据包是否已经传输完成。
需要强调的是,基于X86架构的计算机子系统通过交互接口接收主机传输的Linux系统数据包及传输完成信息。
然后,当根据传输完成信息中的传输结束标识符,确定Linux系统数据包传输完成时,基于X86架构的计算机子系统校验Linux系统数据包的数据是否正确。
需要说明的是,一旦确认Linux系统数据包已经传输完成,就需要进入数据包校验流程,以确保Linux系统数据包在传输过程中没有出错。Linux系统数据包可以是在结束位存储有一标识符,主机通过判断该结束位是否已传输以确定传输结束标识符的数据,也可以是现有技术中其他判断的方法,这里不再一一赘述。
需要强调的是,Linux系统数据包的传输方式可以为HTTP(HyperText TransferProtocol,超文本传输协议)或者HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer,以安全为目标的HTTP通道),在传输的过程中,数据包可能会出现数据丢失或者时延等情况,因此基于X86架构的计算机子系统会根据HTTP协议或者HTTPS协议对数据包进行校对,以保证数据包的正确性。
可选的,所述当根据传输完成信息中的传输结束标识符,确定Linux系统数据包传输完成时,校验Linux系统数据包的数据是否正确的步骤,可以包括:
根据传输结束标识符,判断Linux系统数据包是否传输完成;
如果传输完成,判断与主机之间的交互接口的类型;
如果交互接口的类型为主机直接向基于X86架构的计算机子系统的内存传输数据的接口,则获取Linux系统数据包所在的内存地址,并校验存储在内存地址中的数据是否正确,其中,内存地址包含在传输完成信息中;
如果交互接口的类型为网络接口,则直接校验Linux系统数据包的数据是否正确。
需要说明的是,直接向基于X86架构的计算机子系统的内存传输数据的接口包括有NTB及DMA,由于这些接口直接向基于X86架构的计算机子系统内存传输数据,因此需要从传输完成信息中获取Linux系统数据包所在的内存地址,然后从该地址读取数据包中的数据进行校验。如果通过网络接口的方式传输数据,由于Uboot中存储有通过网络接口方式传输数据时的数据包存放的内存地址,基于X86架构的计算机子系统通过Uboot对应的预定可执行文件获得Linux系统数据包所在的内存地址信息,不需要获取地址的这一过程,而直接可以从所知道的内存地址读取数据包中的数据进行校验。
最后,在数据正确时,基于X86架构的计算机子系统获取并执行Linux系统数据包中存储的Linux内核程序,以启动Linux操作系统。
需要说明的是,在对Linux系统数据包的校验通过后,根据Linux系统数据包格式拆解数据包,将Linux内核程序、文件系统数据等不同部分拷贝至相应的预设内存地址,然后跳转到预设Linux内核内存地址,通过Linux内核程序启动Linux操作系统。预设内存地址可以是Uboot中预先设定的内存地址,也可以是Linux系统数据包中预先设定的内存地址;预设内存地址包括:存储Linux内核程序的预设Linux内核内存地址及存储文件系统数据的预设文件系统内存地址。
可选的,所述获取并执行Linux系统数据包中存储的Linux内核程序,以启动Linux操作系统的步骤,可以包括:
在数据正确时,获取并根据Linux系统数据包格式,拆解Linux系统数据包,得到Linux内核程序;
存储Linux内核程序至预设Linux内核内存地址;
在预设Linux内核内存地址内,调用并执行Linux内核程序,以启动Linux操作系统。
需要强调的是,Linux系统数据包中存储有Linux内核程序、文件系统数据库等不同类型信息,Linux系统数据包的格式即为各信息的类型,拆解数据包为将以上各类型的信息分配到各自对应的预设内存地址。
可选的,上述实施例中,在所述发送Linux内核获取请求至主机的步骤之后,系统无盘启动方法还可以包括如下步骤:
第一步,接收主机发送的对预定可执行文件安全性校验的结果。
需要说明的是,在基于X86架构的计算机子系统向主机请求获取Linux系统数据包之后,主机才能够知道哪一个基于X86架构的计算机子系统请求,因此在基于X86架构的计算机子系统发送请求之后再根据主机发送的对预定可执行文件安全性校验的结果,通过该结果判定预定可执行文件是否满足安全性要求。如果安全性满足要求,则认为主机授权Uboot经编译后得到的预定可执行文件可以开始执行。
第二步,如果所述结果为校验未通过,则输出未通过的提示信息至用户。
第三步,如果所述结果为校验通过,则执行所述获取主机传输的Linux系统数据包及传输完成信息的步骤。
需要说明的是,在执行Uboot经编译后得到的预定可执行文件之前,需要获取到主机对该预定可执行文件的安全性校验得到的结果,例如,主机通过HTTPS或者TFTP对该预定可执行文件的安全性进行校验,如果该预定可执行文件达到安全性要求,则主机授权Uboot经编译后得到的预定可执行文件可以开始执行;如果未达到安全性要求,则认为主机授权Uboot经编译后得到的预定可执行文件可以开始执行。只有在主机授权该预定可执行文件可以开始执行时,基于X86架构的计算机子系统向主机请求获取Linux系统数据包才能成功。为了提示用户是由于未授权导致Linux系统数据包请求不成功,基于X86架构的计算机子系统会输出用于指示授权未通过的提示信息以提示用户,该提示信息可以是以对话框的形式显示在基于X86架构的计算机子系统的显示器上,也可以是基于X86架构的计算机子系统上的指示灯,这都是合理的。通过接收主机发送的对于Uboot经编译后得到的预定可执行文件的安全性校验结果,判断主机是否授权该预定可执行文件可以开始执行,提升系统的安全性,且通过提示信息令用户直观掌握系统的运行情况。
相应于上述方法实施例,本发明实施例提供了一种系统无盘启动装置,如图6所述,所述装置可以包括:
读取模块610,用于在基于X86架构的计算机子系统得电后,读取已存储的二进制可执行文件,其中,所述二进制可执行文件中包括:硬件初始化操作代码Coreboot及所述Coreboot的有效载荷;
加载模块620,用于在执行所述Coreboot以进行硬件初始化操作后,加载所述有效载荷;
运行模块630,用于在加载的所述有效载荷中存在预定可执行文件时,运行所述预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行所述Linux系统数据包中存储的Linux内核程序启动Linux操作系统,其中,所述预定可执行文件为固件代码Uboot经编译后得到的Linux操作系统下的可执行文件。
应用本实施例,通过开源的硬件初始化操作代码Coreboot初始化基于X86架构的计算机子系统的硬件,不再需要向BIOS厂商购买BIOS代码,使得固件代码Uboot的移植更为简单,且具有较好的通用性;同时固件代码Uboot可以较为方便地实现Linux系统数据包的加载引导,进而降低实现基于X86架构的计算机子系统引导的复杂度、缩短开发周期。
更进一步的,在包含读取模块610、加载模块620、运行模块630的基础上,如图7所示,本实施例所提供的一种系统无盘启动装置还可以包括:
调用模块640,用于调用固件代码Uboot及硬件初始化操作代码Coreboot;
编译模块650,用于编译所述Uboot,得到Linux操作系统下的预定可执行文件,其中,所述预定可执行文件为所述Coreboot的有效载荷的一种可执行文件;
打包模块660,用于打包所述有效载荷与所述Coreboot为二进制可执行文件,并存储所述二进制可执行文件至基于X86架构的计算机子系统的闪存芯片中。
应用本实施例,通过开源的硬件初始化操作代码Coreboot初始化基于X86架构的计算机子系统的硬件,不再需要向BIOS厂商购买BIOS代码,使得固件代码Uboot的移植更为简单,且具有较好的通用性;同时固件代码Uboot可以较为方便地实现Linux系统数据包的加载引导,进而降低实现基于X86架构的计算机子系统引导的复杂度、缩短开发周期;并且在启动操作系统之前,将Coreboot与启动操作系统需要的有效载荷打包在一个二进制可执行文件中,保证在执行Coreboot进行硬件初始化之后,加载相应的有效载荷,提高程序执行的效率。
更进一步的,在包含读取模块610、加载模块620、运行模块630的基础上,如图8所示,本实施例所提供的一种系统无盘启动装置还可以包括:
重启模块670,用于在加载的所述有效载荷中不存在所述预定可执行文件时,执行断电操作,并在断电操作后重新得电。
应用本实施例,通过开源的硬件初始化操作代码Coreboot初始化基于X86架构的计算机子系统的硬件,不再需要向BIOS厂商购买BIOS代码,使得固件代码Uboot的移植更为简单,且具有较好的通用性;同时固件代码Uboot可以较为方便地实现Linux系统数据包的加载引导,进而降低实现基于X86架构的计算机子系统引导的复杂度、缩短开发周期;并且通过判断Uboot经编译后得到的预定可执行文件是否作为Coreboot的有效载荷,降低Uboot移植到基于X86架构的计算机子系统上的难度。
更进一步的,在包含读取模块610、加载模块620、运行模块630的基础上,如图9所示,本实施例所提供的一种系统无盘启动装置还可以包括:
自维护模块680,用于在加载的所述有效载荷中存在所述预定可执行文件时,若接收到用户发送的中断指令,则通过所述预定可执行文件执行自维护操作。
应用本实施例,通过开源的硬件初始化操作代码Coreboot初始化基于X86架构的计算机子系统的硬件,不再需要向BIOS厂商购买BIOS代码,使得固件代码Uboot的移植更为简单,且具有较好的通用性;同时固件代码Uboot可以较为方便地实现Linux系统数据包的加载引导,进而降低实现基于X86架构的计算机子系统引导的复杂度、缩短开发周期;通过中断操作实现对系统的调试维护。
可选的,为了从主机获取Linux系统数据包,通过执行Linux系统数据包中存储的Linux内核程序启动Linux操作系统,所述运行模块,可以包括:
发送子模块,用于发送Linux内核获取请求至主机,以使所述主机根据所述Linux内核获取请求为基于X86架构的计算机子系统分配Linux系统数据包及传输完成信息,其中,所述Linux系统数据包至少包括Linux内核程序,所述传输完成信息至少包括所述Linux系统数据包的传输结束标识符;
获取子模块,用于获取所述主机传输的所述Linux系统数据包及所述传输完成信息;
校验子模块,用于当根据所述传输完成信息中的传输结束标识符,确定所述Linux系统数据包传输完成时,校验所述Linux系统数据包的数据是否正确;
启动子模块,用于在所述数据正确时,获取并执行所述Linux系统数据包中存储的Linux内核程序,以启动Linux操作系统。
可选的,所述运行模块,还可以包括:
接收子模块,用于接收所述主机发送的所述预定可执行文件安全性校验的结果;
输出子模块,用于在所述接收模块的结果为校验未通过时,输出未通过的提示信息至用户;
执行子模块,用于在所述接收模块的结果为校验通过时,执行所述获取主机传输的Linux系统数据包及传输完成信息的步骤。
需要说明的是,通过接收主机发送的对于Uboot经编译后得到的预定可执行文件的安全性校验结果,判断主机是否授权该预定可执行文件可以开始执行,提升系统的安全性,且通过提示信息令用户直观掌握系统的运行情况。
可选的,为了区分不同的交互接口的类型,提示系统运行的效率,所述校验子模块,可以包括
第一判断单元,用于根据所述传输结束标识符,判断所述Linux系统数据包是否传输完成;
第二判断单元,用于在所述第一判断单元的判断结果为传输完成时,判断与所述主机之间的交互接口的类型;
第一校验单元,用于在所述交互接口的类型为所述主机直接向所述基于X86架构的计算机子系统的内存传输数据的接口时,获取所述Linux系统数据包所在的内存地址,并校验存储在所述内存地址中的数据是否正确,其中,所述内存地址包含在所述传输完成信息中;
第二校验单元,用于在所述交互接口的类型为网络接口时,直接校验所述Linux系统数据包的数据是否正确。
可选的,为了准确、快速地启动Linux操作系统,所述启动子模块可以包括:
拆解单元,用于在所述数据正确时,获取并根据所述Linux系统数据包格式,拆解所述Linux系统数据包,得到所述Linux内核程序;
存储单元,用于存储所述Linux内核程序至预设Linux内核内存地址;
执行单元,用于在所述预设Linux内核内存地址内,调用并执行所述Linux内核程序,以启动Linux操作系统。
可以理解的是,本发明实施例的另一实施例中,系统无盘启动装置可以同时包括:在包含读取模块610、加载模块620、运行模块630、调用模块640、编译模块650、打包模块660、重启模块670和自维护模块680。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (16)

1.一种系统无盘启动方法,其特征在于,应用于基于X86架构的计算机子系统,所述方法包括:
得电后,读取已存储的二进制可执行文件,其中,所述二进制可执行文件中包括:硬件初始化操作代码Coreboot及所述Coreboot的有效载荷;
在执行所述Coreboot以进行硬件初始化操作后,加载所述有效载荷;
在加载的所述有效载荷中存在预定可执行文件时,运行所述预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行所述Linux系统数据包中存储的Linux内核程序启动Linux操作系统,其中,所述预定可执行文件为固件代码Uboot经编译后得到的Linux操作系统下的可执行文件。
2.根据权利要求1所述的系统无盘启动方法,其特征在于,在所述得电后,读取已存储的二进制可执行文件的步骤之前,所述方法还包括:
调用固件代码Uboot及硬件初始化操作代码Coreboot;
编译所述Uboot,得到Linux操作系统下的预定可执行文件,其中,所述预定可执行文件为所述Coreboot的有效载荷的一种可执行文件;
打包所述有效载荷与所述Coreboot为二进制可执行文件,并存储所述二进制可执行文件至基于X86架构的计算机子系统的闪存芯片中。
3.根据权利要求1所述的系统无盘启动方法,其特征在于,所述方法还包括:
在加载的所述有效载荷中不存在所述预定可执行文件时,执行断电操作,并在断电操作后重新得电。
4.根据权利要求1所述的系统无盘启动方法,其特征在于,所述在执行所述Coreboot以进行硬件初始化操作后,加载所述有效载荷的步骤之后,所述方法还包括:
在加载的所述有效载荷中存在所述预定可执行文件时,若接收到用户发送的中断指令,则通过所述预定可执行文件执行自维护操作。
5.根据权利要求1所述的系统无盘启动方法,其特征在于,所述运行所述预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行所述Linux系统数据包中存储的Linux内核程序启动Linux操作系统的步骤,包括:
发送Linux内核获取请求至主机,以使所述主机根据所述Linux内核获取请求为基于X86架构的计算机子系统分配Linux系统数据包及传输完成信息,其中,所述Linux系统数据包至少包括Linux内核程序,所述传输完成信息至少包括所述Linux系统数据包的传输结束标识符;
获取所述主机传输的所述Linux系统数据包及所述传输完成信息;
当根据所述传输完成信息中的传输结束标识符,确定所述Linux系统数据包传输完成时,校验所述Linux系统数据包的数据是否正确;
在所述数据正确时,获取并执行所述Linux系统数据包中存储的Linux内核程序,以启动Linux操作系统。
6.根据权利要求5所述的系统无盘启动方法,其特征在于,所述发送Linux内核获取请求至所述主机的步骤之后,所述方法还包括:
接收所述主机发送的对所述预定可执行文件安全性校验的结果;
如果所述结果为校验未通过,则输出未通过的提示信息至用户;
如果所述结果为校验通过,则执行所述获取主机传输的Linux系统数据包及传输完成信息的步骤。
7.根据权利要求5所述的系统无盘启动方法,其特征在于,所述当根据所述传输完成信息中的传输结束标识符,确定所述Linux系统数据包传输完成时,校验所述Linux系统数据包的数据是否正确的步骤,包括:
根据所述传输结束标识符,判断所述Linux系统数据包是否传输完成;
如果传输完成,判断与所述主机之间的交互接口的类型;
如果所述交互接口的类型为所述主机直接向所述基于X86架构的计算机子系统的内存传输数据的接口,则获取所述Linux系统数据包所在的内存地址,并校验存储在所述内存地址中的数据是否正确,其中,所述内存地址包含在所述传输完成信息中;
如果所述交互接口的类型为网络接口,则直接校验所述Linux系统数据包的数据是否正确。
8.根据权利要求5所述的系统无盘启动方法,其特征在于,所述在所述数据正确时,获取并执行所述Linux系统数据包中存储的Linux内核程序,以启动Linux操作系统的步骤,包括:
在所述数据正确时,获取并根据所述Linux系统数据包格式,拆解所述Linux系统数据包,得到所述Linux内核程序;
存储所述Linux内核程序至预设Linux内核内存地址;
在所述预设Linux内核内存地址内,调用并执行所述Linux内核程序,以启动Linux操作系统。
9.一种系统无盘启动装置,其特征在于,应用于基于X86架构的计算机子系统,所述装置包括:
读取模块,用于在基于X86架构的计算机子系统得电后,读取已存储的二进制可执行文件,其中,所述二进制可执行文件中包括:硬件初始化操作代码Coreboot及所述Coreboot的有效载荷;
加载模块,用于在执行所述Coreboot以进行硬件初始化操作后,加载所述有效载荷;
运行模块,用于在加载的所述有效载荷中存在预定可执行文件时,运行所述预定可执行文件,以执行:从主机获取Linux系统数据包,通过执行所述Linux系统数据包中存储的Linux内核程序启动Linux操作系统,其中,所述预定可执行文件为固件代码Uboot经编译后得到的Linux操作系统下的可执行文件。
10.根据权利要求9所述的系统无盘启动装置,其特征在于,所述装置还包括:
调用模块,用于调用固件代码Uboot及硬件初始化操作代码Coreboot;
编译模块,用于编译所述Uboot,得到Linux操作系统下的预定可执行文件,其中,所述预定可执行文件为所述Coreboot的有效载荷的一种可执行文件;
打包模块,用于打包所述有效载荷与所述Coreboot为二进制可执行文件,并存储所述二进制可执行文件至基于X86架构的计算机子系统的闪存芯片中。
11.根据权利要求9所述的系统无盘启动装置,其特征在于,所述装置还包括:
重启模块,用于在加载的所述有效载荷中不存在所述预定可执行文件时,执行断电操作,并在断电操作后重新得电。
12.根据权利要求9所述的系统无盘启动装置,其特征在于,所述装置还包括:
自维护模块,用于在加载的所述有效载荷中存在所述预定可执行文件时,若接收到用户发送的中断指令,则通过所述预定可执行文件执行自维护操作。
13.根据权利要求9所述的系统无盘启动装置,其特征在于,所述运行模块,包括:
发送子模块,用于发送Linux内核获取请求至主机,以使所述主机根据所述Linux内核获取请求为基于X86架构的计算机子系统分配Linux系统数据包及传输完成信息,其中,所述Linux系统数据包至少包括Linux内核程序,所述传输完成信息至少包括所述Linux系统数据包的传输结束标识符;
获取子模块,用于获取所述主机传输的所述Linux系统数据包及所述传输完成信息;
校验子模块,用于当根据所述传输完成信息中的传输结束标识符,确定所述Linux系统数据包传输完成时,校验所述Linux系统数据包的数据是否正确;
启动子模块,用于在所述数据正确时,获取并执行所述Linux系统数据包中存储的Linux内核程序,以启动Linux操作系统。
14.根据权利要求9所述的系统无盘启动装置,其特征在于,所述运行模块,还包括:
接收子模块,用于接收所述主机发送的对所述预定可执行文件安全性校验的结果;
输出子模块,用于在所述接收模块的结果为校验未通过时,输出未通过的提示信息至用户;
执行子模块,用于在所述接收模块的结果为校验通过时,执行所述获取主机传输的Linux系统数据包及传输完成信息的步骤。
15.根据权利要求13所述的系统无盘启动装置,其特征在于,所述校验子模块,包括:
第一判断单元,用于根据所述传输结束标识符,判断所述Linux系统数据包是否传输完成;
第二判断单元,用于在所述第一判断单元的判断结果为传输完成时,判断与所述主机之间的交互接口的类型;
第一校验单元,用于在所述交互接口的类型为所述主机直接向所述基于X86架构的计算机子系统的内存传输数据的接口时,获取所述Linux系统数据包所在的内存地址,并校验存储在所述内存地址中的数据是否正确,其中,所述内存地址包含在所述传输完成信息中;
第二校验单元,用于在所述交互接口的类型为网络接口时,直接校验所述Linux系统数据包的数据是否正确。
16.根据权利要求13所述的系统无盘启动装置,其特征在于,所述启动子模块,包括:
拆解单元,用于在所述数据正确时,获取并根据所述Linux系统数据包格式,拆解所述Linux系统数据包,得到所述Linux内核程序;
存储单元,用于存储所述Linux内核程序至预设Linux内核内存地址;
执行单元,用于在所述预设Linux内核内存地址内,调用并执行所述Linux内核程序,以启动Linux操作系统。
CN201610973979.XA 2016-11-07 2016-11-07 一种系统无盘启动方法及装置 Pending CN108073420A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610973979.XA CN108073420A (zh) 2016-11-07 2016-11-07 一种系统无盘启动方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610973979.XA CN108073420A (zh) 2016-11-07 2016-11-07 一种系统无盘启动方法及装置

Publications (1)

Publication Number Publication Date
CN108073420A true CN108073420A (zh) 2018-05-25

Family

ID=62153865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610973979.XA Pending CN108073420A (zh) 2016-11-07 2016-11-07 一种系统无盘启动方法及装置

Country Status (1)

Country Link
CN (1) CN108073420A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829449B (zh) * 2018-06-21 2021-08-31 郑州云海信息技术有限公司 一种bios启动操作系统的方法、装置、设备及介质
CN113535241A (zh) * 2020-04-21 2021-10-22 中兴通讯股份有限公司 无盘启动方法、装置、终端设备和存储介质
CN114090090A (zh) * 2021-11-25 2022-02-25 北京字节跳动网络技术有限公司 终端固件的启动方法、装置、电子设备及存储介质
CN116643782A (zh) * 2023-04-28 2023-08-25 荣耀终端有限公司 一种ois固件升级方法及电子设备
CN116643782B (zh) * 2023-04-28 2024-05-28 荣耀终端有限公司 一种ois固件升级方法及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144431A1 (en) * 2003-12-31 2005-06-30 Jade Quantum Technologies, Inc. IP-based method and apparatus for remote booting computers in wide-area-network environment
CN101436138A (zh) * 2007-11-16 2009-05-20 苏州科达通信技术发展有限公司 一种用于软件升级且动态回滚的控制装置以及控制方法
CN101794235A (zh) * 2010-03-05 2010-08-04 中国人民解放军国防科学技术大学 基于操作系统网络驱动的无盘计算机启动方法
CN103853557A (zh) * 2014-03-05 2014-06-11 中南大学 一种用Uboot网络启动WinCE的方法
CN103888491A (zh) * 2012-12-20 2014-06-25 鸿富锦精密工业(深圳)有限公司 无盘工作站启动系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144431A1 (en) * 2003-12-31 2005-06-30 Jade Quantum Technologies, Inc. IP-based method and apparatus for remote booting computers in wide-area-network environment
CN101436138A (zh) * 2007-11-16 2009-05-20 苏州科达通信技术发展有限公司 一种用于软件升级且动态回滚的控制装置以及控制方法
CN101794235A (zh) * 2010-03-05 2010-08-04 中国人民解放军国防科学技术大学 基于操作系统网络驱动的无盘计算机启动方法
CN103888491A (zh) * 2012-12-20 2014-06-25 鸿富锦精密工业(深圳)有限公司 无盘工作站启动系统及方法
CN103853557A (zh) * 2014-03-05 2014-06-11 中南大学 一种用Uboot网络启动WinCE的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
英特尔: ""Acquiring, Building, and Configuring the Payload Compatible with the Coreboot Reference Bootloader Developed by Intel"", 《HTTPS://WWW.INTEL.CN/CONTENT/WWW/CN/ZH/EMBEDDED/SOFTWARE/FSP/COREBOOT-REFERENCE-BOOTLOADER-WHITE-PAPER.HTML》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829449B (zh) * 2018-06-21 2021-08-31 郑州云海信息技术有限公司 一种bios启动操作系统的方法、装置、设备及介质
CN113535241A (zh) * 2020-04-21 2021-10-22 中兴通讯股份有限公司 无盘启动方法、装置、终端设备和存储介质
CN113535241B (zh) * 2020-04-21 2024-05-03 中兴通讯股份有限公司 无盘启动方法、装置、终端设备和存储介质
CN114090090A (zh) * 2021-11-25 2022-02-25 北京字节跳动网络技术有限公司 终端固件的启动方法、装置、电子设备及存储介质
WO2023093633A1 (zh) * 2021-11-25 2023-06-01 北京字节跳动网络技术有限公司 终端固件的启动方法、装置、电子设备及存储介质
CN114090090B (zh) * 2021-11-25 2024-03-22 抖音视界有限公司 终端固件的启动方法、装置、电子设备及存储介质
CN116643782A (zh) * 2023-04-28 2023-08-25 荣耀终端有限公司 一种ois固件升级方法及电子设备
CN116643782B (zh) * 2023-04-28 2024-05-28 荣耀终端有限公司 一种ois固件升级方法及电子设备

Similar Documents

Publication Publication Date Title
JP5295269B2 (ja) コンポーネント・モデル基盤の仮想ソフトウェア・プラットホームを生成する方法、これを利用してソフトウェア・プラットホーム・アーキテクチャを検証する方法及びその装置
US7281237B2 (en) Run-time verification of annotated software code
US7805707B2 (en) System and method for preparing runtime checks
Zaddach et al. Embedded devices security and firmware reverse engineering
CN103942065A (zh) 用于更新固件兼容性数据的方法和系统
CN102177501B (zh) 电子设备及其管理方法
CN101382904B (zh) 一种智能密钥设备实现自动安装的方法和系统
CN103136002A (zh) 一种基于UBoot的自动升级的控制方法及系统
CN108073420A (zh) 一种系统无盘启动方法及装置
KR101875225B1 (ko) 가상 머신에 의한 실행을 위한 프로그래밍의 중간 코드의 보안 프로세스, 컴퓨터 프로그램 및 장치
CN110673837B (zh) 代码修复方法及装置、电子设备、计算机可读存储介质
Simmonds Mastering Embedded Linux Programming
CN106681783A (zh) 一种svn代码检测方法及其系统
CN114116134A (zh) 智能合约部署和执行方法、设备及存储介质
Simmonds Mastering embedded Linux programming
US8806453B1 (en) Integrating disparate programming languages to form a new programming language
CN108460254B (zh) 固件保护方法及装置
Pavlov et al. Windows embedded CE 6.0 fundamentals
CN107562583A (zh) 一种在x86平台上自动测试内存ras特性的方法
CN105301480A (zh) Soc芯片的测试方法
CN112162921B (zh) 一种工业自动化测试与控制系统
CN104850015A (zh) 一种软件封装方法及一种汽车电子控制器
CN112016095B (zh) 一种验证漏洞的方法、装置和电子设备
CN103020532B (zh) 一种车载终端Flash加密方法及其装置
CN103440149A (zh) 无数字签名的Windows X64驱动程序加载方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180525