Pregunta

sigo viendo "arranque" que se menciona en las discusiones sobre el desarrollo de aplicaciones. Parece tanto generalizada e importante, pero todavía tengo que venir a través de incluso una pobre explicación de lo que es en realidad arranque; más bien, parece como si todo el mundo está supone que sabe lo que significa. Yo no, sin embargo. Lo que puedo imaginar, que tiene algo que ver con tareas de inicialización se requieren de una aplicación en el lanzamiento, pero podría estar completamente equivocado. ¿Puede alguien ayudarme a entender esta idea?

¿Fue útil?

Solución

"Bootstrapping" proviene del término "tirando hacia arriba por sus propios medios." Que mucho se puede obtener de Wikipedia .

En informática, un cargador de arranque es la primera pieza de código que se ejecuta cuando se inicia una máquina, y es responsable de cargar el resto del sistema operativo. En las computadoras modernas se almacena en la memoria ROM, pero recuerdo el proceso de arranque en el PDP-11, donde se le asoman los bits a través de los interruptores del panel frontal para cargar un segmento específico en el disco en la memoria, y luego ejecutarlo. Ni que decir tiene, el cargador de arranque es normalmente bastante pequeña.

"Bootstrapping" también se utiliza como un término para la construcción de un sistema que utiliza sí mismo - o, más correctamente, una versión predecesora. Por ejemplo, antlr versión 3 está escrito utilizando un analizador desarrollado en la versión antlr 2.

Otros consejos

Un ejemplo de arranque es en algunos marcos web. Se llama a index.php (el programa previo), y luego carga los ayudantes marcos, modelos, configuración, y a continuación, carga el controlador y pasa fuera de control a la misma.

Como se puede ver, se trata de un simple archivo que se inicia un proceso de gran tamaño.

Vea en el artículo de Wikipedia sobre bootstrapping .

Hay una sección y enlaces que explican lo que significa en Computing . Tiene cuatro usos diferentes en el campo.

Aquí están algunas citas, pero para una explicación más detallada y significados alternativos, consulte el enlace de arriba.

  

"... es una técnica por la cual un simple programa de computadora activa un sistema más complicado de los programas."

     

"Un uso diferente del término bootstrapping es el uso de un compilador para compilar sí, escribiendo primero una pequeña parte de un compilador de un nuevo lenguaje de programación en un lenguaje existente para compilar más programas del nuevo compilador escrito en el nuevo lenguaje ".

El término "arranque" por lo general se aplica a una situación en la que un sistema depende de sí mismo para empezar, una especie de problema de la gallina y el huevo.

Por ejemplo:

  • ¿Cómo se compila un compilador de C escrito en C?
  • ¿Cómo se inicia un proceso de inicialización del sistema operativo si no tiene el sistema operativo se ejecuta todavía?
  • ¿Cómo se inicia un sistema distribuido (peer-to-peer), donde los clientes dependen de sus pares conocidos en la actualidad para averiguar sobre los nuevos compañeros en el sistema?

En ese caso, bootstrapping se refiere a una forma de romper la dependencia circular, generalmente con la ayuda de una entidad externa, por ejemplo.

  • Puede usar otro compilador C para compilar (de arranque) su propio compilador, y luego se puede usar para volver a compilar sí
  • Se utiliza una pieza separada de código que configura el proceso inicial sin depender de las funciones proporcionadas por el sistema operativo
  • Se utiliza una lista no modificable de pares iniciales o una URL de seguimiento no modificable que suministra la lista de pares

etc.

En el marco de desarrollo de aplicaciones, "arranque" usualmente cuando se habla de software modular y / o auto-actualizable.

En lugar de que el usuario la descarga de la aplicación completa, que incluye características que no necesita, y volver a descargar y actualización manual que cada vez que hay una actualización, el usuario sólo descarga e inicia un pequeño ejecutable "bootstrap", que en las descargas de giro e instala las partes de la aplicación que necesita el usuario. Además, el componente de arranque es capaz de buscar actualizaciones e instalarlas cada vez que se inicia.

Para completar, también es un método bastante importante (y relativamente nuevo) en las estadísticas que utiliza remuestreo / simulación para inferir propiedades de población de una muestra. Tiene su propio larga artículo de Wikipedia sobre bootstrapping (estadísticas) .

Alex, que es más o menos lo que hace su equipo cuando se arranca. ( 'Arranque' un ordenador en realidad proviene de la palabra bootstrapping)

