ES2582164T3 - Capa de abstracción y protección del sistema operativo - Google Patents

Capa de abstracción y protección del sistema operativo Download PDF

Info

Publication number
ES2582164T3
ES2582164T3 ES02736858.8T ES02736858T ES2582164T3 ES 2582164 T3 ES2582164 T3 ES 2582164T3 ES 02736858 T ES02736858 T ES 02736858T ES 2582164 T3 ES2582164 T3 ES 2582164T3
Authority
ES
Spain
Prior art keywords
application
operating system
abstraction
windows
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES02736858.8T
Other languages
English (en)
Inventor
Stuart Schaefer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2582164T3 publication Critical patent/ES2582164T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Un sistema para crear un entorno de software de aplicación sin cambiar un sistema (10) operativo de un equipo cliente, comprendiendo el sistema una capa (100) de abstracción y protección de sistema operativo, en el que dicha capa de abstracción y protección está interpuesta entre una aplicación (50, 52, 54) de software en ejecución y dicho sistema operativo, por lo que se proporciona un entorno virtual en el que pueden ejecutarse una aplicación y por lo que dicho sistema operativo es un sistema operativo Windows que comprende un registro de Windows, en el que la capa de abstracción y protección de sistema operativo responde con una clave y su valor si dicha clave y el valor se almacenan dentro de la capa de abstracción y protección de sistema operativo, si no se almacenan, la capa de abstracción y protección de sistema operativo permite la solicitud para pasar a través del registro de Windows.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Capa de abstraccion y proteccion del sistema operativo
La presente invencion se refiere a un software informatico, y mas espedficamente a un software de sistema operativo.
Antecedentes de la invencion
En muchos entornos, pero sobre todo en entornos en los que una aplicacion se presenta a traves de una red, la caractenstica mas importante es la capacidad de ejecutar aplicaciones sobre la marcha, sin una instalacion compleja. Por lo general, en ciertos sistemas de la tecnica anterior, se han hecho grandes esfuerzos para modificar un sistema cliente para aparecer como si un programa estuviese instalado, o para instalar realmente el software en sf mismo, y a continuacion volver atras estas modificaciones para restaurar la configuracion original. Al hacer esto, se presentan multiples problemas: conflictos entre una aplicacion y la configuracion actual del equipo, multiples instancias de las mismas o diferentes aplicaciones, la complejidad del procedimiento de volver atras requiere que una aplicacion se ponga a traves de un procedimiento riguroso para garantizar que todas sus modificaciones puedan tenerse en cuenta, y el uso de archivos compartidos y componentes del sistema por multiples aplicaciones complica la vuelta atras y el procedimiento de instalacion.
Sumario de la invencion
Es el objeto de la presente invencion mantener la integridad del sistema. Este objeto se resuelve mediante el objeto de la reivindicacion independiente. Las realizaciones preferidas estan definidas por las reivindicaciones dependientes.
La presente invencion proporciona un sistema para crear un entorno de software de aplicacion sin cambiar un sistema operativo de un equipo cliente, comprendiendo el sistema una capa de abstraccion y proteccion de sistema operativo, en el que dicha capa de abstraccion y proteccion esta interpuesta entre una aplicacion de software en ejecucion y dicho sistema operativo, por lo que se proporciona un entorno virtual en el que una aplicacion puede ejecutarse y se eliminan sustancialmente las interacciones a nivel de aplicacion. Preferentemente, cualquier cambio directamente en el sistema operativo se realiza de manera selectiva dentro del contexto de la aplicacion en ejecucion y la capa de abstraccion y proteccion cambia de manera dinamica el entorno virtual de acuerdo con la configuracion administrativa. Ademas, en ciertas realizaciones, el sistema monitoriza continuamente el uso de los recursos y los actos del sistema compartidos como un servicio de aplicar y quitar los cambios a los componentes del sistema.
Asf, por ejemplo, en las realizaciones dentro de los sistemas operativos basados en Windows, y en los que todas las operaciones en el registro de Windows son a traves de la API de Win32, el sistema proporciona preferentemente un medio para las funciones de interceptacion, por lo que cada vez que se invocan dichas funciones otra funcion o aplicacion intercepta la llamada, y el sistema intercepta mas preferentemente cada funcion API adecuada para dar servicio a una solicitud si se hace por una aplicacion ejecutada desde un servidor o si se hace por una aplicacion contra una clave de configuracion que se administra activamente.
En otras realizaciones preferidas de la presente invencion, se proporciona una funcionalidad adicional, tal como estas realizaciones en las que la capa de abstraccion y proteccion de sistema operativo administra la integracion de multiples instancias de una aplicacion reconociendo cuantas instancias de una aplicacion estan en ejecucion, y en tales realizaciones mas preferentemente se evita hacer cambios en el arranque y el apagado a menos que solo haya una instancia de la aplicacion en ejecucion. En esta realizacion es posible tambien soportar los sistemas operativos multiusuario en los que pueden estar en ejecucion multiples instancias de una aplicacion en nombre de los diferentes usuarios.
Por lo tanto, la capa de abstraccion y proteccion de sistema operativo presenta al entorno a una aplicacion que parece ser un entorno de instalacion sin realizar una instalacion, por lo que se crea una “pseudo instalacion” en la que todos las configuracion se ponen en un entorno virtual en el momento de ejecutar la aplicacion. O en el caso de una aplicacion instalada, actua para modificar dinamicamente el comportamiento de la aplicacion en el tiempo de ejecucion. Las realizaciones preferidas proporcionan un medio para evitar que la informacion en el equipo cliente interfiera o modifique el comportamiento de una aplicacion, y lo mas preferentemente proporciona un medio para cambiar dinamicamente el entorno virtual de acuerdo con las configuraciones administrativas. Como se ha mencionado anteriormente, en ciertas realizaciones sera posible tener mas de una instancia de una unica aplicacion de software en ejecucion en el mismo equipo cliente, incluso si originalmente no se autorizo a hacerlo. En tales realizaciones, se proporcionan contextos compartidos y controlados en los que al menos dos de dichas instancias de una unica aplicacion comparten una o mas configuraciones virtuales.
El documento US 5.752.005 describe un equipo que incluye un sistema operativo que tiene un administrador de sistema y un sistema de archivos nativo. Un sistema de archivos instalable instala unas interceptaciones en una interfaz central entre el administrador de sistema y el sistema de archivos nativo. Las interceptaciones se instalan en solo una parte de las muchas rutinas de funcion nativas proporcionadas por el sistema de archivos nativo. Un
controlador virtual se comunica con el sistema de archivos nativo y Simula un dispositivo de almacenamiento de archivos que no tiene substancialmente ningun archivo almacenado en el mismo. El dispositivo de sistema de archivo externo solicita que las rutinas de funcion que no se ha interceptado se manejen por el sistema de archivos nativo y el dispositivo virtual. El dispositivo de sistema de archivo externo solicita que las rutinas de funcion 5 interceptadas se manejen por un sistema de archivo externo.
El documento US 6.026.402 describe un procedimiento y un aparato para restringir un procedimiento o jerarqrna de procedimientos para un subconjunto del sistema(s) de archivos de un equipo central en un entorno en el que todos los sistemas de archivos estan disponibles al mismo tiempo para una aplicacion. Una persona que llama esta provista de la capacidad de organizar la restriccion de una jerarqrna de procedimientos (que consiste en un 10 procedimiento y todos los procedimientos que pueden crearse posteriormente) para un conjunto de subjerarqmas de sistemas de archivos. Cuando se ejecuta un procedimiento dentro de un dominio de restriccion en el que se ha especificado una subjerarqma para cada uno de los sistemas de archivos disponibles, una realizacion modificara el funcionamiento habitual de la interfaz de sistema operativo del equipo central de tal manera que cualquier intento de acceso al sistema de archivos por el procedimiento afectado esta obligado a producirse logicamente dentro del 15 dominio de restriccion.
Breve descripcion de los dibujos
La figura 1 es un diagrama de bloques esquematico que muestra la relacion relativa de la presente invencion, un sistema operativo y una aplicacion de software;
La figura 2 es un diagrama de bloques esquematico que muestra
20 La figura 3 es un diagrama de bloques esquematico que muestra
La figura 4 es un diagrama de bloques esquematico que muestra
Descripcion detallada de las realizaciones preferidas
Haciendo referencia ahora a la figura 1, se ilustra un diagrama de bloques esquematico que muestra la relacion relativa de la presente invencion, un sistema operativo y una aplicacion de software. Las realizaciones preferidas de 25 la presente invencion proporcionan una capa 100 de abstraccion y proteccion de sistema operativo denominada “restriccion de sistema operativo”. Internamente, muchos sistemas 10 operativos proporcionan dominios de fallo para proteger las aplicaciones 50 de afectarse entre sf cuando se ejecutan. Sin embargo, los recursos de sistema compartidos y muchas otras caractensticas de sistema operativo permiten que este dominio de proteccion se vea comprometido. Una capa 100 de abstraccion y proteccion de sistema operativo proporcionara una barrera adicional 30 controlada mediante programacion entre las aplicaciones 50 para eliminar la mayona de las interacciones a nivel de aplicacion. Dispuesta entre la aplicacion 50 y el sistema 10 operativo, la capa 100 de abstraccion y proteccion de sistema operativo permite selectivamente cambios directamente en el sistema 10 operativo, frente a contener el cambio dentro del contexto de la aplicacion en ejecucion. Como un ejemplo, en los sistemas basados en Windows, todas las operaciones en el registro de Windows se realizan normalmente a traves de la API de Win32. Como se 35 explica a continuacion, las funciones de sistema como QueryRegEx y GetProfileString pueden interceptarse de tal manera que cada vez que se invocan, otra funcion o aplicacion intercepta la llamada. La restriccion 100 de sistema operativo de la presente invencion interceptara cada funcion API adecuada para dar servicio a la solicitud, si se hace por una aplicacion que se administra activamente o si se hace por una aplicacion contra un elemento de configuracion que se administra activamente. De esta manera, a menos que se configure explfcitamente para 40 hacerlo asf, la presente invencion puede crear el entorno de aplicacion sin realizar cambios reales en el sistema del usuario final. Por lo tanto, cualquier modificacion que se realice en tiempo de ejecucion por la aplicacion puede persistirse o eliminarse facilmente.
Como se usa en el presente documento, la expresion “restriccion de sistema operativo”, define una capa entre una aplicacion en ejecucion y el sistema operativo de un equipo de destino o equipo cliente que proporciona un entorno 45 virtual en el que la aplicacion puede ejecutarse. Este entorno virtual tiene diversos fines. En primer lugar, evita que una aplicacion en ejecucion realice cambios en el equipo cliente. Si una aplicacion intenta cambiar la configuracion de sistema operativo subyacente de un equipo cliente, tal configuracion esta protegida y solo se “realiza” en el entorno virtual. Por ejemplo, si una aplicacion intenta cambiar la version de un objeto compartido como MSVCRT.DLL, este cambio se localiza en la aplicacion y el codigo residente en el equipo cliente se deja intacto.
50 En segundo lugar, la invencion presenta un entorno para una aplicacion en ejecucion que parece ser un entorno de instalacion sin realizar una instalacion, y es, por lo tanto, una “pseudo instalacion” o “como una instalacion”. Todas las configuraciones se ponen en un entorno virtual en el momento en que la aplicacion se sirve en ejecucion, o justo en el momento cuando la aplicacion necesita una configuracion espedfica. Por ejemplo, si un programa de ordenador tal como Adobe Photoshop® espera ver un conjunto de entradas del registro de Windows bajo 55 HKEY_LOCAL_MACHINE\Software\Adobe y no estan allf en el equipo cliente ya que Photoshop nunca se ha instalado, un sistema realizado de acuerdo con este aspecto de la presente invencion “mostrara” esas entradas de registro en el codigo de programacion Photoshop exactamente como si estuvieran residentes en el equipo cliente.
5
10
15
20
25
30
35
40
45
50
55
A continuacion, la invencion evita que la informacion que puede existir en la maquina cliente/usuarios interfiera con o modifique el comportamiento de una aplicacion. Por ejemplo, si el usuario tiene ya las entradas del registro que existen bajo:
HKEY_LOCAL_MACHINE\Software\Adobe
para una version anterior de Photoshop, pero ahora desea hacer funcionar una version mas reciente, esas entradas pueden ocultarse a la nueva aplicacion para evitar conflictos.
Finalmente, la presente invencion desbloquea el comportamiento de aplicacion que puede no existir cuando la aplicacion se escribe actualmente. Esto se hace a traves de la capacidad para cambiar dinamicamente el entorno virtual de acuerdo con las configuraciones administrativas. Por ejemplo, en una instancia tfpica de una aplicacion de software empresarial, una aplicacion cliente puede esperar para leer una configuracion de la direccion de la base de datos a la que el usuario debena conectarse a partir de una configuracion en el registro. Debido a que esta clave de registro se almacena a menudo en HKEY_LOCAL_MACHINE, la configuracion es global para todo el equipo cliente. Un usuario solo puede conectarse a una base de datos sin reinstalar el cliente, o sabiendo como modificar esta clave de registro, y hacerlo cada vez que se desee ejecutar la aplicacion. Sin embargo, implementando la presente invencion, ahora pueden ejecutarse dos instancias de la aplicacion en el mismo equipo cliente, cada una conectada a una base de datos diferente.
CONTEXTOS
Al proporcionar esta funcionalidad, cada aplicacion es capaz de ejecutarse en un contexto privado dentro del sistema. Para la aplicacion, esto tiene su propia vista privada de lo que parecen el sistema y su comportamiento. La presente invencion proporciona esto por su naturaleza inherente. Haciendo referencia a la figura 2, pueden proporcionarse dos aplicaciones separadas 52, 54, o dos instancias de la misma aplicacion (50 ilustradas en la figura 1), en contextos privados en los que pareceran tener copias separadas o diferentes de los servicios, la configuracion y los datos del sistema. En la realizacion preferida, este es el comportamiento por defecto del sistema.
Con la extension de este concepto, la restriccion 100 de sistema operativo de la presente invencion puede proporcionar tambien unos contextos compartidos y controlados en los que dos o mas aplicaciones 52, 54 pueden compartir alguna o la totalidad de sus configuraciones virtuales. Esto es importante para los conjuntos de aplicaciones tales como Microsoft Office, o para las aplicaciones que se comportan de manera diferente en la presencia de otras aplicaciones. Por ejemplo, muchas aplicaciones utilizan Microsoft Word como el motor para hacer la combinacion de correspondencia o la funcionalidad de creacion de documentos. La aplicacion debe conocer la instalacion o la presencia de Word y ser capaz de acceder a sus funciones. En la realizacion preferida, dos instancias de la misma aplicacion compartiran un unico contexto por defecto, mientras que dos aplicaciones individuales mantendran contextos privados. Haciendo referencia a la figura 3, las dos aplicaciones 52, 54 pueden ejecutarse mientras que la restriccion 100 de sistema operativo proporciona una vision compartida de los recursos disponibles del sistema.
DISENO
Como se ilustra en la figura 4, la restriccion de sistema operativo esta compuesta por los siguientes subsistemas: un nucleo 102, un administrador 104 de configuracion, un administrador 106 de archivos, un administrador 108 de objetos compartidos, un administrador 110 de dispositivos, un administrador 112 de fuentes, un administrador 120 de procedimientos, un administrador 114 de entorno de procedimientos, un cargador 116, y un administrador 118 de recuperacion. Con la excepcion del nucleo 102, el administrador 120 de procedimientos, y el cargador 116, todos los demas subsistemas son elementos del sistema de virtualizacion descrito con mas detalle a continuacion. El nucleo 102 es el principal responsable de la administracion de las aplicaciones y su contexto como se define en los archivos de configuracion.
El administrador 120 de procedimientos proporcionado por la restriccion de sistema operativo permite que se informe al nucleo 102 de cualquier procedimiento o evento de subprocedimiento que pueda ser de interes. Esto tambien proporciona una capa de abstraccion a las implementaciones dependientes del sistema operativo para administrar un espacio de procedimiento y manejar el procesamiento de subprocedimientos. Los procedimientos pueden agruparse entre sf en paquetes de aplicaciones. Un paquete de aplicaciones es un grupo de procedimientos en el que todos comparten sus recursos virtuales entre sf. Por ejemplo, Microsoft Word y Microsoft Excel pueden querer compartir el registro virtual y el sistema de archivos virtual para poder trabajar juntos como un conjunto de aplicaciones. El administrador 120 de procedimientos llama a esos paquetes de aplicaciones “aplicaciones”. La informacion acerca de una aplicacion existe hasta que se le dice al administrador 120 de procedimientos que libere la aplicacion. Si otro procedimiento necesita cargarse en el paquete de aplicacion, puede hacerlo siempre y cuando no se haya liberado la aplicacion.
El subsistema 116 cargador de la presente invencion se usa para permitir que los entornos virtuales se transfieran dentro y fuera del sistema en ejecucion. Cada uno de los subsistemas de virtualizacion es capaz de serializar su configuracion para el cargador 116, y recuperarla a traves del procedimiento inverso. Ademas, el cargador 116 es capaz de realizar fases de carga/descarga y combinar los resultados de las fases individuales en una unica
5
10
15
20
25
30
35
40
45
50
55
descripcion de entorno.
REGISTRO Y CONFIGURACION
Las aplicaciones requieren cantidades variables de informacion de configuracion para funcionar correctamente. En cualquier lugar existen de cero a miles de registros de configuracion para los que una aplicacion puede leer su configuracion. En Windows, hay dos lugares comunes para la informacion de configuracion, el registro de Windows y los archivos de inicializacion a nivel de sistema win.ini y system.ini. Ademas, el directorio \WINDOWS\SYSTEM es un lugar comun para que las aplicaciones escriban la configuracion espedfica de aplicacion o los archivos de inicializacion. Las aplicaciones usaran tambien los archivos de configuracion o de datos en sus directorios de aplicacion locales para almacenar la informacion de configuracion adicional. A menudo, esta informacion es diffcil de tratar, ya que esta en un formato propietario. En las plataformas que no sean Windows, no existe un equivalente del registro, pero existen directorios comunes para la informacion de configuracion. X Windows tiene un directorio de aplicaciones por defecto (app-defaults). Macintosh tiene la carpeta de sistema (System Folder), y otros sistemas operativos tendran los elementos correspondientes. Es importante observar que en la mayona de los sistemas UNIX, cada aplicacion 52, 54 individual almacenara lo mas a menudo su propia configuracion 152, 154 localmente, como se ve en la figura 2.
La presente invencion, en una realizacion, incluye un componente virtual de registro de Windows, que proporcionara un registro de funcion completo a una aplicacion, pero evita la modificacion del registro de sistema subyacente. Todas las claves que una aplicacion espera acceder estaran presentes, pero solo pueden existir en el registro virtual. De esta manera, la restriccion 100 de sistema operativo de la presente invencion y el registro de Windows forman un procedimiento de dos fases para acceder al registro. Si una aplicacion necesita acceder a una clave, consultara al registro. La restriccion de sistema operativo respondera con la clave y su valor si la conoce. De lo contrario, permitira que la solicitud pase a traves del registro de Windows. Si se hace un intento de modificar el valor, la restriccion de sistema operativo permitira que se produzca la modificacion solamente sobre sf misma. La proxima vez que la aplicacion acceda a la clave, estara presente en la restriccion de sistema operativo y la solicitud no fluira a traves del registro real, dejandolo intacto.
Las claves que usan la restriccion de sistema operativo se especifican en tres secciones individuales. Estas claves de restriccion de sistema operativo se especifican como comandos en esas secciones para modificar una clave existente, eliminar la presencia de una clave, o anadir una nueva clave al registro. De esta manera, el registro virtual puede aparecer exactamente como las intenciones de sistema. Esto es importante cuando la presencia o la ausencia de una clave pueden ser tan importantes como el valor real de la clave.
En la realizacion preferida, la restriccion de sistema operativo carga primero un archivo de datos que contiene unas entradas de registro basicas para la aplicacion. A continuacion, se carga un segundo archivo de datos que contiene las preferencias del usuario. Por ultimo, la restriccion de sistema operativo puede cargar opcionalmente, un conjunto de claves que incluye elementos de polttica que el usuario no esta autorizado a anular. Los tres archivos se cargan uno encima de otro con elementos duplicados en cada archivo anulando los elementos del archivo anterior al mismo. La primera vez que un usuario ejecuta la aplicacion, el segundo archivo de datos no existe, porque no habra informacion espedfica del usuario, solo las predeterminadas de aplicacion. Despues de cada sesion, sin embargo, la restriccion de sistema operativo guardara los cambios del usuario, generando este segundo archivo de datos para su uso en sesiones futuras.
Los archivos de configuracion pueden modificarse de dos maneras. En primer lugar, el archivo puede editarse directamente por una aplicacion. En este escenario, el subsistema de archivos de restriccion de sistema operativo descrito a continuacion abordara la modificacion realizada en el archivo. En segundo lugar, en la realizacion preferida, un aplicacion puede llamar a la familia de llamadas API de Windows GetProfileString, WriteProfileString, u otras para modificar estos archivos. En este caso, la restriccion de sistema operativo de la presente invencion se realiza exactamente como se ha descrito anteriormente interceptando esas llamadas y dandolas servicio desde dentro.
OBJETOS COMPARTIDOS
Muchos componentes usados por los sistemas operativos y las aplicaciones en ejecucion se comparten entre varias aplicaciones o instancias. En general, esta es una muy buena idea. Se ahorra espacio en disco, no requiriendo muchas copias del mismo archivo. Tambien proporciona la capacidad para los proveedores de sistemas operativos y de terceros de crear y distribuir bibliotecas de codigo usado comunmente. En la plataforma Windows, las bibliotecas de enlaces dinamicos, DLL, se comparten a menudo dentro y a traves de las aplicaciones. En otras plataformas, el problema es el mismo. En Macintosh, los INIT y otros componentes del sistema se cargan para las aplicaciones. Estos componentes pueden tener muchas versiones, de las cuales solo se usa una a la vez. En los sistemas UNIX, los objetos compartidos dinamicos, por ejemplo, los archivos de biblioteca “.so”, se usan por las aplicaciones para acelerar el tiempo de carga, ahorrar espacio en disco, y por otras razones. Muchos programas usan el “libc.so” por defecto. Sin embargo, este archivo de biblioteca es normalmente un enlace simbolico a alguna version de sf mismo: como libC.so.3. En la practica, esta caractenstica ha hecho estragos. Estos componentes compartidos han ido a menudo a traves de una revision, con muchas versiones del mismo componente disponible para instalarse. Los
5
10
15
20
25
30
35
40
45
50
55
autores de aplicaciones han descubierto que su software trabaja potencialmente con solo una o algunas de las versiones del componente compartido. Por lo tanto, en la practica, las aplicaciones instalan normalmente la version que ellas desean, sobrescribiendo otras versiones actuales. Potencialmente, esto hace que los valores por defecto en otras aplicaciones se ejecuten en un sistema.
En Windows 98, Windows 2000, Microsoft ha creado el sistema de archivos protegidos de Windows (WPFS) para permitir a los administradores de sistemas crear un archivo llamado XXXX.LOCAL en el directorio rafz de una aplicacion, en el que XXXX es el nombre del archivo ejecutable sin la extension. Esto hace que el cargador de Windows altere su procedimiento de resolver las referencias de ruta durante las ejecuciones de LoadLibrary. Esto, sin embargo, no es suficiente para resolver por completo el problema. En primer lugar, la configuracion del archivo XXXX se deja al conocimiento del administrador del sistema, lo que es muy variable. En segundo lugar, una version de componente debe someterse a un retroceso de nuevo al original, a continuacion, instalar este componente en el directorio local y, a continuacion, crear el archivo “.LOCAL”. Este no es un procedimiento sencillo para cualquiera de los componentes mas basicos localizados en WINDOWS\SYSTEM. Tambien, esta solucion no cubre todas las funcionalidades necesarias. Durante LoadLibrary, Windows usa una semantica diferente de resolucion de ruta en funcion de si el componente se resuelve como resultado de una LoadLibrary explfcita o implfcita, y tambien si existe una clave de registro que indique que es una DLL nombrada o bien conocida. En este caso, la llamada de LoadLibrary siempre se resolvera en el directorio WINDOWS\SYSTEM.
Las DLL y otros componentes compartidos conservan tambien la semantica de recuento de referencia para garantizar que un componente no se toca a menos que no haya aplicaciones en ejecucion que se refieran al mismo. En la practica, solo las aplicaciones del proveedor de sistema operativo y el propio sistema operativo han hecho un buen trabajo de obedecer este protocolo.
Como regla general, se desea tener un objeto compartido que siempre se resuelva para el componente correcto. Para proporcionar esta funcionalidad, se requiere entender la version de un componente, o intervalo de versiones, con el que es posible hacer funcionar la aplicacion. A continuacion, cuando la aplicacion se va a ejecutar, la presente invencion garantizana que el componente se resuelve correctamente. Es aceptable, en la presente invencion, para automatizar el uso de WPFS u otro sistema operativo que proporciona la capacidad, si se desea. En este caso, es necesario detectar los componentes necesarios y colocarlos en el sistema de archivos local. Esto es mas complejo que la simple observacion de la instalacion, puesto que un programa de instalacion a menudo no instalara un componente si el necesario ya esta ahr
Esto se desea para identificar un procedimiento para garantizar que los objetos nombrados se cargan correctamente. En la plataforma Windows, MSVCRT.DLL es un responsable significativo dentro de esta area de problemas. Si se mantienen multiples versiones de este objeto, la clave de registro mencionada anteriormente puede cambiarse dinamicamente, lo que permite que la funcion LoadLibrary resuelva la version correcta del componente. Otro procedimiento razonable de garantizar la carga correcta del componente es la edicion dinamica de un entorno de procedimiento para usar una ruta de busqueda valida. Esta ruta de busqueda garantizara que un componente local se resuelve antes que un componente amplio de sistema. Otro posible procedimiento para la resolucion del objeto compartido correcto es a traves del uso de los enlaces simbolicos. Puede hacerse un enlace simbolico para un componente compartido, que se resuelve en tiempo de ejecucion por el sistema de archivos del equipo para el componente necesario. Por ultimo, las solicitudes abiertas/lefdas/cerradas reales de un archivo del objeto compartido pueden interceptarse por la presente invencion y responderse dinamicamente para la version correcta del archivo que pueda existir en el sistema local o dentro de los subsistemas de la invencion.
Existen varias formas especiales. En la plataforma Windows, OLE, ODBC, MDAC,... asf como una serie de otros componentes espedficos de fabricante, estan escritos para compartirse globalmente entre varios o todos los procedimientos en ejecucion. En el caso de OLE, yendo tan lejos como compartir datos y espacio de memoria entre procedimientos individuales. OLE evita mas de una copia de sf mismo en ejecucion al mismo tiempo, al igual que muchos de estos componentes. OLE tiene tambien muchos errores y caractensticas que requieren una version espedfica a cargarse para una aplicacion espedfica. En la presente invencion, una aplicacion es capaz de cargar cualquier version de OLE que se requiera, aun permitiendo la semantica compartida con otros componentes que usan la misma version de OLE.
En general, a menos que se configure espedficamente como tal, los objetos compartidos debenan cargarse privadamente para garantizar la prevencion de conflictos. Nada evitana, acerca del procedimiento usado para permitir que un componente se cargue privadamente, que se descarguen limpiamente o se carguen correctamente para otra aplicacion de software, si se administra o no activamente por la restriccion de sistema operativo. Ademas, si el sistema se bloquea, se requiere para recuperarse de este bloqueo un estado limpio, sin haber sobrescrito o modificado el sistema operativo subyacente.
ARCHIVOS
Muchas aplicaciones usan archivos de datos dentro de la aplicacion para almacenar entradas de configuracion u otros datos de aplicacion. La presente invencion proporciona un sistema de archivos virtual al igual que el registro virtual descrito anteriormente. Antes del comienzo de la aplicacion, la presente invencion puede cargar una lista de
5
10
15
20
25
30
35
40
45
50
55
cambios de sistema de archivos, que incluye archivos para ocultar y archivos para agregar al entorno virtual o archivos para redirigir a otro dentro del entorno virtual. Siempre que la aplicacion accede o modifica cualquier archivo, la restriccion de sistema operativo comprueba si el archivo debe redirigirse, y si es asf, en la realizacion preferida redirige la solicitud a una localizacion especificada en la configuracion de la restriccion de sistema operativo.
Si una aplicacion intenta crear un nuevo archivo o abrir un archivo existente para escribir en una unidad local del usuario, la restriccion de sistema operativo debe garantizar que el archivo se crea o se modifica realmente en la localizacion redirigida. Si la aplicacion se vuelve a cargar en un momento posterior, este mapeo de archivo debe recargarse en el entorno virtual de la restriccion de sistema operativo. Cuando la solicitud es para modificar un archivo existente, que reside en una unidad local del usuario, la restriccion de sistema operativo debe copiar el archivo en cuestion al punto de redireccion antes de continuar con la solicitud. Los archivos redirigidos pueden no ser del mismo nombre que el archivo original para garantizar el mapeo seguro de las rutas de archivos. En la realizacion preferida, los archivos INI se manejan de esta manera para ofrecer la maxima seguridad del sistema al tiempo que permiten la maxima compatibilidad de aplicaciones.
La presente invencion es espedficamente util para las aplicaciones distribuidas a traves de una red. En tales implementaciones es importante entender que las aplicaciones de software estan hechas de varios tipos de datos, en las que el grueso de los archivos de aplicaciones que usan una aplicacion de software estan montados lo mas preferentemente en una unidad logica independiente. La configuracion, que incluye tanto la basada en archivo como la basada en el registro, puede ser espedfica del usuario y de todo el sistema. El sistema de distribucion de aplicaciones usado marcana cada archivo para el que de estos tipos hay algun archivo. Esta informacion proporciona consejos al sistema de restriccion de sistema operativo para actuar de manera apropiada.
CONTROLADORES DE DISPOSITIVOS
Muchas aplicaciones usan controladores de dispositivos u otro software a nivel de sistema operativo para implementar algunas de sus funciones tales como el soporte de hardware o las interacciones de bajo nivel directamente con el sistema operativo. En la presente invencion, la restriccion de sistema operativo proporcionara la capacidad de dinamicamente, y tan privadamente como sea posible, agregar y eliminar estos componentes en el entorno virtual de la aplicacion.
Muchos controladores de dispositivos estan disenados para poder cargarse dinamicamente. Si es posible, es la realizacion preferida cargar todos los controladores de dispositivo dinamicamente. Si un controlador de dispositivo requiere una carga estatica en el momento del arranque, debe presentarse este conocimiento al usuario antes de ejecutar la aplicacion. Una vez que el sistema ha reiniciado la aplicacion debena continuar desde donde lo dejo. Sin embargo, un gran porcentaje de los controladores de dispositivos no puede descargarse dinamicamente. Aunque se prefiere descargar de manera dinamica el controlador, si esto no puede realizarse el controlador sera marcado para su eliminacion en el siguiente reinicio, y el usuario debena estar al tanto de esto. Si la aplicacion se ejecuta una segunda vez antes del siguiente reinicio, el sistema debena ser consciente de la presencia del controlador y no intentar una segunda instalacion, esperando a la terminacion para remarcar el componente eliminable en el siguiente reinicio.
Es importante caracterizar las similitudes y las diferencias de base, tal como existen para cada clase de controlador de dispositivo, para garantizar que la presente invencion pueda funcionar correctamente. No se desea realmente cargar y descargar los controladores de dispositivos para el hardware del sistema que esta constantemente presente. Debena entenderse que aunque esto no es una realizacion preferida en terminos de facilidad de programacion, esta dentro del ambito de la presente invencion y puede requerirse por razones espedficas, tales como la restriccion en los acuerdos de concesion de licencias para las aplicaciones que se entregan y ejecutan usando la presente invencion.
En las plataformas que no son de Microsoft, los controladores de dispositivos se manejan normalmente de manera muy diferente. Los sistemas Macintosh soportan tanto los controladores estaticos como dinamicos, pero todos ellos se instalan y se eliminan a traves del mismo procedimiento. Enlazar con la carpeta de sistema de Macintosh proporcionara el soporte necesario. Para los sistemas UNIX, los controladores de dispositivos requieren mas normalmente una modificacion para el nucleo de UNIX en ejecucion, seguido de un reinicio. Este procedimiento puede ser muy complejo. En la realizacion preferida, este procedimiento esta automatizado; incluyendo restablecer el nucleo una vez que la aplicacion esta completa. Los parametros generales del procedimiento son los mismos que se han descrito anteriormente para las aplicaciones de Windows, las etapas de procedimiento reales de la compilacion y las personas familiarizadas con tales sistemas operativos pueden realizar el reinicio.
Finalmente, los expertos en la materia entenderan que es deseable ser capaz de recuperar y eliminar los controladores a traves de los fallos del sistema. Por lo tanto, cualesquiera que sean los datos o procedimientos necesarios para mantener la integridad del sistema es una realizacion preferida de la presente invencion. Los expertos en la materia apreciaran tambien que todo tipo de controladores de dispositivos podnan no proporcionarse conveniente o eficientemente a traves de la presente invencion, mas espedficamente los asociados con los dispositivos de hardware conectados permanentemente.
5
10
15
20
25
30
35
40
45
50
55
OTROS ARTICULOS
En la presente invencion, se reconoce que hay varios componentes de la invencion, el comportamiento o la presencia de lo que es diferente en los sistemas operativos alternativos. Estos componentes incluyen fuentes, procedimientos, variables de entorno, y otros.
Algunas aplicaciones requieren fuentes a instalarse con el fin de funcionar correctamente. Cualquier fuente requerida sera especificada en el archivo de configuracion de la restriccion de sistema operativo. La restriccion de sistema operativo habilitara esas fuentes antes de ejecutar la aplicacion y si es necesario las eliminara posteriormente. La mayona de los sistemas tienen un area comun para el almacenamiento de fuentes, ademas de un procedimiento de registro de las mismas o para hacer que el sistema sea consciente de su presencia, la restriccion de sistema operativo utilizara estos procedimientos disponibles.
En Windows, una fuente se copia en el directorio WINDOWS\FONTS. Sin embargo, esto no garantiza que la fuente este disponible para el programa en ejecucion. En la realizacion preferida, si el programa usa la API de Windows
para acceder a las fuentes, la fuente necesitara registrarse con una ApI de Win32 llamada tal como
CreateScalableFontResource/AddFontResource. Esto insertara la fuente en la tabla de fuentes del sistema. Una vez completo, la restriccion de sistema operativo puede eliminar la fuente con otra API apropiada llamada como RemoveFontResource, a continuacion, elimina el archivo del sistema. Como una realizacion alternativa, la restriccion de sistema operativo podna interceptar las funciones API como se describe en el procedimiento de registro virtual. Ademas, la restriccion de sistema operativo puede usar su subsistema de archivos para evitar colocar el fichero de fuente real en el sistema en ejecucion.
En Macintosh, el procedimiento es extremadamente similar y basado en los archivos de la carpeta de sistema y el registro de activacion de Macintosh. En UNIX, sin embargo, el procedimiento depende de la aplicacion. Lo mas normal, los recursos de fuentes se agregan al sistema como archivos regulares resueltos en la localizacion adecuada, por lo que pueden accederse por el nombre. Con muchos sistemas Motif, necesita colocarse una
descripcion de la fuente en un archivo de recursos de fuente, lo que permitira que la fuente se resuelva. La
aplicacion Motif o X puede invocar la fuente o a traves del subsistema de resolucion o mediante una llamada directa. Recientemente, muchos sistemas basados en Motif y en CDE utilizan fuentes postscript escalables de Adobe. Estas fuentes necesitan administrarse a traves del sistema de administracion de tipo Adobe. Sin embargo, hay excepciones, y como se ha indicado anteriormente, hay alternativas a los sistemas de administracion de fuentes por defecto de Windows u otro sistema operativo. El administrador tipo Adobe proporciona algunas interfaces alternativas para este procedimiento, como hacen otros tipos de sistemas de administracion de terceras partes. En la mayona de los casos, debena decidirse si soportar la interfaz o ignorarla. El fin de la restriccion de sistema operativo no es proporcionar una capa universal para todos estos sistemas, solo hacerlo asf para el propio subsistema del sistema operativo.
Muchas aplicaciones requieren que se configuren las variables de entorno. Esto es muy comun en los sistemas UNIX, pero tambien se usa mucho por el software, que fue escrito originalmente en UNIX y portado a los sistemas operativos Windows. Las aplicaciones en los sistemas operativos Windows dependen en gran medida de la variable de entorno DOS PATH y a menudo configurar sus propias entradas espedficas de aplicacion. En los entornos de Windows 9x/Me, hay muchas configuraciones de entorno, que pueden aplicarse cuando en su nucleo esta el subsistema DOS. Si una aplicacion requiere la presencia de unas variables espedficas, o valores a configurarse en las variables de entorno existentes, las variables de entorno necesarias se especificaran en el archivo de configuracion de la restriccion de sistema operativo. La restriccion de sistema operativo configurara esas variables para el procedimiento principal de la aplicacion cuando se ponga en marcha. Puesto que las aplicaciones no cambian normalmente las configuraciones de entorno cuando estan en funcionamiento, el entorno virtual no atrapara esas llamadas, ni las proporcionara el complemento completo de la funcionalidad que hacen el registro y el subsistema de configuracion.
RECUPERACION
En algunos casos mostrados en las secciones anteriores, las modificaciones reales deben hacerse al sistema operativo. Esto es frecuente con los controladores de dispositivos y las fuentes. Ademas, pueden realizarse cambios al entorno virtual que se necesite para persistirse y estar disponible la proxima vez que se ejecute la aplicacion. Se requiere que el sistema de restriccion de sistema operativo sea capaz de recuperarse de cambios en el sistema, eliminando el cambio del sistema en la primera oportunidad posible. Como alternativa, si el sistema se bloquea durante una ejecucion de la aplicacion, la restriccion de sistema operativo debena realizar un seguimiento de la suficiente informacion para eliminar cualquier cambio en el sistema si se reinicia o no, y debena realizar un seguimiento de los cambios hechos en el entorno virtual. En la realizacion preferida, esto se implementa como un registro de transacciones, pero en otras realizaciones puede hacerse como cualquier otro componente similar, que puede leerse al iniciar el sistema de manera que pueden anularse los cambios.
5
10
15
20
25
30
35
40
CONTROL DE VIRTUALIZACION
Un aspecto importante de la invencion se refiere al control de las muchas facetas de la virtualizacion que es capaz de hacer la restriccion de sistema operativo. En la realizacion preferida existe una instrumentacion programable para determinar los aspectos correctos de un sistema de software a controlar. Tambien se incluye un procedimiento para permitir a los administradores y a los usuarios finales para ver y modificar los elementos a virtualizarse por el sistema.
En el programa automatizado, se observa la aplicacion a controlarse con el fin de evaluar los aspectos de control. El programa automatizado es capaz de realizar esta tarea durante el procedimiento de instalacion de la aplicacion, durante el tiempo de ejecucion de la aplicacion, o una combinacion de ambos. En la realizacion preferida, la restriccion de sistema operativo esta integrada en una aplicacion contenedora. Tras la instalacion, o despues de uno o muchos usos del software, la aplicacion contenedora consultara a la restriccion de sistema operativo para obtener una lista detallada de todas sus acciones. A partir de esta lista de acciones, la aplicacion contenedora creara los archivos de configuracion necesarios para cargar y hacer funcionar la restriccion de sistema operativo en usos posteriores.
Si se usa como parte del procedimiento de instalacion, la restriccion de sistema operativo, en la realizacion preferida, actuara como una capa virtual que permite la instalacion que se introducira solo en su entorno. Despues de la instalacion, todos los archivos, configuraciones, y col. pueden volcarse para una recarga posterior. De esta manera, la instalacion dejara el sistema original intacto y habra creado automaticamente los archivos de configuracion necesarios. Cuando se usa durante el uso de la aplicacion, la restriccion de sistema operativo es capaz de grabar o las modificaciones diferenciales del entorno, o recodificar los archivos de configuracion.
La restriccion de sistema operativo pasara su informacion a la aplicacion contenedora para un procesamiento posterior. En la realizacion preferida, ademas de las entradas automaticas que puede crear el sistema, la aplicacion contenedora esta programada con un sistema operativo espedfico y el conocimiento espedfico de la aplicacion o del dominio. Este conocimiento se usa para alterar la salida del procedimiento para reflejar los usos conocidos de los elementos de configuracion o de otras entradas. En la realizacion preferida, se emplea un sistema basado en reglas para comparar los comportamientos observados con los escenarios conocidos con el fin de efectuar cambios en la codificacion.
La aplicacion contenedora se usa como un visor y/o un editor para la salida de configuracion del procedimiento. Este editor, en la realizacion preferida, permite a un administrador de sistema anadir, editar o eliminar elementos o grupos de elementos de la configuracion. Al observar la configuracion a traves del editor, el administrador puede hacer tambien replicas de la configuracion, cambiar elementos espedficos cuando sea necesario para efectuar los cambios a nivel de aplicacion o personalizados por el usuario.
Haciendo referencia ahora a la figura 1, se ilustra funcionalmente una realizacion de la presente invencion. En esta realizacion, se ilustran dos conjuntos de datos de aplicacion/usuario 60. La restriccion 100 de sistema operativo mantiene las dos instancias de la aplicacion 50 de que interfieran entre sf. Ademas, como se ha explicado anteriormente, la restriccion 100 de sistema operativo sirve como una capa de abstraccion y como tal recoge los comandos y las comunicaciones entre el software 50 de aplicacion y el sistema 10 operativo real del equipo cliente. Como se ilustra graficamente por las flechas, ciertos comandos estan entre la restriccion de sistema operativo y la aplicacion de software, esto es a diferencia de las instalaciones tfpicas en las que estos comandos senan ejecutados en su lugar por el propio sistema operativo, lo que resulta en cambios en el equipo cliente que podnan no ser necesariamente los que el operador ha previsto. Por otro lado, otros comandos pasan a traves de la restriccion de sistema operativo y a continuacion se transfieren al propio sistema operativo.

