throbber
Field of the Inven(cid:415)on 
`
`TheFIELD OF THE INVENTION 
`
`This inven(cid:415)on relates to computer so(cid:332)warea compu(cid:415)ng system, and more specifically to so(cid:332)warean 
`architecture that affects and extends services  exported through applica(cid:415)on libraries. 
`
`Background of the Inven(cid:415)on 
`
`BACKGROUND OF THE INVENTION 
`
`Computer systems are designed in such a way that so(cid:332)ware applica(cid:415)on programs share common  
`resources. It is tradi(cid:415)onally the task of thean opera(cid:415)ng system to provide mechanisms to safely and 
`effec(cid:415)vely control access to shared resources. In some instances the centralized control of elements, 
`cri(cid:415)cal to so(cid:332)ware applica(cid:415)ons, herea(cid:332)er called cri(cid:415)cal system elements (CSEs) creates a limita(cid:415)on 
`caused by conflicts for shared resources. 
`
`In some cases the centralized control of elements cri(cid:415)cal to so(cid:332)ware applica(cid:415)ons creates a limita(cid:415)on 
`caused by conflicts for shared resources. TwoFor example, two so(cid:332)ware applica(cid:415)ons that require the 
`same file, yet each requirerequires a different version of the file will conflict. In the same manner two 
`applica(cid:415)ons that require independent access to specific network services will conflict. TheA common 
`solu(cid:415)on to these situa(cid:415)ons is to place so(cid:332)ware applica(cid:415)ons that may poten(cid:415)ally conflict on separate 
`compute pla(cid:414)orms. The current state of the art, defines two architectural approaches to the migra(cid:415)on of 
`cri(cid:415)cal system elements from an opera(cid:415)ng system into an applica(cid:415)on context. 
`
`Current state of the art defines two architectural approaches to the migra(cid:415)on of system elements from 
`an opera(cid:415)ng system into an applica(cid:415)on context. In one architectural approach, a single server opera(cid:415)ng 
`system places cri(cid:415)cal system elements in the same process. Despite the flexibility offered, the system 
`elements con(cid:415)nue to represent a centralized control point.  
`
`In the other architectural approach, a mul(cid:415)ple server opera(cid:415)ng system places cri(cid:415)cal system elements in 
`separate processes. While offering even greater op(cid:415)ons this architecture has suffered performance and 
`opera(cid:415)onal differences. 
`
`Summary of the Inven(cid:415)on 
`
`An important dis(cid:415)nc(cid:415)on between this inven(cid:415)on and prior art systems and architectures is the ability to 
`allow a CSE to execute in the same context as an applica(cid:415)on. This then allows, among other things, an 
`ability to deploy mul(cid:415)ple instances of a CSE. In contrast, exis(cid:415)ng systems and architectures, regardless of 
`where a service is defined to exist, that is, in kernel mode, in user mode as a single process or in user 
`mode as mul(cid:415)ple processes, all support the concept of a single shared service. 
`
`SUMMARY OF THE INVENTION 
`
`In accordance with a first broad aspect, the of this inven(cid:415)on provides, a compu(cid:415)ng architecturesystem is 
`provided that has an opera(cid:415)ng system kernel having opera(cid:415)ng system cri(cid:415)cal system elements (OSCSEs) 
`and adapted to run in kernel mode; and a shared library adapted to store replicas of at least some of the 
`cri(cid:415)cal system elements, for use by the so(cid:332)ware applica(cid:415)ons in user mode execu(cid:415)ng in the context of 
`the applica(cid:415)on. The cri(cid:415)cal system elements are run in a context of a so(cid:332)ware applica(cid:415)on. 
`
`1 
`
`Google Exhibit 1095
`Google v. VirtaMove
`
`

`

