martes, 6 de octubre de 2015
Kernel de un Sistema Operativo
En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta en modo privilegiado. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.
En algunos sistemas operativos, no existe un núcleo como tal (algo común en sistemas empotrados), debido a que en ciertas arquitecturas no hay distintos modos de ejecución.
Kernel panic
El kernel panic (en español: pánico en el núcleo) es un mensaje mostrado por un sistema operativo una vez detectado un error interno de sistema del cual no se puede recuperar. Los kernel panic usualmente proveen información de depuración que es útil sólo para los desarrolladores del sistema operativo.
Historia
El kernel panic fue introducido en una versión temprana de Unix, y demostró una gran diferencia entre la filosofía de diseño de Unix y su predecesor Multics.
Posibles causas
Intentos del sistema operativo para leer una dirección de memoria inválida o no permitida son una fuente común de kernel panics. El error también puede ocurrir como resultado de un fallo de hardware.
Es probable también que se presente si falta algún módulo que deba ir pegado al kernel dependiendo del hardware con el que se cuente.
Un kernel panic puede ser producto de una explotación de una vulnerabilidad en algún módulo del núcleo de forma malintencionada, logrando corromper la integridad del sistema.
Kernel codex
Como he leído, núcleo mapas de 0(o 16) MB-896MB RAM física en 0xC0000000 dirección lineal y se pueden resolver directamente. Así, en la de arriba descritos caso de que solo tengo 512 MB:
· ¿Cómo puede el kernel mapa de 896 MB de sólo 512 MB ? En el esquema descrito, el núcleo de conjunto de las cosas, de manera que cada proceso de las tablas de la página asignan las direcciones virtuales de 0xC0000000 a 0xFFFFFFFF (1GB) directamente a direcciones físicas de 0x00000000 a 0x3FFFFFFF (1GB). Pero cuando solo tengo 512 MB de RAM física, ¿cómo puedo mapa, direcciones virtuales de 0xC0000000-0xFFFFFFFF valor físico 0x00000000-0x3FFFFFFF ? El punto es que tengo un alcance físico de sólo 0 x 00000000-0x20000000.
· ¿Qué acerca de los procesos de modo de usuario en esta situación?
· Cada artículo se explica sólo por la situación, cuando la he instalado 4 GB de memoria y el kernel asigna el 1 GB en el espacio del kernel y los procesos de usuario utiliza el resto de la cantidad de RAM.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario