arranque en caliente

24
ARRANQUE EN CALIENTE: cargador de arranque procesador central de un ordenador sólo puede ejecutar el código del programa en la memoria de sólo lectura (ROM) y memoria de acceso aleatorio (RAM). Los modernos sistemas operativos y el código de programa de aplicación y los datos se almacenan en dispositivos de almacenamiento no volátil de datos, como discos duros , CD , DVD , unidad flash USB y disquetes . Cuando un equipo se enciende por primera vez, no tiene un sistema operativo en la memoria ROM o RAM. El equipo inicialmente debe ejecutar un pequeño programa almacenado en la memoria ROM junto con la cantidad mínima de datos necesarios para acceder a los dispositivos no volátil de la que el sistema operativo y los datos de los programas se cargan en la memoria RAM. El pequeño programa que se inicia esta secuencia de carga en la RAM, es conocido como un cargador de inicio , de arranque o el gestor de arranque. Este programa único trabajo del gestor de arranque pequeño es cargar los datos de otros programas y que luego se ejecuta desde la RAM. A menudo, en fase de arranque se utilizan varios cargadores, durante el cual varios programas de complejidad creciente carga secuencialmente uno después del otro en un proceso de carga encadenada . Las primeras computadoras (como el PDP-1 a través del PDP- 8 y los primeros modelos de la PDP-11 ) había una fila de interruptores de palanca en el panel frontal para permitir al operador que introduzca manualmente los binarios instrucciones de arranque en la memoria antes de transferir el control a la CPU . El gestor de arranque quedaría redactado tanto en la etapa del gestor de arranque de sesiones (llamados binarios cargador de cinta de papel con suma de comprobación ), o el sistema operativo desde un medio de almacenamiento externos, como la cinta de papel , tarjetas perforadas , o una unidad de disco .

Upload: anthony-gonzalez-de-amat

Post on 19-Jun-2015

832 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Arranque en Caliente

ARRANQUE EN CALIENTE:

cargador de arranque

procesador central de un ordenador sólo puede ejecutar el código del programa en la memoria de sólo lectura (ROM) y memoria de acceso aleatorio (RAM). Los modernos sistemas operativos y el código de programa de aplicación y los datos se almacenan en dispositivos de almacenamiento no volátil de datos, como discos duros , CD , DVD , unidad flash USB y disquetes . Cuando un equipo se enciende por primera vez, no tiene un sistema operativo en la memoria ROM o RAM. El equipo inicialmente debe ejecutar un pequeño programa almacenado en la memoria ROM junto con la cantidad mínima de datos necesarios para acceder a los dispositivos no volátil de la que el sistema operativo y los datos de los programas se cargan en la memoria RAM.

El pequeño programa que se inicia esta secuencia de carga en la RAM, es conocido como un cargador de inicio , de arranque o el gestor de arranque. Este programa único trabajo del gestor de arranque pequeño es cargar los datos de otros programas y que luego se ejecuta desde la RAM. A menudo, en fase de arranque se utilizan varios cargadores, durante el cual varios programas de complejidad creciente carga secuencialmente uno después del otro en un proceso de carga encadenada .

Las primeras computadoras (como el PDP-1 a través del PDP-8 y los primeros modelos de la PDP-11 ) había una fila de interruptores de palanca en el panel frontal para permitir al operador que introduzca manualmente los binarios instrucciones de arranque en la memoria antes de transferir el control a la CPU . El gestor de arranque quedaría redactado tanto en la etapa del gestor de arranque de sesiones (llamados binarios cargador de cinta de papel con suma de comprobación ), o el sistema operativo desde un medio de almacenamiento externos, como la cinta de papel , tarjetas perforadas , o una unidad de disco .

Pseudo - código ensamblador para el gestor de arranque puede ser tan simple como las siguientes ocho instrucciones:

0: establece el registro P a 8 1: lector de cinta de papel de verificación listo 2: si no está listo, salta a 1 3: lee un byte del lector de cinta de papel de acumulador 4: si el extremo de la cinta, ir al 8 5: Acumulador tienda para registrar la dirección en P 6: incrementar el registro P 7: ir al 1

Un ejemplo relacionado se basa en un cargador para una de 1970 Nicolet Instrument Corporation minicomputadora . Tenga en cuenta que los bytes del gestor de la segunda etapa se leen de la cinta de papel en el orden inverso.

0: establece el registro P a 106 1: lector de cinta de papel de verificación listo 2: si no está listo, salta a 1 3: lee un byte del lector de cinta de papel de acumulador

Page 2: Arranque en Caliente

4: acumulador de la tienda para hacer frente a registrarse en P 5: disminuir el registro P 6: ir al 1

La longitud de la segunda etapa del gestor es tal que el byte final sobrescribe ubicación 6. Después de la instrucción en el lugar 5 ejecuta, la ubicación 6 se iniciará el gestor de la segunda etapa de ejecución. El gestor de segunda fase se espera a que la cinta mucho más larga que contenga el sistema operativo que se ha colocado en el lector de cinta. La diferencia entre el gestor de arranque y el cargador de la segunda etapa es la adición de verificación de código de cinta de papel para atrapar los errores de lectura, un fenómeno frecuente con el hardware de la época, que en este caso fue un ASR-33 teletipo .