`The term replica used herein is meant to denote a CSE having similar a(cid:425)ributes to, but not necessarily 
`and preferably not an exact copy of a CSE in the opera(cid:415)ng system (OS); notwithstanding, a CSE for use in 
`user mode, may in a less preferred embodiment be a copy of a CSE in the OS. 
`
`In accordance with the inven(cid:415)on, a compu(cid:415)ng system for execu(cid:415)ng a plurality of so(cid:332)ware applica(cid:415)ons is 
`provided, comprising: 
`
`an opera(cid:415)ng system having an opera(cid:415)ng system kernel having OS cri(cid:415)cal system elements (OSCSEs) for 
`running in kernel mode; and, 
`
`a shared library having cri(cid:415)cal system elements (SLCSEs) stored therein for use by the so(cid:332)ware 
`applica(cid:415)ons in user mode wherein some of the CSEs stored in the shared library are accessible to a 
`plurality of the so(cid:332)ware applica(cid:415)ons and form a part of at least some of the so(cid:332)ware applica(cid:415)ons by 
`being linked thereto, and wherein an instance of a CSE provided to an applica(cid:415)on from the shared library 
`is run in a context of said so(cid:332)ware applica(cid:415)on without being shared with other so(cid:332)ware applica(cid:415)ons 
`and where some other applica(cid:415)ons running under the opera(cid:415)ng system can, have use of a unique 
`instance of a corresponding cri(cid:415)cal system element for performing essen(cid:415)ally the same func(cid:415)on. 
`
`In accordance with the inven(cid:415)on, there is provided, a compu(cid:415)ng system for execu(cid:415)ng a plurality of 
`so(cid:332)ware applica(cid:415)ons comprising an opera(cid:415)ng system having an opera(cid:415)ng system kernel having OS 
`cri(cid:415)cal system elements (OSCSEs) for running in kernel mode; and, 
`
`1. a shared library having cri(cid:415)cal system elements (SLCSEs) stored therein for use by the so(cid:332)ware 
`applica(cid:415)ons in user mode as a service dis(cid:415)nct from that supplied in the OS kernel. 
`
`2. wherein some of the SLCSEs stored in the shared library are accessible to a plurality of the so(cid:332)ware 
`applica(cid:415)ons and form a part of at least some of the so(cid:332)ware applica(cid:415)ons, and wherein a unique 
`instance of a CSE provided to an applica(cid:415)on from the shared library is run in a context of said so(cid:332)ware 
`applica(cid:415)on and where some other applica(cid:415)ons running under the opera(cid:415)ng system each have use of a 
`unique instance of a corresponding cri(cid:415)cal system element for performing essen(cid:415)ally the same func(cid:415)on. 
`
`In some embodiments, the compu(cid:415)ng architecturesystem has applica(cid:415)on libraries accessible by the 
`so(cid:332)ware applica(cid:415)ons and augmented by the shared library. 
`
`In some embodiments, the cri(cid:415)cal system elements are le(cid:332) in the opera(cid:415)ng system kernel. 
`
`In some embodiments, the cri(cid:415)cal system elements use system calls to access services in theApplica(cid:415)on 
`libraries are libraries of files required by an applica(cid:415)on in order to run. In accordance with this inven(cid:415)on, 
`SLCSEs are placed in shared libraries, thereby becoming applica(cid:415)on libraries, loaded when the 
`applica(cid:415)on is loaded. A shared library or dynamic linked library (DLL) refers to an approach, wherein the 
`term applica(cid:415)on library infers a dependency on a set of these libraries used by an applica(cid:415)on. 
`
`Typically, the cri(cid:415)cal system elements are not removed from opera(cid:415)ng system kernel. 
`
`In some embodiments, the opera(cid:415)ng system kernel has a kernel module adapted to serve as an interface 
`between a service in the context of an applica(cid:415)on program and a device driver. 
`
`In some embodiments, the cri(cid:415)cal system elements in the context of an applica(cid:415)on program use system 
`calls to access services in the kernel module. 
`

`
`2 
`
`

