# US 2021/0334111 A1 · Systems And Methods For Collecting Deep Operating System (OS) Telemetry

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0334111 A1
- Document ID: US20210334111A1
- Status: Published application
- Kind: A1
- Application number: 16/859,031
- Filed: 2020-04-27
- Published: 2021-10-28
- Earliest claimed: 2020-04-27
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Mario A. Limonciello; Juan M. Martinez
- Web page: https://patentgrep.com/patent/US20210334111A1

## CPC

- G06F 9/4416: {Network booting; Remote initial program loading [RIPL]}
- G06F 21/575: {Secure boot}
- G06F 9/4406: {Loading of operating system}
- G06F 21/572: {Secure firmware programming, e.g. of basic input output system [BIOS]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods are provided that may be implemented to utilize information from existing OS initialization mechanisms on an information handling system to determine characteristic/s of OS usage, and to record and store these determined characteristic/s as metadata on nonvolatile storage for later retrieval. In one embodiment, the determined characteristics for every given OS boot may be so recorded with information that identifies whether each given OS boot was from a manufacturer or vendor-supplied OEM OS image or from an aftermarket OS image.

## Claims

### Claim 1

A method, comprising performing the following steps when booting a current operating system (OS) for execution on a programmable integrated circuit of a local information handling system:
accessing firmware on non-volatile memory of the local information handling system to determine whether or not existing OS license data is stored on the non-volatile memory;
initializing the current OS;
determining a type of the current initialized OS based on unique OS initialization characteristics that are specific to the current the current OS;
storing OS history information on the non-volatile memory of the local information handling system, the OS history information indicating the determined type of current initialized OS and indicating whether or not existing OS license data is stored on the non-volatile memory;
retrieving the stored OS history information from the non-volatile memory of the local information handling system; and
transmitting the retrieved OS history information across a network from the local information handling system to a separate and remote information handling system.

### Claim 2 (depends on 1)

The method of claim 1, where the step of storing OS history information on the non-volatile memory of the local information handling system comprising incrementing a boot counter corresponding to the determined type of current initialized OS that is maintained as OS history information on the non-volatile memory of the local information handling system.

### Claim 3 (depends on 2)

The method of claim 2, further comprising maintaining separate boot counters for at least two different types of OS as the OS history information on the non-volatile memory of the local information handling system, one of the separate boot counters corresponding to the determined type of current initialized OS.

### Claim 4 (depends on 3)

The method of claim 3, where the separate boot counters comprise a first boot counter for a proprietary OS and a second boot counter for an open source OS.

### Claim 5 (depends on 1)

The method of claim 1, further comprising executing a system basic input/output system (BIOS) on the programmable integrated circuit of the local information handling system to perform the steps of retrieving the stored OS history information and transmitting the retrieved OS history information to the remote information handling system in response to receipt of a user request to download an update to the BIOS.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
executing a system basic input/output system (BIOS) on the programmable integrated circuit of the local information handling system to respond to detected OS damage by launching a user assistance application on the programmable integrated circuit of the information handling system to repair damage to the OS;
executing the user assistance application on the programmable integrated circuit of the local information handling system to request the stored OS history information from the BIOS;
executing the BIOS on the programmable integrated circuit of the local information handling system to respond to the request from the user assistance application for the stored OS history information by performing the step of retrieving the stored OS history information and providing the retrieved OS history information to the user assistance application; and
executing the user assistance application on the programmable integrated circuit of the local information handling system to receive the retrieved OS history information from the BIOS and perform the step of transmitting the retrieved OS history information to the remote information handling system.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
executing a system basic input/output system (BIOS) on the programmable integrated circuit of the local information handling system to boot and load the OS on the programmable integrated circuit of the information handling system;
executing the OS on the programmable integrated circuit of the information handling system to automatically launch a designated application on the programmable integrated circuit;
executing the designated application on the programmable circuit of the information handling system to request the stored OS history information from the BIOS;
executing the BIOS on the programmable integrated circuit of the local information handling system to respond to the request from the designated application for the stored OS history information by performing the step of retrieving the stored OS history information and providing the retrieved OS history information to the designated application; and
executing the designated application on the programmable integrated circuit of the local information handling system to receive the retrieved OS history information from the BIOS and perform the step of transmitting the retrieved OS history information to the remote information handling system.

### Claim 8 (depends on 1)

The method of claim 1, further comprising executing a programmable integrated circuit of the remote information handling system to analyze the retrieved OS history information to determine a type of a first OS that was originally installed on the local information handling system, and a type of any second OS that was installed on the local information handlings system after the first OS was installed on the local information handling system.

### Claim 9 (depends on 8)

The method of claim 8, where executing the programmable integrated circuit of the remote information handling system to analyze the retrieved OS history information comprises analyzing the retrieved OS history information using predefined data analysis information stored in non-volatile memory of the remote information handling system.

### Claim 10 (depends on 8)

The method of claim 8, further comprising executing the programmable integrated circuit of the remote information handling system to take at least one automatic action based on the determined type of the first OS that was originally installed on the local information handling system and the determined type of any second OS that was installed after the first OS on the local information handling system; and where the automatic action comprises either changing a type of remote manufacturer or vendor updates to be made to the local system, or requiring a user of the local system to enter a valid OS license key for a type of proprietary OS executing on the local system before downloading any future manufacturer or vendor updates to the local system.

### Claim 11

A local information handling system, comprising:
a programmable integrated circuit; and
non-volatile memory coupled to the programmable integrated circuit;
where the programmable integrated circuit is programmed to boot a current operating system (OS) by:
accessing firmware on the non-volatile memory of the local information handling system to determine whether or not existing OS license data is stored on the non-volatile memory,
initializing the current OS,
determining a type of the current initialized OS based on unique OS initialization characteristics that are specific to the current the current OS,
storing OS history information on the non-volatile memory, the OS history information indicating the determined type of current initialized OS and indicating whether or not existing OS license data is stored on the non-volatile memory;
retrieving the stored OS history information from the non-volatile memory of the local information handling system; and
transmitting the retrieved OS history information across a network coupled to the programmable integrated circuit from the local information handling system to a separate remote information handling system.

### Claim 12 (depends on 11)

The local information handling system of claim 11, where the programmable integrated circuit is programmed to perform the storing of the OS history information on the non-volatile memory of the local information handling system by incrementing a boot counter corresponding to the determined type of current initialized OS that is maintained as OS history information on the non-volatile memory of the local information handling system.

### Claim 13 (depends on 12)

The local information handling system of claim 12, where the programmable integrated circuit is programmed to maintain separate boot counters for at least two different types of OS as the OS history information on the non-volatile memory of the local information handling system, one of the separate boot counters corresponding to the determined type of current initialized OS.

### Claim 14 (depends on 13)

The local information handling system of claim 13, where the separate boot counters comprise a first boot counter for a proprietary OS and a second boot counter for an open source OS.

### Claim 15 (depends on 11)

The local information handling system of claim 11, where the programmable integrated circuit is programmed to execute a system basic input/output system (BIOS) to perform the retrieving of the the stored OS history information and the transmitting of the retrieved OS history information to the remote information handling system in response to receipt of a user request to download an update to the BIOS.

### Claim 16 (depends on 11)

The local information handling system of claim 11, where the programmable integrated circuit is programmed to:
execute a system basic input/output system (BIOS) to respond to detected OS damage by launching a user assistance application to repair damage to the OS;
execute the user assistance application to request the stored OS history information from the BIOS;
execute the BIOS on to respond to the request from the user assistance application for the stored OS history information by performing the retrieving of the stored OS history information and the providing of the retrieved OS history information to the user assistance application; and
execute the user assistance application to receive the retrieved OS history information from the BIOS and perform the transmitting the retrieved OS history information to the remote information handling system.

### Claim 17 (depends on 11)

The local information handling system of claim 11, where the programmable integrated circuit is programmed to:
execute a system basic input/output system (BIOS) to boot and load the OS on the programmable integrated circuit;
execute the OS to automatically launch a designated application on the programmable integrated circuit;
execute the designated application to request the stored OS history information from the BIOS;
execute the BIOS to respond to the request from the designated application for the stored OS history information by performing the retrieving of the stored OS history information and the providing of the retrieved OS history information to the designated application; and
execute the designated application to receive the retrieved OS history information from the BIOS and to perform the transmitting of the retrieved OS history information to the remote information handling system.

### Claim 18

A system comprising a local information handling system coupled across a network to a separate remote information handling system; where the local information handling system comprises:
a programmable integrated circuit; and
non-volatile memory coupled to the programmable integrated circuit;
where the programmable integrated circuit of the local information handling system is programmed to boot a current operating system (OS) on the local information handling system by:
accessing firmware on the non-volatile memory of the local information handling system to determine whether or not existing OS license data is stored on the non-volatile memory,
initializing the current OS,
determining a type of the current initialized OS based on unique OS initialization characteristics that are specific to the current the current OS,
storing OS history information on the non-volatile memory, the OS history information indicating the determined type of current initialized OS and indicating whether or not existing OS license data is stored on the non-volatile memory,
retrieving the stored OS history information from the non-volatile memory of the local information handling system, and
transmitting the retrieved OS history information across the network coupled to the remote information handling system.

### Claim 19 (depends on 18)

The system of claim 18, where the remote information handling system comprises a programmable integrated circuit that is programmed to analyze the retrieved OS history information to determine a type of a first OS that was originally installed on the local information handling system, and a type of any second OS that was installed on the local information handling system after the first OS was installed on the local information handling system.

### Claim 20 (depends on 19)

The system of claim 19, where the remote information handling system further comprises non-volatile memory coupled to the programmable integrated circuit of the remote information handling system and storing predefined data analysis information; and where the programmable integrated circuit of the remote information handling system is programmed to:
access the stored data analysis information on the non-volatile memory of the remote information handling system and analyze the retrieved OS history information using the data analysis information; and
take at least one automatic action based on the determined type of the first OS that was originally installed on the local information handling system and the determined type of any second OS that was installed after the first OS on the local information handling system;
where the automatic action comprises either changing a type of remote manufacturer or vendor updates to be made to the local system, or requiring a user of the local system to enter a valid OS license key for a type of proprietary OS executing on the local system before downloading any future manufacturer or vendor updates to the local system.