Algunos sistemas informáticos, al recibir una señal de arranque de un operador humano o un dispositivo periférico, puede cargar un número muy reducido de instrucciones en la memoria fija en una ubicación específica, inicialice al menos una CPU, a continuación, elija la CPU a las instrucciones y empezar a su ejecución. Estas instrucciones suelen comenzar una operación de entrada de algún dispositivo periférico (que puede ser seleccionable por conmutador por el operador). Otros sistemas pueden enviar comandos al hardware directamente a los dispositivos periféricos o de E / S que los controladores de causar una operación de entrada muy simples (como "leer el sector cero del dispositivo del sistema en la memoria de partida en la ubicación 1000") que se llevarán a cabo, efectivamente la carga de una pequeña número de instrucciones Bootload en la memoria, una señal de terminación de la I / O puede usarse entonces para iniciar la ejecución de las instrucciones de la CPU.

Computadoras más pequeñas a menudo usan menos flexible pero más mecanismos automáticos Bootload para garantizar que el equipo se inicia de forma rápida y con una configuración de software predeterminado. En muchas computadoras de escritorio, por ejemplo, el proceso de bootstrapping se inicia con la CPU ejecutando software contenido en la memoria ROM (por ejemplo, la BIOS de un PC de IBM ) a una dirección predefinida (algunos procesadores, incluyendo Intel x86 serie están diseñados para ejecutar este software después de restablecer sin ayuda externa). Este software contiene la funcionalidad rudimentaria para buscar los dispositivos que pueden participar en el arranque, y cargar un pequeño programa desde una sección especial (más comúnmente el sector de arranque ) del dispositivo más prometedores.

gestores de arranque puede sufrir problemas peculiares, sobre todo en tamaño; por ejemplo, en el IBM PC y compatibles, la primera etapa de gestores de arranque situado en unidades de disco duro debe encajar en la primera 446 bytes (o 440 bytes si Windows NT o superior tiene que ser apoyado por NT puesto 6 bytes de firma de disco a partir de compensar 440) del Master Boot Record , con el fin de dejar espacio para el 64-byte tabla de particiones y el 2-byte 0xAA55 «firma», que requiere el BIOS para un arranque correcto cargador.

Algunos sistemas operativos, sobre todo pre-1995 Macintosh sistemas de Apple , están tan estrechamente entrelazados con su hardware que no es posible de forma nativa a iniciar el sistema operativo que no sea el estándar. Este es el extremo opuesto de la Bootload utilizando interruptores mencionados anteriormente, es altamente inflexible, pero la prueba de error relativamente-ya toda prueba, siempre y cuando todo el equipo está funcionando normalmente. Una solución común en tales situaciones es el diseño de un gestor de arranque que funciona como un programa perteneciente a la norma del

Page 3: Arranque en Caliente

sistema operativo que secuestra el sistema y carga el sistema operativo alternativo. Esta técnica fue utilizada por Apple para su A / UX Unix aplicación y copiado por varios sistemas operativos gratuitos y BeOS 5 Personal Edición .

comunes usados cargadores de arranque principal

Windows FreeBSD boot0 Camaleón gusano

Segunda etapa del gestor de arranque-]

El programa de pequeñas a menudo no es más propio de un sistema operativo, pero sólo una etapa del gestor de arranque en segundo lugar, como GRUB , BOOTMGR , Syslinux , LILO o NTLDR . Entonces será capaz de cargar el sistema operativo correctamente, y, finalmente, la transferencia de la ejecución a la misma. El sistema se inicializará, y puede cargar los controladores de dispositivos y otros programas que son necesarios para el normal funcionamiento del sistema operativo.

Muchos gestores de arranque (como GRUB, BOOTMGR, LILO y NTLDR) se pueden configurar para dar al usuario múltiples opciones de arranque. Estas opciones pueden incluir los sistemas operativos diferentes (por doble o multi-arranque desde diferentes particiones o discos), de almendra de diferentes versiones del mismo sistema operativo (en caso de una nueva versión tiene problemas inesperados), de almendra de las diferentes opciones (por ejemplo, el inicio en modo de rescate o modo seguro ) o algún programa independiente que puede funcionar sin un sistema operativo, como probadores de memoria (por ejemplo, memtest86 + ) o incluso juegos. [9] Por lo general, una opción por defecto está preseleccionado con un intervalo de tiempo durante el cual usted puede pulsar una tecla para cambiar la opción, después de que la opción por defecto se ejecuta automáticamente, el arranque tan normal puede ocurrir sin la interacción.