`

`In some embodiments, the kernel module is adapted to provide a no(cid:415)fica(cid:415)on of an interrup(cid:415)on to a 
`service in the context of an applica(cid:415)on program. 
`
`In some embodiments, the opera(cid:415)ng system kernel is adapted to provide interrupt handling capabili(cid:415)es 
`to user mode CSEs. 
`
`In some embodiments, the interrupt handling capabili(cid:415)es are ini(cid:415)alized through a system call. 
`
`In some embodiments, the kernel module comprises a handler which is installed for a specific device 
`interrupt. 
`
`In some embodiments, the handler is called when an interrupt request is generated by a hardware 
`device.  
`
`In some embodiments, the handler no(cid:415)fies the service in the context of an applica(cid:415)on through the use 
`of an up call mechanism. 
`
`In some embodiments, func(cid:415)on overlays are used to intercept so(cid:332)ware applica(cid:415)on accesses to 
`opera(cid:415)ng system services. 
`
`intercept so(cid:332)ware applica(cid:415)on accesses to opera(cid:415)ng system 
`
`services. 
`
`In some embodiments, the opera(cid:415)ng system kernel is enabled when the so(cid:332)ware applica(cid:415)on is loaded 
`into memory.  
`
`In some embodiments, the cri(cid:415)cal system elements stored in the shared library are linked to the 
`so(cid:332)ware applica(cid:415)ons as the so(cid:332)ware applica(cid:415)ons are loaded. 
`
`In some embodiments, in a na(cid:415)ve form the cri(cid:415)cal system elements rely on kernel services supplied by 
`the opera(cid:415)ng system kernel for device access, interrupt delivery, and virtual memory mapping. 
`
`In some embodiments, the kernel services are replicated in user mode and contained in the shared 
`library with the cri(cid:415)cal system elements. In the preferred embodiment the kernel itself is not copied. 
`CSEs are not taken from the kernel and copied to user mode. An instance of a service that is also 
`provided in the kernel is created to be implemented in user mode. By way of example, the kernel may 
`provide a TCP/IP service and in accordance with this inven(cid:415)on, a TCP/IP service is provided in user mode 
`as an SLCSE. The TCP/IP service in the kernel remains fully intact. The CSE is not shared as such. Each 
`applica(cid:415)on that will use a CSE will link to a library containing the CSE independent of any other 
`applica(cid:415)on. The intent is to provide an applica(cid:415)on with a unique instance of a CSE. 
`
`In accordance with this inven(cid:415)on, the code shared is by all applica(cid:415)ons on the same compute pla(cid:414)orm. 
`However, this shared code does not imply that the CSE itself is shared. This sharing of code is common 
`prac(cid:415)ce. All applica(cid:415)ons currently share code for common services, such services include opera(cid:415)ons 
`such as such as open a file, write to the file, read from the file, etc. Each applica(cid:415)on has its own unique 
`data space. This indivisible data space ensures that CSEs are unique to an applica(cid:415)on or more commonly 
`to a set of applica(cid:415)ons associated with a container, for example. Despite the fact that all applica(cid:415)ons 
`may physically execute the same set of instruc(cid:415)ons in the same physical memory space, that is, shared 
`

`
`3 
`
`

`

