WO2023093633A1 - 终端固件的启动方法、装置、电子设备及存储介质 - Google Patents

终端固件的启动方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
WO2023093633A1
WO2023093633A1 PCT/CN2022/132852 CN2022132852W WO2023093633A1 WO 2023093633 A1 WO2023093633 A1 WO 2023093633A1 CN 2022132852 W CN2022132852 W CN 2022132852W WO 2023093633 A1 WO2023093633 A1 WO 2023093633A1
Authority
WO
WIPO (PCT)
Prior art keywords
target
firmware
program
hardware
operating system
Prior art date
Application number
PCT/CN2022/132852
Other languages
English (en)
French (fr)
Inventor
聂海涛
葛士建
许晓菡
彭亮
张宇
王剑
Original Assignee
北京字节跳动网络技术有限公司
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 北京字节跳动网络技术有限公司 filed Critical 北京字节跳动网络技术有限公司
Publication of WO2023093633A1 publication Critical patent/WO2023093633A1/zh

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
    • G06F9/4406Loading of operating system
    • 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/4411Configuring for operating with peripheral devices; Loading of device drivers

Definitions

  • the present disclosure relates to the field of operating systems, and in particular, to a terminal firmware startup method, device, electronic equipment, and storage medium.
  • Firmware exists between the hardware and the operating system (Operating System, OS), and its main function is to initialize various core hardware, such as the central processing unit (CPU), chipset (Chipset), memory (Memory), solid state drive etc., and the OS is loaded and booted.
  • CPU central processing unit
  • Chipset chipset
  • Memory Memory
  • Solid state drive solid state drive
  • the current server development model is mostly based on the chip manufacturer (Silicon Vendor) developing and initializing the code base B (CodeBase B) of various core hardware functions based on the chip architecture, and the firmware manufacturer IBV (independent BIOS vendor, independent BIOS vendor) based on the chip manufacturer's CodeBase B develops the code base A (CodeBase A) of the platform (platform), and uses CodeBase A to develop a loading solution for loading the operating system.
  • the current firmware startup schemes all adopt the firmware startup scheme provided by IBV, and generally load the operating system through the scheme of Tianocore+UEFI (Unified Extensible Firmware Interface, Unified Extensible Firmware Interface).
  • Tianocore+UEFI Unified Extensible Firmware Interface, Unified Extensible Firmware Interface
  • the present disclosure provides a method for starting terminal firmware, including:
  • the operating system is started based on the operating system start signal.
  • this embodiment provides a device for starting terminal firmware, the device comprising:
  • a loading module configured to load the hardware code used to initialize the core hardware in the target firmware to complete the hardware initialization, and generate a hardware initialization completion instruction
  • a generating module configured to load the target loading program to complete platform initialization according to the hardware initialization completion instruction, and generate an operating system startup signal
  • a starting module configured to start the operating system based on the operating system starting signal.
  • the present disclosure provides a computer-readable medium on which a computer program is stored, and when the program is executed by a processing device, the steps of the method described in the first aspect are implemented.
  • an electronic device including:
  • a processing device configured to execute the computer program in the storage device to implement the steps of the method in the first aspect.
  • a method for starting terminal firmware can be provided, so as to obtain the target firmware by replacing the target feature program in the initial firmware with the target loading program, and load the hardware used to initialize the core hardware in the target firmware
  • the code completes the hardware initialization, and generates a hardware initialization completion instruction, loads the target loader program to complete the platform initialization according to the hardware initialization completion instruction, generates an operating system start signal, and starts the operating system.
  • the feature program in the initial firmware can be replaced with the target loading program, and then the firmware startup can be completed based on the target loading program.
  • the target loading program can flexibly customize functions according to the needs, it can make the firmware startup more flexible. Compared with the traditional As far as the UEFI boot solution is concerned, it is simpler and more flexible, providing users with a more convenient firmware solution.
  • Fig. 1 is a flow chart showing a method for starting terminal firmware according to an exemplary embodiment.
  • Fig. 2 is a schematic flowchart of another method for starting terminal firmware according to an exemplary embodiment.
  • Fig. 3 is a schematic diagram showing generation of target firmware according to an exemplary embodiment.
  • Fig. 4 is a structural block diagram showing a device for starting terminal firmware according to an exemplary embodiment.
  • Fig. 5 is a schematic structural diagram of an electronic device according to an exemplary embodiment.
  • the firmware booting scheme provided by IBV is usually adopted, which is generally Tianocore+UEFI scheme.
  • UEFI firmware resources are limited.
  • Many functional modules of UEFI firmware are limited to IBV manufacturers, and firmware problems cannot be repaired in time.
  • the features integrated in UEFI firmware are too bloated, some feature programs are useless to existing end users, and some feature programs urgently needed by users are not integrated, resulting in loss of functions. Therefore, the current firmware startup solutions provided by IBV manufacturers cannot meet the functional customization needs of different end users.
  • an embodiment of the present disclosure provides a terminal firmware startup method to provide a new firmware startup solution, by replacing the bloated feature program in the initial firmware with the target loading program, wherein the replaced feature program can It is a program that is useless to users, and the replaced target loading program is a program determined according to user needs. Therefore, the firmware startup is realized based on the target loading program, which improves the flexibility of firmware startup and makes firmware startup no longer limited to firmware manufacturers.
  • the fixed boot solution provides users with a more flexible and convenient firmware boot strategy.
  • Fig. 1 is a flow chart showing a method for starting terminal firmware according to an exemplary embodiment.
  • the method for starting the terminal firmware may include the following steps:
  • Step S14 replacing the target feature program in the initial firmware with the target loading program to obtain the target firmware.
  • Step S15 loading the hardware code for initializing the core hardware in the target firmware to complete the hardware initialization, and generating a hardware initialization completion instruction.
  • Step S16 according to the hardware initialization completion instruction, load the object loader to complete the platform initialization, and generate an operating system start signal.
  • Step S17 start the operating system based on the operating system start signal.
  • firmware is a special program that exists between the hardware of the terminal device and the operating system, and is stored in the electrically erasable read-only memory of the terminal device. Its main purpose is to The initialization of the internal platform of the terminal device is completed through the firmware, and the corresponding operating system is started to realize the functions of the operating system.
  • Fig. 2 is a schematic flow chart of another method for starting firmware of a terminal shown according to an exemplary embodiment. Referring to Fig.
  • the firmware may be composed of three functional modules, and the bottom layer is a chip initialization program (Silicon Code ), used to initialize the chip, the middle layer is the boot loader (Boot Loader), used to guide the platform initialization program and platform building program in the firmware, the upper layer is the program loader (OS Loader), used to load the platform program, and realize the platform Initialization and platform construction.
  • the firmware passes through Silicon Code, Boot Loader and OS Loader respectively, so as to realize the initialization and construction of the platform, and finally boot to the operating system to realize the installation and use of terminal equipment.
  • the firmware manufacturer develops the code library A for building and initializing the platform based on the code library B developed by the chip manufacturer based on its chip architecture to initialize the core hardware, and then configures the Silicon Code and Boot based on the code library A.
  • Loader and OS Loader complete the matching of the firmware startup scheme, and then the board-level manufacturer completes the connection between each hardware according to the adaptation rules of each hardware, realizes board-level function adaptation, and completes the construction of terminal equipment.
  • the firmware startup plan is determined by IBV.
  • IBV Based on the requirements of its business type, IBV adopts Tianocore in the Boot Loader stage and UEFI in the OS Loader stage, thus forming a Silicon Code+UEFI+Tianocore Initial firmware, but UEFI-based initial firmware is single-core and single-thread firmware, and there are many feature programs that users will not apply in this initial firmware, resulting in bloated initial firmware and low operating efficiency, which cannot meet the customization needs of end users .
  • the target loading program is Linux Binary (also known as Linux Boot), and Linux is one of the most active operating systems at present, which can support different programming languages, and can be derived based on the Linux system
  • the solution to many operating system failures is to sink the Linux system into the firmware solution.
  • the firmware fails to start, it no longer depends on the IBV manufacturer to troubleshoot the operating system based on the UEFI system in the initial firmware. End users can rely on Linux responds quickly to failures and resolves issues.
  • the initial firmware provided by IBV is not frequently used by users, replacing the feature programs that will not affect the firmware functions, and replacing the feature programs with feature programs that are more in line with user needs, to generate target firmware, so that Linux The system sinks into the initial firmware.
  • the above step S14 may include:
  • Step S141 selecting a storage space with a preset size in the designated area of the initial firmware.
  • Step S142 replacing the target characteristic program in the storage space with Linux Binary, and using Linux Binary as the target loading program.
  • Fig. 3 is a schematic diagram showing the generation of a target firmware according to an exemplary embodiment.
  • the initial firmware adopts the startup scheme of Silicon Code+UEFI+Tianocore, but in the initial
  • the menu features Setup menu
  • Network Stack Network stack
  • Adv RAS Feature dial-up networking
  • the Setup menu and Adv RAS Feature will basically not be used by users on the Internet, but use Network Stack for terminal installation. It can be implemented in Linux Binary, so replacing Setup menu, Network Stack, and Adv RAS Feature with Linux Binary will not affect system stability and usability, and at the same time, it can sink the more convenient and simple Linux system to the original in the firmware.
  • the starting method may also include:
  • Step S11 obtaining an initial code library.
  • Step S12 based on the initial code base, obtain the target code base corresponding to the platform.
  • Step S13 generating initial firmware according to the customized requirement information of the platform and the target code library.
  • the code library B developed by the chip manufacturer based on its chip architecture is the initial code library, which is only the code developed to initialize the core functions of the core hardware.
  • the initial code library is only the code developed to initialize the core functions of the core hardware.
  • adaptive conversion based on the initial code library is required. Form an object code library that matches the platform.
  • different firmware startup schemes need to be set up accordingly, and the initial firmware is generated according to the platform's customized requirement information and target code library, so that the initial firmware can better adapt to different user needs. Functional Requirements.
  • step S15 it may be based on the start switch of the terminal device, and transmit the power-on signal to the target firmware through the hardware, and the target firmware calls the Silicon Code stored in the medium according to the power-on start signal, and the CPU in the terminal device, Core hardware such as the chipset and motherboard are initialized and set. After the core hardware is initialized, the corresponding hardware initialization completion command is generated and passed to the Boot Loader of the firmware, so that the Boot Loader starts the call of the platform program.
  • step S16 after the Boot Loader in the target firmware receives the hardware initialization completion instruction, it calls the target loader for initializing the platform, and completes the platform initialization based on the target loader.
  • the target loading program at this time is Linux Binary.
  • the Boot Loader calls the program, it directly calls the Linux Binary, and executes the Linux Binary based on the Linux system to complete the initial setting of the platform, so that the firmware When starting, the UEFI system is directly skipped, and the Linux system is used to complete the initialization of the platform and generate the start signal of the operating system.
  • the above step S16 may include:
  • Step S161 according to the hardware initialization completion instruction, obtain the target boot program in the target firmware.
  • step S162 the target loading program is obtained based on the target boot program.
  • Step S163 loading the object loader to complete platform initialization and generate an operating system start signal.
  • the target firmware adopts the startup scheme of Silicon Code, Boot Loader and OS Loader, according to the hardware initialization completion instruction, enables the target bootloader Boot Loader, and obtains the corresponding loading program in the target firmware based on the Boot Loader , it can be understood that when the Boot Loader boots the loader, it will guide the target loader Linux Binary in the target firmware, guide the Linux Binary into the OS Loader, and execute the Linux Binary to make the target firmware complete based on the Linux system
  • the platform is initialized, and a corresponding operating system startup signal is generated.
  • the above step S16 may include:
  • Step S164 according to the hardware initialization completion instruction, search for at least one payload in the target loader program in parallel.
  • Step S165 starting the at least one payload in parallel to complete platform initialization.
  • Step S166 generating an operating system start signal.
  • the system after receiving the initialization completion instruction, the system is loaded into the system based on the target, the Linux system is sinked into the initial firmware to generate the target firmware, and the firmware startup is completed based on the Linux system, and the Linux Binary in the Linux system can Perform multi-core parallel computing, and realize multi-user, multi-task, and multi-threaded operating system operation based on multiple CPUs of the terminal device. Therefore, when the target firmware is under the Linux system, when multiple payloads in multiple hardware devices are found in parallel , indicating that the firmware at this time needs to be started with multi-core and multi-thread. At this time, multiple payloads found are started at the same time to realize the multi-thread startup operation, complete the initialization of the platform, and generate the corresponding operating system startup signal.
  • step S17 after the target firmware is started, the driver execution environment in the terminal device has been set up. At this time, the boot device is selected, the hardware device to be started is selected, and the operating system is finally started by the operating system loader.
  • the starting method before the above step S14, the starting method further includes:
  • Step S112 acquiring the function mode corresponding to the initial firmware.
  • Step S113 based on the function mode, acquire the target loading program.
  • the corresponding firmware application functions are different for different terminal devices.
  • the corresponding firmware startup scheme needs to be adjusted for security performance;
  • different function modes can be set corresponding to different firmware functions, and different target loading programs can be set for different function modes to realize corresponding functions. After determining the function mode corresponding to the initial firmware , based on the mapping relationship, determine the target loading program corresponding to the function mode, and sink the target loading program into the firmware through subsequent steps, so that the firmware can realize specific functions.
  • a method for starting terminal firmware can be provided, so as to obtain the target firmware by replacing the target feature program in the initial firmware with the target loading program, and load the hardware used to initialize the core hardware in the target firmware
  • the code completes the hardware initialization, and generates a hardware initialization completion instruction, loads the target loader program to complete the platform initialization according to the hardware initialization completion instruction, generates an operating system start signal, and starts the operating system.
  • the feature program in the initial firmware can be replaced with the target loading program, and then the firmware startup can be completed based on the target loading program.
  • the target loading program can flexibly customize functions according to the needs, it can make the firmware startup more flexible. Compared with the traditional As far as the UEFI boot solution is concerned, it is simpler and more flexible, providing users with a more convenient firmware solution.
  • the present disclosure also provides a terminal firmware startup device, which can become part or all of the electronic device through software, hardware or a combination of the two.
  • the starting device 100 of the terminal firmware includes:
  • the acquisition module 110 is configured to replace the target feature program in the initial firmware with the target loading program, so as to obtain the target firmware.
  • the loading module 120 is configured to load the hardware code used to initialize the core hardware in the target firmware to complete the hardware initialization, and generate a hardware initialization completion instruction.
  • the generation module 130 is configured to load the target loader program to complete the platform initialization according to the hardware initialization completion instruction, and generate an operating system start signal.
  • the starting module 140 is configured to start the operating system based on the operating system starting signal.
  • the generation module 130 can be used to:
  • the target loader is obtained.
  • the starting device 100 further includes:
  • the first obtaining module is used to obtain the initial code library before replacing the target feature program in the initial firmware with the target loading program to obtain the target firmware.
  • the second obtaining module is used to obtain the target code base corresponding to the platform based on the initial code base.
  • the first generation module is used to generate initial firmware according to the customized requirement information of the platform and the target code library.
  • the starting device 100 may also include:
  • the third obtaining module is used to obtain the fault signal of the operating system.
  • the fourth obtaining module is used to obtain the running log corresponding to the target loading program based on the fault signal.
  • the fifth obtaining module is used to obtain the fault location and fault attribute corresponding to the fault signal according to the operation log.
  • the generation module 130 can also be used to:
  • At least one payload in the object loader is looked up in parallel according to the hardware initialization completion instruction.
  • the starting device 100 may also include:
  • the sixth acquiring module is configured to acquire the function mode corresponding to the initial firmware.
  • the seventh obtaining module is used to obtain the target loading program based on the function mode.
  • the obtaining module 110 can also be used to:
  • the target feature program in the storage space is replaced by Linux Binary, and the Linux Binary is used as the target loading program.
  • an embodiment of the present disclosure further provides a computer-readable medium on which a computer program is stored, and when the program is executed by a processing device, the steps of any of the methods for generating an adversarial example described above are implemented.
  • an embodiment of the present disclosure also provides an electronic device, including:
  • a processing device configured to execute the computer program in the storage device, so as to realize the steps of any of the methods for generating an adversarial example above.
  • FIG. 5 it shows a schematic structural diagram of an electronic device (such as the terminal device in FIG. 1 ) 500 suitable for implementing the embodiments of the present disclosure.
  • the terminal equipment in the embodiment of the present disclosure may include but not limited to such as mobile phone, notebook computer, digital broadcast receiver, PDA (personal digital assistant), PAD (tablet computer), PMP (portable multimedia player), vehicle terminal (such as mobile terminals such as car navigation terminals) and fixed terminals such as digital TVs, desktop computers and the like.
  • the electronic device shown in FIG. 5 is only an example, and should not limit the functions and scope of use of the embodiments of the present disclosure.
  • an electronic device 500 may include a processing device (such as a central processing unit, a graphics processing unit, etc.) 501, which may be randomly accessed according to a program stored in a read-only memory (ROM) 502 or loaded from a storage device 508.
  • ROM read-only memory
  • RAM random access memory
  • various appropriate actions and processes are executed by programs in the memory (RAM) 503 .
  • RAM random access memory
  • various programs and data necessary for the operation of the electronic device 500 are also stored.
  • the processing device 501, ROM 502, and RAM 503 are connected to each other through a bus 504.
  • An input/output (I/O) interface 505 is also connected to the bus 504 .
  • the following devices can be connected to the I/O interface 505: input devices 506 including, for example, a touch screen, touchpad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; including, for example, a liquid crystal display (LCD), speaker, vibration an output device 507 such as a computer; a storage device 508 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 509.
  • the communication means 509 may allow the electronic device 500 to perform wireless or wired communication with other devices to exchange data. While FIG. 5 shows electronic device 500 having various means, it is to be understood that implementing or having all of the means shown is not a requirement. More or fewer means may alternatively be implemented or provided.
  • embodiments of the present disclosure include a computer program product, which includes a computer program carried on a non-transitory computer readable medium, where the computer program includes program code for executing the method shown in the flowchart.
  • the computer program may be downloaded and installed from a network via communication means 509, or from storage means 508, or from ROM 502.
  • the processing device 501 When the computer program is executed by the processing device 501, the above-mentioned functions defined in the methods of the embodiments of the present disclosure are performed.
  • the computer-readable medium mentioned above in the present disclosure may be a computer-readable signal medium or a computer-readable storage medium or any combination of the two.
  • a computer readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to, electrical connections with one or more wires, portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable Programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
  • a computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
  • a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave carrying computer-readable program code therein. Such propagated data signals may take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
  • a computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, which can transmit, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device .
  • Program code embodied on a computer readable medium may be transmitted by any appropriate medium, including but not limited to wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
  • the client and the server can communicate using any currently known or future network protocols such as HTTP (HyperText Transfer Protocol, Hypertext Transfer Protocol), and can communicate with digital data in any form or medium Communications (eg, communication networks) are interconnected.
  • Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed network of.
  • the above-mentioned computer-readable medium may be included in the above-mentioned electronic device, or may exist independently without being incorporated into the electronic device.
  • the above-mentioned computer-readable medium carries one or more programs, and when the above-mentioned one or more programs are executed by the electronic device, the electronic device: replaces the target feature program in the initial firmware with the target loading program to obtain the target Firmware; load the hardware code used to initialize the core hardware in the target firmware to complete the hardware initialization, and generate a hardware initialization completion instruction; according to the hardware initialization completion instruction, load the target loading program to complete the platform initialization, and generate An operating system start signal; based on the operating system start signal, start the operating system.
  • Computer program code for carrying out operations of the present disclosure may be written in one or more programming languages, or combinations thereof, including but not limited to object-oriented programming languages—such as Java, Smalltalk, C++, and Includes conventional procedural programming languages - such as "C" or similar programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user computer through any kind of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (for example, using an Internet service provider to connected via the Internet).
  • LAN local area network
  • WAN wide area network
  • Internet service provider for example, using an Internet service provider to connected via the Internet.
  • each block in a flowchart or block diagram may represent a module, program segment, or portion of code that contains one or more logical functions for implementing specified executable instructions.
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved.
  • each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented by a dedicated hardware-based system that performs the specified functions or operations , or may be implemented by a combination of dedicated hardware and computer instructions.
  • the modules involved in the embodiments described in the present disclosure may be implemented by software or by hardware. Wherein, the name of the module does not constitute a limitation of the module itself under certain circumstances, for example, the first obtaining module may also be described as "a module for obtaining at least two Internet Protocol addresses".
  • FPGAs Field Programmable Gate Arrays
  • ASICs Application Specific Integrated Circuits
  • ASSPs Application Specific Standard Products
  • SOCs System on Chips
  • CPLD Complex Programmable Logical device
  • a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
  • a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
  • a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing.
  • machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read only memory
  • EPROM or flash memory erasable programmable read only memory
  • CD-ROM compact disk read only memory
  • magnetic storage or any suitable combination of the foregoing.
  • Example 1 provides a method for starting terminal firmware, the method including:
  • the operating system is started based on the operating system start signal.
  • Example 2 provides the method of Example 1.
  • loading the target loader program to complete platform initialization, and generating an operating system startup signal includes :
  • Example 3 provides the method of Example 1, before replacing the target feature program in the initial firmware with the target loading program to obtain the target firmware, the method further includes:
  • Example 4 provides the method of Example 1, the method further comprising:
  • the fault location and fault attribute corresponding to the fault signal are obtained.
  • Example 5 provides the method of Example 1. According to the hardware initialization completion instruction, loading the target loader program to complete platform initialization, and generating an operating system startup signal, includes :
  • Example 6 provides the method of Example 1, before replacing the target feature program in the initial firmware with the target loading program to obtain the target firmware, the method further includes:
  • the object loader is obtained.
  • Example 7 provides the method of Example 1, wherein the target feature program in the initial firmware is replaced with the target loading program to obtain the target firmware, including:
  • the target feature program in the storage space is replaced by Linux Binary, and the Linux Binary is used as the target loading program.
  • Example 8 provides an apparatus for starting terminal firmware, the apparatus comprising:
  • a loading module configured to load the hardware code used to initialize the core hardware in the target firmware, and generate a hardware initialization completion instruction
  • a generating module configured to load the target loading program according to the hardware initialization completion instruction, complete platform initialization, and generate an operating system startup signal
  • a starting module configured to start the operating system based on the operating system starting signal.
  • Example 9 provides the apparatus of Example 8, and the generating module 130 is used for:
  • the target loader is obtained.
  • Example 10 provides the device of Example 8, the starting device 100, further comprising:
  • the first acquisition module is used to acquire an initial code base.
  • the second obtaining module is used to obtain the target code base corresponding to the platform based on the initial code base.
  • the first generation module is used to generate initial firmware according to the customized requirement information of the platform and the target code library.
  • Example 11 provides the device of Example 8, the starting device 100 may further include:
  • the third obtaining module is used to obtain the fault signal of the operating system.
  • the fourth obtaining module is used to obtain the running log corresponding to the target loading program based on the fault signal.
  • the fifth obtaining module is used to obtain the fault location and fault attribute corresponding to the fault signal according to the operation log.
  • Example 12 provides the device of Example 8, and the generating module 130 may also be used for:
  • At least one payload in the object loader is looked up in parallel according to the hardware initialization completion instruction.
  • Example 13 provides the device of Example 8, the starting device 100 may further include:
  • the sixth acquiring module is configured to acquire the function mode corresponding to the initial firmware.
  • the seventh obtaining module is used to obtain the target loading program based on the function mode.
  • Example 14 provides the device of Example 8, and the generating module 130 can also be used for:
  • the target feature program in the storage space is replaced by Linux Binary, and the Linux Binary is used as the target loading program.
  • Example 15 provides a computer-readable medium on which a computer program is stored, and when the program is executed by a processing device, the steps of any one of the methods described in Examples 1-7 are implemented.
  • Example 16 provides an electronic device, comprising:
  • a processing device configured to execute the computer program in the storage device, so as to implement the steps of any one of the methods in Examples 1-7.

