You are on page 1of 10

Ncleo (informtica)

En informtica, un ncleo o kernel (de la raz germnica Kern, 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.

Contenido

1 Tcnica

2 Generalidades

2.1 Funciones generalmente ejercidas por un ncleo

2.2 Unix

3 Tipos de ncleo
o

3.1 Microncleos

3.2 Ncleos monolticos en contraposicin a microncleos

3.3 Ncleos hbridos (microncleos modificados)

3.4 Exoncleos

4 Referencias

5 Vase tambin

6 Enlaces externos

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 reset code, 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 (startup code), 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 generalmente 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.
Unix

Un ncleo Unix es un programa escrito casi en su totalidad en lenguaje C, con excepcin de


una parte del manejo de interrupciones, expresada en el lenguaje ensamblador del
procesador en el que opera. 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.
A continuacin, el ncleo inicializa un proceso especial, llamado proceso 0. En Unix, los
procesos se crean mediante una llamada a una rutina del sistema (fork), que funciona por un
mecanismo de duplicacin de procesos. Sin embargo, esto no es suficiente para crear el
primero de ellos, por lo que el ncleo asigna una estructura de datos y establece
apuntadores a una seccin especial de la memoria, llamada tabla de procesos, que
contendr los descriptores de cada uno de los procesos existentes en el sistema.
Despus de haber creado el proceso 0, se hace una copia del mismo, con lo que se crea el
proceso 1; ste muy pronto se encargar de "dar vida" al sistema completo, mediante la
activacin de otros procesos que tambin forman parte del ncleo. Es decir, se inicia una
cadena de activaciones de procesos, entre los cuales destaca el conocido como despachador,
o planificador, que es el responsable de decidir cul proceso se ejecutar y cules van a
entrar o salir de la memoria central. A partir de ese momento se conoce el nmero 1 como
proceso de inicializacin del sistema, init.
El proceso init es el responsable de establecer la estructura de procesos en Unix.
Normalmente, es capaz de crear al menos dos estructuras distintas de procesos: el modo
monousuario y el multiusuario. Comienza activando el intrprete del lenguaje de control
Shell de Unix en la terminal principal, o consola del sistema, proporcionndole privilegios
de "superusuario". En la modalidad de un solo usuario la consola permite iniciar una

primera sesin, con privilegios especiales, e impide que las otras lneas de comunicacin
acepten iniciar sesiones nuevas. Esta modalidad se usa con frecuencia para revisar y reparar
sistemas de archivos, realizar pruebas de funciones bsicas del sistema y para otras
actividades que requieren uso exclusivo de la computadora.
Init crea otro proceso, que espera a que alguien entre en sesin en alguna lnea de
comunicacin. Cuando esto sucede, realiza ajustes en el protocolo de la lnea y ejecuta el
programa login, que se encarga de atender inicialmente a los nuevos usuarios. Si el nombre
de usuario y la contrasea proporcionadas son correctos, entonces entra en operacin el
programa Shell, que en lo sucesivo se encargar de la atencin normal del usuario que se
dio de alta en esa terminal.
A partir de ese momento el responsable de atender al usuario en esa terminal es el intrprete
Shell. Cuando se desea terminar la sesin hay que desconectarse de Shell (y, por lo tanto,
de Unix), mediante una secuencia especial de teclas (usualmente. < CTL > - D). A partir de
ese momento la terminal queda disponible para atender a un nuevo usuario.

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

Esquema del funcionamiento de un microncleo.


Artculo principal: 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.
Algunos ejemplos de microncleos:

AIX

La familia de microncleos L4

El microncleo Mach, usado en GNU Hurd y en Mac OS X

BeOS

Minix

MorphOS

QNX

RadiOS

VSTa

Hurd

Ncleos monolticos en contraposicin a microncleos


Artculos principales: Ncleo monoltico y Microncleo.

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.
A principios de los aos 90, los ncleos monolticos se consideraban obsoletos. El diseo
de Linux como un ncleo monoltico en lugar de como un microncleo fue el tema de una
famosa disputa5 entre Linus Torvalds y Andrew Tanenbaum. Los argumentos de ambas
partes en esta discusin presentan algunas motivaciones interesantes.
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.
Aunque Mach es el microncleo generalista ms conocido, se han desarrollado otros
microncleos con propsitos ms especficos. L3 fue creado para demostrar que los
microncleos no son necesariamente lentos. La familia de microncleos L4 es la
descendiente de L3, y una de sus ltimas implementaciones, llamada Pistachio, permite
ejecutar Linux simultneamente con otros procesos, en espacios de direccionamiento
separados.

QNX es un sistema operativo que ha estado disponible desde principios de los aos 80, y
tiene un diseo de microncleo muy minimalista. Este sistema ha conseguido llegar a las
metas del paradigma del microncleo con mucho ms xito que Mach. Se usa en
situaciones en que no se puede permitir que haya fallos de software, lo que incluye desde
brazos robticos en naves espaciales, hasta mquinas que pulen cristal donde un pequeo
error podra costar mucho dinero.
Mucha gente cree que como Mach bsicamente fall en el intento de resolver el conjunto
de problemas que los microncleos intentaban subsanar, toda la tecnologa de microncleos
es intil. Los partidarios de Mach afirman que sta es una actitud estrecha de miras que ha
llegado a ser lo suficientemente popular para que mucha gente la acepte como verdad.
Ncleos hbridos (microncleos modificados)
Artculo principal: Ncleo hbrido.

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.
Algunos ejemplos de ncleos hbridos:

Microsoft Windows NT, usado en todos los sistemas que usan el cdigo
base de Windows NT

XNU (usado en Mac OS X)

DragonFlyBSD

ReactOS

Hay gente que confunde el trmino ncleo hbrido con los ncleos monolticos que
pueden cargar mdulos despus del arranque, lo que es un error. Hbrido implica que el
ncleo en cuestin usa conceptos de arquitectura o mecanismos tanto del diseo monoltico
como del microncleo, especficamente el paso de mensajes y la migracin de cdigo no
esencial hacia el espacio de usuario, pero manteniendo cierto cdigo no esencial en el
propio ncleo por razones de rendimiento.

Exoncleos
Artculo principal: Exoncleo.

Esquema bsico de la 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 subyacente 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.
Los diseos de ncleos clsicos (tanto el monoltico como el microncleo) abstraen el
hardware, escondiendo los recursos bajo una capa de abstraccin del hardware, o detrs de
los controladores de dispositivo. En los sistemas clsicos, si se asigna memoria fsica, nadie
puede estar seguro de cul es su localizacin real, por ejemplo.
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.
Debido a que el exoncleo slo proporciona una interfaz al hardware de muy bajo nivel,
careciendo de todas las funcionalidades de alto nivel de otros sistemas operativos, ste es
complementado por una biblioteca de sistema operativo. Esta biblioteca se comunica con
el exoncleo subyacente, y facilita a los programadores de aplicaciones las funcionalidades
que son comunes en otros sistemas operativos.
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.
Actualmente, los diseos exoncleo estn fundamentalmente en fase de estudio y no se
usan en ningn sistema popular. Un concepto de sistema operativo es Nemesis, creado por
la Universidad de Cambridge, la Universidad de Glasgow, Citrix Systems y el Instituto
Sueco de Informtica. El MIT tambin ha diseado algunos sistemas basados en
exoncleos. Los exoncleos se manejan en diferente estructura dado que tambin cumplen
funciones distintas

FUENTES: WIKIPEDIA

You might also like