IP Library Granted Patent US 8,533,706
Granted Patent B2
US 8,533,706 · App. 13/307,947 · Granted Sep 10, 2013

User process object code installer

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,533,706
App. No.
13/307,947
Granted
Sep 10, 2013
Kind
B2
Abstract

A computer implemented method of computer implemented method for installing a code object in a user process virtual memory space, while the user process is running is provided. The user process is run in a virtual memory space. A controller process is run in a different virtual memory space than the user process. The control process requests to a kernel module to install the code object into the virtual memory space of the user process. The kernel module installs the code object into the virtual memory space of the user process, while the user process is running.

Claims (57)

1. A non-transitory computer readable medium for collecting data in a user process running in a memory space, comprising:

computer readable code for running the user process in a memory space;

computer readable code for running a controller process in a different memory space than the user process;

computer readable code for requesting through the controller process to have traps installed to collected data from the user process;

computer readable code for having a kernel module install traps to collected data from the user process;

computer readable code for encountering at least one of the installed traps, while the user process is running;

computer readable code for recording the specified events of the user process in memory when the at least one trap is encountered; and

computer readable code for accessing the recorded specified events in memory through the controller process.

2. The non-transitory computer readable medium, as recited in claim 1 further comprising computer readable code for removing the traps while the user process is running.

3. The non-transitory computer readable medium, as recited in claim 2 , wherein the computer readable code for accessing the recorded specified events in memory accesses the recorded specified events while the user process is running.

4. The non-transitory computer readable medium, as recited in claim 2 , further comprising computer readable code for having the control process cause a kernel module to be installed.

5. The non-transitory computer readable medium, as recited in claim 4 , wherein the computer readable code for having the kernel module install traps to collect data from the user process, comprises:

computer readable code for having the kernel module install a code object into the memory space of the user process; and

computer readable code for running the installed code object to install traps in the user process.

6. The non-transitory computer readable medium, as recited in claim 5 , wherein the computer readable code for having the kernel module install the code object into the memory space of the user process, comprises computer readable code for having the kernel module map the code object into the memory space of the user process.

7. The non-transitory computer readable medium, as recited in claim 6 , wherein the computer readable code for having the kernel module map the code object into the memory space of the user process, comprises:

computer readable code for having the kernel module allocate space in the user process memory space for the code object;

computer readable code for mapping all sections of the code object into allocated areas; and

computer readable code for applying all relocation sections of the code object to a mapped instance.

8. The non-transitory computer readable medium, as recited in claim 7 , wherein the computer readable code for having the kernel module install the code, further comprises:

computer readable code for having the kernel module install a hook into a callback;

computer readable code for sending from the kernel module, a signal to the user process;

computer readable code for receiving the signal at the user process, wherein the signal causes the execution of the callback, which causes the execution of the kernel module as part of the kernel handling of the user process; and

computer readable code for having the kernel module consume the signal.

9. The non-transitory computer readable medium, as recited in claim 8 , wherein the computer readable code for having the kernel module install the traps, further comprises:

computer readable code for copying instructions of the user process to a separate memory area;

computer readable code for replacing the copied instructions with a trap; and

computer readable code for adding instructions so that the copy of the instructions may be executed from the separate memory area and the process continues at a next step after the copied instructions.

10. The non-transitory computer readable medium, as recited in claim 1 , wherein the computer readable code for accessing the recorded specified events in memory accesses the recorded specified events while the user process is running.

11. The non-transitory computer readable medium, as recited in claim 1 , further comprising computer readable code for having the control process cause a kernel module to be installed.

12. The non-transitory computer readable medium, as recited in claim 1 , wherein the computer readable code for having the kernel module install traps to collect data from the user process, comprises:

computer readable code for having the kernel module install a code object into the memory space of the user process; and

computer readable code for running the installed code object to install traps in the user process.

13. The non-transitory computer readable medium, as recited in claim 12 , wherein the computer readable code for having the kernel module install the code object into the memory space of the user process, comprises computer readable code for having the kernel module map the code object into the memory space of the user process.

14. The non-transitory computer readable medium, as recited in claim 13 , wherein the computer readable code for having the kernel module map the code object into the memory space of the user process, comprises:

computer readable code for having the kernel module allocate space in the user process memory space for the code object;

computer readable code for mapping all sections of the code object into allocated areas; and

computer readable code for applying all relocation sections of the code object to a mapped instance.

15. The non-transitory computer readable medium, as recited in claim 13 , wherein the computer readable code for having the kernel module install the code, further comprising:

computer readable code for having the kernel module install a hook into a callback;

computer readable code for sending from the kernel module, a signal to the user process;

computer readable code for receiving the signal at the user process, wherein the signal causes the execution of the callback, which causes the execution of the kernel module as part of the kernel handling of the user process; and

computer readable code for having the kernel module consume the signal.

16. The non-transitory computer readable medium, as recited in claim 1 , wherein the computer readable code for having the kernel module install the traps, comprises:

computer readable code for copying instructions of the user process to a separate memory area;

computer readable code for replacing the copied instructions with a trap; and

computer readable code for adding instructions so that the copy of the instructions may be executed from the separate memory area and the process continues at a next step after the copied instructions.

17. A non-transitory computer readable medium for collection data in a user process, comprising:

computer readable code for running the user process in a virtual memory space;

computer readable code for running a controller process in a different virtual memory space than the user process;

computer readable code for having a kernel module install the code object into the virtual memory space of the user process, while the user process is running;

computer readable code for running a function in the installed code object, where the function creates a data collection object to record specified events in the user process, while the user process is running;

computer readable code for recording the specified events of the user process in memory; and

computer readable code for accessing the recorded specified events in memory through the controller process.

18. The non-transitory computer readable medium, as recited in claim 17 , further comprising computer readable code for having the control process cause a kernel module to be installed.

19. The non-transitory computer readable medium, as recited in claim 18 , further comprising computer readable code for removing the data collection object while the user process is running.

20. The non-transitory computer readable medium, as recited in claim 19 , wherein the computer readable code for accessing the recorded specified events in memory accesses the recorded specified events while the user process is running.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Dec 28, 2022
From: GUGGENHEIM CORPORATE FUNDING, LLC
To: WIND RIVER SYSTEMS, INC.
Reel/Frame 062239/0590 →
PATENT SECURITY AGREEMENT Recorded Dec 24, 2018
From: WIND RIVER SYSTEMS, INC.
To: GUGGENHEIM CORPORATE FUNDING, LLC
Reel/Frame 049148/0001 →
ASSET PURCHASE AGREEMENT Recorded Dec 8, 2011
From: REAL-TIME INNOVATIONS, INC.
To: WIND RIVER SYSTEMS, INC.
Reel/Frame 027472/0980 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2011
From: ANDERSEN, PEDER C.
To: REAL-TIME INNOVATIONS, INC.
Reel/Frame 027473/0033 →