Abstract

本公开涉及一种终端固件的启动方法、装置、电子设备及存储介质,该启动方法包括:通过将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件,加载所述目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令,根据硬件初始化完成指令,加载目标载入程序以完成平台初始化,并生成操作系统启动信号,启动操作系统。

Description

终端固件的启动方法、装置、电子设备及存储介质
相关申请的交叉引用
本申请要求于2021年11月25日提交的,申请号为202111413376.1、发明名称为“终端固件的启动方法、装置、电子设备及存储介质”的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。
技术领域
本公开涉及操作系统领域,具体地,涉及一种终端固件的启动方法、装置、电子设备及存储介质。
背景技术
固件(Firmware)存在于硬件和操作系统(Operating System,OS)之间,主要作用是初始化各种核心硬件,例如中央处理器(CPU)、芯片集(Chipset)、内存(Memory)、固态硬盘PCle等,并加载和启动操作系统。
目前的服务器开发模式大都是芯片制造厂商(Silicon Vendor)基于芯片架构开发初始化各种核心硬件功能的代码库B(CodeBase B),固件厂商IBV(independent BIOS vender,独立BIOS厂商)基于芯片制造厂商的CodeBase B开发平台(platform)的代码库A(CodeBase A),并应用CodeBase A开发加载操作系统的加载方案。目前的固件启动方案,均是采用由IBV提供的固件启动方案,一般是通过Tianocore+UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)的方案加载操作系统。但是由于UEFI固件的很多功能模块不便于定制化修改,导致IBV厂商提供的固件启动方案不能满足终端用户的功能定制化需求。
发明内容
提供该部分内容以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该部分内容并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
第一方面,本公开提供一种终端固件的启动方法,包括:
将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件;
加载所述目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令;
根据所述硬件初始化完成指令,加载所述目标载入程序以完成平台初始化,并生成操作系统启动信号;
基于所述操作系统启动信号,启动所述操作系统。
第二方面,本实施例提供一种终端固件的启动装置,所述装置包括:
获取模块,用于将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件;
加载模块,用于加载所述目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令;
生成模块,用于根据所述硬件初始化完成指令,加载所述目标载入程序以完成平台初始化,并生成操作系统启动信号;
启动模块,用于基于所述操作系统启动信号,启动所述操作系统。
第三方面,本公开提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现第一方面中所述方法的步骤。
第四方面,本公开提供一种电子设备,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现第一方面中所述方法的步骤。
通过上述技术方案,可以提供一种终端固件的启动方法,以通过将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件,加载所述目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令,根据硬件初始化完成指令,加载目标载入程序以完成平台初始化,并生成操作系统启动信号,启动操作系统。从而能够将初始固件中的特征程序替换为目标载入程序,再基于目标载入程序完成固件的启动,由于目标载入程序能够根据需求灵活定制功能,因此能够使固件启动更加灵活,相较传统的UEFI的启动方案而言,更加简便和灵活,为用户提供了更加便捷的固件方案。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:
图1是根据一示例性实施例示出的一种终端固件的启动方法的流程图。
图2是根据一示例性实施例示出的另一种终端固件的启动方法的流程示意图。
图3是根据一示例性实施例示出的一种目标固件的生成示意图。
图4是根据一示例性实施例示出的一种终端固件的启动装置的结构框图。
图5是根据一示例性实施例示出的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。另外需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
由于目前的固件启动方案,通常均是采用由IBV提供的固件启动方案,一般为Tianocore+UEFI的方案。但是由于UEFI社区不活跃,对应的UEFI固件工程师较少,因此UEFI固件资源有限,UEFI固件的很多功能模块仅限于IBV厂商,固件出现问题时无法得到及时的修复。此外,由于UEFI固件内容比较模式化,UEFI固件中集成的特征过于臃肿,有部分特征(feature)程序对现有终端用户是无用的,而有些用户急需的特征程序又未集成,导致功能缺失,因此目前IBV厂商提供的固件启动方案不能满足不同终端用户的功能定制化需求。
有鉴于此,本公开实施例提供一种终端固件的启动方法,以提供一种新的固件启动方案,通过将初始固件中臃肿的特征程序替换为目标载入程序,其中被替换的特征程序可以是对于用户无用的程序,替换后的目标载入程序为根据用户需求确定的程序,因此基于目标载入程序实现固件的启动,提高了固件启动的灵活性,使固件启动不再局限于固件厂商的固定启动方案,为用户提供更加灵活和简便的固件启动策略。
图1是根据一示例性实施例示出的一种终端固件的启动方法的流程图。参展图1,该 终端固件的启动方法可以包括以下步骤:
步骤S14,将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件。
步骤S15,加载目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令。
步骤S16,根据硬件初始化完成指令,加载目标载入程序以完成平台初始化,并生成操作系统启动信号。
步骤S17,基于操作系统启动信号,启动操作系统。
首先可以理解的是,固件是存在于终端设备的硬件和操作系统之间的特殊程序,并存储于终端设备的电可擦除只读存储器中,其主要目的是在终端设备加电开机后,通过固件完成终端设备内部平台的初始化,并启动对应的操作系统,实现操作系统的功能。图2是根据一示例性实施例示出的另一种终端固件的启动方法的流程示意图,参照图2所示,根据功能划分,固件可以由三个功能模块组成,底层是芯片初始化程序(Silicon Code),用于初始化芯片,中层是引导加载程序(Boot Loader),用于引导固件中的平台初始化程序和平台搭建程序,上层是程序载入器(OS Loader),用于加载平台程序,实现平台的初始化和平台的搭建。通过硬件(Hardware)上电后,由固件分别经过Silicon Code、Boot Loader和OS Loader,从而实现平台的初始化和平台的搭建,并最终启动到操作系统,实现终端设备的装机使用。
在终端设备的开发阶段,固件生产厂商根据芯片生产厂商基于其芯片架构开发的初始化核心硬件的代码库B,开发出搭建和初始化平台的代码库A,再基于代码库A,配置Silicon Code、Boot Loader和OS Loader,完成固件启动方案匹配,再由板级生产厂商根据各个硬件的适配规则完成各个硬件之间连接,实现板级功能适配,从而完成终端设备的搭建。在此过程中固件的启动方案由IBV确定,IBV基于其业务类型的需求,在Boot Loader阶段采用Tianocore的方式进行,在OS Loader阶段采用UEFI的方式进行,从而形成了Silicon Code+UEFI+Tianocore的初始固件,但基于UEFI的初始固件是单核单线程的固件,且该初始固件中存在许多用户不会应用的特征程序,导致初始固件臃肿,运行效率较低,不能满足终端用户的定制化需求。
示例的,在本实施例中,目标载入程序为Linux Binary(也称为Linux Boot),Linux是目前最为活跃的操作系统之一,其可以支持不同的编程语言,并可以基于Linux系统衍生出许多操作系统故障的解决方案,将Linux系统下沉至固件方案中,能够在固件启动故障时,不再依赖于IBV厂商基于初始固件中的UEFI系统,对操作系统进行故障排查,终端用户可以依据Linux对故障进行快速响应并解决问题。通过确认出IBV提供的初始固件中,用户不会经常使用,替换不会影响到固件功能的特征程序,并将特征程序替换为更加符合 用户需求的特征程序,以生成目标固件,从而能够将Linux系统下沉至初始固件中。
在一些实施例中,上述步骤S14,可以包括:
步骤S141,在初始固件的指定区域中选取预设大小的存储空间。
步骤S142,将存储空间中的目标特征程序替换为Linux Binary,并将Linux Binary作为目标载入程序。
图3是根据一示例性实施例示出的一种目标固件的生成示意图,示例的,如图3所示,在本实施例中,初始固件采用Silicon Code+UEFI+Tianocore的启动方案,但在初始固件中存在用户不会使用的一些特征(feature),其存储在初始固件的Firmware Region(固件区域)内,将其中的菜单特征(Setup menu)、网络堆栈(Network Stack)、拨号联网(Adv RAS Feature)替换为Linux Binary,从而实现将Linux系统下沉至初始固件中,可以理解的是,Setup menu和Adv RAS Feature在互联网中基本上不会被用户所使用,而利用Network Stack进行终端装机,可以在Linux Binary中去实现,因此用Linux Binary替换Setup menu、Network Stack、Adv RAS Feature并不会对系统稳定性和使用性造成影响,同时还可以将更便捷和简便的Linux系统下沉至初始固件中。
在一些实施例中,在上述步骤S14之前,该启动方法还可以包括:
步骤S11,获取初始代码库。
步骤S12,基于初始代码库,获得与平台对应的目标代码库。
步骤S13,根据平台的定制化需求信息和目标代码库,生成初始固件。
可以理解的是,芯片厂商基于其芯片架构开发的代码库B为初始代码库,其只是针对初始化核心硬件的核心功能而开发的代码,针对不同的平台,需要基于初始代码库进行适应性转换,形成与平台想匹配的目标代码库。基于同一平台存在压测、装机等不同的定制化需求,对应需要设置不同的固件启动方案,针对平台的定制化需求信息和目标代码库,从而生成初始固件,使初始固件更能够适应用户不同的功能需求。
示例的,在步骤S15中,可以是基于终端设备的启动开关,并通过硬件向目标固件传递通电信号,目标固件根据通电启动信号,调用存储在介质中的Silicon Code,对终端设备中的CPU、芯片组和主板等核心硬件进行初始化设定,当核心硬件均初始化完成之后,生成对应的硬件初始化完成指令,并将指令传递给固件的Boot Loader中,使Boot Loader启动平台程序的调用。
示例的,在步骤S16中,目标固件中的Boot Loader接收到硬件初始化完成指令之后,调用用于初始化平台的目标载入程序,并基于目标载入程序完成平台的初始化。可以理解的是,通过上述步骤,此时的目标载入程序为Linux Binary,Boot Loader在进行程序调用时,直接调用Linux Binary,并基于Linux系统执行Linux Binary完成平台的初始化设定, 从而使固件启动时,直接跳过UEFI系统,应用Linux系统完成平台的初始化,并生成操作系统的启动信号。
在一些实施例中,上述步骤S16,可以包括:
步骤S161,根据硬件初始化完成指令,在目标固件中获得目标引导程序。
步骤S162,基于目标引导程序,获得目标载入程序。
步骤S163,加载目标载入程序以完成平台初始化,并生成操作系统启动信号。
示例的,本实施例中,目标固件采用Silicon Code、Boot Loader和OS Loader的启动方案,根据硬件初始化完成指令,启用目标引导程序Boot Loader,并基于Boot Loader在目标固件中获取对应的载入程序,可以理解的是,在Boot Loader进行载入程序引导时,会引导目标固件中的目标载入程序Linux Binary,将Linux Binary引导至OS Loader中,执行该Linux Binary以使目标固件基于Linux系统完成平台的初始化,并生成对应的操作系统启动信号。
在一些实施例中,上述步骤S16,可以包括:
步骤S164,根据硬件初始化完成指令,并行查找目标载入程序中的至少一个有效负载。
步骤S165,并行启动所述至少一个有效负载,以完成平台初始化。
步骤S166,生成操作系统启动信号。
示例的,本实施例中,接收到初始化完成指令之后,基于目标载入系统,使Linux系统下沉至初始固件中生成目标固件,并基于Linux系统完成固件启动,而Linux系统中的Linux Binary可以进行多核并行运算,基于终端设备的多个CPU实现多用户、多任务、多线程的操作系统运行,因此,目标固件在Linux系统下,当并行查找到多个硬件设备中的多个有效负载时,表明此时的固件需要进行多核、多线程启动,此时同时启动查找到的多个有效负载,实现多线程的启动操作,完成平台的初始化,并生成对应的操作系统启动信号。
示例的,在步骤S17中,目标固件启动完成后,终端设备中的驱动执行环境已经搭建完成,此时启动设备选择,选择需要启动的硬件设备,最终通过操作系统加载器完成操作系统的启动。
在一些实施例中,在上述步骤S14之前,该启动方法还包括:
步骤S112,获取初始固件对应的功能模式。
步骤S113,基于功能模式,获取目标载入程序。
可以理解的是,针对不同的终端设备其对应的固件应用功能不同。示例的,针对银行等需要相对较高安全性的操作系统,对应的固件启动方案需要针对安全性能进行调整;或者,针对承载有大量用户的服务器操作系统,对系统的稳定性要求较高,对应的固件启动 方案中需要针对操作系统的稳定性检测进行调整和适配。示例的,可以根据实际应用需要,对应不同的固件功能设置不同的功能模式,并针对不同的功能模式设定不同的目标载入程序,以实现对应的功能,当确定初始固件对应的功能模式之后,基于映射关系,确定出功能模式对应的目标载入程序,并通过后续的步骤将目标载入程序下沉至固件中,以使固件实现特定的功能。
通过上述技术方案,可以提供一种终端固件的启动方法,以通过将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件,加载所述目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令,根据硬件初始化完成指令,加载目标载入程序以完成平台初始化,并生成操作系统启动信号,启动操作系统。从而能够将初始固件中的特征程序替换为目标载入程序,再基于目标载入程序完成固件的启动,由于目标载入程序能够根据需求灵活定制功能,因此能够使固件启动更加灵活,相较传统的UEFI的启动方案而言,更加简便和灵活,为用户提供了更加便捷的固件方案。
基于同一构思,本公开还提供一种终端固件的启动装置,该装置可以通过软件、硬件或两者结合的方式成为电子设备的部分或全部。参照图4,该终端固件的启动装置100包括:
获取模块110,用于将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件。
加载模块120,用于加载目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令。
生成模块130,用于根据硬件初始化完成指令,加载目标载入程序以完成平台初始化,并生成操作系统启动信号。
启动模块140,用于基于操作系统启动信号,启动操作系统。
在一些实施例中,该生成模块130,可以用于:
根据硬件初始化完成指令,在目标固件中获得目标引导程序。
基于目标引导程序,获得目标载入程序。
加载目标载入程序以完成平台初始化,并生成操作系统启动信号。
在一些实施例中,该启动装置100,还包括:
第一获取模块,用于在将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件之前,获取初始代码库。
第二获取模块,用于基于初始代码库,获得与平台对应的目标代码库。
第一生成模块,用于根据平台的定制化需求信息和目标代码库,生成初始固件。
在一些实施例中,该启动装置100,还可以包括:
第三获取模块,用于获取操作系统的故障信号。
第四获取模块,用于基于故障信号,获取目标载入程序对应的运行日志。
第五获取模块,用于根据运行日志,获得故障信号对应的故障位置和故障属性。
在一些实施例中,该生成模块130,还可以用于:
根据硬件初始化完成指令,并行查找目标载入程序中的至少一个有效负载。
并行启动至少一个有效负载,以完成平台初始化。
生成操作系统启动信号。
在一些实施例中,该启动装置100,还可以包括:
第六获取模块,用于获取初始固件对应的功能模式。
第七获取模块,用于基于功能模式,获取目标载入程序。
在一些实施例中,该获取模块110,还可以用于:
在所述初始固件的指定区域中选取预设大小的存储空间;
将所述存储空间中的目标特征程序替换为Linux Binary,并将所述Linux Binary作为所述目标载入程序。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于同一构思,本公开实施例还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现上述任一对抗样本生成方法的步骤。
基于同一构思,本公开实施例还提供一种电子设备,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现上述任一对抗样本生成方法的步骤。
下面参考图5,其示出了适于用来实现本公开实施例的电子设备(例如图1中的终端设备)500的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线 504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText Transfer Protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络), 以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件;加载所述目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令;根据所述硬件初始化完成指令,加载所述目标载入程序以完成平台初始化,并生成操作系统启动信号;基于所述操作系统启动信号,启动所述操作系统。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一获取模块还可以被描述为“获取至少两个网际协议地址的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种终端固件的启动方法,该方法包括:
将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件;
加载所述目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令;
根据所述硬件初始化完成指令,加载所述目标载入程序以完成平台初始化,并生成操作系统启动信号;
基于所述操作系统启动信号,启动所述操作系统。
根据本公开的一个或多个实施例,示例2提供了示例1的方法,所述根据所述硬件初始化完成指令,加载所述目标载入程序以完成平台初始化,并生成操作系统启动信号,包括:
根据所述硬件初始化完成指令,在所述目标固件中获得目标引导程序;
基于所述目标引导程序,获得所述目标载入程序;
加载所述目标载入程序以完成平台初始化,并生成所述操作系统启动信号。
根据本公开的一个或多个实施例,示例3提供了示例1的方法,在所述将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件之前,所述方法还包括:
获取初始代码库;
基于所述初始代码库,获得与所述平台对应的目标代码库;
根据所述平台的定制化需求信息和所述目标代码库,生成初始固件。
根据本公开的一个或多个实施例,示例4提供了示例1的方法,所述方法还包括:
获取所述操作系统的故障信号;
基于所述故障信号,获取所述目标载入程序对应的运行日志;
根据所述运行日志,获得所述故障信号对应的故障位置和故障属性。
根据本公开的一个或多个实施例,示例5提供了示例1的方法,所述根据所述硬件初 始化完成指令,加载所述目标载入程序以完成平台初始化,并生成操作系统启动信号,包括:
根据所述硬件初始化完成指令,并行查找所述目标载入程序中的至少一个有效负载;
并行启动所述至少一个有效负载,以完成平台初始化;
生成操作系统启动信号。
根据本公开的一个或多个实施例,示例6提供了示例1的方法,在所述将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件之前,所述方法还包括:
获取所述初始固件对应的功能模式;
基于所述功能模式,获取所述目标载入程序。
根据本公开的一个或多个实施例,示例7提供了示例1的方法,所述将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件,包括:
在所述初始固件的指定区域中选取预设大小的存储空间;
将所述存储空间中的目标特征程序替换为Linux Binary,并将所述Linux Binary作为所述目标载入程序。
根据本公开的一个或多个实施例,示例8提供了一种终端固件的启动装置,所述装置包括:
获取模块,用于将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件;
加载模块,用于加载所述目标固件中用于初始化核心硬件的硬件代码,并生成硬件初始化完成指令;
生成模块,用于根据所述硬件初始化完成指令,加载所述目标载入程序,完成平台初始化,并生成操作系统启动信号;
启动模块,用于基于所述操作系统启动信号,启动所述操作系统。
根据本公开的一个或多个实施例,示例9提供了示例8的装置,所述生成模块130用于:
根据硬件初始化完成指令,在目标固件中获得目标引导程序。
基于目标引导程序,获得目标载入程序。
加载目标载入程序以完成平台初始化,并生成操作系统启动信号。
根据本公开的一个或多个实施例,示例10提供了示例8的装置,所述启动装置100,还包括:
第一获取模块,用于获取初始代码库。
第二获取模块,用于基于初始代码库,获得与平台对应的目标代码库。
第一生成模块,用于根据平台的定制化需求信息和目标代码库,生成初始固件。
根据本公开的一个或多个实施例,示例11提供了示例8的装置,所述启动装置100,还可以包括:
第三获取模块,用于获取操作系统的故障信号。
第四获取模块,用于基于故障信号,获取目标载入程序对应的运行日志。
第五获取模块,用于根据运行日志,获得故障信号对应的故障位置和故障属性。
根据本公开的一个或多个实施例,示例12提供了示例8的装置,该生成模块130,还可以用于:
根据硬件初始化完成指令,并行查找目标载入程序中的至少一个有效负载。
并行启动至少一个有效负载,以完成平台初始化。
生成操作系统启动信号。
根据本公开的一个或多个实施例,示例13提供了示例8的装置,所述启动装置100,还可以包括:
第六获取模块,用于获取初始固件对应的功能模式。
第七获取模块,用于基于功能模式,获取目标载入程序。
根据本公开的一个或多个实施例,示例14提供了示例8的装置,该生成模块130,还可以用于:
在所述初始固件的指定区域中选取预设大小的存储空间;
将所述存储空间中的目标特征程序替换为Linux Binary,并将所述Linux Binary作为所述目标载入程序。
根据本公开的一个或多个实施例,示例15提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现示例1-7任一所述方法的步骤。
根据本公开的一个或多个实施例,示例16提供了一种电子设备,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现示例1-7任一所述方法的步骤。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。 同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

