IP Library Granted Patent US 11,068,295
Granted Patent B2
US 11,068,295 · App. 16/382,583 · Granted Jul 20, 2021

Device operation across multiple operating system modalities

Inventors: John Hayes (Mountain View, CA); Volkmar Uhlig (Cupertino, CA)
Assignee: Ghost Locomotion Inc.
G06F9/45558G06F11/0712G06F11/0751G06F11/0793G05D1/02G06F2009/45562G06F2009/45575
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,068,295
App. No.
16/382,583
Granted
Jul 20, 2021
Kind
B2
Abstract

Device operation across multiple operating system modalities, including: performing, by a first operating system, one or more device initialization operations for a device; determining that the device is in an initialized state; and performing, by a second operating system, one or more device operations of the device in the initialized state.

Claims (47)

1. A method for device operation across multiple operating system modalities, comprising:

performing, by a first operating system executing in a first virtual machine that is supported by a hypervisor, one or more device initialization operations for a device;

determining, by a second operating system executing in a second virtual machine that is supported by the hypervisor, that the device is in an initialized state;

indicating, by the second operating system to the hypervisor, that the device is in an initialized state; and

performing, by the second operating system, one or more device operations of the device in the initialized state.

2. The method of claim 1 , wherein the first operating system is a non-verified operating system, and the second operating system is a formally verified operating system.

3. The method of claim 1 , wherein determining that the device is in an initialized state comprises determining that one or more device registers of the device are in an initialized state.

4. The method of claim 1 , further comprising removing, in response to determining that the device is in an initialized state, access by the first operating system to one or more device registers of the device.

5. The method of claim 1 , further comprising:

restricting access by the first operating system to the device during the one or more device initialization operations;

determining, by the second operating system, one or more modifications attempted by the first operating system to the device; and

performing, by the second operating system, the one or more modifications to the device.

6. The method of claim 5 , wherein performing, by the first operating system, the one or more device initialization operations comprises attempting, by the first operating system, the one or more modifications to the device, the method further comprising:

performing, in response to the first operating system attempting the one or more modifications to the device, a fault handling operation indicating, to the second operating system, the one or more attempted modifications.

7. The method of claim 1 , wherein the first virtual machine, and the second virtual machine are implemented by an autonomous vehicle.

8. An apparatus for device operation across multiple operating system modalities, the apparatus including a computer processor and a computer memory, the computer memory including computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

performing, by a first operating system executing in a first virtual machine that is supported by a hypervisor, one or more device initialization operations for a device;

determining, by a second operating system executing in a second virtual machine that is supported by the hypervisor, that the device is in an initialized state;

indicating, by the second operating system to the hypervisor, that the device is in an initialized state; and

performing, by the second operating system, one or more device operations of the device in the initialized state.

9. The apparatus of claim 8 , wherein determining that the device is in an initialized state comprises determining that one or more device registers of the device are in an initialized state.

10. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of removing, in response to determining that the device is in an initialized state, access by the first operating system to one or more device registers of the device.

11. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

restricting access by the first operating system to the device during the one or more device initialization operations;

determining, by the second operating system, one or more modifications attempted by the first operating system to the device; and

performing, by the second operating system, the one or more modifications to the device.

12. The apparatus of claim 11 , wherein performing, by the first operating system, the one or more device initialization operations comprises attempting, by the first operating system, the one or more modifications to the device, the apparatus further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of:

performing, in response to the first operating system attempting the one or more modifications to the device, a fault handling operation indicating, to the second operating system, the one or more attempted modifications.

13. An autonomous vehicle configured for device operation across multiple operating system modalities, the autonomous vehicle comprising an apparatus configured to perform steps comprising:

performing, by a first operating system executing in a first virtual machine that is supported by a hypervisor, one or more device initialization operations for a device;

determining, by a second operating system executing in a second virtual machine that is supported by the hypervisor, that the device is in an initialized state;

indicating, by the second operating system to the hypervisor, that the device is in an initialized state; and

performing, by the second operating system, one or more device operations of the device in the initialized state.

14. The autonomous vehicle of claim 13 , wherein the first operating system is a non-verified operating system, and the second operating system is a formally verified operating system.

15. The autonomous vehicle of claim 13 , wherein determining that the device is in an initialized state comprises determining that one or more device registers of the device are in an initialized state.

16. The autonomous vehicle of claim 13 , wherein the steps further comprise removing, in response to determining that the device is in an initialized state, access by the first operating system to one or more device registers of the device.

17. The autonomous vehicle of claim 13 , wherein the steps further comprise:

restricting access by the first operating system to the device during the one or more device initialization operations;

determining, by the second operating system, one or more modifications attempted by the first operating system to the device; and

performing, by the second operating system, the one or more modifications to the device.

18. The autonomous vehicle of claim 17 , wherein performing, by the first operating system, the one or more device initialization operations comprises attempting, by the first operating system, the one or more modifications to the device, and the steps further comprise:

performing, in response to the first operating system attempting the one or more modifications to the device, a fault handling operation indicating, to the second operating system, the one or more attempted modifications.

19. A computer program product disposed upon a non-transitory computer readable medium, the computer program product comprising computer program instructions for device operation across multiple operating system modalities that, when executed, cause a computer system to carry out the steps of:

performing, by a first operating system executing in a first virtual machine that is supported by a hypervisor, one or more device initialization operations for a device;

determining, by a second operating system executing in a second virtual machine that is supported by the hypervisor, that the device is in an initialized state;

indicating, by the second operating system to the hypervisor, that the device is in an initialized state; and

performing, by the second operating system, one or more device operations of the device in the initialized state.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2024
From: GHOST AUTONOMY, INC.
To: APPLIED INTUITION, INC.
Reel/Frame 068982/0647 →
CHANGE OF NAME Recorded Aug 8, 2022
From: GHOST LOCOMOTION INC.
To: GHOST AUTONOMY INC.
Reel/Frame 061118/0665 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2019
From: HAYES, JOHN; UHLIG, VOLKMAR
To: GHOST LOCOMOTION INC.
Reel/Frame 048869/0893 →
Continuity (1)
Related Publication 20200326969A1 · Oct 15, 2020