El proceso de arranque se considera completa cuando el equipo está preparado para interactuar con el usuario, o el sistema operativo es capaz de ejecutar aplicaciones comunes. Típica modernos equipos de arranque en aproximadamente un minuto (de los cuales alrededor de 15 segundos son adoptadas por un poder auto-verificación (POST) y un gestor de arranque preliminares, y el resto por la carga del sistema operativo, OS-tiempo pre puede ser considerablemente reducido por con lo que el sistema con todos los núcleos a la vez , como con LinuxBIOS [10] en tan sólo 3 segundos [11] , mientras que los servidores de gran tamaño puede tardar varios minutos para arrancar y empezar todo de sus servicios.

Muchos sistemas embebidos debe arrancar de inmediato. Por ejemplo, esperar un minuto para una televisión digital o de navegación por satélite para empezar es en general aceptable. Por lo tanto estos dispositivos tienen un sistema operativo completo en la memoria ROM o memoria flash para que el dispositivo puede comenzar a funcionar inmediatamente. Para estos tipos de sistemas embebidos carga poco o nada es necesario, ya que la carga puede ser precalculadas y se almacena en la memoria ROM cuando el dispositivo está hecho.

Page 4: Arranque en Caliente

sistemas grandes y complejos pueden tener procedimientos de arranque que procedan en varias fases, cada fase de carga, una versión más compleja de por sí, hasta que finalmente el sistema operativo actual es cargada y lista para ejecutar. Porque la mayoría de sistemas operativos están diseñados como si nunca hubieran iniciar o detener, Bootload procesos a veces construyen una casi instantánea de un sistema operativo que se ejecuta, configure a sí mismos como un mero proceso dentro de ese sistema operativo y, a continuación de forma irrevocable la transferencia de control en el sistema operativo, el proceso de Bootload luego termina normalmente como cualquier otro proceso que, y el sistema operativo no necesita tener ningún conocimiento de la Bootload.

El arranque en red

Artículo principal: El arranque en red

Mayoría de los ordenadores también son capaces de arrancar más de una red informática . En este escenario, el sistema operativo se almacena en el disco de un servidor , y ciertas partes del mismo se transfieren al cliente mediante un protocolo sencillo, como el Trivial File Transfer Protocol . Después de estas piezas han sido transferidos, el sistema operativo toma entonces el control del proceso de arranque.

Los dispositivos de arranque (IBM PC)

véase también: Sistema de partición y partición de arranque

El dispositivo de inicio es el dispositivo desde el que se carga del sistema operativo. Un moderno PC BIOS soporta el arranque desde dispositivos distintos, por lo general un local de unidad de disco duro (o una de varias particiones en un disco), una unidad de disco óptico , un USB del dispositivo (unidad flash, disco duro, unidad de disco óptico, etc ), o una tarjeta de interfaz de red (utilizando PXE ). De edad, los dispositivos de arranque menos comunes incluyen unidades de disco floppy , SCSI dispositivos, unidades Zip , y LS-120 unidades.

Normalmente, el BIOS permite al usuario configurar un orden de arranque. Si la orden de inicio se establece en "en primer lugar, la unidad de DVD, en segundo lugar, la unidad de disco duro", entonces el BIOS intentará arrancar desde la unidad de DVD, y si esto no funciona (por ejemplo, porque no hay DVD en la unidad), que tratará de arrancar desde el disco duro local.

Por ejemplo, en un PC con Windows XP instalado en el disco duro, el usuario puede establecer el orden de arranque a la dada anteriormente, a continuación, inserte un GNU / Linux Live CD para probar Linux sin tener que instalar un sistema operativo en el disco duro. Este es un ejemplo de arranque dual - el usuario de elegir que sistema operativo se inicie después de que el equipo ha realizado la prueba automática de encendido . En este ejemplo de arranque dual, el usuario elige mediante la inserción o extracción de la CD de la unidad, pero es más común para elegir qué sistema operativo se haya iniciado mediante la selección de un menú usando el teclado del ordenador. (Por lo general F11 o ESC )

Page 5: Arranque en Caliente

secuencia de arranque en PC estándar (IBM-PC compatible)

Al iniciar, una computadora personal s ' x86 CPU ejecuta la instrucción situada en la posición de memoria CS: IP F000: FFF0 de la BIOS , que se encuentra en la dirección 0xFFFF0. Esta localización de memoria está cerca del final de la 1 MB de memoria de sistema accesible en modo real . Normalmente contiene una instrucción de salto que se transfiere la ejecución a la ubicación de la BIOS del programa de puesta en marcha. Este programa se ejecuta una prueba de encendido auto (POST) para chequear e inicializar los dispositivos necesarios. El BIOS pasa por un pre-configurada la lista de dispositivos de almacenamiento volátil-no ("dispositivo de secuencia de arranque") hasta que encuentra uno que es de arranque. Un dispositivo de arranque se define como una que se puede leer, y los dos últimos bytes del sector de la primera contienen la palabra 0xAA55 (también conocido como la firma de arranque).

Un volcado hexadecimal de FreeBSD 's boot0 MBR

Una vez que la BIOS ha encontrado un dispositivo de arranque carga el sector de arranque en hexadecimal Segmento : Offset dirección 0000:7 C00 o 07C0: 0000 (mapas a la dirección definitiva mismo) y la ejecución transferencias al código de arranque . En el caso de un disco duro, esto se conoce como el registro de inicio maestro (MBR) y no suele ser el sistema operativo específico. El código comprueba MBR convencionales de la RBM tabla de partición para una partición de arranque fijado como (el que tiene bandera activa recogidos) [12] . Si una partición activa se encuentra, el código carga el MBR sector de arranque de código de la partición y lo ejecuta. El sector de arranque es a menudo del sistema operativo específico, sin embargo, en la mayoría de los sistemas operativos de su función principal es cargar y ejecutar el sistema operativo del kernel , que continúa el inicio. Si no hay ninguna partición activa, o un sector de la partición activa de arranque no es válida, el MBR puede cargar un gestor de arranque secundario que seleccione una partición (a menudo a través de la entrada del usuario) y la carga de su sector de arranque, que generalmente carga el kernel del sistema operativo correspondiente.

Algunos sistemas (sobre todo nuevos Macintosh ) el uso de Intel 's de propiedad de EFI . También LinuxBIOS permite que un ordenador para arrancar sin necesidad de un complicado excesivamente firmware / BIOS ejecuta constantemente en modo de

Page 6: Arranque en Caliente

sistema de gestión . El legado del BIOS de 16-bit interfaces son requeridos por determinados sistemas operativos x86, como Windows. Sin embargo la mayoría de los gestores de arranque de 16-bit tienen soporte para estos sistemas de legado del BIOS. [13]

[14] [15]

Premio BIOS durante el arranque. BIOS con fecha a 1995

Mayoría de los equipos, si un BIOS chip está presente, aparecerá una pantalla que detalla el fabricante de chips del BIOS, los derechos de autor en poder de los chips en el fabricante y el identificador del chip en el inicio. Al mismo tiempo, también muestra la cantidad de memoria informática y otras piezas de código que muestra información acerca del equipo.

Otros tipos de secuencias de arranque

Algunos otros procesadores tienen otros tipos de modos de arranque:

1) Existen técnicas alternativas para el arranque CPU y microcontroladores:

