Vous êtes sur la page 1sur 6

Ncleo/Kernel

Ncleo o Kernel (de la raz germnicaKern, ncleo, hueso) es un software que constituye la parte ms importante del sistema operativo.1 Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma bsica, es el encargado de gestionar recursos, a travs de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, 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 al programador.

Tcnica
Cuando se aplica voltaje al procesador de un dispositivo electrnico, ste ejecuta un reducido cdigo en lenguaje ensamblador localizado en una direccin concreta en la memoria ROM (direccin de reset) y conocido como resetcode, que a su vez ejecuta una rutina con la que se inicializa el hardware que acompaa al procesador. Tambin en esta fase suele inicializarse el controlador de las interrupciones. Finalizada esta fase se ejecuta el cdigo de arranque (startupcode), tambin cdigo en lenguaje ensamblador, cuya tarea ms importante es ejecutar el programa principal (main()) del software de la aplicacin.2

Generalidades

Una visin tpica de la arquitectura de computadores como una serie de capas de abstraccin: hardware, firmware, lenguaje de mquina, ncleo, software de sistema y aplicaciones3 En informtica, el ncleo es el programa informtico que se asegura de:

La comunicacin entre los programas que solicitan recursos y el hardware. Gestin de los distintos programas informticos (tareas) de una mquina. Gestin del hardware (memoria, procesador, perifrico, forma de almacenamiento, etc.)

La mayora de las interfaces de usuario se construyen en torno al concepto de 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.

Funciones ejercidas por un ncleo


Los ncleos tienen como funciones bsicas garantizar la carga y la ejecucin de los procesos, las entradas/salidas y proponer una interfaz entre el espacio ncleo y los programas del espacio del usuario. Aparte de las funcionalidades bsicas, el conjunto de las funciones de los puntos siguientes (incluidos los pilotos materiales, las funciones de redes y sistemas de ficheros o los servicios) necesariamente no son proporcionados por un ncleo de sistema de explotacin. Pueden establecerse estas funciones del sistema de explotacin tanto en el espacio usuario como en el propio ncleo. Su implantacin en el ncleo se hace en el nico objetivo de mejorar los resultados. En efecto, segn la concepcin del ncleo, la misma funcin llamada desde el espacio usuario o el espacio ncleo tiene un coste temporal obviamente diferente. Si esta llamada de funcin es frecuente, puede resultar til integrar estas funciones al ncleo para mejorar los resultados. Las funciones del ncleo son permitir la existencia de un ambiente en el que sea posible atender a varios usuarios y mltiples tareas en forma concurrente, repartiendo al procesador entre todos ellos, e intentando mantener en grado ptimo la atencin individual. El ncleo opera como asignador de recursos para cualquier proceso que necesite hacer uso de las facilidades de cmputo.

Creacin de procesos, asignacin de tiempos de atencin y sincronizacin. Asignacin de la atencin del procesador a los procesos que lo requieren. Administracin de espacio en el sistema de archivos, que incluye: acceso, proteccin y administracin de usuarios; comunicacin entre usuarios y entre procesos, y manipulacin de E/S y administracin de perifricos.

Supervisin de la transmisin de datos entre la memoria principal y los dispositivos perifricos.

Reside siempre en la memoria principal y tiene el control sobre la computadora, por lo que ningn otro proceso puede interrumpirlo; slo pueden llamarlo para que proporcione algn servicio de los ya mencionados. Un proceso llama al ncleo mediante mdulos especiales conocidos como llamadas al sistema. Consta de dos partes principales:la seccin de control de procesos y la de control de dispositivos. La primera asigna recursos, programas, procesos y atiende sus requerimientos de servicio; la segunda, supervisa la transferencia de datos entre la memoria principal y los dispositivos del ordenador. En trminos generales, cada vez que algn usuario oprime una tecla de una terminal, o que se debe leer o escribir informacin del disco magntico, se interrumpe al procesador central y el ncleo se encarga de efectuar la operacin de transferencia. Cuando se inicia la operacin de la computadora, debe cargarse en la memoria una copia del ncleo, que reside en el disco magntico (operacin denominada bootstrap). Para ello, se deben inicializar algunas interfaces bsicas de hardware; entre ellas, el reloj que proporciona interrupciones peridicas. El ncleo tambin prepara algunas estructuras de datos que abarcan una seccin de almacenamiento temporal para transferencia de informacin entre terminales y procesos, una seccin para almacenamiento de descriptores de archivos y una variable que indica la cantidad de memoria principal.

