¿Por qué el núcleo de Linux se llama una "imagen"?

62

A menudo escucho que la gente se refiere al kernel de Linux como la imagen del kernel de Linux y parece que no puedo encontrar respuestas en ningún motor de búsqueda sobre por qué se llama imagen.

Cuando pienso en una imagen solo puedo pensar en dos cosas, ya sea una copia de un disco o una foto. Seguro que no es una imagen fotográfica, ¿por qué se le llama imagen?

Tony
fuente
10
También puede ser una copia de la región RAM (que en mi humilde opinión es el caso con el núcleo)
Romeo Ninov

Respuestas:

60

El proceso de arranque de Unix tiene (tenía) solo capacidades limitadas de cargar de manera inteligente un programa (reubicarlo, cargar bibliotecas, etc.). Por lo tanto, el programa inicial era una imagen exacta, almacenada en el disco, de lo que había que cargar en la memoria y "llamar" para poner en marcha el núcleo.

Solo mucho más tarde se agregaron cosas como la (des) compresión y, aunque ahora se han implementado cargadores de arranque más potentes, el nombre de la imagen se ha pegado.

Anthon
fuente
1
La compresión y la descompresión no tienen nada que ver con algo que se llama una "imagen". Todavía se carga en un punto específico de la memoria y se llama directamente, al igual que en los viejos tiempos. El cargador de arranque intermedio siempre ha existido también. El núcleo en sí sigue siendo una imagen, cargada en un punto específico de la memoria y llamada directamente.
phyrfox
Exactamente, es por eso que el OP se confundió con la OMI. Una versión comprimida de su imagen ya no se vería como una imagen (si la mira sin comprimir) y no se la llamará imagen. Pero el núcleo todavía se llama imagen.
Anthon
TBH no estoy seguro de que tengas razón sobre el origen, pero tu explicación tiene tanto sentido que tengo que votar. En mi humilde opinión, la imagen comprimida sigue siendo una imagen. La forma de recuperar la imagen es irrelevante. Es una imagen. Deja en claro de qué estás hablando y quizás eso es lo más importante.
akostadinov
Interesante. Entonces, si tengo un archivo javascript que contiene el texto de un objeto que contiene un montón de funciones similares al kernel, y lo cargo a través de XMLHttpRequest y lo evalúo, en el lado de NodeJS y uso el servidor NodeJS para interactuar con él a través de solicitudes, puedo llamar a esto javascript file a Kernel Image: O
Dmitry
31

La palabra imagen también tiene una definición "Un archivo que contiene toda la información necesaria para producir una copia de trabajo en vivo".

Simon Richter
fuente
3
Es un término agradable e inequívoco, que evita la necesidad de buscar términos como "binario", "ejecutable", "programa", ... para referirse a la imagen real en el disco.
Thomas
3
Una imagen es una instantánea de la memoria.
ikegami
2
No del todo: necesito suficiente información para (re) crear el estado completo del sistema. Si un volcado de memoria es suficiente para eso, entonces tengo conocimiento implícito (dirección de inicio, estado inicial del sistema); Si no es suficiente, no me referiría al volcado de memoria como una imagen .
Simon Richter
20

No significa que una "imagen" sea solo una copia 1: 1 de un disco. Al igual que una fotografía representa la realidad exactamente como lo fue cuando se dispara, una imagen de un programa ejecutable (o núcleo) representa el programa en un estado, en el que se puede cargar (o descomprimido) en la memoria del sistema exactamente como es y luego dado el control a ello. Ese programa puede comenzar a ejecutarse desde ese estado de manera consistente. Entonces, la imagen del kernel de Linux es una imagen (una imagen del estado) del kernel de Linux que puede ejecutarse sola después de darle el control.

Hoy en día, el gestor de arranque carga dicha imagen desde el sistema de archivos del disco duro (se necesita un controlador), se reemplaza con él y le da el control. El proceso de arranque de una computadora lo hace varias veces hasta que el sistema operativo finalmente se ejecuta. Esto se llama carga en cadena . O si un programa más pequeño (chain-) carga uno más complejo, se llama bootstrapping .

