IP Library Granted Patent US 11,442,873
Granted Patent B2
US 11,442,873 · App. 16/563,666 · Granted Sep 13, 2022

Microkernel architecture with enhanced reliability and security

Inventors: Bernhard Poess (Redmond, WA); Mark Lucovsky (Kirkland, WA); Vadim Victor Spivak (Redwood City, CA); Christoph Klee (Snoqualmie, WA)
Assignee: Meta Platforms Technologies, LLC
G06F13/102G06F9/5005G06F9/541G06F9/545G06F13/382G06F2213/0026G06F2213/3812
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,442,873
App. No.
16/563,666
Granted
Sep 13, 2022
Kind
B2
Abstract

In one embodiment, a microkernel of an operating system executing on a computing system receives, from an application, a first system call requesting to communicate with a service registry. The first system call being associated with an operation request. The microkernel sends a first instruction to the service registry. The microkernel receives, from the service registry, a second system call requesting to communicate with at least one of an application service or a protocol service. The second system call being associated with the operation request. The microkernel sends a second instruction to at least one of the application service or the protocol service. The microkernel receives, from at least one of the application service or the protocol service, a third system call requesting to communicate with a driver service. The third system call being associated with the operation request. The microkernel sends a third instruction to the driver service.

Claims (41)

1. A method, by a microkernel executing on a computing system, comprising:

receiving, by the microkernel from an application, a first system call requesting to communicate with a service registry, the first system call being associated with an operation request, wherein the service registry is located in a user space separate from a kernel space, and wherein the microkernel is located in the kernel space separate from the user space;

sending, by the microkernel in response to the first system call, a first instruction to the service registry;

receiving, by the microkernel from the service registry in response to sending the first instruction to the service registry, a second system call requesting to communicate with at least one of an application service or a protocol service, the second system call being associated with the operation request, wherein the application service and the protocol service are both located in the user space;

sending, by the microkernel in response to the second system call, a second instruction to at least one of the application service or the protocol service;

receiving, by the microkernel from at least one of the application service or the protocol service in response to sending the second instruction to the at least one of the application service or the protocol service, a third system call requesting to communicate with a driver service, the third system call being associated with the operation request, wherein the driver service is located in the user space; and

sending, by the microkernel in response to the third system call, a third instruction to the driver service.

2. The method of claim 1 , wherein the operation request is a request for a hardware resource to perform an operation.

3. The method of claim 1 , wherein the service registry determines whether the application has permission to access at least one of the application service or the protocol service, and wherein the service registry sends the second system call in response to determining the application has permission to access at least one of the application service or the protocol service.

4. The method of claim 3 , wherein the operation request is associated with an operation to be performed, and wherein the application identifies the application service or the protocol service to send the second instruction based on the operation to be performed.

5. The method of claim 3 , further comprising:

receiving, from the service registry in response to the service registry determining the application has permission to access at least one of the application service or the protocol service, a fourth system call to establish a connection between at least one of the application service or the protocol service to the application.

6. The method of claim 1 , wherein the application service comprises one of a key-value store, a motion service or an event service.

7. The method of claim 1 , wherein the protocol service comprises one of a volume service, a network service, a dynamic host configuration protocol, or a wifi service.

8. The method of claim 1 , wherein the third system call identifies the driver service of a plurality of driver services to send the third instruction.

9. The method of claim 8 , wherein the application service or the protocol service identifies the driver service to send the third instruction based on the second instruction, wherein the first instruction is associated with an operation to be performed by the driver service.

10. The method of claim 1 , wherein the driver service comprises one of a drivers block, a driver for a universal serial bus (USB), a driver for a peripheral component interconnect (PCI), a driver for a display, or a driver for an inertial measurement unit (IMU).

11. The method of claim 1 , wherein the service registry is one of a plurality of privileged services, and wherein the plurality of privileged services further comprises one of, a launcher, a loader, a device manager, or a permission broker.

12. The method of claim 11 , wherein each of the application service or the protocol service, the driver service, and the privileged service are running on separate processes.

13. The method of claim 11 , wherein the privileged service is associated with a first privilege level, wherein the first privilege level is associated with a first level of access to data and resources not accessible to the application service, protocol service, or the driver service.

14. The method of claim 11 , wherein the application service or the protocol service has permission to establish inter-process communication (IPC) calls with the driver service, and wherein the driver service has permission to establish IPC calls with the privileged service.

15. The method of claim 1 , further comprising:

receiving a first response to the third instruction from the driver service, wherein the first response is associated with the operation request; and

sending the first response to the application service or the protocol service.

16. The method of claim 15 , further comprising:

receiving a second response to the second instruction from the application service or the protocol service, wherein the second response is associated with the operation request; and

sending the second response to the application.

17. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive, by a microkernel from an application, a first system call requesting to communicate with a service registry, the first system call being associated with an operation request, wherein the service registry is located in a user space separate from a kernel space, and wherein the microkernel is located in the kernel space separate from the user space;

send, by the microkernel in response to the first system call, a first instruction to the service registry;

receive, by the microkernel from the service registry in response to sending the first instruction to the service registry, a second system call requesting to communicate with at least one of an application service or a protocol service, the second system call being associated with the operation request, wherein the application service and the protocol service are both located in the user space;

send, by the microkernel in response to the second system call, a second instruction to at least one of the application service or the protocol service;

receive, by the microkernel from at least one of the application service or the protocol service in response to sending the second instruction to the at least one of the application service or the protocol service, a third system call requesting to communicate with a driver service, the third system call being associated with the operation request, wherein the driver service is located in the user space; and

send, by the microkernel in response to the third system call, a third instruction to the driver service.

18. A system comprising: one or more processors; and a non-transitory memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:

receive, by a microkernel from an application, a first system call requesting to communicate with a service registry, the first system call being associated with an operation request, wherein the service registry is located in a user space separate from a kernel space, and wherein the microkernel is located in the kernel space separate from the user space;

send, by the microkernel in response to the first system call, a first instruction to the service registry;

receive, by the microkernel from the service registry in response to sending the first instruction to the service registry, a second system call requesting to communicate with at least one of an application service or a protocol service, the second system call being associated with the operation request, wherein the application service and the protocol service are both located in the user space;

send, by the microkernel in response to the second system call, a second instruction to at least one of the application service or the protocol service;

receive, by the microkernel from at least one of the application service or the protocol service in response to sending the second instruction to the at least one of the application service or the protocol service, a third system call requesting to communicate with a driver service, the third system call being associated with the operation request, wherein the driver service is located in the user space; and

send, by the microkernel in response to the third system call, a third instruction to the driver service.

Assignments (2)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2019
From: POESS, BERNHARD; LUCOVSKY, MARK; SPIVAK, VADIM VICTOR; KLEE, CHRISTOPH
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 050820/0744 →
Continuity (1)
Related Publication 20210073147A1 · Mar 11, 2021
Cited By (1)
US 12,675,346