Algunos CPUs modernas y microcontroladores (por ejemplo, TI OMAP ) o incluso a veces pueden tener DSP ROM de arranque con código de arranque integrado directamente en el silicio, de modo tal de procesador podría realizar una secuencia de arranque bastante sofisticados en sus propios programas de arranque y carga de varias fuentes como flash NAND, tarjeta SD o MMC, etc. Es difícil cableado toda la lógica necesaria para el manejo de estos dispositivos, por lo que una ROM de arranque integrado se usa en cambio, en tales escenarios. ROM de arranque permite el uso de secuencias de arranque más flexible que la lógica cableada podía proporcionar. Por ejemplo, la ROM de arranque podría tratar de realizar el arranque de arranque a partir de fuentes múltiples. Además, una ROM de inicio es a menudo capaz de cargar un gestor de arranque o un programa de diagnóstico a través de interfaces seriales como UART , SPI , USB , etc. Esta característica se utiliza a menudo con fines de recuperación del sistema cuando por alguna razón software de arranque habitual en la memoria no volátil he borrado. Esta técnica podría utilizarse también para la programación inicial de la memoria no volátil cuando hay memoria limpia no volátil instalado y por lo tanto no hay software disponible en el sistema todavía.

También es posible tomar el control de un sistema mediante el uso de un hardware de interfaz de depuración tales como JTAG . Esta interfaz puede ser usado para escribir el programa gestor de arranque de arranque en la memoria no volátil (flash, por ejemplo) dando instrucciones a la base del procesador para realizar las acciones necesarias para programar la memoria no volátil. Como alternativa, la interfaz de depuración puede ser utilizado para cargar algo de

Page 7: Arranque en Caliente

código de diagnóstico o de inicio en la memoria RAM y, a continuación para iniciar el núcleo del procesador y le instruimos para ejecutar el código cargado. Esto permite, por ejemplo, la recuperación de los sistemas integrados de software en los que no permanece en cualquier dispositivo de arranque apoyado, y cuando el transformador no tiene la ROM de arranque integrado. JTAG es una interfaz estándar y popular; muchas CPU, microcontroladores y otros dispositivos se fabrican con interfaces JTAG (a partir de 2009).

Algunos microcontroladores proporcionar interfaces especiales de hardware que no se puede utilizar para tomar el control arbitrario de un sistema o ejecutar código directamente, sino que éstos permitan la inserción de código de arranque en la memoria no volátil de arranque (como la memoria flash) a través de protocolos sencillos. Luego, en la fase de fabricación, dichas interfaces se utilizan para inyectar código de arranque (y posiblemente otro tipo de código) en la memoria no volátil. Después de reiniciar el sistema, el microcontrolador comienza a ejecutar código programado en su memoria no volátil, al igual que los procesadores de costumbre está utilizando ROM para el arranque. Lo más notable de esta técnica es utilizada por Atmel AVR microcontroladores, y por los demás. En muchos casos, las interfaces se apliquen en lógica cableada. En otros casos, dichas interfaces se puede crear un software que se ejecuta en el chip de ROM de arranque integrado-on de GPIO pins.

2) La mayoría de los procesadores de señal digital tienen los modos de arranque siguiente:

el modo de inicio de serie el modo de arranque en paralelo, como la interfaz de puerto anfitrión (HPI de

arranque)

Vale la pena mencionar que en caso de DSPs hay a menudo un segundo microprocesador o microcontrolador presente en el diseño del sistema, y éste es responsable del comportamiento general del sistema, manejo de interrupciones, que trata de los acontecimientos externos, interfaz de usuario, etc, mientras que el DSP se dedica a tareas de procesamiento de señales solamente. En estos sistemas el DSP se podía iniciar por otro procesador que a veces es referido como el procesador anfitrión (que da nombre a un puerto de acogida). Este procesador es también a veces se refiere como el maestro, ya que por lo general las botas primero de sus propios recuerdos y controla el comportamiento general del sistema, incluyendo el arranque de la DSP, y luego se controla el comportamiento de la DSP. Una cosa interesante aquí es que el DSP a menudo carece de los recuerdos propios de arranque y se basa en el procesador para proporcionar el código necesario en su lugar. Los sistemas más notable con un diseño tal son los teléfonos celulares, módems, reproductores de audio y video, etc en un DSP y un microcontrolador de la CPU / son coexistentes.

