IP Library Granted Patent US 8,578,368
Granted Patent B2
US 8,578,368 · App. 12/774,553 · Granted Nov 5, 2013

Injecting a file from the bios into an operating system

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 8,578,368
App. No.
12/774,553
Granted
Nov 5, 2013
Kind
B2
Abstract

Techniques for the BIOS to install a file into the runtime environment of an operating system of a computer. A system management interrupt (SMI) handler, resident within the BIOS, receives a first request. The SMI handler identifies an address in memory at which a first file is to be stored, and determines how to access a function provided by a kernel of the operating system. The SMI handler calls the function using the address as an argument to create a thread in the runtime environment of the operating system. Upon the SMI handler receiving a request from the thread, the SMI handler stores a second file in the memory of the runtime environment of the operating system. The thread may, but need not, store the second file to a file system provided by the operating system. In this way, the BIOS need not include a driver to the file system.

Claims (30)

1. A machine-readable storage medium storing one or more sequences of instructions for installing a file on a computer, which when executed, cause:

upon a system management interrupt (SMI) handler, resident within a BIOS, receiving a first request, the SMI handler (a) identifying an address in memory at which a first file is to be stored, and (b) determining how to access a function provided by a kernel of an operating system resident on the computer;

the SMI handler calling the function using the address as an argument thereof, wherein execution of the function creates a thread in a runtime environment of the operating system; and

upon the SMI handler receiving a second request from the thread, the SMI handler storing a second file in memory of the runtime environment of the operating system,

wherein the first request is issued by an advanced configuration and power interface (ACPI) routine in the operating system during the boot process of the computer.

2. The machine-readable storage medium of claim 1 , wherein the second file is stored in memory of the runtime environment of the operation system without writing the second file to a file system provided by the operating system.

3. The machine-readable storage medium of claim 1 , wherein the thread is configured to store the second file, or a portion thereof, to a file system provided by the operating system.

4. The machine-readable storage medium of claim 1 , wherein the thread, once created, enters a sleep mode until the computer has finished the boot process.

5. The machine-readable storage medium of claim 1 , wherein the SMI handler returns control to an advanced configuration and power interface (ACPI) routine after creating the thread.

6. The machine-readable storage medium of claim 1 , wherein identifying the address in memory comprises determining an initial location in memory to begin scanning for available space based on the return address of the entity that issued the first request.

7. The machine-readable storage medium of claim 1 , wherein determining how to access the function comprises:

reading a machine specific register (MSR) register to determine an address of the interrupt gate keeper of the kernel; and

using the address of the interrupt gate keeper to locate the export table of the kernel.

8. The machine-readable storage medium of claim 1 , wherein the second request is a software-generated system management interrupt.

9. The machine-readable storage medium of claim 1 , wherein the second file is an executable file, which when executed, performs functionality pertaining to recovery of resources of the computer, asset management of the computer, or providing customized content based on use of the computer.

10. A method for installing a file on a computer, comprising:

upon a system management interrupt (SMI) handler, resident within a BIOS, receiving a first request, the SMI handler (a) identifying an address in memory at which a first file is to be stored, and (b) determining how to access a function provided by a kernel of an operating system resident on the computer;

the SMI handler calling the function using the address as an argument thereof, wherein execution of the function creates a thread in a runtime environment of the operating system; and

upon the SMI handler receiving a second request from the thread, the SMI handler storing a second file in memory of the runtime environment of the operating system,

wherein the first request is issued by an advanced configuration and power interface (ACPI) routine in the operating system during the boot process of the computer.

11. The method of claim 10 , wherein the second file is stored in memory of the runtime environment of the operation system without writing the second file to a file system provided by the operating system.

12. The method of claim 10 , wherein the thread is configured to store the second file, or a portion thereof, to a file system provided by the operating system.

13. The method of claim 10 , wherein the thread, once created, enters a sleep mode until the computer has finished the boot process.

14. The method of claim 10 , wherein the SMI handler returns control to an advanced configuration and power interface (ACPI) routine after creating the thread.

15. The method of claim 10 , wherein identifying the address in memory comprises determining an initial location in memory to begin scanning for available space based on the return address of the entity that issued the first request.

16. The method of claim 10 , wherein determining how to access the function comprises:

reading a machine specific register (MSR) register to determine an address of the interrupt gate keeper of the kernel; and

using the address of the interrupt gate keeper to locate the export table of the kernel.

17. The method of claim 10 , wherein the second request is a software-generated system management interrupt.

18. The method of claim 10 , wherein the second file is an executable file, which when executed, performs functionality pertaining to recovery of resources of the computer, asset management of the computer, or providing customized content based on use of the computer.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2013
From: HONG KONG TECHNOLOGIES GROUP LIMITED
To: INSYDE SOFTWARE CORPORATION
Reel/Frame 029672/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2012
From: KINGLITE HOLDINGS INC.
To: HONG KONG TECHNOLOGIES GROUP LIMITED
Reel/Frame 029489/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2012
From: PHOENIX TECHNOLOGIES LTD.
To: KINGLITE HOLDINGS INC.
Reel/Frame 029339/0716 →
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2012
From: MEP PLP, LLC
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 029307/0590 →
SECURITY AGREEMENT Recorded Nov 13, 2012
From: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC
To: MEP PLP, LLC
Reel/Frame 029291/0354 →