Claims (4)

  1. REIVINDICACIONES
    1. Un sistema para crear un entorno de software de aplicacion sin cambiar un sistema (10) operativo de un equipo cliente, comprendiendo el sistema una capa (100) de abstraccion y proteccion de sistema operativo,
    en el que dicha capa de abstraccion y proteccion esta interpuesta entre una aplicacion (50, 52, 54) de software en 5 ejecucion y dicho sistema operativo, por lo que se proporciona un entorno virtual en el que pueden ejecutarse una aplicacion y por lo que dicho sistema operativo es un sistema operativo Windows que comprende un registro de Windows,
    en el que la capa de abstraccion y proteccion de sistema operativo responde con una clave y su valor si dicha clave y el valor se almacenan dentro de la capa de abstraccion y proteccion de sistema operativo, si no se 10 almacenan, la capa de abstraccion y proteccion de sistema operativo permite la solicitud para pasar a traves del registro de Windows.
  2. 2. El sistema de la reivindicacion 1, en el que todas las operaciones en el registro de Windows y los archivos .ini son a traves de la API de Win32, comprendiendo ademas el sistema un medio para funciones de interceptacion, por lo que cada vez que se invocan dichas funciones otra funcion o aplicacion intercepta la llamada.
    15 3. El sistema de la reivindicacion 2, en el que el sistema intercepta cada funcion API adecuada para dar servicio a
    una solicitud si se hace por una aplicacion ejecutada desde un servidor o si se hace por una aplicacion contra una clave de configuracion que se administra activamente.
  3. 4. El sistema de la reivindicacion 1, que comprende ademas un componente de registro de Windows virtual para proporcionar un registro de funcion completo a una aplicacion, pero evitar la modificacion del registro de sistema
    20 subyacente.
  4. 5. El sistema de la reivindicacion 1, en el que si se hace un intento de modificar el valor de dicha clave, la capa de abstraccion y proteccion de sistema operativo permite que la modificacion se produzca solamente sobre sf misma.
ES02736858.8T 2001-05-16 2002-05-15 Capa de abstracción y protección del sistema operativo Expired - Lifetime ES2582164T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US859209 2001-05-16
US09/859,209 US7028305B2 (en) 2001-05-16 2001-05-16 Operating system abstraction and protection layer
PCT/US2002/015378 WO2002093369A1 (en) 2001-05-16 2002-05-15 Operating system abstraction and protection layer

Publications (1)

Publication Number Publication Date
ES2582164T3 true ES2582164T3 (es) 2016-09-09

Family

ID=25330346

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02736858.8T Expired - Lifetime ES2582164T3 (es) 2001-05-16 2002-05-15 Capa de abstracción y protección del sistema operativo

Country Status (8)

Country Link
US (2) US7028305B2 (es)
EP (1) EP1419437B1 (es)
JP (1) JP4178036B2 (es)
AU (1) AU2002309834B2 (es)
CA (1) CA2465880C (es)
ES (1) ES2582164T3 (es)
TW (1) TW588255B (es)
WO (1) WO2002093369A1 (es)

Families Citing this family (210)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453334B1 (en) 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US20030055967A1 (en) * 1999-05-17 2003-03-20 David Dewitt Worley Encapsulating local application environments in a cluster within a computer network
US20060277433A1 (en) * 2000-05-19 2006-12-07 Self Repairing Computers, Inc. Computer having special purpose subsystems and cyber-terror and virus immunity and protection features
US7111201B2 (en) * 2000-05-19 2006-09-19 Self Repairing Computers, Inc. Self repairing computer detecting need for repair and having switched protected storage
US7096381B2 (en) * 2001-05-21 2006-08-22 Self Repairing Computer, Inc. On-the-fly repair of a computer
US7137034B2 (en) * 2000-05-19 2006-11-14 Vir2Us, Inc. Self repairing computer having user accessible switch for modifying bootable storage device configuration to initiate repair
US8831995B2 (en) 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US7613930B2 (en) 2001-01-19 2009-11-03 Trustware International Limited Method for protecting computer programs and data from hostile code
US7392541B2 (en) * 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US7849360B2 (en) * 2001-05-21 2010-12-07 Vir2Us, Inc. Computer system and method of controlling communication port to prevent computer contamination by virus or malicious code
US7509369B1 (en) * 2001-07-11 2009-03-24 Swsoft Holdings, Ltd. Balancing shared servers in virtual environments
US7624439B2 (en) * 2001-10-29 2009-11-24 Seventh Knight Authenticating resource requests in a computer system
US7536598B2 (en) * 2001-11-19 2009-05-19 Vir2Us, Inc. Computer system capable of supporting a plurality of independent computing environments
US20030115458A1 (en) * 2001-12-19 2003-06-19 Dongho Song Invisable file technology for recovering or protecting a computer file system
US7340777B1 (en) * 2003-03-31 2008-03-04 Symantec Corporation In memory heuristic system and method for detecting viruses
US7788699B2 (en) * 2002-03-06 2010-08-31 Vir2Us, Inc. Computer and method for safe usage of documents, email attachments and other content that may contain virus, spy-ware, or malicious code
US20030177214A1 (en) * 2002-03-13 2003-09-18 D-Link Corporation Dynamic SNMP network device
US20030221094A1 (en) * 2002-04-17 2003-11-27 Avery Pennarun Method and system for configuring a computer
GB0212314D0 (en) * 2002-05-28 2002-07-10 Symbian Ltd Secure mobile wireless device
US7945897B1 (en) * 2002-06-12 2011-05-17 Symantec Corporation Method and system for running an application in a clean operating environment using a layered computing system
US7886291B1 (en) * 2003-06-11 2011-02-08 Symantec Corporation Layer typed prioritizing application layered systems
US7165260B2 (en) * 2002-06-12 2007-01-16 Fsl, L.L.C. Layered computing systems and methods for insecure environments
US8843903B1 (en) 2003-06-11 2014-09-23 Symantec Corporation Process tracking application layered system
US7496931B2 (en) 2003-12-30 2009-02-24 Symantec Corporation Portable memory storage devices containing public context application layers
US7117495B2 (en) * 2002-06-12 2006-10-03 Altiris, Inc. Systems and methods for the creation of software packages using layered systems
US7461086B1 (en) 2006-01-03 2008-12-02 Symantec Corporation Run-time application installation application layered system
US7549164B2 (en) * 2003-06-11 2009-06-16 Symantec Corporation Intrustion protection system utilizing layers and triggers
US8010961B1 (en) 2003-06-11 2011-08-30 Symantec Corporation Data layer prioritization in an application layered system
US7620956B2 (en) * 2003-06-11 2009-11-17 Symantec Corporation Portable memory storage devices with application layers
US7877413B1 (en) 2002-06-12 2011-01-25 Symantec Corporation Path variablizing layered system
US7461096B1 (en) * 2003-06-11 2008-12-02 Symantec Corporation Weighted prioritizing layered computing system
US7542988B1 (en) 2006-01-03 2009-06-02 Symantec Corporation File type associative application layered system
US7970789B1 (en) 2003-06-11 2011-06-28 Symantec Corporation Sublayered application layered system
US7512977B2 (en) * 2003-06-11 2009-03-31 Symantec Corporation Intrustion protection system utilizing layers
US8291407B2 (en) 2002-06-12 2012-10-16 Symantec Corporation Systems and methods for patching computer programs
US7143615B2 (en) * 2002-07-31 2006-12-05 Sun Microsystems, Inc. Method, system, and program for discovering components within a network
TWI258701B (en) * 2002-08-26 2006-07-21 Interdigital Tech Corp Wireless device operating system (OS) application programmer's interface
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US7673308B2 (en) * 2002-11-18 2010-03-02 Symantec Corporation Virtual OS computing environment
US7216367B2 (en) * 2003-02-21 2007-05-08 Symantec Corporation Safe memory scanning
US7509644B2 (en) * 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
US7337445B1 (en) 2003-05-09 2008-02-26 Sun Microsystems, Inc. Virtual system console for virtual application environment
US7389512B2 (en) * 2003-05-09 2008-06-17 Sun Microsystems, Inc. Interprocess communication within operating system partitions
US20040226015A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Multi-level computing resource scheduling control for operating system partitions
US8892878B2 (en) * 2003-05-09 2014-11-18 Oracle America, Inc. Fine-grained privileges in operating system partitions
US7437556B2 (en) * 2003-05-09 2008-10-14 Sun Microsystems, Inc. Global visibility controls for operating system partitions
US7461080B1 (en) * 2003-05-09 2008-12-02 Sun Microsystems, Inc. System logging within operating system partitions using log device nodes that are access points to a log driver
US20040226017A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Mechanism for associating resource pools with operating system partitions
EP1634175B1 (en) 2003-05-28 2015-06-24 Citrix Systems, Inc. Multilayer access control security system
US7203696B2 (en) * 2003-08-29 2007-04-10 Microsoft Corporation Dynamic registry partitioning
US7451434B1 (en) * 2003-09-09 2008-11-11 Sap Aktiengesellschaft Programming with shared objects in a shared memory
US20080222160A1 (en) * 2003-09-15 2008-09-11 Macdonald Craig Method and system for providing a program for execution without requiring installation
US7757291B2 (en) 2003-09-15 2010-07-13 Trigence Corp. Malware containment by application encapsulation
US7774762B2 (en) 2003-09-15 2010-08-10 Trigence Corp. System including run-time software to enable a software application to execute on an incompatible computer platform
US7784058B2 (en) * 2003-09-22 2010-08-24 Trigence Corp. Computing system having user mode critical system elements as shared libraries
US7519814B2 (en) * 2003-09-15 2009-04-14 Trigence Corp. System for containerization of application sets
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US20050114870A1 (en) * 2003-11-21 2005-05-26 Song Dong H. System and method for executing an application on a secured run-time environment
WO2005073846A2 (en) * 2004-01-20 2005-08-11 Broadcom Corporation System and method for supporting multiple users
US20050283779A1 (en) * 2004-05-19 2005-12-22 Pronk Van Hoogeveen Joost W D Method and apparatus for deploying software applications using a zone architecture
EP1612977A3 (en) * 2004-07-01 2013-08-21 Yamaha Corporation Control device for controlling audio signal processing device
US7971255B1 (en) * 2004-07-15 2011-06-28 The Trustees Of Columbia University In The City Of New York Detecting and preventing malcode execution
CN100481013C (zh) * 2004-08-03 2009-04-22 索芙特瑞斯提股份有限公司 用于经由上下文策略控制来控制应用程序间关联的系统和方法
US20060048136A1 (en) * 2004-08-25 2006-03-02 Vries Jeff D Interception-based resource detection system
US7690033B2 (en) 2004-09-28 2010-03-30 Exobox Technologies Corp. Electronic computer system secured from unauthorized access to and manipulation of data
US8613048B2 (en) 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US7853947B2 (en) * 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US7752600B2 (en) * 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US7748032B2 (en) 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US7240162B2 (en) * 2004-10-22 2007-07-03 Stream Theory, Inc. System and method for predictive streaming
EP1825390A2 (en) 2004-11-13 2007-08-29 Stream Theory, Inc. Hybrid local/remote streaming
US7653684B2 (en) * 2004-12-03 2010-01-26 Microsoft Corporation Enabling inter-subsystem resource sharing
US7451435B2 (en) * 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US7300621B2 (en) * 2005-03-16 2007-11-27 Siemens Power Generation, Inc. Method of making a ceramic matrix composite utilizing partially stabilized fibers
US20060218165A1 (en) * 2005-03-23 2006-09-28 Vries Jeffrey De Explicit overlay integration rules
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US9716609B2 (en) * 2005-03-23 2017-07-25 Numecent Holdings, Inc. System and method for tracking changes to files in streaming applications
US7707579B2 (en) * 2005-07-14 2010-04-27 International Business Machines Corporation Method and system for application profiling for purposes of defining resource requirements
US7434218B2 (en) * 2005-08-15 2008-10-07 Microsoft Corporation Archiving data in a virtual application environment
US9286109B1 (en) 2005-08-26 2016-03-15 Open Invention Network, Llc Method and system for providing checkpointing to windows application groups
US7934216B2 (en) * 2005-10-03 2011-04-26 International Business Machines Corporation Method and system for load balancing of computing resources
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US7779034B2 (en) 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
US20070106993A1 (en) * 2005-10-21 2007-05-10 Kenneth Largman Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
WO2007120360A2 (en) * 2005-12-29 2007-10-25 Blue Jungle Information management system
US20070201270A1 (en) * 2005-12-30 2007-08-30 Stmicroelectronics Pvt. Ltd. Read only memory device with bitline leakage reduction
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7882227B2 (en) 2006-02-23 2011-02-01 Oracle America, Inc. Mechanism for implementing file access control across a network using labeled containers
US7885975B2 (en) 2006-02-23 2011-02-08 Oracle America, Inc. Mechanism for implementing file access control using labeled containers
US8938473B2 (en) 2006-02-23 2015-01-20 Oracle America, Inc. Secure windowing for labeled containers
US8938554B2 (en) 2006-03-02 2015-01-20 Oracle America, Inc. Mechanism for enabling a network address to be shared by multiple labeled containers
US9038071B2 (en) * 2006-03-30 2015-05-19 Microsoft Technology Licensing, Llc Operating system context isolation of application execution
CN100454260C (zh) * 2006-04-20 2009-01-21 英业达股份有限公司 设备驱动层的虚拟驱动系统及方法
CA2650374A1 (en) * 2006-04-26 2007-11-08 Exobox Technologies Corp. Secure user environment software
EP2407856A1 (en) * 2006-04-28 2012-01-18 E-Bay Inc. Method and system for user-designed application deployment
US9392078B2 (en) * 2006-06-23 2016-07-12 Microsoft Technology Licensing, Llc Remote network access via virtual machine
US9213513B2 (en) * 2006-06-23 2015-12-15 Microsoft Technology Licensing, Llc Maintaining synchronization of virtual machine image differences across server and host computers
US9405521B2 (en) * 2006-06-29 2016-08-02 Microsoft Technology Licensing, Llc Mapping of virtualized setup-free applications for a computing system
US8131644B2 (en) 2006-08-29 2012-03-06 Sap Ag Formular update
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
US20080109466A1 (en) * 2006-11-02 2008-05-08 Microsoft Corporation Virtual Deletion In Merged Registry keys
ITVA20070042A1 (it) * 2007-04-27 2008-10-28 St Microelectronics Srl Metodo di gestione di un dispositivo di memoria e relativo dispositivo di memoria
US8533846B2 (en) 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US8875271B2 (en) * 2006-12-08 2014-10-28 Microsoft Corporation Executing unsigned content and securing access in a closed system
US8775369B2 (en) 2007-01-24 2014-07-08 Vir2Us, Inc. Computer system architecture and method having isolated file system management for secure and reliable data processing
US20080222659A1 (en) * 2007-03-09 2008-09-11 Microsoft Corporation Abstracting operating environment from operating system
CA2682988A1 (en) * 2007-04-05 2008-10-16 Sentillion, Inc. Augmenting a virtual machine hosting environment from within a virtual machine
US9870263B2 (en) 2007-06-29 2018-01-16 Microsoft Technology Licensing, Llc System virtualization instance management for terminal sessions
EP2224338A3 (en) 2007-09-12 2011-03-16 Citrix Systems, Inc. Methods and systems for generating desktop environments providing integrated access to remote and local resources
US9128741B2 (en) * 2007-10-05 2015-09-08 Mcafee, Inc. System, method, and computer program product for conditionally preventing use of hardware virtualization
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
FR2925269B1 (fr) * 2007-12-19 2010-01-15 Promiles Sac a dos permutable en position frontale
EP2238535A4 (en) * 2007-12-20 2011-03-09 Virtual Computer Inc SYSTEMS AND METHODS FOR VIRTUAL COMPUTER MANAGEMENT
US7792934B2 (en) * 2008-01-02 2010-09-07 Citrix Systems International Gmbh Loading of server-stored user profile data
KR101489301B1 (ko) * 2008-03-20 2015-02-06 삼성전자주식회사 가상환경 시스템 및 그의 구동방법
US8688641B1 (en) 2008-03-31 2014-04-01 Symantec Operating Corporation Per user and per process layer visibility
US8438196B1 (en) 2008-03-31 2013-05-07 Symantec Operating Corporation Finer grained data organization using data sublayers
US8261254B2 (en) * 2008-03-31 2012-09-04 Symantec Corporation Dynamic insertion and removal of virtual software sub-layers
US8639734B1 (en) 2008-03-31 2014-01-28 Symantec Operating Corporation Use of external information about a file to determine virtualization
US8578364B2 (en) * 2008-04-25 2013-11-05 Microsoft Corporation Dynamic management of operating system resources
US9100246B1 (en) * 2008-06-19 2015-08-04 Symantec Corporation Distributed application virtualization
US8745601B1 (en) * 2008-07-17 2014-06-03 Apple Inc. Methods and systems for using data structures for operating systems
US8694989B1 (en) 2008-07-17 2014-04-08 Apple Inc. Virtual installation environment
US8315996B2 (en) * 2008-08-13 2012-11-20 International Business Machines Corporation Efficient management of customized functionality within shared data objects
US8135659B2 (en) 2008-10-01 2012-03-13 Sap Ag System configuration comparison to identify process variation
WO2010054019A1 (en) 2008-11-04 2010-05-14 Quado Media Inc. Multi-player, multi-screens, electronic gaming platform and system
US9498711B2 (en) 2008-11-04 2016-11-22 Quado Media Inc. Multi-player, multi-screens, electronic gaming platform and system
US7984332B2 (en) * 2008-11-17 2011-07-19 Microsoft Corporation Distributed system checker
KR101437122B1 (ko) 2008-12-03 2014-09-02 삼성전자 주식회사 Os 가상화를 이용하여 서비스를 제공하는 장치 및 방법
US8396893B2 (en) * 2008-12-11 2013-03-12 Sap Ag Unified configuration of multiple applications
US9256496B1 (en) * 2008-12-15 2016-02-09 Open Invention Network, Llc System and method for hybrid kernel—and user-space incremental and full checkpointing
US8782670B2 (en) * 2009-04-10 2014-07-15 Open Invention Network, Llc System and method for application isolation
US8464256B1 (en) 2009-04-10 2013-06-11 Open Invention Network, Llc System and method for hierarchical interception with isolated environments
US8904004B2 (en) * 2009-04-10 2014-12-02 Open Invention Network, Llc System and method for maintaining mappings between application resources inside and outside isolated environments
US8341631B2 (en) 2009-04-10 2012-12-25 Open Invention Network Llc System and method for application isolation
US9354977B1 (en) * 2008-12-15 2016-05-31 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
US10019327B1 (en) 2008-12-15 2018-07-10 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
US8880473B1 (en) 2008-12-15 2014-11-04 Open Invention Network, Llc Method and system for providing storage checkpointing to a group of independent computer applications
US8745442B1 (en) 2011-04-28 2014-06-03 Open Invention Network, Llc System and method for hybrid kernel- and user-space checkpointing
US8539488B1 (en) 2009-04-10 2013-09-17 Open Invention Network, Llc System and method for application isolation with live migration
US8255429B2 (en) 2008-12-17 2012-08-28 Sap Ag Configuration change without disruption of incomplete processes
US8407700B2 (en) * 2009-03-03 2013-03-26 Symantec Corporation Methods and systems for merging virtualization sublayers
US11538078B1 (en) 2009-04-10 2022-12-27 International Business Machines Corporation System and method for usage billing of hosted applications
US9058599B1 (en) 2009-04-10 2015-06-16 Open Invention Network, Llc System and method for usage billing of hosted applications
US8555360B1 (en) 2009-04-10 2013-10-08 Open Invention Network Llc System and method for on-line and off-line streaming application isolation
US10419504B1 (en) 2009-04-10 2019-09-17 Open Invention Network Llc System and method for streaming application isolation
US8401940B1 (en) 2009-04-10 2013-03-19 Open Invention Network Llc System and method for usage billing of hosted applications
US8401941B1 (en) 2009-04-10 2013-03-19 Open Invention Network Llc System and method for usage billing of hosted applications
US8418236B1 (en) 2009-04-10 2013-04-09 Open Invention Network Llc System and method for streaming application isolation
US9577893B1 (en) 2009-04-10 2017-02-21 Open Invention Network Llc System and method for cached streaming application isolation
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8352937B2 (en) * 2009-08-03 2013-01-08 Symantec Corporation Streaming an application install package into a virtual environment
US8881140B1 (en) 2009-09-04 2014-11-04 Symantec Corporation Systems and methods for virtualizing software associated with external computer hardware devices
US8850428B2 (en) 2009-11-12 2014-09-30 Trustware International Limited User transparent virtualization method for protecting computer programs and data from hostile code
TWI410867B (zh) * 2010-03-24 2013-10-01 Acer Inc 應用軟體的安裝方法
US8862545B2 (en) 2010-06-15 2014-10-14 Microsoft Corporation Multi-environment configuration of data integration projects
US9645839B2 (en) * 2010-10-27 2017-05-09 Microsoft Technology Licensing, Llc Stateful applications operating in a stateless cloud computing environment
US9116728B2 (en) 2010-12-21 2015-08-25 Microsoft Technology Licensing, Llc Providing a persona-based application experience
US9003543B2 (en) 2010-12-21 2015-04-07 Microsoft Technology Licensing, Llc Providing a security boundary
US9354852B2 (en) 2010-12-23 2016-05-31 Microsoft Technology Licensing, Llc Satisfying application dependencies
US9189308B2 (en) 2010-12-27 2015-11-17 Microsoft Technology Licensing, Llc Predicting, diagnosing, and recovering from application failures based on resource access patterns
US8789138B2 (en) 2010-12-27 2014-07-22 Microsoft Corporation Application execution in a restricted application execution environment
US9176742B2 (en) 2010-12-27 2015-11-03 Microsoft Technology Licensing, Llc Converting desktop applications to web applications
US8931037B2 (en) 2010-12-27 2015-01-06 Microsoft Corporation Policy-based access to virtualized applications
US9223611B2 (en) 2010-12-28 2015-12-29 Microsoft Technology Licensing, Llc Storing and resuming application runtime state
US9116725B1 (en) 2011-03-15 2015-08-25 Symantec Corporation Systems and methods for using virtualization of operating-system-level components to facilitate software testing
US11625307B1 (en) 2011-04-28 2023-04-11 International Business Machines Corporation System and method for hybrid kernel- and user-space incremental and full checkpointing
US11307941B1 (en) 2011-04-28 2022-04-19 Open Invention Network Llc System and method for hybrid kernel- and user-space incremental and full checkpointing
US9117079B1 (en) * 2013-02-19 2015-08-25 Trend Micro Inc. Multiple application versions in a single virtual machine
US9225737B2 (en) 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
US9338143B2 (en) 2013-03-15 2016-05-10 Shape Security, Inc. Stateless web content anti-automation
US8869281B2 (en) 2013-03-15 2014-10-21 Shape Security, Inc. Protecting against the introduction of alien content
US20140283038A1 (en) 2013-03-15 2014-09-18 Shape Security Inc. Safe Intelligent Content Modification
US8990839B2 (en) 2013-04-22 2015-03-24 Microsoft Technology Licensing, Llc Controlling runtime access to application programming interfaces
US9270647B2 (en) 2013-12-06 2016-02-23 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US9225729B1 (en) 2014-01-21 2015-12-29 Shape Security, Inc. Blind hash compression
US9489526B1 (en) 2014-01-21 2016-11-08 Shape Security, Inc. Pre-analyzing served content
US8893294B1 (en) 2014-01-21 2014-11-18 Shape Security, Inc. Flexible caching
KR101624170B1 (ko) 2014-03-03 2016-05-25 주식회사 틸론 윈도우즈의 레지스트리를 이기종 운영체제의 ini파일로 변환하는 레지스트리변환방법, 컴퓨터 장치 및 컴퓨터에서 판독가능한 기록매체
US8997226B1 (en) 2014-04-17 2015-03-31 Shape Security, Inc. Detection of client-side malware activity
US9223966B1 (en) 2014-05-04 2015-12-29 Symantec Corporation Systems and methods for replicating computing system environments
US9411958B2 (en) 2014-05-23 2016-08-09 Shape Security, Inc. Polymorphic treatment of data entered at clients
US9858440B1 (en) 2014-05-23 2018-01-02 Shape Security, Inc. Encoding of sensitive data
US9405910B2 (en) 2014-06-02 2016-08-02 Shape Security, Inc. Automatic library detection
US9075990B1 (en) 2014-07-01 2015-07-07 Shape Security, Inc. Reliable selection of security countermeasures
US9003511B1 (en) 2014-07-22 2015-04-07 Shape Security, Inc. Polymorphic security policy action
US9825984B1 (en) 2014-08-27 2017-11-21 Shape Security, Inc. Background analysis of web content
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
US9602543B2 (en) 2014-09-09 2017-03-21 Shape Security, Inc. Client/server polymorphism using polymorphic hooks
US9628279B2 (en) * 2014-09-30 2017-04-18 Microsoft Technology Licensing, Llc Protecting application secrets from operating system attacks
US9785425B2 (en) 2014-09-30 2017-10-10 Airwatch Llc Managed clone applications
US9813440B1 (en) 2015-05-15 2017-11-07 Shape Security, Inc. Polymorphic treatment of annotated content
US9986058B2 (en) 2015-05-21 2018-05-29 Shape Security, Inc. Security systems for mitigating attacks from a headless browser executing on a client computer
WO2017007705A1 (en) 2015-07-06 2017-01-12 Shape Security, Inc. Asymmetrical challenges for web security
US10230718B2 (en) 2015-07-07 2019-03-12 Shape Security, Inc. Split serving of computer code
US9807113B2 (en) 2015-08-31 2017-10-31 Shape Security, Inc. Polymorphic obfuscation of executable code
US9785790B2 (en) 2015-12-15 2017-10-10 International Business Machines Corporation Protecting computer security applications
US10754829B2 (en) 2017-04-04 2020-08-25 Oracle International Corporation Virtual configuration systems and methods

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548779A (en) * 1993-12-21 1996-08-20 Taligent System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects
US6763454B2 (en) * 1994-05-27 2004-07-13 Microsoft Corp. System for allocating resources in a computer system
US5961582A (en) * 1994-10-25 1999-10-05 Acorn Technologies, Inc. Distributed and portable execution environment
US5901312A (en) * 1994-12-13 1999-05-04 Microsoft Corporation Providing application programs with unmediated access to a contested hardware resource
US6601081B1 (en) * 1995-06-30 2003-07-29 Sun Microsystems, Inc. Method and apparatus for context maintenance in windows
US5752005A (en) 1996-01-22 1998-05-12 Microtest, Inc. Foreign file system establishing method which uses a native file system virtual device driver
US6023721A (en) 1997-05-14 2000-02-08 Citrix Systems, Inc. Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility
US6134602A (en) * 1997-09-24 2000-10-17 Microsoft Corporation Application programming interface enabling application programs to group code and data to control allocation of physical memory in a virtual memory system
US6026402A (en) 1998-01-07 2000-02-15 Hewlett-Packard Company Process restriction within file system hierarchies
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6789114B1 (en) * 1998-08-05 2004-09-07 Lucent Technologies Inc. Methods and apparatus for managing middleware service in a distributed system
KR20000057127A (ko) 1999-02-03 2000-09-15 송동호 소프트웨어 임대 시스템을 위한 분산컴퓨팅 환경에서의프로그램 수행시스템 및 그 방법
US6640249B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
WO2001092981A2 (en) 2000-05-28 2001-12-06 Yaron Mayer System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages

Also Published As

Publication number Publication date
JP4178036B2 (ja) 2008-11-12
AU2002309834B2 (en) 2007-11-01
AU2002309834A2 (en) 2002-11-25
EP1419437B1 (en) 2016-06-08
CA2465880A1 (en) 2002-11-21
EP1419437A1 (en) 2004-05-19
US7451451B2 (en) 2008-11-11
CA2465880C (en) 2011-10-11
WO2002093369A1 (en) 2002-11-21
US7028305B2 (en) 2006-04-11
US20020174215A1 (en) 2002-11-21
US20040268361A1 (en) 2004-12-30
JP2004533054A (ja) 2004-10-28
TW588255B (en) 2004-05-21

Similar Documents

Publication Publication Date Title
ES2582164T3 (es) Capa de abstracción y protección del sistema operativo
US11693954B2 (en) System and method for controlling inter-application association through contextual policy control
US20210326153A1 (en) Control flow integrity enforcement at scale
RU2691187C1 (ru) Система и способы аудита виртуальной машины
US7272832B2 (en) Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
AU2002309834A1 (en) Operating system abstraction and protection layer
US20070204259A1 (en) Protection Domains for a Computer Operating System
US20020065776A1 (en) Method and process for virtualizing file system interfaces
US8910155B1 (en) Methods and systems for injecting endpoint management agents into virtual machines
US8495750B2 (en) Filesystem management and security system
US20020066022A1 (en) System and method for securing an application for execution on a computer
US20090307781A1 (en) Program execution control method, its device, and execution control program for same
US20020092003A1 (en) Method and process for the rewriting of binaries to intercept system calls in a secure execution environment
US20210306304A1 (en) Method and apparatus for distributing confidential execution software
US20020066021A1 (en) Method and process for securing an application program to execute in a remote environment
EP3785149B1 (en) Memory assignment for guest operating systems
Sensaoui et al. An in-depth study of MPU-based isolation techniques
US20020065876A1 (en) Method and process for the virtualization of system databases and stored information
US20020065869A1 (en) Method and process for virtualizing user interfaces
US20020065874A1 (en) Method and process for virtualizing network interfaces
WO2002044850A2 (en) System and method for securing an application for execution on a computer
Mabon Sigreturn oriented programming is a real threat