Muchos FPGA cargar sus fichas de configuración de una serie externo EEPROM ("ROM de configuración") en el encendido.

En IBM de sistemas, el proceso de arranque que se conoce como IPL (carga del programa inicial). El término fue acuñado por IBM para el diseño del System/360 y sigue utilizándose en los entornos actuales [16] . En los sistemas que comparten el System/360 patrimonio-y en algunos que se han inspirado en él, incluyendo los sistemas

Page 8: Arranque en Caliente

más pequeños como la IBM 1130 -IPL es una función de hardware, no un programa llevado a cabo en el propio sistema. En su forma básica, una IPL es iniciada por el operador de la computadora mediante la selección de los (tres dígitos hexadecimales dirección del dispositivo) mediante interruptores giratorios de la consola del equipo, ya continuación presione el botón 'IPL. Esto lee un pequeño programa (normalmente 24 bytes) integramente implementado en hardware, compuesto sólo por una pocas palabras de comando de canal de iniciar una operación de lectura desde el dispositivo designado. Por lo general, se trata de una unidad de disco, pero exactamente el mismo procedimiento también se utiliza para arrancar desde otros dispositivos, como unidades de cinta , o incluso los lectores de tarjetas , en una forma independiente del dispositivo, permitiendo por ejemplo la instalación de un sistema operativo en un equipo prístina la distribución de una cinta magnética. Por supuesto, el disco, cinta magnética o de tarjeta debe contener un programa especial para cargar el sistema operativo actual en la memoria, un procedimiento por etapas similares a los procedimientos de la mayoría de arranque (ver otra parte de este artículo).

La función System/360 IPL lee 24 bytes desde un dispositivo del operador especificado o pre-configurado en la memoria a partir de cero ubicación. El segundo y el tercero de ocho bytes se tratan como el Canal de Ordenes Words (CCWs) para continuar cargando el programa de inicio. Cuando la E / S de canal comandos están completos, el primer grupo de ocho bytes se carga en la Palabra de estado de programa (PSW) y el programa de registro de inicio comienza la ejecución en el lugar designado. [16]

Una variación notable de este se encuentra en la Burroughs B1700 donde no hay ni una ROM de arranque ni una operación de cableado IPL. En su lugar, después de que el sistema se reinicia se lee y ejecuta códigos de operación en secuencia desde una unidad de cinta montada en el panel frontal, lo que crea un gestor de arranque en la memoria RAM que luego se ejecuta. Sin embargo, ya que esto hace presunciones acerca del sistema que puede ser igualmente utilizado para la carga de diagnóstico (Pruebas de Mantenimiento de rutina) cintas que muestran un código inteligible en el panel frontal , incluso en los casos de incapacidad grave de la CPU.

Reiniciar

[ editar ] reinicio duro

Un reinicio duro (también conocido como un reinicio en frío, arranque en frío o arranque en frío) es cuando el poder de una computadora es un ciclo (apagado y luego encendido) o una señal de reinicio especial al procesador se ha disparado. Esto reinicia el equipo sin antes de realizar cualquier procedimiento de apagado. (Con muchos sistemas operativos , especialmente aquellos que utilizan cachés de disco , después de un reinicio duro del sistema de archivos pueden estar en un "sucio" del Estado, y una búsqueda automática de sistema de archivos de disco en las estructuras-se llevará a cabo antes de la operación normal puede comenzar.) Puede ser causados por falta de energía eléctrica, por hacer por accidente, o se hizo deliberadamente, como último recurso para recuperar la fuerza del sistema de instancias tales como un error crítico o virus -infligida ataque DoS . También puede ser utilizado por los intrusos para acceder a las claves criptográficas de memoria RAM , en cuyo caso se le llama un ataque de arranque en frío . [ cita requerida ]

Page 9: Arranque en Caliente

reinicio suave

Un reinicio por software (también conocido como un reinicio en caliente) es el reinicio de un ordenador bajo control del software, sin quitar el poder o (directamente) la activación de una línea de restablecimiento. Por lo general, aunque no siempre, se refiere a una orden de apagado y reinicio de la máquina.

El Control-Alt-Supr combinación de teclas en el original de PC de IBM fue diseñado para permitir un reinicio suave para un cómodo y más rápido que reiniciar suministrar energía al ordenador completamente hacia abajo y luego hacia arriba. [ cita requerida ]

Este tipo de reinicio por lo general no se restablecerán los discos duros, para que tengan tiempo de actualizar su caché de escritura en el almacenamiento permanente. Los discos duros también mantendrá su configuración (como C / H / S ajustes, HPA , ACA , contraseñas internas ...) a lo largo de estos reinicios.

El kernel de Linux tiene soporte opcional para el kexec llamada al sistema , que transfiere la ejecución a un nuevo núcleo y el hardware se salta o reinicio del firmware. Todo el proceso se hace independiente del firmware del sistema. Tenga en cuenta que el núcleo está ejecutando no tiene que ser un núcleo de Linux.

reinicio azar

reinicio al azar es un término técnico-no se refiere a una consecuencia no intencionada (y no deseado a menudo) iniciar el sistema para el que la causa no es inmediatamente evidente para el usuario. reinicios puede producirse debido a una multitud de problemas de software y hardware, tales como fallas triples .

