Managing loading and unloading of shared kernel extensions in isolated virtual space
First Claim
1. A method comprising:
- receiving a request from a first of a plurality of instances of an operating system to load a kernel extension that extends functionality of a kernel, wherein the kernel and the plurality of instances of the operating system are managed by a second of the plurality of the instances of the operating system, and wherein the plurality of the instances of the operating system share the kernel;
after receiving the request from the first of the plurality of instances of the operating system to load the kernel extension, writing a first instance of an identifier for the kernel extension in a list;
determining that the kernel extension can be shared globally by the plurality of the instances of the operating system;
loading the kernel extension to be shared by the plurality of the instances of the operating system;
receiving a request by a third of the plurality of the instances of the operating system to load the kernel extension;
writing a second instance of the identifier for the kernel extension in the list;
receiving a request by the first of the plurality of the instances of the operating system to unload the kernel extension;
after receiving the request by the first of the plurality of the instances of the operating system to unload the kernel extension, removing the first instance of the identifier from the list;
determining that the third of the plurality of the instances of the operating system requires the kernel extension to remain loaded, the determining including determining that the second instance of the identifier remains in the list, wherein said determining that the second instance of the identifier remains in the list indicates that the third of the plurality of the instances of the operating system requires the kernel extension to remain loaded; and
notifying the first of the plurality of the instances of the operating system that the kernel extension was unloaded while leaving the kernel extension loaded in the kernel.
1 Assignment
0 Petitions
Accused Products
Abstract
Some embodiments of the inventive subject matter are directed to receiving a request from a first instance of an operating system (e.g., a virtual operating system) to load a kernel extension that extends functionality of a kernel, where the kernel and the first instance of the operating system are managed by a second instance of the operating system (e.g., a global operating system), and where the first and second instances of the operating system share the kernel. Some embodiments are further directed to loading the kernel extension as a shared kernel extension. Some embodiments are further directed to receiving a request by the first instances of the operating system to unload the kernel extension and determining that a third instance of the operating system (e.g., another virtual operating system also managed by the global operating system) requires the kernel extension to remain loaded. Some embodiments are further directed to notifying the first instance of the operating system that the kernel extension was unloaded while leaving the kernel extension loaded in the kernel.
-
Citations
19 Claims
-
1. A method comprising:
-
receiving a request from a first of a plurality of instances of an operating system to load a kernel extension that extends functionality of a kernel, wherein the kernel and the plurality of instances of the operating system are managed by a second of the plurality of the instances of the operating system, and wherein the plurality of the instances of the operating system share the kernel; after receiving the request from the first of the plurality of instances of the operating system to load the kernel extension, writing a first instance of an identifier for the kernel extension in a list; determining that the kernel extension can be shared globally by the plurality of the instances of the operating system; loading the kernel extension to be shared by the plurality of the instances of the operating system; receiving a request by a third of the plurality of the instances of the operating system to load the kernel extension; writing a second instance of the identifier for the kernel extension in the list; receiving a request by the first of the plurality of the instances of the operating system to unload the kernel extension; after receiving the request by the first of the plurality of the instances of the operating system to unload the kernel extension, removing the first instance of the identifier from the list; determining that the third of the plurality of the instances of the operating system requires the kernel extension to remain loaded, the determining including determining that the second instance of the identifier remains in the list, wherein said determining that the second instance of the identifier remains in the list indicates that the third of the plurality of the instances of the operating system requires the kernel extension to remain loaded; and notifying the first of the plurality of the instances of the operating system that the kernel extension was unloaded while leaving the kernel extension loaded in the kernel. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product for managing kernel extensions for one or more virtual operating systems, the computer program product comprising:
-
a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising; computer readable program code configured to, receive a request from a first of a plurality of instances of an operating system to load a kernel extension that extends functionality of a kernel, wherein the kernel and the plurality of instances of the operating system are managed by a second of the plurality of the instances of the operating system, and wherein the plurality of the instances of the operating system share the kernel, write a first instance of an identifier for the kernel extension in a list, determine that the kernel extension can be shared globally by the plurality of the instances of the operating system, load the kernel extension to be shared by the plurality of the instances of the operating system, receive a request by a third of the plurality of the instances of the operating system to load the kernel extension, write a second instance of the identifier for the kernel extension in the list, receive a request by the first of the plurality of the instances of the operating system to unload the kernel extension, after receiving the request by the first of the plurality of the instances of the operating system to unload the kernel extension, remove the first instance of the identifier from the list, determine that the second instance of the identifier remains in the list, wherein the second instance of the identifier indicates that the third of the plurality of the instances of the operating system requires the kernel extension to remain loaded, and notify the first of the plurality of the instances of the operating system that the kernel extension was unloaded while leaving the kernel extension loaded in the kernel. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. An apparatus comprising:
-
a processing unit; a network interface; and a virtual operating system manager operable to, via the processing unit, receive a request from a first of a plurality of instances of an operating system to load a kernel extension that extends functionality of a kernel, wherein the kernel and the plurality of instances of the operating system are managed by a second of the plurality of the instances of the operating system, and wherein the plurality of the instances of the operating system share the kernel, after receiving the request from the first of the plurality of instances of the operating system to load the kernel extension, write a first instance of an identifier for the kernel extension in a list, load the kernel extension to be shared by the plurality of the instances of the operating system, receive a request by a third of the plurality of the instances of the operating system to load the kernel extension, after receiving the request by the third of the plurality of the instances of the operating system to load the kernel extension, write a second instance of the identifier for the kernel extension in the list, receive a request by the third of the plurality of the instances of the operating system to unload the kernel extension, remove the second instance of the identifier for the kernel extension from the list, receive a request by the first of the plurality of the instances of the operating system to unload the kernel extension, after receiving the request by the first of the plurality of the instances of the operating system to unload the kernel extension, remove the first instance of the identifier from the list, determine that the plurality of the instances of the operating system does not require the kernel extension to remain loaded, including determining that no other instances of the identifier are in the list before unloading the kernel extension, and unload the kernel extension. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification