PROCEDIMIENTO Y APARATO A PRUEBA DE FALLOS PARA ACTUALIZACIONES PERSONALIZADAS DE IMÁGENES DE SOPORTE LÓGICO A MEMORIA NO VOLÁTIL.

Un procedimiento de actualización a prueba de fallos en un entorno de cálculo,

que comprende: segmentar una imagen (202) de un sistema operativo en porciones separadas actualizables que comprenden una partición (204) del núcleo y una partición (206) del sistema, en el que la partición del sistema comprende una pluralidad de componentes; y actualizar al menos una porción en aislamiento con respecto a otra partición, en el que la actualización de la partición del núcleo comprende leer una imagen existente del núcleo e introducirla en una memoria intermedia, realizar una copia de seguridad de la imagen existente del núcleo comprimiéndola en una memoria (210) de usuario, añadir nuevos módulos (718) y módulos que no se modifican (724) a una nueva lista de módulos, en la que un módulo designa un único fichero ejecutable, construir una imagen de remplazo para la partición del núcleo y escribir la imagen de remplazo encima de la imagen existente del núcleo en la partición del núcleo; y actualizar la porción del sistema comprende actualizar por separado únicamente componentes de la partición del sistema, en el que un componente designa una colección de módulos

Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E04029093.

Solicitante: MICROSOFT CORPORATION.

Nacionalidad solicitante: Estados Unidos de América.

Dirección: ONE MICROSOFT WAY REDMOND, WA 90852 ESTADOS UNIDOS DE AMERICA.

Inventor/es: Rogers,Andrew, Glaum,Jeffery, Plagge,Mark, Tonkelowitz,Mark, Markley,Michael, Patel,Sachin, Shell,Scott.

Fecha de Publicación: .

Fecha Solicitud PCT: 8 de Diciembre de 2004.

Clasificación PCT:

  • G06F11/14 FISICA.G06 CALCULO; CONTEO.G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 11/00 Detección de errores; Corrección de errores; Monitorización (detección, corrección o monitorización de errores en el almacenamiento de información basado en el movimiento relativo entre el soporte de registro y el transductor G11B 20/18; monitorización, es decir, supervisión del progreso del registro o reproducción G11B 27/36; en memorias estáticas G11C 29/00). › Detección o corrección de errores en los datos por redundancia en las operaciones, p. ej. mediante la utilización de diversas secuencias de operaciones que conduzcan al mismo resultado (G06F 11/16 tiene prioridad).

Clasificación antigua:

  • G06F11/14 G06F 11/00 […] › Detección o corrección de errores en los datos por redundancia en las operaciones, p. ej. mediante la utilización de diversas secuencias de operaciones que conduzcan al mismo resultado (G06F 11/16 tiene prioridad).

Países PCT: Austria, Bélgica, Suiza, Alemania, Dinamarca, España, Francia, Reino Unido, Grecia, Italia, Liechtensein, Luxemburgo, Países Bajos, Suecia, Mónaco, Portugal, Irlanda, Eslovenia, Finlandia, Rumania, Chipre, Lituania, Letonia, Ex República Yugoslava de Macedonia, Albania.

PDF original: ES-2364400_T3.pdf

 


Fragmento de la descripción:

Referencia cruzada a solicitudes relacionadas

La presente invención reivindica prioridad con respecto a la solicitud provisional de patente estadounidense con nº de serie 60/530.184, presentada el 16 de diciembre de 2003.

La presente invención está relacionada con las siguientes solicitudes de patente estadounidense, presentadas de forma concurrente con la presente:

Expediente nº 4281/307.650, “Determining the Maximal Set of Dependent Software Updates Valid for Installation”, correspondiente al documento US 2005/132 350;

Expediente nº 4291/307.651, “Ensuring that a Software Update may be Installed or Run only on a Specific Device or Class of Devices”.

Expediente nº 4301/307.652, “Self-Describing Software Image Update components”, correspondiente al documento EP 154 8587; y