Claims (10)

  1. 一种终端固件的启动方法,其包括:
    将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件;
    加载所述目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令;
    根据所述硬件初始化完成指令,加载所述目标载入程序以完成平台初始化,并生成操作系统启动信号;
    基于所述操作系统启动信号,启动所述操作系统。
  2. 根据权利要求1所述的启动方法,其中,所述根据所述硬件初始化完成指令,加载所述目标载入程序以完成平台初始化,并生成操作系统启动信号,包括:
    根据所述硬件初始化完成指令,在所述目标固件中获得目标引导程序;
    基于所述目标引导程序,获得所述目标载入程序;
    加载所述目标载入程序以完成平台初始化,并生成所述操作系统启动信号。
  3. 根据权利要求1所述的启动方法,其中,在所述将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件之前,所述方法还包括:
    获取初始代码库;
    基于所述初始代码库,获得与所述平台对应的目标代码库;
    根据所述平台的定制化需求信息和所述目标代码库,生成初始固件。
  4. 根据权利要求1所述的启动方法,其中,所述方法还包括:
    获取所述操作系统的故障信号;
    基于所述故障信号,获取所述目标载入程序对应的运行日志;
    根据所述运行日志,获得所述故障信号对应的故障位置和故障属性。
  5. 根据权利要求1所述的启动方法,其中,所述根据所述硬件初始化完成指令,加载所述目标载入程序以完成平台初始化,并生成操作系统启动信号,包括:
    根据所述硬件初始化完成指令,并行查找所述目标载入程序中的至少一个有效负载;
    并行启动所述至少一个有效负载,以完成平台初始化;
    生成操作系统启动信号。
  6. 根据权利要求1所述的启动方法,其中,在所述将初始固件中的目标特征程序替换 为目标载入程序,以获得目标固件之前,所述方法还包括:
    获取所述初始固件对应的功能模式;
    基于所述功能模式,获取所述目标载入程序。
  7. 根据权利要求1所述的启动方法,其中,所述将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件,包括:
    在所述初始固件的指定区域中选取预设大小的存储空间;
    将所述存储空间中的目标特征程序替换为Linux Binary,所述Linux Binary作为所述目标载入程序。
  8. 一种终端固件的启动装置,其包括:
    获取模块,用于将初始固件中的目标特征程序替换为目标载入程序,以获得目标固件;
    加载模块,用于加载所述目标固件中用于初始化核心硬件的硬件代码以完成硬件初始化,并生成硬件初始化完成指令;
    生成模块,用于根据所述硬件初始化完成指令,加载所述目标载入程序以完成平台初始化,并生成操作系统启动信号;
    启动模块,用于基于所述操作系统启动信号,启动所述操作系统。
  9. 一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理装置执行时实现权利要求1-7中任一项所述方法的步骤。
  10. 一种电子设备,其包括:
    存储装置,其上存储有一个或多个计算机程序;
    一个或多个处理装置,用于执行所述存储装置中的所述一个或多个计算机程序,以实现权利要求1-7中任一项所述方法的步骤。