En Windows XP / Vista tiene una opción para omitir su pantalla azul de la muerte (BSOD) (pantallas azules de la muerte en Windows XP Vista oferta / sin opción de presionar cualquier tecla y ver si el equipo sigue funcionando) y de inmediato se reinicia el equipo en la caso de un error grave, los usuarios se pueden confundir en el pensamiento de un equipo con Windows XP / Vista computador sufre de reiniciar al azar.

Errores

En Windows, cuando se produce un error en el proceso de arranque, una pantalla azul de la muerte o una pantalla Negro de la Muerte puede ocurrir. En Unix y sistemas operativos como Unix, como Linux y Mac OS X, un error fatal en el proceso de arranque puede causar un kernel panic .

arranque rápido

Existen varios dispositivos que permiten al usuario "rápida de inicio" a un general, Linux OS potencia para varias tareas simples, tales como acceso a Internet ( Splashtop , Latitude ON , etc.) [17] [18] [19] [20] [21] [22] [23] [24] [25]

Page 10: Arranque en Caliente

virus de sector de arranque Since code in the boot sector is executed automatically, boot sectors have historically been a common attack vector for . Dado que el código en el sector de arranque se ejecuta de forma automática, los sectores de arranque han sido históricamente un vector de ataque común para los virus informáticos . To combat this behavior, the BIOS often includes an option to prevent writing to the boot sectors of attached hard drives. Para luchar contra este comportamiento, el BIOS a menudo incluye una opción para prevenir la escritura a los sectores de arranque de discos duros conectados

La comparación de arranque en frío para calentar inicio

9 9

Our application takes significantly more time to launch after a reboot (cold start) than if

it was already opened once (warm start). Nuestra aplicación toma mucho más tiempo

para poner en marcha después de un reinicio (arranque en frío) que si se abrió ya una

vez (arranque en caliente).

Most (if not all) the difference seems to come from loading DLLs, when the DLLs' are in

cached memory pages they load much faster. La mayoría (si no todos), la diferencia

parece provenir de archivos DLL de carga, cuando el DLL están en las páginas de

memoria caché que carga mucho más rápido. We tried using to simulate rebooting

(since its much less time consuming than actually rebooting) and got mixed results, on

some machines it seemed to simulate a reboot very consistently and in some not.

Hemos intentado utilizar ClearMem para simular reiniciar (desde su mucho menos

tiempo que en realidad reiniciar) y obtuvo resultados mixtos, en algunas máquinas que

parecía simular un reinicio y en algunos no muy coherente.

To sum up my questions are: Para resumir mis preguntas son:

1. Have you experienced differences in launch time between cold and warm starts?

¿Ha tenido diferencias en el tiempo de lanzamiento entre los arranques en frío y

caliente?

2. How have you delt with such differences? ¿Cómo has delt con tales diferencias?

3. Do you know of a way to dependably simulate a reboot? ¿Sabe usted de una

manera confiable simular un reinicio?

Edit:

Clarifications for comments: Aclaraciones para la presentación de observaciones:

The application is mostly native C++ with some .NET (the first .NET assembly

that's loaded pays for the CLR). La aplicación es en su mayoría nativos de C + +

con algunas. NET (el primero. NET que se carga paga por el CLR).

127029

Page 11: Arranque en Caliente

We're looking to improve load time, obviously we did our share of profiling and

improved the hotspots in our code. Estamos buscando mejorar el tiempo de

carga, obviamente hemos hecho nuestra parte de perfiles y la mejora de los

puntos calientes en nuestro código.

Something I forgot to mention was that we got some improvement by re-basing all our

binaries so the loader doesn't have to do it at load time. Algo se me olvidó mencionar

es que hemos conseguido alguna mejora, al volver a basar todos nuestros archivos

binarios por lo que el gestor no tiene que hacerlo en tiempo de carga.

ventanas rendimiento reinicio clearmem

flag bandera edited editado 24 de septiembre '08 a las 13:32

asked pidió a 24 de septiembre '08 a las 13:11

Motti ● ● 6.662 15 48

90% accept rate 90% tasa de aceptar

10 Answers 10 Respuestas

oldest newest votes más antiguo último voto

3 3

How did you profile your code? ¿Cómo el perfil de su código? Not all profiling methods

are equal and some find hotspots better than others. No todos los métodos de perfiles

son iguales y algunas encontrar puntos de acceso mejor que otros. Are you loading

lots of files? ¿Es usted un montón de carga de archivos? If so, disk fragmentation and

seek time might come into play. Si es así, la fragmentación del disco y el tiempo de

búsqueda podría entrar en juego.

Maybe even sticking basic timing informatino into the code and writing out to a log file

and examining the files on cold/warm start will help identify the app is spending their

time. Tal vez incluso se pegue informatino calendario de base en el código y escribir

un archivo de registro y examen de los archivos de frío / arranque en caliente le

ayudará a identificar el lugar de aplicación es el gasto de su tiempo.

Without more information, I would lean towards filesystem/disk cache as the likely

difference between the two environments. Sin más información, me inclinaba hacia el

sistema de archivos / cache de disco como la diferencia probable entre los dos

129090

Page 12: Arranque en Caliente

entornos. If that's the case, then you either need to spend less time loading files

upfront, or find faster ways to load files. Si ese es el caso, entonces o bien necesitan

pasar menos tiempo de carga de archivos por adelantado, o encontrar maneras más

rápidas de cargar archivos. One example (that may not apply) is that if you are loading

load of binary data files is to combine them all into a single file, do a slerp of the whole

file into memory in one read, and then parse out their contents. Un ejemplo (que no se

pueden aplicar) es que si va a cargar la carga de archivos de datos binarios es

combinar todos ellos en un solo archivo, hacer un SLERP del expediente completo en

la memoria de una lectura, y luego analizar sus contenidos. Less disk sesks and time

spend reading off of disk. Menos sesks disco y el tiempo dedicado a la lectura fuera

del disco. Again, maybe that doesn't apply. Una vez más, tal vez eso no se aplica. I

don't know offhand of any tools to clear the disk/filesystem cache, but you could write a

quick application to read a bunch of unrelated files off of disk to cause the

filesystem/disk cache to be loaded with different info. No sé improviso de cualquier

herramienta para borrar el disco / sistema de archivos de caché, pero puede escribir

una aplicación rápida de leer un montón de archivos no relacionados fuera de los

discos para hacer que el sistema de archivos / cache de disco para cargar con otro

tipo de información.

flag enlace | bandera answered responde a 24 de septiembre '08 a las 18:53

Marca ● ● 2.502 4 18

I'll look into unifying DLLs that sounds like a promising option. Voy a mirar en DLL unificador que suena como una opción prometedora. – - Motti 25 de septiembre '08 a

las 7:22

From the symptoms, it sounds like the time consuming thing is loading the code rather than the execution time of the initialization code. De los síntomas, parece que el tiempo

lo consume es cargar el código en lugar del plazo de ejecución del código de inicialización. In that case, a profiler won't help (except, possibly, to see if you've made

progress on improving the load time). En ese caso, un generador de perfiles no ayudará (a excepción, posiblemente, para ver si usted ha hecho progreso en la mejora el tiempo de carga). Reduce the number of DLLs that must load, make them smaller, rebase them so that there's no overlap. Reducir el número de archivos DLL que debe cargar, hacerlos más pequeños, de modo que rebase no hay solapamiento. Registry access can also be