Expediente nº 4311/307.663, “Creating File Systems Within a File In a Storage Technology-Abstracted Manner”, correspondiente al documento EP-15 44 732.

Campo de la invención

La invención versa en general acerca de dispositivo de cálculo y, más en particular, acerca de la actualización de la memoria no volátil de los dispositivos de cálculo.

Antecedentes

Los dispositivos móviles de cálculo como las agendas electrónicas, los teléfonos móviles contemporáneos y los ordenadores de mano y con tamaño de bolsillo se están convirtiendo en instrumentos de usuario importantes y populares. En general, se han vuelto lo bastante pequeños como para resultar sumamente convenientes, a la vez que consumen menos batería y, a la vez, se han vuelto capaces de ejecutar aplicaciones más potentes.

Durante el proceso de fabricación de tales dispositivos, típicamente se construyen imágenes de un sistema operativo integradas en un fichero monolítico de imagen y almacenadas en una memoria no volátil (por ejemplo, memoria flash NAND o NOR, un disco duro, etcétera) de cada dispositivo. En consecuencia, actualizar tal dispositivo era, hasta ahora, un problema complejo y que consumía muchos recursos, que generalmente requería una solución a medida.

Por ejemplo, actualizar tal dispositivo implica típicamente descargar un fichero monolítico de imagen complemente nuevo que comprende una sola imagen estática desarrollada y hecha pública para ejecutarse en una colección de dispositivos. Como puede apreciarse fácilmente, se requiere una cantidad significativa de recursos del sistema (por ejemplo, memoria para guardar temporalmente la imagen de la actualización, ancho de banda de la red para recibir el fichero completo de imagen, etcétera), con independencia de lo que haya cambiado y, así, el procedimiento de actualización del dispositivo normalmente necesita una solución excepcional a medida.

Se necesita una manera mejor de actualizar la memoria no volátil de los dispositivos de cálculo que sea más flexible, dinámica y eficiente que los mecanismos de actualización actuales y que, pese a todo, sea a prueba de fallos.

El documento EP 1 351 137 A2 da a conocer un cargador de arranque y un procedimiento de arranque con prestaciones de Internet para un dispositivo que comprende una pila IP que soporta protocolos de Internet y un motor de ejecución de secuencias de órdenes para ejecutar una secuencia de órdenes por defecto.

El documento US 6 591 376 B1 da a conocer un procedimiento y un sistema para la recuperación y la actualización a prueba de fallos de un sistema operativo integrado.

El documento EP 0 936 548 A1 da a conocer un procedimiento y un sistema para la pronta recuperación automática de un sistema. Un sistema de ordenador incluye una memoria del sistema, que contiene instrucciones de BIOS, que tiene múltiples particiones susceptibles de arranque y la capacidad de habilitar una protección de Recuperación Automática del Sistema (ASR) durante una fase inicial de procedimiento de arranque.

El documento WO 0152065 A2 da a conocer un procedimiento y un aparato para realizar una copia de seguridad de un código de aplicación tras un fallo durante una actualización de código.

Resumen

El objeto de la presente invención es proporcionar un procedimiento a prueba de fallos y rápido para actualizar particiones y un sistema correspondiente.

Este objeto se solventa por la materia de las reivindicaciones independientes.

Las realizaciones preferentes están definidas por las reivindicaciones dependientes.

Brevemente, la presente invención se dirige hacia un sistema y un procedimiento que aplican actualizaciones del soporte lógico en forma de entidades autocontenidas y seguras a la memoria no volátil integrada de un dispositivo de manera a prueba de fallos. Pueden aplicarse diversos tipos de actualizaciones del soporte lógico, incluyendo actualizaciones que pueden contener únicamente cambios a una actualización previa. Además, las actualizaciones del soporte lógico pueden contener tanto código ejecutable como datos.

En una implementación, tras un rearranque, un cargador inicial de programas determina cuándo se ha solicitado una actualización o si está en curso y, si es así, arranque a un cargador de actualizaciones en vez de al código normal del sistema operativo. El cargador de actualizaciones opera para validar cualquier actualización pendiente para aplicar las actualizaciones a la memoria flash (o a otros medios de memoria) según sea apropiado. Por razones de seguridad y de control, el cargador de actualizaciones es la única entidad del sistema que tiene acceso de escritura a la memoria protegida (por ejemplo, una partición NK y una partición de sistema). Debería hacerse notar que la aplicación de actualización también tiene acceso de escritura a las regiones reservadas de la memoria flash.

Para actualizar, se descargan al sistema paquetes de actualización (que pueden estar en diversas formas) y se validan por medio de un procedimiento de validación de paquetes, que incluye la comprobación, por razones de seguridad, de que cada paquete está debidamente firmado y de que los paquetes, en general, están debidamente construidos. Si son válidas, las actualizaciones son puestas en cola y se pone una bandera para que el cargador inicial de programas detecte que se desea una actualización. Acto seguido, se hace que el dispositivo rearranque.

Tras el rearranque, el cargador inicial de programas ve que está puesta la bandera de actualizaciones y hace que se ejecute el cargador de actualizaciones, por ejemplo descomprimiendo el cargador de actualizaciones (si está comprimido) en la RAM y saltando al código del cargador de actualizaciones. Para cada paquete, empezando con el paquete de núcleo (si existe tal cosa), el cargador de actualizaciones procesa el paquete, lo revalida, corrige la dirección de los ficheros según sea necesario en la sección de la RAM en base a consideraciones de la memoria flash y escribe los ficheros a su correspondiente partición. Obsérvese que el cargador inicial de programas deja la memoria flash sin bloquear para que el cargador de actualizaciones pueda escribir en ella.

Para interpretar el contenido del paquete, cada paquete contiene un fichero de manifiesto de dispositivos que tiene información detallada sobre el paquete, y el cargador de actualizaciones lee el contenido, incluyendo una ID, globalmente única, para la identificación del paquete, una versión del paquete, información de dependencias relativa a otros paquetes, diversas configuraciones y una lista de ficheros y de versiones de ficheros incluidos en el paquete. El fichero de manifiesto está incluido en el paquete, haciendo con ello que el paquete se describa a sí mismo, y se almacena en último término en el dispositivo después de la instalación. Una colección de ficheros de manifiesto en el dispositivo comprende una base de datos del estado de instalación de los paquetes en el dispositivo, que puede ser enumerado.

El cargador de actualizaciones gestiona las imágenes comprimidas y no comprimidas recuperando de la partición o la imagen información diversa en cuanto a la imagen y descomprimiendo la imagen en la RAM. Si no está comprimida, la información, sencillamente, se lee, por ejemplo, mediante el conocimiento previo del lugar en el que se encuentra el registro maestro de arranque, lo que proporciona la ubicación de la partición activa que se está actualizando.

En una implementación, se aplica primero cualquier actualización del núcleo... [Seguir leyendo]

 


Reivindicaciones:

1. Un procedimiento de actualización a prueba de fallos en un entorno de cálculo, que comprende:

segmentar una imagen (202) de un sistema operativo en porciones separadas actualizables que comprenden una partición (204) del núcleo y una partición (206) del sistema, en el que la partición del sistema comprende una pluralidad de componentes; y

actualizar al menos una porción en aislamiento con respecto a otra partición, en el que la actualización de la partición del núcleo comprende

leer una imagen existente del núcleo e introducirla en una memoria intermedia,

realizar una copia de seguridad de la imagen existente del núcleo comprimiéndola en una memoria

(210) de usuario,

añadir nuevos módulos (718) y módulos que no se modifican (724) a una nueva lista de módulos, en la que un módulo designa un único fichero ejecutable,

construir una imagen de remplazo para la partición del núcleo y

escribir la imagen de remplazo encima de la imagen existente del núcleo en la partición del núcleo; y

actualizar la porción del sistema comprende actualizar por separado únicamente componentes de la partición del sistema, en el que un componente designa una colección de módulos.

2. El procedimiento de la reivindicación 1 en el que la actualización de al menos una partición en aislamiento con respecto a otra partición comprende construir una imagen de remplazo para una primera partición y escribir la imagen de remplazo encima de una imagen existente en la primera partición y actualizar una segunda partición actualizando por separado al menos dos componentes en una imagen en la segunda partición.

3. El procedimiento de la reivindicación 2 que, además, comprende realizar una copia de seguridad de la imagen existente en la primera partición a una imagen de copia de seguridad, determinar si se completó con éxito la escritura de la imagen de remplazo y, si no, restaurar la imagen a partir de la imagen de copia de seguridad.

4. El procedimiento de la reivindicación 3 en el que la copia de seguridad de la imagen existente incluye almacenar la imagen de la copia de seguridad de forma comprimida.

5. El procedimiento de la reivindicación 2 en el que actualizar la segunda partición comprende registrar la identidad de cada componente actualizado a un fichero de registro, de modo que, si ocurre un fallo, se puede acceder al fichero de registro para determinar en la actualización de qué componente ocurrió el fallo.

6. El procedimiento de la reivindicación 2 en el que actualizar la segunda partición comprende aplicar (1008) un fichero de diferencias binarias a un componente existente.

7. El procedimiento de la reivindicación 6 en el que aplicar un fichero de diferencias binarias a un componente existente comprende aplicar un subconjunto del fichero de diferencias binarias a un subconjunto del componente existente.

8. El procedimiento de la reivindicación 7 en el que el subconjunto comprende un bloque de datos que tiene un tamaño definido.

9. El procedimiento de la reivindicación 2 en el que actualizar la segunda partición comprende simular un proceso de actualización y determinar que la simulación tuvo éxito antes de escribir definitivamente las actualizaciones a la segunda partición.

10. El procedimiento de la reivindicación 1 que, además, comprende:

determinar si debe arrancarse el dispositivo en un modo de sistema operativo o en un modo de actualización; y

cuando se arranca el dispositivo (120) de cálculo al modo de actualización, llevar a cabo al menos una actualización de una imagen en la memoria del dispositivo mientras se registra un estado de la actualización para permitir la recuperación de cualquier fallo que pueda ocurrir durante cada actualización.

11. El procedimiento de la reivindicación 10 en el que determinar si debe arrancarse el dispositivo (120) en un modo de sistema operativo o en un modo de actualización comprende comprobar una bandera que se fija antes de un rearranque.

12. El procedimiento de la reivindicación 10 en el que la imagen (202) es dividida en al menos dos particiones y en el que una partición seleccionada es actualizada construyendo una imagen de remplazo para la partición y escribiendo la imagen de remplazo encima de una imagen existente en la partición.

13. El procedimiento de la reivindicación 12 que, además, comprende la realización de una copia de seguridad de la imagen existente en la partición creando una imagen de copia de seguridad, determinar si la escritura de la imagen de remplazo se completó con éxito y, si no, restaurar la imagen existente a partir de la imagen de copia de seguridad.

14. El procedimiento de la reivindicación 13 en el que la copia de seguridad de la imagen existente incluye almacenar la imagen de copia de seguridad de forma comprimida.

15. El procedimiento de la reivindicación 10 en el que la imagen (202) está dividida en al menos dos particiones y en el que se actualiza una partición seleccionada actualizando por separado al menos dos componentes en la imagen.

16. El procedimiento de la reivindicación 15 en el que una de las particiones es una partición de sistema y en el que la actualización por separado de al menos dos componentes en la imagen comprende la escritura de ficheros del sistema operativo en la partición.

17. El procedimiento de la reivindicación 10 en el que la realización de la al menos una actualización comprende la aplicación (1008) de un fichero de diferencias binarias a un componente existente.

18. El procedimiento de la reivindicación 17 en el que la aplicación (1008) de un fichero de diferencias binarias a un componente existente comprende la aplicación de un subconjunto del fichero de diferencias binarias a un subconjunto del componente existente.

19. El procedimiento de la reivindicación 18 en el que el subconjunto comprende un bloque de datos que tiene un tamaño definido.

20. El procedimiento de la reivindicación 18 en el que la realización de al menos una actualización a una imagen

(202) comprende simular un proceso de actualización y determinar que la simulación tuvo éxito antes de escribir definitivamente la actualización.

21. El procedimiento de la reivindicación 10 en el que las actualizaciones en un conjunto de actualizaciones se llevan a cabo individualmente en ficheros en paquetes y ficheros, y la información de paquetes y ficheros individuales se registran, de modo que, tras cualquier fallo, el acceso al fichero de registro determina en qué paquete y en qué fichero del paquete ocurrió el fallo.

22. Uno o más medios legibles por ordenador que tienen instrucciones ejecutables por ordenador que, cuando se ejecutan, llevan a cabo el procedimiento según una de las reivindicaciones 1 a 21.

23. Un sistema en un dispositivo (120) de cálculo que comprende:

un mecanismo para segmentar una imagen (202) de un sistema operativo en porciones separadas actualizables que comprenden una partición (204) del núcleo y una partición (206) del sistema, en el que la partición del sistema comprende una pluralidad de componentes; y

un cargador de actualizaciones para actualizar por separado cada partición

leyendo una imagen existente del núcleo e introduciéndola en una memoria intermedia,

realizando una copia de seguridad de la imagen existente del núcleo comprimiéndola en una memoria

(210) de usuario,

añadiendo nuevos módulos (718) y módulos que no se modifican (724) a una nueva lista de módulos durante la actualización del núcleo, en la que un módulo designa un único fichero ejecutable,

construyendo una imagen de remplazo para la partición del núcleo y

escribiendo la imagen de remplazo encima de la imagen existente del núcleo en la partición del núcleo; y

actualizar la porción del sistema actualizando por separado únicamente componentes de la partición del sistema, en el que un componente designa una colección de módulos.

24. El sistema de la reivindicación 23 en el que un mecanismo de arranque hace que arranque el cargador de actualizaciones tras detectarse una actualización pendiente, comprendiendo el cargador de actualizaciones la única entidad en el código del dispositivo que tiene acceso de escritura a la memoria protegida del dispositivo,

conteniendo la memoria protegida al menos dos particiones y actualizando el cargador de actualizaciones cada partición por separado.

25. El sistema de la reivindicación 23 que, además, comprende un procedimiento de validación en el que, antes del arranque del cargador de actualizaciones, el procedimiento de validación valida al menos un paquete de actualizaciones y, si al menos un paquete de actualizaciones es válido, el procedimiento de validación pone a cada paquete válido en una cola de espera para la actualización y establece un mecanismo para que el mecanismo de arranque detecte la actualización pendiente.

26. El sistema de la reivindicación 25 en el que el procedimiento de validación valida al menos un paquete de actualización comprobando que cada paquete esté debidamente firmado.

27. El sistema de la reivindicación 25 en el que el procedimiento de validación valida al menos un paquete de actualización comprobando que cada paquete esté debidamente construido.

28. El sistema de la reivindicación 23 en el que un mecanismo de arranque arranca el dispositivo (120) en un modo de actualizaciones en base al valor de una bandera que se estableció antes de un rearranque.

29. El sistema de la reivindicación 23 en el que una memoria protegida del dispositivo está dividida en una pluralidad de particiones y en el que una partición seleccionada es actualizada por medio de un componente de actualizaciones construyendo una imagen de remplazo para la partición y escribiendo la imagen de remplazo encima de una imagen existente en la partición seleccionada.