PCT/CN2022/132852 2021-11-25 2022-11-18 终端固件的启动方法、装置、电子设备及存储介质 WO2023093633A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111413376.1A CN114090090B (zh) 2021-11-25 2021-11-25 终端固件的启动方法、装置、电子设备及存储介质
CN202111413376.1 2021-11-25

Publications (1)

Publication Number Publication Date
WO2023093633A1 true WO2023093633A1 (zh) 2023-06-01

Family

ID=80304533

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/132852 WO2023093633A1 (zh) 2021-11-25 2022-11-18 终端固件的启动方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN114090090B (zh)
WO (1) WO2023093633A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090090B (zh) * 2021-11-25 2024-03-22 抖音视界有限公司 终端固件的启动方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028155B1 (en) * 2007-06-06 2011-09-27 American Megatrends, Inc. Initiating an operating system boot from firmware
CN104133706A (zh) * 2014-08-01 2014-11-05 珠海全志科技股份有限公司 固件修改方法及固件修改装置
CN108073420A (zh) * 2016-11-07 2018-05-25 杭州海康威视数字技术股份有限公司 一种系统无盘启动方法及装置
CN108279935A (zh) * 2016-12-30 2018-07-13 北京中科晶上科技股份有限公司 一种针对片上系统的操作系统启动引导方法
CN114090090A (zh) * 2021-11-25 2022-02-25 北京字节跳动网络技术有限公司 终端固件的启动方法、装置、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412595B2 (en) * 2004-12-30 2008-08-12 Intel Corporation Customization of electronic devices via pre-boot space
US20120316658A1 (en) * 2010-02-15 2012-12-13 Exeloo Limited Web based remote monitoring and control system
US8499142B1 (en) * 2010-07-22 2013-07-30 American Megatrends, Inc. UEFI boot loader for loading non-UEFI compliant operating systems
CN109101284A (zh) * 2018-07-18 2018-12-28 浪潮(北京)电子信息产业有限公司 一种虚拟机启动方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028155B1 (en) * 2007-06-06 2011-09-27 American Megatrends, Inc. Initiating an operating system boot from firmware
CN104133706A (zh) * 2014-08-01 2014-11-05 珠海全志科技股份有限公司 固件修改方法及固件修改装置
CN108073420A (zh) * 2016-11-07 2018-05-25 杭州海康威视数字技术股份有限公司 一种系统无盘启动方法及装置
CN108279935A (zh) * 2016-12-30 2018-07-13 北京中科晶上科技股份有限公司 一种针对片上系统的操作系统启动引导方法
CN114090090A (zh) * 2021-11-25 2022-02-25 北京字节跳动网络技术有限公司 终端固件的启动方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114090090B (zh) 2024-03-22
CN114090090A (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
WO2017166447A1 (zh) 内核模块加载方法和装置
US10061651B2 (en) System and method for hosting multiple recovery operating systems in memory
US10853087B2 (en) UEFI boot mode OS provisioning system
CN109918166B (zh) 小程序处理方法、装置及电子设备
US8589918B1 (en) Multi-platform compatible portable virtual machine player
US8621488B2 (en) Method and apparatus for intercommunications amongst device drivers
US10860307B2 (en) Fragmented firmware storage system and method therefor
CN109426613B (zh) 在uefi中检索调试数据的方法及其电脑系统
US11334427B2 (en) System and method to reduce address range scrub execution time in non-volatile dual inline memory modules
US8539214B1 (en) Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware
CN110851204B (zh) 应用启动的方法及装置、应用打包的方法及装置
US6961848B2 (en) System and method for supporting legacy operating system booting in a legacy-free system
WO2023173954A1 (zh) 数据获取方法、装置、存储介质以及电子设备
CN107135462B (zh) Uefi固件的蓝牙配对方法及其计算系统
WO2023061286A1 (zh) 操作系统启动方法、装置和电子设备
WO2023093633A1 (zh) 终端固件的启动方法、装置、电子设备及存储介质
CN111240766A (zh) 应用启动方法、装置、电子设备及计算机可读存储介质
WO2018210063A1 (zh) 一种终端系统启动方法及终端
US8196153B1 (en) Method and apparatus for associating device drivers via a device tree
CN116257320B (zh) 一种基于dpu虚拟化配置管理方法、装置、设备及介质
CN111966470B (zh) 虚拟机监控器的加载方法、装置和电子设备
CN111338699A (zh) 电脑主板初始化方法、装置、计算机设备及存储介质
WO2019100704A1 (zh) 用于多模IoT设备的启动方法、多模IoT设备及存储介质
WO2023131146A1 (zh) 一种虚拟任务栈的处理方法及装置
CN116149759B (zh) Uefi驱动卸载方法、装置、电子设备及可读存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22897716

Country of ref document: EP

Kind code of ref document: A1