`code space, the instruc(cid:415)ons cause them to use separate data areas. In this manner CSEs are not shared 
`among applica(cid:415)ons even though the code is shared. 
`
`In some embodiments, the kernel services used by CSEs comprise memory alloca(cid:415)on, synchroniza(cid:415)on 
`and device access. 
`
`In some embodiments, the kernel services that are pla(cid:414)orm specific are not replicated, or provided as 
`SLCSEs. 
`
`In some embodiments, the kernel services which are pla(cid:414)orm specific are called by a cri(cid:415)cal system 
`element running in user mode. 
`
` In some embodiments, a user process running under the compu(cid:415)ng architecturesystem has a respec(cid:415)ve 
`one of the so(cid:332)ware applica(cid:415)ons, the applica(cid:415)on libraries, the shared library and the cri(cid:415)cal system 
`elements all of which are opera(cid:415)ng in user mode. 
`
`In some embodiments, the so(cid:332)ware applica(cid:415)ons are provided with respec(cid:415)ve versions of the cri(cid:415)cal 
`system elements. 
`
` In some embodiments, the system elements which are applica(cid:415)on specific reside in user mode, while 
`the system elements which are pla(cid:414)orm specific reside in the opera(cid:415)ng system kernel. 
`
` In some embodiments, a control code is placed in kernel mode. 
`
`In some embodiments, the kernel module is adapted to enable data exchange between the cri(cid:415)cal 
`servicesystem elements in user mode and a device driver in kernel mode. 
`
`In some embodiments, the data exchange uses mapping of virtual memory such that data is transferred 
`both from the cri(cid:415)cal servicesystem elements in user mode to the device driver in kernel mode and from 
`the device driver in kernel mode to the cri(cid:415)cal servicesystem elements in user mode. 
`
`In some embodiments, the kernel module is adapted to export services for device interface.  
`
`In some embodiments, the export services comprise ini(cid:415)aliza(cid:415)on to establish a channel between a 
`cri(cid:415)cal system element of the cri(cid:415)cal system elements in user mode and a device. 
`
`In some embodiments, the export services comprise transfer of data from a cri(cid:415)cal system element of 
`the cri(cid:415)cal system elements in user mode to a device managed by the opera(cid:415)ng system kernel. 
`
`In some embodiments, the export services include transfer of data from a device to a cri(cid:415)cal system 
`element of the cri(cid:415)cal system elements in user mode. 
`
`According to a second broad aspect, the inven(cid:415)on provides an opera(cid:415)ng system comprising the above 
`compu(cid:415)ng architecturesystem. 
`
`According to a third broad aspect, the inven(cid:415)on provides a compu(cid:415)ng pla(cid:414)orm comprising the above 
`opera(cid:415)ng system and compu(cid:415)ng hardware capable of running under the opera(cid:415)ng system. 
`
`According to a fourth broad aspect, the inven(cid:415)on provides a shared library accessible to so(cid:332)ware 
`applica(cid:415)ons in a user mode, the shared library being adapted to store system elements which are 
`

`
`4 
`
`

`

`replicas of systems elements of an opera(cid:415)ng system kernel and which are cri(cid:415)cal to the so(cid:332)ware 
`applica(cid:415)ons. 
`
`According to a fi(cid:332)h broad aspect, the inven(cid:415)on provides an opera(cid:415)ng system kernel having 
`systemssystem elements and adapted to run in a kernel mode and to replicate, for storing in a shared 
`library which is accessible by so(cid:332)ware applica(cid:415)ons in user mode, system elements of the system 
`elements which are cri(cid:415)cal to the so(cid:332)ware applica(cid:415)ons. 
`
`According to a sixth broad aspect, the inven(cid:415)on provides an ar(cid:415)cle of manufacture comprising a 
`computer usable medium having computer readable program code means embodied therein for a 
`compu(cid:415)ng architecture. The computer readable code means in said ar(cid:415)cle of manufacture has computer 
`readable code means for running an opera(cid:415)ng system kernel having cri(cid:415)cal system elements in kernel 
`mode; and computer readable code means for storing in a shared library replicas of at least some of the 
`cri(cid:415)cal system elements, for use by so(cid:332)ware applica(cid:415)ons in user mode. The cri(cid:415)cal system elements are 
`run in a context of a so(cid:332)ware applica(cid:415)on. 
`
`The cri(cid:415)cal system elements are run in a context of a so(cid:332)ware applica(cid:415)on. Accordingly, elements cri(cid:415)cal 
`to a so(cid:332)ware applica(cid:415)on are migrated from centralized control in an opera(cid:415)ng system into the same 
`context as the applica(cid:415)on. 
`
` Advantageously, the inven(cid:415)on allows specific opera(cid:415)ng system services to efficiently operate in the 
`same context as a so(cid:332)ware applica(cid:415)on. 
`
`Cri(cid:415)calIn accordance with this inven(cid:415)on, cri(cid:415)cal system elements normally embodied in an opera(cid:415)ng 
`system are exported to so(cid:332)ware applica(cid:415)ons through shared libraries. The shared library services 
`provided in an opera(cid:415)ng system are used to expose these addi(cid:415)onal system elements. 
`
`Brief Descrip(cid:415)on of the Drawings 
`
`BRIEF DESCRIPTION OF THE DRAWINGS 
`
`Preferred embodiments of the inven(cid:415)on will now be described with reference to the a(cid:425)ached drawings 
`in which: 
`
`FigureFIG. 1 is an architectural view of the tradi(cid:415)onal monolithic prior art opera(cid:415)ng system; 
`
`FigureFIG. 2 a is an architectural view of a mul(cid:415)‐server opera(cid:415)ng system in which some cri(cid:415)cal system 
`elements are removed from the opera(cid:415)ng system kernel and are placed in mul(cid:415)ple dis(cid:415)nct processes or 
`servers; 
`
`FigureFIG. 2 b is illustra(cid:415)ve of a known system architecture where cri(cid:415)cal system elements execute in 
`user mode and execute in dis(cid:415)nct context from applica(cid:415)ons in a single applica(cid:415)on process context; 
`
`FIG. 3 is an architectural view of an embodiment of the inven(cid:415)on; 
`
`FigureFIG. 4 is a func(cid:415)onal view showing how cri(cid:415)cal system elements exist in the same context as an 
`applica(cid:415)on; 
`
`FigureFIG. 5 is a block diagram showing a kernel module provided by an embodiment of the inven(cid:415)on; 
`and, 
`

`
`5 
`
`

`