30. El sistema de la reivindicación 29 en el que el componente de actualizaciones realiza una copia de seguridad de una imagen existente en la partición seleccionada en una imagen de copia de seguridad para restaurarla en la partición seleccionada si la imagen de remplazo no se escribe con éxito a la partición seleccionada.

31. El sistema de la reivindicación 30 en el que el componente de actualizaciones realiza una copia de seguridad de una imagen existente de forma comprimida.

32. El sistema de la reivindicación 29 en el que la memoria protegida del dispositivo está dividida en una pluralidad de particiones y en el que una partición seleccionada es actualizada por el componente de actualizaciones actualizando por separado al menos dos componentes en la partición seleccionada.

33. El sistema de la reivindicación 32 en el que el cargador de actualizaciones actualiza al menos uno de los componentes en la partición seleccionada aplicando (1008) un fichero de diferencias binarias a un componente existente.

34. El sistema de la reivindicación 33 en el que el cargador de actualizaciones aplica el fichero de diferencias binarias aplicando un subconjunto del fichero de diferencias binarias a un subconjunto del componente existente.

35. El sistema de la reivindicación 32 en el que el cargador de actualizaciones simula al menos una actualización antes de escribir definitivamente la actualización.

 

Patentes similares o relacionadas:

Procedimiento de parada de emergencia y sistema de seguridad asociado, del 20 de Mayo de 2020, de CLEARSY: Procedimiento de parada de emergencia de un elemento de seguridad de un conjunto de seguridad , comprendiendo el conjunto de seguridad […]

Procedimiento y aparato para la eliminación y la adición de CPU en caliente durante el funcionamiento, del 25 de Marzo de 2020, de HUAWEI TECHNOLOGIES CO., LTD.: Un procedimiento de eliminación de unidades centrales de procesamiento CPU en caliente, donde el procedimiento se puede aplicar a un único servidor con una primera […]

Sistemas críticos de seguridad ferroviaria con redundancia de tareas y capacidad de comunicaciones asimétricas, del 22 de Enero de 2020, de Siemens Mobility, Inc: Sistema de control para un sistema de aplicación crítico de seguridad ferroviaria, que comprende: al menos un controlador, que comprende un procesador […]

Método, aparato, y sistema para determinar y ejecutar en una red inalámbrica una política de distribución de datos, del 8 de Enero de 2020, de HUAWEI TECHNOLOGIES CO., LTD.: Un método de procesamiento de datos de comunicación, que comprende: adquirir , por un aparato de procesamiento, una política de distribución de datos desde […]

Procedimiento, sistema, terminal y servidor de gestión de dispositivos para instalar componentes de software, del 27 de Noviembre de 2019, de HUAWEI TECHNOLOGIES CO., LTD.: Un procedimiento para instalar componentes de software, que comprende: recibir , mediante un terminal, un paquete de componentes de software suministrado directamente […]

Reconfiguración parcial de componentes de aceleración, del 24 de Julio de 2019, de Microsoft Technology Licensing, LLC: Un método para reconfigurar parcialmente un componente de aceleración de hardware programado con un rol y una interfaz de red, […]

Seguimiento de cambios usando redundancia en tiempo lógico, del 4 de Junio de 2019, de Microsoft Technology Licensing, LLC: Un método para mantener el seguimiento de cambios entre porciones unitarias de un sistema de almacenaje, comprendiendo el método: […]

Procedimiento para verificar un estado de funcionamiento seguro de un ordenador, del 21 de Mayo de 2019, de Siemens Mobility GmbH: Procedimiento para verificar un estado de funcionamiento seguro de un ordenador para controlar un sistema crítico para la seguridad, particularmente un sistema de […]

Utilizamos cookies para mejorar nuestros servicios y mostrarle publicidad relevante. Si continua navegando, consideramos que acepta su uso. Puede obtener más información aquí. .