Inicialmente, el pequeño programa en su BIOS se ejecuta. Que contiene suficiente código de máquina para cargar y ejecutar un programa más grande, más complejo.

Ese segundo programa es probablemente algo así como NTLDR (en Windows) o LILO (en Linux), que luego se ejecuta y es capaz de cargar, a continuación, ejecutar, el resto del sistema operativo.

Boot tirante del significado del diccionario es empezar con un mínimo de recursos. En el contexto de un sistema operativo el sistema operativo debe ser capaz de cargar con rapidez una vez que la autoprueba de encendido (POST) determina que es seguro para despertar a la CPU. El código de la correa de arranque se llevará a cabo desde la BIOS. BIOS es un pequeño ROM tamaño. En general se trata de una instrucción de salto al conjunto de instrucciones que cargar el sistema operativo en la memoria RAM. El destino del salto es el sector de arranque del disco duro. Una vez que el programa BIOS comprueba que es un sector de arranque válido que contiene la dirección de inicio del sistema operativo almacenado, es decir, si se trata de un MBR válido (Master Boot Record) o no. Si es un MBR válido el sistema operativo se copiará en la memoria (RAM) de ahí en adelante el sistema operativo se encarga de la memoria y la gestión de procesos.

En mi humilde opinión no hay una explicación mejor que el hecho acerca de ¿Cómo fue el primer compilador escrito ?

Estos días la carga del sistema operativo es el proceso más común mencionada como Bootstrapping

En términos de la misma en lo que se refiere a la utilización de la popular Twitter Bootstrap siento que este tipo de arranque es la acción de la integración de un componente modular en una aplicación web sin la aplicación Web tener que reconocer siquiera existe el componente modular hasta que lo necesita o referencia a ella.

El desarrollador puede integrar sin problemas una copia por defecto de la CSS Twitter Bootstrap tema simplemente cargando (referencia) en la aplicación Web. Vuola! A continuación, puede que tenga que reemplazar algunos de estos cambios, pero puede hacerlo de tal manera que el recurso / componente está intacto y completamente reutilizable.

Este mismo concepto es cómo implementar las API Web Devs jQuery y así sucesivamente, pero en realidad no es expresada por Devs como bootstrapping per se. Lo que hace es que mejora la flexibilidad y capacidad de reutilización al tiempo que permite el aislamiento de los diferentes componentes / recursos de una aplicación para residir libremente, ya sea en el mismo servidor / s, o, posiblemente, en un CDN.

NOTA: En el cómputo de ofertas de bootstrapping con el MBR y en UNIX que requiere un cargador de arranque especial o gerente que es un pequeño programa en la ROM que carga el sistema operativo en la memoria RAM. Si se piensa en ello el mismo concepto tiene lugar en la acción del cargador de arranque comprobar el MBR y cargar el sistema operativo basado en esta tabla que se produce sin el sistema operativo que tenga alguna idea de que esto se lleva a cabo.

Bootstrapping tiene otro significado en el contexto de aprendizaje por refuerzo que puede ser útil conocer para los desarrolladores, además de su uso en el desarrollo de software (la mayoría de las respuestas aquí, por ejemplo por kdgregory ) y su uso en las estadísticas como se discute por Dirk Eddelbuettel .

Sutton y Barto :

  

Widrow, Gupta, y Maitra (1973) modificó el Least Mean-Square-(LMS)   algoritmo de Widrow y Hoff (1960) para producir un refuerzo   regla de aprendizaje que podría aprender de las señales de éxito y fracaso   en lugar de a partir de ejemplos de entrenamiento. Llamaron a esta forma de aprendizaje   “ selectiva adaptación bootstrap ” y lo describió como “aprendizaje con una   crítico”en lugar de‘aprender con un maestro.’Se analizaron esta regla   y demostró cómo se podía aprender a jugar al blackjack. Este fue un aislado   incursión en el aprendizaje por refuerzo por Widrow, cuyas contribuciones a   El aprendizaje supervisado eran mucho más influyente.

El libro describe varios algoritmos de refuerzo en el que el valor objetivo se basa en una aproximación anterior como métodos de rutina de carga:

  

Por último, observamos    una última propiedad especial de DP métodos de programación dinámica []. Todas ellas estimaciones de actualización   de los valores de los estados sobre la base de las estimaciones de los valores del sucesor   estados. Es decir, se actualizan las estimaciones sobre la base de otra   estimados. Llamamos a esta idea general bootstrap . muchos de refuerzo   métodos de aprendizaje realizan arranque, incluso aquellos que no lo hacen   exigir, como DP requiere, un modelo completo y preciso de la   medio ambiente.