El BIOS carga el gestor de arranque que también es una imagen, por ejemplo llamada boot.imgen caso de grub. Ese boot.imgno es un archivo (si grub está instalado); es el nombre de la parte que está en el Master Boot Record (MBR). Si volca eso en un archivo, entonces sería una imagen en forma de un archivo no escrito en bruto en el disco, sino escrito en un archivo. Esta también es una representación (imagen) del primer estado en el grubque puede cargar el resto de sí mismo. grubluego tiene su propio mecanismo para cargarse completamente cargando otras imágenes. Esto está representado por las diferentes etapas en grub. Después de eso, el gestor de arranque carga la imagen del núcleo al reemplazarse con el contenido extraído de ese archivo.

caos
fuente
7

Historia antigua. el término imagen proviene de un antiguo término de Digital Equipment Corporation para la salida del compilador-> enlazador. el archivo es una imagen creada al interpretar el código y así sucesivamente a través del enlazador para crear una "Imagen" ejecutable de su diseño.

SkipBerne
fuente
1
Votaría si agregaras un enlace de referencia
RobAu
consulte el "Manual de referencia de sistemas RSX-11M + de Digital Equipment Corporation" DEC 1981. desde entonces se propagó a través de la industria
SkipBerne
5

En matemáticas, el núcleo es la imagen inversa de un subconjunto de la imagen de un mapa, si el subconjunto es igual al elemento de identidad en el codominio. Estoy seguro de que estos nombres se derivan de conceptos matemáticos, ya que están relacionados significativamente en varios campos de las matemáticas. Teniendo en cuenta que Unix se derivó en un entorno académico, es posible que su uso del núcleo y la imagen de estas palabras sean iguales.

Si tiene un conjunto que representa algún nivel de información sobre el sistema operativo "completo", si esa información también forma un grupo, entonces puede definir los homomorfismos de grupo en ese conjunto o básicamente se asigna a otros conjuntos que tienen diferentes tamaños, entonces el conjunto original siempre que ellos "respetan" la estructura del conjunto original que lo convirtió en un grupo. Puede ver que puede estar a su favor asignar el conjunto a un conjunto más pequeño o un subconjunto de algún conjunto donde el subconjunto es más pequeño.

Imagen: la imagen de un homomorfismo grupal y, en general, las funciones y los mapas, son solo un subconjunto de algún conjunto, cuyos elementos se asignan realmente. Es posible que la función no se asigne a cada elemento individual y esos elementos no se incluirían en la imagen.

Kernel: básicamente, solo los elementos del conjunto original se asignan a la imagen, pero solo se asignan al elemento de identidad en la imagen. Básicamente, los elementos que se asignan a 0 son similares en la imagen.

Si la imagen es más pequeña que el conjunto original, podemos ver que varios elementos deben mapearse en un solo elemento. Entonces, por ejemplo, puede haber múltiples elementos del núcleo que se asignan a la imagen y ya sabemos que todos tienen que asignarse a 0.

Podemos ver que si elegimos que el conjunto original sea secuencias finitas de binario o 1 y 0 y el codominio (conjunto asignado a) también sean secuencias de binario, entonces podemos construir tales cosas si y solo si, una estructura de grupo adecuada se puede definir (un poco en profundidad y sin relación con la pregunta formulada).

Entonces vemos con total certeza que "núcleo" e "imagen" de un sistema operativo están completamente definidos y tienen un significado matemático. Independiente de quizás otros usos de los términos.

nave de mariscal
fuente
Básicamente, el núcleo puede ser una versión 'diluida' del sistema operativo, o parte del sistema operativo que es importante y puede 'abstraerse', siempre que el mapa sea homorfismo inyectivo y sea conocido, pueda resolver toda la imagen sin tener que cargar Toda la imagen. Parece un método de compresión de datos de donde provienen los términos "núcleo" e "imagen". Pero realmente provienen de conceptos matemáticos bien conocidos.
Mariscal artesanal
3
Hola mariscal Es mejor mejorar tu publicación editándola en lugar de agregar comentarios.
Anthony G - justicia para Monica
44
Creo que el uso informático del núcleo proviene de " La parte central (generalmente comestible) de una nuez, especialmente una vez que se ha quitado la cubierta dura " (ver wiktionary ): es la parte pequeña e interna del sistema operativo; después de quitar todas las "capas externas" (GUI, shells de comandos, controladores cargables) es la parte mínima (aproximadamente) necesaria para hacer / dejar que el hardware funcione de alguna manera útil.
TripeHound
Wow solo wow. Especulación sin base. TripeHound lo hizo bien. Mariscal de la nave acaba de adivinar.
Joshua
Revise su tipo "bastante seguro" :)
hobbs