Está en la página 1de 12

2.

2 NUCLEO O KERNEL

Definicin de Kernel Ncleo. Parte esencial de un sistema operativo que provee los servicios ms bsicos del sistema. Se encarga de gestionar los recursos como el acceso seguro al hardware de la computadora. Se encarga tambin del multiplexado, determinando qu programa acceder a un determinado hardware si dos o ms quieren usarlo al mismo tiempo. El kernel tambin ofrece una serie de abstracciones del hardware para que los programadores no tengan que acceder directamente al hardware, proceso que puede ser complicado. En informtica, el ncleo (tambin conocido en espaol con el anglicismo kernel, de races germnicas como kern) es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora. Como hay muchos programas y el acceso al hardware es limitado, el ncleo tambin se encarga de decidir qu programa podr hacer uso de un dispositivo de hardware y durante cunto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los ncleos 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 para el programador.

Esquema bsico de la interaccin entre un Ncleo (Kernel), el resto del Software (los programas de aplicacin, las bases de datos, etc.) y el Hardware.

Generalidades En informtica, el ncleo de un sistema operativo, es el programa informtico que se asegura de: La comunicacin entre los programas informticos y el hardware. Gestin de los distintos programas informticos (tareas) de una mquina. Gestin del hardware almacenamiento, etc.) (memoria, procesador, perifrico, forma de

La mayora de los sistemas operativos se construyen en torno al concepto del ncleo. La existencia de un ncleo, es decir, de un nico programa responsable de la comunicacin entre el hardware y el programa informtico, resulta de compromisos complejos referentes a cuestiones de resultados, seguridad y arquitectura de los procesadores. El ncleo tiene grandes poderes sobre la utilizacin de los recursos materiales (hardware), en particular, de la memoria. Los ncleos tienen como funciones bsicas de garantizar el cargamento y la ejecucin de los procesos, las entradas / salidas y proponer un interfaz entre el espacio ncleo y los programas del espacio del usuario. Tipos de Ncleos No necesariamente se necesita un ncleo para usar una computadora. Los programas pueden cargarse y ejecutarse directamente en una computadora vaca, siempre que sus autores quieran desarrollarlos sin usar ninguna abstraccin del hardware ni ninguna ayuda del sistema operativo. sta era la forma normal de usar muchas de las primeras computadoras: para usar distintos programas se tena que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empez a dejar en memoria (an entre distintas ejecuciones) pequeos programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de slo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegaran a ser los primeros ncleos de sistema operativo. Hay cuatro grandes tipos de ncleos: Los ncleos monolticos facilitan abstracciones del hardware subyacente realmente potentes y variadas.
2

Los microncleos (en ingls microkernel) proporcionan un pequeo conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad. Los ncleos hbridos (microncleos modificados) son muy parecidos a los microncleos puros, excepto porque incluyen cdigo adicional en el espacio de ncleo para que se ejecute ms rpidamente. Son los que reciben o dan salida a seales analgicas que son procesadas digitalmente. Esto puede realizarse gracias a los conversores analogicos/digitales que , como su nombre indica ,convierte seales analgicas a digitales Los exoncleos no facilitan ninguna abstraccin, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.

El kernel ncleo de linux se puede definir como el corazn de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos. Las funciones ms importantes del mismo, aunque no las nicas, son:

Administracin de la memoria para todos los programas y procesos en ejecucin. Administracin del tiempo de procesador que los programas y procesos en ejecucion utilizan. Es el encargado de que podamos acceder a los perifricos/elementos de nuestro ordenador de una manera cmoda.

Hasta que empez el desarrollo de la serie 2.6 del ncleo, existieron dos tipos de versiones del ncleo:

Versin de produccion: La version de produccion, era la version estable hasta el momento. Esta version era el resultado final de las versiones de desarrollo o experimentales. Cuando el equipo de desarrollo del ncleo experimental, decidia que tenia un nclo estable y con la suficiente calidad, se lanzaba una nueva versin de produccin estable. Esta versin era la que se debia utilizar para un uso normal del sistema, ya que eran las versiones consideradas ms estables y libres de fallos en el momento de su lanzamiento.

Versin de desarrollo: Esta versin era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas
3

caractersticas, correcciones, etc. Estos ncleos solian ser inestables y no se debian usar sin saber lo que se hacia. Como interpretar los numeros de las versiones de las series por debajo de la 2.6:

Las versiones del ncleo se numeraban con 3 numeros, de la siguiente forma: AA.BB.CC AA: Indicaba la serie/versin principal del ncleo. Solo han existido la 1 y 2. Este nmero cambiaba cuando la manera de funcionamiento del kernel habia sufrido un cambio muy importante. BB: Indicaba si la versin era de desarrollo de produccin. Un nmero impar, significaba que era de desarrollo, uno par, que era de produccin. CC: Indicaba nuevas revisiones dentro de una versin, en las que lo nico que se habia modificado eran fallos de programacin.

Unos ejemplos nos ayudaran a entenderlo mejor: ej1: versin del ncleo 2.4.0: Ncleo de la serie 2 (AA=2), versin de produccin 4 (BB=4 par), primera versin de la serie 2.4 (CC=0) ej2: versin del ncleo 2.4.1: Ncleo de la serie 2, versin 4, en el que se han corregido errores de programacin presentes en la version 2.4.0 (CC=1) ej3: versin del ncleo 2.5.0: versin 0 del ncleo de desarrollo 2.5.

Con la serie 2.6 del ncleo, el sistema de numeracin asi como el modelo de desarrollo han cambiado. Las versiones han pasado a numerarse con 4 digitos y no existen versiones de produccion y desarrollo.

Las versiones del ncleo se numeran hoy en dia con 4 digitos, de la siguiente forma: AA.BB.CC.DD. AA: Indica la serie/versin principal del ncleo. BB: Indica la revision principal del ncleo. Numeros pares e impares no tienen ningun significado hoy en dia. CC: Indica nuevas revisiones menores del ncleo. Cambia cuando nuevas caracteristicas y drivers som soportados. DD: Este digito cambia cuando se corrigen fallos de programacin o fallos de seguridad dentro de una revisin.

Hoy en dia se suele usar el nucleo distribuido con la distribucion que el usuario utiliza. Son las distribuciones las encargadas de distribuir ncleos estables a sus ausuarios y estos nucleos se basan en el ncleo ("vanilla") distribuido por Linux Torvalds y el equipo de programadores del ncleo.

Dnde conseguir el ncleo El ncleo denominado "vanilla" (sin alteraciones y suministrado por Linux Torvalds) se puede bajar de un gran nmero de servidores en internet pero el sitio oficial es http://www.kernel.org/. En este enlace tienes la lista internacional oficial de servidores espejos, de donde es posible bajarse cualquier versin del ncleo (ltima y antigas). Cada distribucin distribuye sus nucleos por los canales de actualizacin habituales para cada una de ellas. Configuracin e instalacin de un nuevo ncleo Este es uno de los temas que asustan a los nuevos usuarios de Linux. Lo primero, deciros que no hay razn para asustarse, la configuracin e instalacin de un nuevo ncleo en nuestro sistema es mas fcil de lo suena. Lo segundo, es que puedes tener un sistema estable, actualizado y que funcione sin problemas durante meses sin tener que compilar un solo ncleo, siempre y cuando utilices los ncleos distribuidos con esa distribucin. Es muy recomendable el utilizar los ncleos distribuidos por la distribucin que utilizas. Estos ncleos tienen muy buena calidad y son muy completos y con esto nos evitamos el trabajo de configurar, compilar y mantener nuevas versiones del ncleo. Si eres de los que les gustan experimentar y aprender nuevas cosas, adelante, nadie impide bajar el ltimo ncleo y experimentar con el, esto era mucho ms comn hace unos aos y una tarea casi imprescindible en muchos casos. Para los interesados en el tema existen dos documentos muy buenos que podeis utilizar para aprender a como compilar un ncleo, FAQ/Kernel compilation y el Kernel Rebuild Guide Como compilar un kernel. Cuando Linux inicia, se suele cargar un archivo comprimido en memoria que suele andar por /boot, y que se llama /boot/vmlinux-x.x.x, este archivo resulta ser el kernel comprimido. La idea de configurar u optimizar este kernel, es la de crear este archivo, con los drivers y datos que sean acordes a la configuracin tcnica de nuestra mquina. Para hacer esto, los drivers pueden ser configurados tanto formando parte del kernel como de forma de un mdulo cargable. El propsito de este concepto radica en que hay drivers, como el audio, por ejemplo, que no hacen falta todo el tiempo, sino solo cuando se va ha necesitar en una aplicacin tipo CD Player. Si por lo contrario, es necesario desde un principio convendra que sea parte del kernel. Si elijo cargarlo como mdulo, se puede hacer de dos maneras, o
5

habilito la opcin de que el kernel lo cargue o bien lo realizo a mano, a travs del comando insmod. Si hemos cargado las fuentes del kernel precompilado de nuestra distribucin, tendremos las mismas en el directorio /usr/src/linux, all hay un archivo oculto llamado .config, es un archivo, para variar de texto, por lo que podemos abrirlo con cualquier editor e imprimirlo, por cualquier cosa. Existen opciones de configuracin que no deben cambiarse como protocolos, y otras cosas, pero con el tiempo de uso del Sistema se vern que cosa hacen falta o no. Sobre todo en kernel nuevos a compilar. Como norma, suelo dejar el kernel viejo y le agrego el nuevo, como predeterminado en el arranque. Si tengo algn inconveniente de que no arranque o algo similar, entonces vuelvo a bootear e inicio el viejo, para solucionar el problema. El proceso empleado para bootear es bastante simple ya que son comandos mas o menos estndares. El nico inconveniente aparece al tener que elegir las cosas a cargar o no. Para iniciar la compilacin se requiere tener instalado la utilidad make y un compilador para C, como el gcc. Sabiendo que tenemos los dos programas y las fuentes del kernel en nuestro poder, comenzamos con el proceso: Primero borramos el directorio /usr/src/linux, recordemos que es un link. Luego descomprimamos y desempaquetemos las fuentes en el directorio /usr/src/linux, cambiamos el nombre del directorio a /usr/src/linux-x.x.x que corresponden a la versin del kernel, por ejemplo si han descargado el 2.2.17, sera /usr/src/linux-2.2.17. Creamos un link en el directorio /usr/src/linux que seale a /usr/src/linux2.2.17, esto nos servir cuando estemos compilando. Dentro de directorio tenemos tres opciones para trabajar, si estamos sobre las X ponemos (en consola), make xconfig, si estamos en consola y deseamos trabajar con una pequea pantalla grfica ponemos make menuconfig. Si deseamos trabajar directamente desde consola, se usa make config. Las diferencias son, que las dos primeras pueden o permiten mostrar una ayuda, por las dudas, mientras que le otra no, adems de no permitir ir hacia atrs. Luego de optimizar el kernel, se graban los cambios, en este punto se pueden hacer varias cosas, una es grabar la configuracin en un archivo que yo he definido y la otra es guardar en el mismo .config. Otra opcin es de no guardar e incluso permite cargar una configuracin anterior, por ejemplo si estamos actualizando y no queremos volver a verificar todas las opciones.
6

Luego de terminar el proceso de seleccin, hacemos make dep, que crea las dependencias de los mdulos, algunos hacen make clean, que borra las configuraciones anteriores. Yo no lo hago, a criterio. Posterior a esto viene make bzImage, este paso es muy importante ya que comprime el kernel que hemos creado. Puede pasar que indique que el cache sea muy chico, entonces se hace make zImage. Recuerden que Linux considera las palabras con letras maysculas y minsculas. Suele tardar algn tiempo. Terminado este proceso viene make modules, que crea los mdulos que hemos definido. Al terminar hacemos make modules_install y genera los directorios e instala los mdulos creados en el paso anterior. Hasta aqu se crearan dos archivos que nos interesan, uno es /usr/src/linux/System.map, y otro llamado /usr/src/linux/arch/i386/boot/bzImage, ahora los copiamos al directorio /boot haciendo: # cp /usr/src/linux/System.map /boot/System.map-2.2.27, (segn el ejemplo) # cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinux-2.2.17. Ahora debemos borrar el archivo /boot/System.map, que suele ser un link, y lo creamos nuevamente para el System.map nuevo. En este paso algunos hacen make lilo, pero prefiero configurar el archivo de configuracin del lilo de forma personal, de la siguiente manera: Agrego como opcin: image=/boot/vmlinux-2.2.17 label=linux.nuevo # aqu va el nombre que decidan. root= /dev/hda5 # el dispositivo que es el linux native. Suele ser el mismo que el kernel viejo. read-only append= opciones # qau van las opciones que necesiten. Luego de hacer esto hay que reinstalar el lilo para ver si es tomado el nuevo kernel, se escribe en consola lilo -v. Si hay error entonces ser indicado, puede ser que parezca por un error de tipeo en alguna sentencia, se modifica el /etc/lilo.conf y se reinstala. Luego se reinicia la PC y se bootea con el nuevo kernel. Si todo funciona bien, entonces no habra problemas pero si hay duda pueden consultar el Kernel-Como para ver si hay algn problema. Hago notar, que este mtodo, me a dado resultado y a varios de la misma manera, por lo que considero que no tendrn problemas al respecto.
7

Kernel Panic El kernel panic es un mensaje desplegado por un sistema operativo una vez detectado un error interno de sistema del cual no se puede recuperar. Intentos del sistema operativo para leer una direccin de memoria invlida o no permitida son una fuente comn de kernel panics. El error tambin puede ocurrir como resultado de un fallo de hardware. Un kernel panic puede ser producto de una explotacin de una vulnerabilidad en algn mdulo del kernel de forma malintencionada, logrando corromper la integridad del sistema. Kernel Panic, o Pantalla azul de la muerte en Windows La llamada Blue Screen of Death o BSoD (ms conocida en espaol como pantalla azul de la muerte o pantallazo azul), hace referencia a la pantalla mostrada por el sistema operativo Windows de Microsoft cuando no puede (o est en peligro de no poder) recuperarse de un error de sistema. Hay dos pantallas de error de Windows referidas como pantallas azules de la muerte, siendo una de ellas bastante ms seria que la otra. Una pantalla azul de la muerte es conocida como un "Stop Error" o "Error de detencin grave" en los manuales de Windows XP. Una pantalla azul de la muerte "real" sucede cuando el kernel del sistema operativo Windows NT no puede recuperarse de un error y la nica accin que un usuario puede realizar es reiniciar el sistema perdiendo todo el trabajo no guardado, el estado de todos los programas ejecutndose en ese momento y, posiblemente, poniendo en peligro la integridad del sistema de archivos.

La pantalla azul de la muerte est presente, de una forma u otra, en todos los sistemas Windows desde Windows 2.0. La informacin mostrada en la pantalla azul de la muerte no es, en ningn caso, suficiente para determinar que fue mal, incluso para alguien con acceso al cdigo fuente (por ejemplo, no contiene un volcado de pila y, aunque lo contuviese, sera bastante trabajo copiarlo a otro sitio, dado que no se pueden grabar los datos mostrados en la pantalla azul). La pantalla slo muestra el punto en el cual el cdigo fall (que puede ser completamente diferente del punto donde el error fue originado) y, por ello puede inducir errneamente al usuario a pensar que se trata de un error de hardware o algo similar. El motivo ms comn por el cual se muestran pantallas azules, es por problemas entre versiones incompatibles de DLLs (biblioteca de enlace dinmico). Esta causa es conocida en ocasiones como el infierno de las DLL. Windows carga esas DLL en memoria cuando son necesitadas por los programas. Si esas DLLs son reemplazadas por otras ms recientes (o ms antiguas), la prxima vez que la aplicacin cargue la DLL puede encontrarse con algo distinto a lo que espera. Estas incompatibilidades aumentan con el paso del tiempo, segn se va instalando ms y ms software. Ello es uno de las principales motivos por los cuales un sistema recin instalado es ms estable que uno al que se le han practicado mltiples instalaciones y desinstalaciones de programas. Kernel Panic en Mac Os Se produce cuando el ncleo del Sistema recibe datos en un formato que le es desconocido o que no puede usar debidamente, tambin pueden ser causados por un mal estado del hardware del equipo, o por problemas con los drivers de estos.

Como se ve en la imagen, un Kernel Panic consiste en un texto sobrescrito en la ltima imagen que se mostrara en pantalla, el cual, a diferencia de Windows, puede ser de gran ayuda para los programadores y ayudarles a solucionar los problemas que pudieran tener tanto el hardware como el software (si es que el problema es algo mas grande que un simple cuelgue ).

10

Kernel Panic en Linux

En Linux, un panic es un error insalvable del sistema detectado por el kernel en oposicin a los errores similares detectados en el cdigo del espacio de usuario. Es posible para el cdigo del kernel indicar estas condiciones mediante una llamada a la funcin de pnico situada en el archivo header sys/system.h. Sin embargo, la mayora de los alertas son el resultado de excepciones en el cdigo del kernel que el procesador no puede manejar, como referencias a direcciones de memorias invlidas. Generalmente esto es indicador de la existencia de un bug en algn lugar de la cadena de alerta. Tambin pueden indicar una falla en el hardware como una falla del RAM o errores en las funciones aritmticas en el procesador, o por un error en el software.

11

Y ac un plus para hacer un poco interesante este documento: Si tienes Windows y el color azul del panic te tiene enfermo, con esto vas a poder cambiarle el color 1) Con el Notepad abrir archivo System.ini (C: \WINDOWS) 2) Localizar Seccin 386ENH 3) Aadir a esa seccin el siguiente texto: MessageBackColor=Numero de color y MessageTextColor=Numero de Color 4) Los nmeros de colores son: 0 -> Azul, 1 -> Verde, 2-> cian, 3 rojo, 4 magenta, 5 marrn, 6 blanco, 7 azul intenso, 8 verde intenso, A: cian intenso, B rojo intenso, C magenta intenso, D amarillo, E blanco.

12

También podría gustarte