Tenga en cuenta que esto difiere de la agregación de arranque y explosión de inteligencia que se menciona en el Wikipedia página el arranque.

Yo pertenezco a la generación que volcó interruptores para entrar en un programa de arranque. A principios de la década de 1980, trabajé en un microordenador llamado micro-78, desarrollado por Electronics Corporation of India Ltd (ECIL). Era una especie de clon de Altair 8800. Recuerdo claramente lo que sucede cuando se ha introducido un programa de arranque pequeña usando los interruptores de palanca y ejecuta pulsando un botón. El programa lee un segundo programa de arranque que figura en la primera pista del disco y lo sobrescribe sobre sí misma de tal manera que el segundo programa de arranque se inicia la ejecución de cargar un sistema operativo de disco. Creo que el término "bootstrap" se refiere a este proceso de la primera lectura del programa de arranque y sobrescribir el segundo programa de arranque en sí mismo, de una manera "tirando a sí misma" con la funcionalidad adicional del segundo programa de arranque. Ese puede ser el origen del significado original de "el programa de arranque".

Como un principiante humilde en el mundo de la programación, y hojear todas las respuestas aquí después de ver esta palabra que se usa mucho en parecer ligeramente diferentes maneras en diferentes lugares, me encontré con la lectura de la página de Wikipedia sobre Bootstrapping (la! Yo no t piensa de ella, ya sea al principio) es muy informativo para entender las diferencias en el uso de esta palabra. Podría ser ...... en muy raras ocasiones ...... Wikipedia incluso podría tener una mejor explicación de ciertos términos que .... (Redacted)? Van a traer en puntos rep en la Wikipedia sin embargo?

Para mí, parece que todo el significado algo que ver con: comenzar con algo tan simple como sea posible thing1, hacer algo un poco más complejo con eso Thing2, y ahora se puede utilizar Thing2 a hacer algún tipo de tareas de manera más eficiente y rápida lo que podría originalmente con thing1. A continuación, repita el proceso desde Thing2 a Thing 3 hasta el infinito ...

Lo veo como estrechamente conectado tanto a la evolución biológica y 'capas de abstracción' (novatos como yo ver, ejem, Wikipedia, tos) - la evolución de los ordenadores de 1940 con los interruptores, código de máquina, montaje, C, Python, AIS se puede dar todo tipo de instrucciones complejas a como "hacer que la cena% 4 ^% a mis predeterminados & ^ $ requisitos% y limpiar el piso% $ £" @: ~" en el argot de embriaguez Inglés o Amazon dialecto tribal sin ellos ' lanzar una excepción'(para los novatos de nuevo ... lo has adivinado) - perdiste gran cantidad de enlaces allí debido a la simple ignorancia

.

A continuación, en ciertos significados específicos de software: Meaning1:. Thing1 se utiliza para cargar la última versión de Thing2 (porque, por supuesto Thing2 será más grande que thing1, al igual que Thing3 será ser más grande que Thing2)

significado2: thing1 es un lenguaje de bajo nivel (más cerca de 011001 1001011100 .... que print ( "Hola", user.name)) se utiliza para escribir un poco de la lengua más alto de Thing2, entonces esto poco de Thing2 se utiliza para ampliar Thing2 sí desde el nivel del vocabulario bebé hacia el nivel vocabulario adulto (Thing2 comienza a procesar, o para el uso correcto término técnico 'compilado', por el bebé versión de sí mismo (que es un bebé inteligente!), mientras que el bebé versión de sí mismo Thing2 podría, por supuesto, sólo puede ser compilado por thing1, porque no puede existir antes de que exista, duh bien!), a continuación, la versión infantil del Thing2 compila versión hosco adolescente de Thing2, en el que la comunidad de programación punto decide si rudo para adolescentes ' temas (término software y plazo metáfora!) son vale la pena gastar el tiempo suficiente para ser aceptado resolver a largo plazo, o para abandonarlos a (no sabe dónde tomar la analogía aquí).

Si es así, ha Thing2 'Bootstrapped' en sí (posiblemente un par de veces) desde la infancia a la edad adulta: "el niño es el padre del hombre" (Wordsworth, sugieren no intente levantar la cita o el autor de desbordamiento de pila).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top