`FigureFIG. 6 shows how interrupt handling occurs in an embodiment of the inven(cid:415)on. 
`
`Detailed Descrip(cid:415)on of the Preferred Embodiments 
`
`DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
`
`Embodiments of the inven(cid:415)on enable the replica(cid:415)on of cri(cid:415)cal system elements normally found in an 
`opera(cid:415)ng system kernel. These replicated CSEs are then able to run in the context of a so(cid:332)ware 
`applica(cid:415)on. Cri(cid:415)cal system elements are replicated through the use of shared libraries. Replica(cid:415)on 
`implies that system elements are not replaced from an opera(cid:415)ng system, rather they become separate 
`extensions accessed throughA CSE is replicated by way of a kernel service being repeated in user space. 
`This replicated CSE may differ slightly from its counterpart in the OS. Replica(cid:415)on is achieved placing CSEs 
`similar to those in the OS in shared libraries which provides a means of a(cid:425)aching or linking a CSE service 
`to an applica(cid:415)on having access to the shared library. Therefore, a service in the kernel is substan(cid:415)ally 
`replicated in user mode through the use of shared libraries. 
`
`The term replica(cid:415)on implies that system elements become separate extensions accessed through shared 
`libraries as opposed to being replaced from an opera(cid:415)ng system. Hence, CSEs are generally not copies of 
`a por(cid:415)on of the OS; they are an added addi(cid:415)onal service in the form of a CSE. Shared libraries are used 
`as a mechanism where by an applica(cid:415)on can u(cid:415)lize a CSE that is part of a library. By way of example; a 
`Linux based pla(cid:414)orm provides a TCP/IP stack in the Linux kernel. This inven(cid:415)on provides a TCP/IP stack in 
`the form of a CSE that is a different implementa(cid:415)on of a TCP/IP stack, from Berkeley So(cid:332)ware 
`Distribu(cid:415)on (BSD) by way of example. Applica(cid:415)ons on a Linux pla(cid:414)orm may use a BSD TPC/IP stack in the 
`form of a CSE. The mechanism for a(cid:425)aching the BSD TCP/IP stack to an applica(cid:415)on is in the form of a 
`shared library. Shared libraries as opposed to being copies from the OS to another space are a dis(cid:415)nct 
`implementa(cid:415)on of the service (i.e. TCP/IP) packaged in the form of a shared library capable of execu(cid:415)ng 
`in user mode linked to an applica(cid:415)on. 
`
`In a broad sense, the TCP/IP services in the CSE are the same as those provided in the Linux kernel. The 
`reason two of these service may be required is to allow an applica(cid:415)on to u(cid:415)lize network services 
`provided by a TCP/IP stack, that have unique configura(cid:415)on or se(cid:427)ngs for the applica(cid:415)on. Or the se(cid:427)ng 
`used by one applica(cid:415)on may conflict with the se(cid:427)ngs needed by another applica(cid:415)on. If, by way of 
`example, a first applica(cid:415)on requires that specific network packets using a range of port numbers be 
`passed to itself, it would need to configure route informa(cid:415)on to allow the TCP/IP stack to process these 
`packets accordingly. On the same pla(cid:414)orm a second applica(cid:415)on is then exposed to either undesirable 
`performance issues or security risks by allowing network packets with a broad port number range to be 
`processed by the TCP/IP stack. In another scenario the configura(cid:415)on/se(cid:427)ngs established to support one 
`applica(cid:415)on may have an adverse effect on the system as a whole. 
`
`By way of introduc(cid:415)on, a number of terms will now be defined. 
`
`Cri(cid:415)cal System Element (CSE): Any service or part of a service, “normally” supplied by an opera(cid:415)ng 
`system, that is cri(cid:415)cal to the opera(cid:415)on of a so(cid:332)ware applica(cid:415)on. 
`
`A CSE is a dynamic object providing some func(cid:415)on that is execu(cid:415)ng instruc(cid:415)ons used by applica(cid:415)ons. 
`
`BY WAY OF EXAMPLE CSEs INCLUDE: 
`
`Network services including TCP/IP, Bluetooth, ATM; or message passing protocols 
`

