Академический Документы
Профессиональный Документы
Культура Документы
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.
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
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 .
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
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 .
Windows
FreeBSD boot0
Camaleón
gusano
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.
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
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]
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.
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
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
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
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
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]
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
127029 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).
99 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.
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:
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).
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.
Motti
● ● 6.662 15 48
10 Answers 10 Respuestas
129090 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
33 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
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.
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
127039 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
again. Uso de virtualización que convenientemente puede replicar un conjunto de
55 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.
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
127057 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
44 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
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.
Daniel Papasian
2283 ● 1 ● ● 3 15
true
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
22 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 ).
Motti
● ● 6.662 15 48
132581 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
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
22 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.
MSalters
● ● 1 19.1k ● 4 23
379082
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.
22 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.
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
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.