Tipos de ncleo
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. Los microncleos (en ingls microkernel) proporcionan un pequeo conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.4

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. 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.

Microncleos

Funcionamiento de un microncleo. El enfoque microncleo consiste en definir una abstraccin muy simple sobre el hardware, con un conjunto de primitivas o llamadas al sistema que implementan servicios del sistema operativo mnimos, como la gestin de hilos, el espacio de direccionamiento y la comunicacin entre procesos. El objetivo principal es la separacin de la implementacin de los servicios bsicos y de la poltica de funcionamiento del sistema. Por ejemplo, el proceso de bloqueo de E/S se puede implementar con un servidor en espacio de usuario ejecutndose encima del microncleo. Estos servidores de usuario, utilizados para gestionar las partes de alto nivel del sistema, son muy modulares y simplifican la estructura y diseo del ncleo. Si falla uno de estos servidores, no se colgar el sistema entero, y se podr reiniciar este mdulo independientemente del resto. Sin embargo, la existencia de diferentes mdulos independientes origina retardos en la comunicacin debido a la copia de variables que se realiza en la comunicacin entre mdulos. Microncleos:

AIX La familia de microncleos L4 El microncleo Mach, usado en

GNUHurd y en Mac OS X BeOS Minix MorphOS

QNX RadiOS VSTa Hurd

Ncleos monolticos en contraposicin a microncleos


Frecuentemente se prefieren los ncleos monolticos frente a los microncleos debido al menor nivel de complejidad que comporta el tratar con todo el cdigo de control del sistema en un solo espacio de direccionamiento. Por ejemplo, XNU, el ncleo de Mac OS X, est basado en el ncleo Mach 3.0 y en FreeBSD, en el mismo espacio de direccionamiento para disminuir la latencia que comporta el diseo de microncleo convencional. Los ncleos monolticos suelen ser ms fciles de disear correctamente, y por lo tanto pueden crecer ms rpidamente que un sistema basado en microncleo, pero hay casos de xito en ambos bandos. Los microncleos suelen usarse en robtica embebida o computadoras mdicas, ya que la mayora de los componentes del sistema operativo residen en su propio espacio de memoria privado y protegido. Esto no sera posible con los ncleos monolticos, ni siquiera con los modernos que permiten cargar mdulos del ncleo.

Ncleos hbridos (microncleos modificados)


Los ncleos hbridos fundamentalmente son microncleos que tienen algo de cdigo no esencial en espacio de ncleo para que ste se ejecute ms rpido de lo que lo hara si estuviera en espacio de usuario. ste fue un compromiso que muchos desarrolladores de los primeros sistemas operativos con arquitectura basada en microncleo adoptaron antes que se demostrara que los microncleos pueden tener muy buen rendimiento. La mayora de sistemas operativos modernos pertenecen a esta categora, siendo el ms popular Microsoft Windows. XNU, el ncleo de Mac OS X, tambin es un microncleo modificado, debido a la inclusin de cdigo del ncleo de FreeBSD en el ncleo basado en Mach. DragonFlyBSD es el primer sistema BSD que adopta una arquitectura de ncleo hbrido sin basarse en Mach. Ncleos hbridos:

MicrosoftWindows NT, usado en todos los sistemas que usan el cdigo base de Windows NT XNU (usado en Mac OS X)

DragonFlyBSD ReactOS

Exoncleos

Interaccin entre un Exoncleo (Exokernel) con el Software a travs de bibliotecas. Los Exoncleos, tambin conocidos como sistemas operativos verticalmente estructurados, representan una aproximacin radicalmente nueva al diseo de sistemas operativos. La idea es permitir que el desarrollador tome todas las decisiones relativas al rendimiento del hardware. Los Exoncleos son extremadamente pequeos, ya que limitan expresamente su funcionalidad a la proteccin y el multiplexado de los recursos. Se llaman as porque toda la funcionalidad deja de estar residente en memoria y pasa a estar fuera, en bibliotecas dinmicas. La finalidad de un Exoncleo es permitir a una aplicacin que solicite una regin especfica de la memoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos estn disponibles, y que el programa tiene derecho a acceder a ellos. Algunas de las implicaciones tericas de un sistema Exoncleo son que es posible tener distintos tipos de sistemas operativos (p.e. Windows, Unix) ejecutndose en un solo Exoncleo, y que los desarrolladores pueden elegir prescindir incrementar funcionalidades por motivos de rendimiento.

Conclusin