`
`6 
`
`

`

`File System services that offer extensions to those supplied by the OS 
`
`1. Access files that reside in different loca(cid:415)ons as though they were all in a single locality 
`
`2. Access files in a compressed, encrypted or packaged image as though they were in a local directory in 
`a standard format 
`
`Implementa(cid:415)on of file system op(cid:415)miza(cid:415)ons for specific applica(cid:415)on behavior 
`
`Implementa(cid:415)on of network op(cid:415)miza(cid:415)ons for specific applica(cid:415)on services such as: 
`
`1. Kernel bypass where hardware supported protocol processing is provided 
`
`2. Modified protocol processing for custom hardware services 
`
`Compute pla(cid:414)orm: The combina(cid:415)on of computer hardware and a single instance of an opera(cid:415)ng system. 
`
`User mode: The context in which applica(cid:415)ons execute. 
`
`Kernel mode: The context in which the kernel por(cid:415)on of an opera(cid:415)ng system executes. In conven(cid:415)onal 
`systems, there is a physical separa(cid:415)on enforced by hardware between user mode and kernel mode.  
`Applica(cid:415)on code cannot run in kernel mode. 
`
`Applica(cid:415)on Programming Interface (API): An API refers to the opera(cid:415)ng system and programming 
`language specific func(cid:415)ons used by applica(cid:415)ons. These are typically supplied in libraries which 
`applica(cid:415)ons link with either when the applica(cid:415)on is created or when the applica(cid:415)on is loaded by the 
`opera(cid:415)ng system. The interfaces are described by header files provided with an opera(cid:415)ng system 
`distribu(cid:415)on. In prac(cid:415)ce, system APIs are used by applica(cid:415)ons to access opera(cid:415)ng system services. 
`
`Applica(cid:415)on library: A collec(cid:415)on of func(cid:415)ons in an archive format that is combined with an applica(cid:415)on to 
`export system elements. 
`
`Shared library: An applica(cid:415)on library whose code space is shared among all user mode applica(cid:415)ons. The 
`code space is different than that occupied by the kernel and its associated files. The shared library files 
`are placed in an address space that is accessible to mul(cid:415)ple applica(cid:415)ons. 
`
`Sta(cid:415)c library: An applica(cid:415)on library whose code space is contained in a single applica(cid:415)on. 
`
`Kernel module: A set of func(cid:415)ons that reside and execute in kernel mode as extensions to the opera(cid:415)ng 
`system kernel. It is common in most systems to include kernel modules which provide extensions to the 
`exis(cid:415)ng opera(cid:415)ng system kernel. 
`
`Up call mechanism: A means by which a service in kernel mode callsexecutes a func(cid:415)on in a user mode 
`applica(cid:415)on context. It is common to provide an up call mechanism within an opera(cid:415)ng system kernel. 
`
`FigureFIG. 1 shows a conven(cid:415)onal architecture where cri(cid:415)cal system elements execute in kernel mode. 
`Cri(cid:415)cal system elements are contained in the opera(cid:415)ng system kernel. Applica(cid:415)ons access system 
`elements through applica(cid:415)on libraries. 
`
`In order for an applica(cid:415)on of FigureFIG. 1 to make use of a cri(cid:415)cal system element 17 in the kernel 16, 
`the applica(cid:415)on 12 a or 12 b makes a call to the applica(cid:415)on libraries 14. It is imprac(cid:415)cal to write 
`applica(cid:415)ons, which handle CPU specific/opera(cid:415)ng specific issues directly. As such, what is commonly 
`