painful on a fresh boot. Registro de acceso también puede ser doloroso en un inicio fresco. – - Adrian McCarthy 1 de diciembre '09 a las 22:40

As for simulating reboots, have you considered running your app from a ? En cuanto a

la simulación de reinicios, ¿ha considerado ejecutar la aplicación desde una PC virtual

? Using virtualization you can conveniently replicate a set of conditions over and over

127039

Page 13: Arranque en Caliente

5 5

again. Uso de virtualización que convenientemente puede replicar un conjunto de

condiciones de una y otra vez.

I would also consider some type of to spot the bit of code causing the time lag, and

then making the judgement call about how much of that code is really necessary, or if it

could be achieved in a different way. También me consideren algún tipo de perfiles de

aplicación para detectar el trozo de código que provoca el retraso de tiempo, y luego

de hacer la llamada juicio acerca de cuánto de ese código es realmente necesario, o si

le puede lograrse de una manera diferente.

flag enlace | bandera edited editado 24 de septiembre '08 a 13:18

answered responde a 24 de septiembre '08 a las 13:12

Jim Burger ● ● 2.348 5 14

The problem with virtual machines (we use VMWare not Virtual PC) is that they load balance everything (including the CPU) and the numbers we were getting were not

consistent. El problema con las máquinas virtuales (usamos VMWare Virtual PC no) es que todo lo que un equilibrio de carga (incluido el de la CPU) y los números que estaban

recibiendo no eran consistentes. – - Motti 24 de septiembre '08 a las 13:27

Point taken, though I suspect by replicating reboots you are chasing symptoms rather than root causes. Entendido, aunque sospecho que al replicar reinicia usted está

persiguiendo síntomas que las causas raíz. The fact remains that there is something way too time consuming occuring in a DLL regardless of when it loads, hard reboots just

exacerbate the problem. El hecho es que no hay manera de consumir algo demasiado tiempo se producen en un archivo DLL con independencia de cuando se carga, se

reinicia duro sólo agravan el problema. Im confident a profiling tool will help here – Im seguro de una herramienta de perfilado puede ayudar aquí - Jim Burger 24 de

septiembre '08 a las 13:40

:) Thanks for the further clarifications – :) Gracias por las aclaraciones adicionales - Jim Burger 24 de septiembre '08 a las 13:47

4 4

It would be hard to truly simulate a reboot in software. Sería realmente difícil de

simular un reinicio por software. When you reboot, all devices in your machine get their

reset bit asserted, which should cause all memory system-wide to be lost. Al reiniciar,

todos los dispositivos de la máquina de conseguir su granito de arena restablecer

afirmó, la cual debe hacer toda la memoria de todo el sistema que se pierde.

In a modern machine you've got memory and caches everywhere: there's the VM

subsystem which is storing pages of memory for the program, then you've got the OS

caching the contents of files in memory, then you've got the on-disk buffer of sectors

on the harddrive itself. En una moderna máquina que tienes la memoria caché y en

todas partes: está el subsistema de VM que es el almacenamiento de páginas de

memoria para el programa, entonces usted tiene el sistema operativo de

127057

Page 14: Arranque en Caliente

