IP Library › Granted Patent US 11,474,829
Granted Patent B2
US 11,474,829 · App. 16/441,798 · Granted Oct 18, 2022

Customizing program logic for booting a system

Inventors: Fabio Cerri (Rome, IT); Gianluca Mariani (Rome, IT); Claudio Marinelli (Latina, IT); Bernardo Pastorelli (L'Aquila, IT); Antonio Secomandi (Milan, IT)
Assignee: International Business Machines Corporation
G06F9/4411G06F8/63G06F9/44G06F9/4408G06F9/4416H04L41/0803H04L41/085
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,474,829
App. No.
16/441,798
Granted
Oct 18, 2022
Kind
B2
Abstract

A technique for generating a customized program logic for booting a target system includes determining the hardware devices operatively connected with the target system. A list of identifiers of the determined hardware devices is sent to a server system. The server system selects from a set of drivers for each of the device identifiers in the list at least one driver operable to control the identified device to generate a sub-set of said set of drivers. The server system retrieves a core program logic being free of any drivers of the target system and sends the core program logic and the driver sub-set to the target system. The target system creates the customized program logic using the combination of the core program logic and the driver sub-set.

Claims (44)

1. A computer program product for generating customized program logic for booting a system, the computer program product comprising:

a non-transitory computer readable medium having computer readable program code embodied therewith, the computer readable program code configured to:

determine one or more hardware devices operatively connected with a target system;

send a first list of identifiers of the determined hardware devices to a server system;

automatically select, from a set of drivers for each of the device identifiers in the first list, at least one driver operable to control the identified device, thereby generating a sub-set of said set of drivers;

analyze a predefined program logic for determining device drivers contained in said predefined program logic;

remove all determined device drivers which are not identified by any one of the device identifiers contained in the received first list from said predefined program logic;

retrieve a core program logic being free of any drivers of the target system;

automatically complement the core program logic with said driver sub-set to generate a customized program logic; and

deploy the customized program logic to the target system for loading of the customized program logic into a memory of the target system, the customized program logic configured to use the sub-set of drivers for downloading an operating system to the target system.

2. The computer program product of claim 1 , wherein the computer readable program code is configured to determine the one or more hardware devices operatively connected with the target system from a boot loader.

3. The computer program product of claim 1 , wherein the computer readable program code is configured to determine the one or more hardware devices operatively connected with the target system from a hardware management module of the target system.

4. The computer program product of claim 1 , wherein the computer readable program code is configured to retrieve a deployment engine being free of any one of the drivers of the driver set as the core program logic.

5. The computer program product of claim 1 , wherein the computer readable program code is configured to retrieve an image of a runtime environment as the core program logic, said image being free of any one of the drivers of the driver set.

6. The computer program product of claim 5 , wherein the computer readable program code is configured to generate the customized program logic as a combination of said image and the driver sub-set, the customized program logic being operable to control the devices of the target system after having been installed on the target system.

7. The computer program product of claim 1 , wherein the computer readable program code is configured to deploy the customized program logic to a plurality of target systems, each of said target systems including devices of the same device types as the target system having the first list of device identifiers.

8. The computer program product of claim 1 , wherein the computer readable program code is configured to receive a booting command from the server system via a network, and wherein the receipt of the booting command triggers the sending of the first list of device identifiers.

9. A computer program product for generating customized program logic for booting a system, the computer program product comprising:

a non-transitory computer readable medium having computer readable program code embodied therewith, the computer readable program code configured to:

launch a boot loader on a target system;

request, from a server system, deployment of a deployment engine from the server system;

responsive to receiving a command from the server system, trigger a hardware management module of the target system to identify all hardware devices operatively connected with the target system;

generate a list of identifiers of the identified hardware devices;

send the list to the server system;

receive from the server system a core program logic and a set of drivers including a driver for each of the device identifiers in the list for operably controlling the respective identified hardware devices;

analyze a predefined program logic for determining device drivers contained in said predefined program logic;

remove all determined device drivers which are not identified by any one of the device identifiers contained in the list from said predefined program logic; and

create the deployment engine using a combination of the set of drivers and the core program logic.

10. The computer program product of claim 9 , wherein the computer readable program code is configured to receive the core program logic in a first communication from the server system and receive the set of drivers in a second communication from the server system.

11. The computer program product of claim 9 , wherein the computer readable program code is configured to receive the core program logic from the server system according to a first communication protocol and receive the set of drivers from the server system according to a second communication protocol different from the first communication protocol.

12. A target system, comprising:

hardware devices;

a boot loader configured to request, to a server system connected to the target system via a network, deployment of a deployment engine from the server system; and

a hardware management module configured to:

responsive to receiving a command from the server system, trigger the target system to identify the hardware devices operatively connected with the target system;

generate a list of identifiers of the identified hardware devices;

send the list to the server system;

receive from the server system a core program logic and a set of drivers including a driver for each of the device identifiers in the list for operably controlling the respective identified hardware devices;

analyze a predefined program logic for determining device drivers contained in said predefined program logic;

remove all determined device drivers which are not identified by any one of the device identifiers contained in the list from said predefined program logic; and

create the deployment engine using a combination of the set of drivers and the core program logic.

13. The target system of claim 12 , wherein the core program logic is received by the target system in a first communication from the server system, and wherein the set of drivers is received by the target system in a second communication from the server system.

14. The target system of claim 12 , wherein the core program logic is received by the target system from the server system according to a first communication protocol, and wherein the set of drivers is received by the target system from the server system according to a second communication protocol different from the first communication protocol.

15. The target system of claim 12 , wherein the hardware management module is configured to analyse a bus registry to determine the identifiers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2019
From: CERRI, FABIO; MARIANI, GIANLUCA; MARINELLI, CLAUDIO; PASTORELLI, BERNARDO; SECOMANDI, ANTONIO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049473/0418 →
Priority Claims (1)
GB 1217032 · Sep 25, 2012 · national
Continuity (4)
Continuation 15401787 · Jan 9, 2017
Continuation 14100004 · Dec 8, 2013
Continuation 14020459 · Sep 6, 2013
Related Publication 20190294448A1 · Sep 26, 2019