`
`7 
`
`

`

`done is to provide an applica(cid:415)on library in shared code space, which mul(cid:415)ple applica(cid:415)ons can access. 
`This provides a pla(cid:414)orm independent interface where applica(cid:415)ons can access cri(cid:415)cal system elements. 
`When the applica(cid:415)on 12 a, 12 b makes a call to a cri(cid:415)cal system element 17 through the applica(cid:415)on 
`library 14, a system call may be used to transi(cid:415)on from user mode to kernel mode. The applica(cid:415)on stops 
`running as the hardware enters kernel mode.18 enters kernel mode. The processor makes the transi(cid:415)on 
`to a protected/privileged mode of execu(cid:415)on called kernel mode. Code supplied by the OS in the form of 
`a kernel begins execu(cid:415)on when the transi(cid:415)on is made. The applica(cid:415)on code is not used when execu(cid:415)ng 
`in kernel mode. The opera(cid:415)ng system kernel then provides the required func(cid:415)onality. It is noted that 
`each oval 12 a, 12 b in FigureFIG. 1 represents a different context. There are two applica(cid:415)on contexts in 
`the illustrated example and the opera(cid:415)ng system context is not shown as an oval but also has its own 
`context. There are many examples of this architecture in the prior art including SUN Solaris™, IBM AIX™, 
`HP‐UX™ and Linux™. 
`
`FigureFIG. 2 a shows a system architecture where cri(cid:415)cal system elements 27 a, 27 b execute in user 
`mode but in a dis(cid:415)nct context from applica(cid:415)ons. Some cri(cid:415)cal system elements are removed from the 
`opera(cid:415)ng system kernel. They reside in mul(cid:415)ple dis(cid:415)nct processes or servers as discussed in United 
`States Provisional Patent Applica(cid:415)on en(cid:415)tled "Drag & Drop Applica(cid:415)on Management" which is 
`incorporated herein by reference. . An example of the architecture described in FIG. 2 a is the GNU Hurd 
`opera(cid:415)ng system. 
`
`The servers that export cri(cid:415)cal system elements execute in a context dis(cid:415)nct from the opera(cid:415)ng system 
`kernel and applica(cid:415)ons. These servers operate at a peer level with respect to other applica(cid:415)ons. 
`Applica(cid:415)ons access system elements through applica(cid:415)on libraries. The libraries in this case communicate 
`with mul(cid:415)ple servers in order to access cri(cid:415)cal system elements. Thus, in the illustrated example, there 
`are two applica(cid:415)on contexts and two cri(cid:415)cal system element contexts. When an applica(cid:415)on needs to 
`makerequires the use of a cri(cid:415)cal system element, which is being run in user mode, a rather convoluted 
`sequence of events must take place. Typically the applica(cid:415)on first makes a pla(cid:414)orm independent call to 
`the applica(cid:415)on library. The applica(cid:415)on library in turn makes a call to the opera(cid:415)ng system kernel. The 
`opera(cid:415)ng system kernel then schedules the server with the cri(cid:415)cal system element in a different user 
`mode context. A(cid:332)er the server completes the opera(cid:415)on, a switch back to kernel mode is made which 
`then responds back to the applica(cid:415)on through the applica(cid:415)on library. Due to this architecture, such 
`implementa(cid:415)ons may result in poor performance. Ideally, an applica(cid:415)on, which runs on the system of 
`FigureFIG. 1, should be able to run on the system of FigureFIG. 2 a as well. However, in prac(cid:415)ce it is 
`difficult to maintain the same characteris(cid:415)cs and performance using such an architecture. 
`
`FIG. 2 b is illustra(cid:415)ve of a known system architecture where cri(cid:415)cal system elements execute in user 
`mode. The inven(cid:415)on is contrasted with both of these architectures in that cri(cid:415)cal system elements also 
`execute in a dis(cid:415)nct context from applica(cid:415)ons. Some cri(cid:415)cal system elements are removed from the 
`opera(cid:415)ng system kernel. The essen(cid:415)al difference between the architecture described in FIG. 2 a and FIG. 
`2 b is the use of a single process context to contain all user mode cri(cid:415)cal system elements. An example of 
`the architecture described in FIG. 2 b is Apple's MAC OS X™. 
`
`This inven(cid:415)on is contrasted with all three of the prior art examples. Cri(cid:415)cal system elements as defined 
`in the inven(cid:415)on are not isolated in the opera(cid:415)ng system kernel inas is the case of a monolithic 
`architecture (Figureshown in FIG. 1),; also they are not removed from the context of an applica(cid:415)on, as is 
`

`
`8 
`
`

`