almacenamiento en caché el contenido de archivos en la memoria, entonces usted

tiene sobre- disco de amortiguamiento de los sectores en el propio disco duro. You

can probably get the OS caches to be reset, but the on-disk buffer on the drive? Usted

probablemente puede recibir la caché del sistema operativo para poner a cero, pero la

memoria intermedia en el disco en la unidad? I don't know of a way. No sé de un

camino.

flag enlace | bandera answered responde a 24 de septiembre '08 a las 13:15

Daniel Papasian 2283 ● 1 ● ● 3 15

2 2

@ said: @ Morten Christiansen dijo:

One way to make apps start cold-start faster (sort of) is used by eg Adobe reader, by

loading some of the files on startup, thereby hiding the cold start from the users. Una

manera de hacer que las aplicaciones de arranque en frío arranque más rápido (más o

menos) se utiliza, por ejemplo lector de Adobe, por la carga de algunos de los archivos

en el arranque, el cual oculta el arranque en frío de los usuarios. This is only usable if

the program is not supposed to start up immediately. Solamente se puede usar si el

programa no se supone que la puesta en marcha de inmediato.

That makes the customer pay for initializing our app at every boot even when it isn't

used, I really don't like that option (neither does ). Eso hace que el pago de los

clientes para inicializar nuestra aplicación en cada arranque, incluso cuando no se

utiliza, en realidad no me gusta esa opción (tampoco Raymond ).

flag enlace | bandera answered responde a 25 de septiembre '08 a las 7:27

Motti ● ● 6.662 15 48

One succesful way to speed up application startup is to switch DLLs to delay-load. Una

buena manera de acelerar inicio de la aplicación es cambiar DLL para retrasar la

true

131932

132581

Page 15: Arranque en Caliente

2 2

carga. This is a low-cost change (some fiddling with project settings) but can make

startup significantly faster. Este es un cambio de bajo costo (algunos jugando con la

configuración del proyecto), pero puede hacer mucho más rápido de inicio. Afterwards,

run depends.exe in profiling mode to figure out which DLLs load during startup

anyway, and revert the delay-load on them. A continuación, ejecute depends.exe en el

perfil de modo de averiguar qué archivos DLL de carga durante el inicio de todos

modos, y revertir el retraso de carga sobre ellos. Remember that you may also delay-

load most Windows DLLs you need. Recuerde que también puede retrasar la carga de

la mayoría de los archivos DLL de Windows que usted necesita.

flag enlace | bandera answered responde a 25 de septiembre '08 a las 10:53

MSalters ● ● 1 19.1k ● 4 23

2 2

A very effective technique for improving application cold launch time is optimizing

function link ordering. Una técnica muy eficaz para mejorar la aplicación en tiempo de

lanzamiento frío es la optimización de enlace función ordenadora.

The Visual Studio linker lets you pass in a file lists all the functions in the module being

linked (or just some of them - it doesn't have to be all of them), and the linker will place

those functions next to each other in memory. El vinculador de Visual Studio le permite

pasar en un archivo de todas las funciones en el módulo de estar vinculadas (o sólo

algunos de ellos - no tiene por qué ser todos ellos), y el vinculador colocará esas

funciones junto a la otra en la memoria.

When your application is starting up, there are typically calls to init functions throughout

your application. Cuando la aplicación se inicia, normalmente hay llamadas a

funciones de inicio en toda la aplicación. Many of these calls will be to a page that isn't

in memory yet, resulting in a page fault and a disk seek. Muchas de estas llamadas

será el de una página que no está en la memoria, sin embargo, que resulta en un error

de página y buscar un disco. That's where slow startup comes from. Ahí es donde

viene de inicio lento.

Optimizing your application so all these functions are together can be a big win. La

optimización de su aplicación para todas estas funciones están juntos puede ser una

gran victoria.

Check out Profile Guided Optimization in Visual Studio 2005 or later. En cuanto a perfil

de optimización guiada en Visual Studio 2005 o posterior. One of the thing sthat PGO

does for you is function link ordering. Uno de los PGO sthat lo hace por ti es el enlace

función ordenadora.

379082

Page 16: Arranque en Caliente

It's a bit difficult to work into a build process, because with PGO you need to link, run

your application, and then re-link with the output from the profile run. Es un poco difícil

trabajar en un proceso de generación, ya que con PGO es necesario enlazar, ejecutar

la aplicación, a continuación, volver a enlazar con la salida de la ejecución de perfil.

This means your build process needs to have a runtime environment and deal cleaning

up after bad builds and all that, but the payoff is typically 10+ or more faster cold

launch with no code changes. Esto significa que su proceso de construcción debe

tener un entorno de ejecución y la limpieza después de tratar mal construye y todo

eso, pero la recompensa es normalmente 10 + o más rápido lanzamiento de frío, sin

cambios de código.

There's some more info on PGO here: No hay más información sobre PGO aquí:

http://msdn.microsoft.com/en-us/library/e7k32f4k.aspx

flag enlace | bandera answered responde a 18 de diciembre '08 a 20:11

stevex ● ● 549 1 6

ARRANQUE EN CALIENTE:

(Informática) La reanudación del funcionamiento del ordenador, tras una parada generados problema, en que los programas que se ejecutan en el sistema se puede reanudar en el punto de que cuando estaban en la parada se produjo y los datos no se pierde.