IP Library › Granted Patent US 9,092,356
Granted Patent B2
US 9,092,356 · App. 14/457,203 · Granted Jul 28, 2015

Executing a kernel device driver as a user space process

Inventors: Michael Adda (Tel Aviv, IL); Dan Aloni (Rishon Le-Zion, IL); Avner Braverman (Tel Aviv, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F13/102G06F9/4843G06F9/541G06F9/545G06F11/0715G06F11/0793G06F11/1412
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 9,092,356
App. No.
14/457,203
Granted
Jul 28, 2015
Kind
B2
Abstract

A method, including receiving, by a user space driver framework (UDF) library executing from a user space of a memory over a monolithic operating system kernel, a kernel application programming interface (API) call from a device driver executing from the user space. The UDF library then performs an operation corresponding to the kernel API call.

Claims (17)

1. A method, comprising:

receiving, by a user space driver framework (UDF) library executing from a user space of a memory over an operating system kernel operated by a device driver executing from the user space, a kernel application programming interface (API) call from a device driver executing from the user space;

determining that the operation comprises a privileged operation, wherein if the operation is privileged:

conveying, via a file descriptor, the API call to a UDF kernel module executing from a kernel space of the memory over the operating system kernel, and

performing, by a kernel space emulation module, the privileged operation from the kernel space while conveying completion information back to the UDF library.

2. The method according to claim 1 , further including a non-privileged operation.

3. The method according to claim 2 , wherein the non-privileged operation is selected from a group of operations comprising maintaining a list, maintaining a timer, and maintaining a process scheduler.

4. The method according to claim 1 , wherein the privileged operation is selected from a group of operations comprising catching an interrupt, allocating direct memory access (DMA) memory, and mapping input/output (I/O) memory addresses.

5. The method according to claim 1 , wherein the device driver comprises a Peripheral Component Interconnect (PCI) device driver.

6. A computer program product, the computer program product comprising:

a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising:

computer readable program code configured to receive, by a user space driver framework (UDF) library executing from a user space of a memory over an operating system kernel operated by a device driver executing from the user space, a kernel application programming interface (API) call from a device driver executing from the user space; and

computer readable program code configured to determine that the operation comprises a privileged operation, wherein if the operation is privileged, the API call is conveyed, via a file descriptor, to a UDF kernel module executing from a kernel space of the memory over the operating system kernel, and the privileged operation is performed, by a kernel space emulation module, the privileged operation from the kernel space while conveying completion information back to the UDF library.

7. The computer program product according to claim 6 , further including a non-privileged operation.

8. The computer program product according to claim 7 , wherein the computer readable program code is configured to select the non-privileged operation from a group of operations comprising maintaining a list, maintaining a timer, and maintaining a process scheduler.

9. The computer program product according to claim 6 , wherein the computer readable program code is configured to select the privileged operation from a group of operations comprising catching an interrupt, allocating direct memory access (DMA) memory, and mapping input/output (I/O) memory addresses.

10. The computer program product according to claim 6 , wherein the device driver comprises a Peripheral Component Interconnect (PCI) device driver.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2015
From: ADDA, MICHAEL; ALONI, DAN; BRAVERMAN, AVNER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035697/0723 →
Continuity (2)
Continuation 12949132 · Nov 18, 2010
Related Publication 20140351831A1 · Nov 27, 2014