`the case with a mul(cid:415)‐server architecture (Figure 2).depicted in FIG. 2 a. Rather, they are replicated, and 
`embodied in the context of an applica(cid:415)on. 
`
`FigureFIG. 3 shows an architectural view of the overall opera(cid:415)on of thethis inven(cid:415)on. Mul(cid:415)ple user 
`processes execute above a single instance of an opera(cid:415)ng system.  
`
`So(cid:332)ware applica(cid:415)ons 32 a, 32 b, u(cid:415)lize shared libraries 34 as is done in United StatesU.S. Provisional 
`Patent Applica(cid:415)on Ser. No. 60/512,103 en(cid:415)tled "“SOFTWARE SYSTEM FOR CONTAINERIZATION OF 
`APPLICATION SETS"” which is incorporated herein by reference. The standard libraries are augmented by 
`an extension, which contains cri(cid:415)cal system elements., that reside in extended shared libraries 35. 
`Extended services are similar to those that appear in the context of the opera(cid:415)ng system kernel 36. 
`
`FigureFIG. 4 showsillustrates the func(cid:415)onality of an applica(cid:415)on process as it exists above thean 
`opera(cid:415)ng system kernel all of which isthat was described in FIG. 3. Applica(cid:415)ons exist and run in user 
`mode while the opera(cid:415)ng system kernel 46 itself runs in kernel mode. The userUser mode func(cid:415)onality 
`includes the user applica(cid:415)ons 42, the standard applica(cid:415)on libraries, and a new extended shared library 
`provided by an  44, and one or more cri(cid:415)cal system elements, 45 & 47. FIG. 4 shows one embodiment of 
`the inven(cid:415)on. The  where the CSE func(cid:415)onality is contained in two shared libraries. An extended library, 
`45, provides control opera(cid:415)ons while the CSE shared library, 47, provides an implementa(cid:415)on of a cri(cid:415)cal 
`system element. 
`
`The CSE library includes replicas or substan(cid:415)al func(cid:415)onal equivalents or replacements of kernel 
`func(cid:415)ons. The term replica, shall encompass any of these meanings, and although not a preferred 
`embodiment, may even be a copy of a CSE that is part of the OS. These func(cid:415)ons can be directly called 
`by the applica(cid:415)ons 42 and as such can be run in the same context as the applica(cid:415)ons 42. In preferred 
`embodiments, the kernel func(cid:415)ons which are included in the extended shared library and cri(cid:415)cal system 
`element library 45,47 are also included in the opera(cid:415)ng system kernel.  46. 
`
`Furthermore, there might be different versions of a given cri(cid:415)cal system element forming part of the 
`extended shared library47 with different applica(cid:415)ons accessing these different versions within their 
`respec(cid:415)ve context. 
`
`In preferred embodiments, the pla(cid:414)orm specific aspects of the cri(cid:415)cal system element are le(cid:332) in the  
`opera(cid:415)ng system kernel, for example certain system calls.. Then the cri(cid:415)cal system elements which are 
`includedrunning in the extended shared libraryuser mode may s(cid:415)ll make use of the opera(cid:415)ng system 
`kernel to implement these pla(cid:414)orm specific func(cid:415)ons.  
`
`FigureFIG. 5 represents the func(cid:415)on of the kernel module (58, described in more detail below).. A cri(cid:415)cal 
`system element in the context of an applica(cid:415)on program uses system calls to access services in the 
`kernel module. The kernel module serves as an interface between a service in 

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket