Sunteți pe pagina 1din 6

N�cleo (inform�tica)

Ir a la navegaci�nIr a la b�squeda
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 (conocido tambi�n como modo
n�cleo).1? 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� usar un dispositivo de hardware y durante cu�nto tiempo, lo que se
conoce como multiprogramaci�n. 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 proporcionar 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.

�ndice
1 T�cnica
2 Generalidades
2.1 Funciones generalmente ejercidas por un n�cleo
2.2 Unix
3 Tipos de sistemas
3.1 Micron�cleos
3.2 N�cleos monol�ticos en contraposici�n a micron�cleos
3.3 N�cleos h�bridos (micron�cleos modificados)
3.4 Exon�cleos
4 Referencias
5 V�ase tambi�n
6 Enlaces externos
T�cnica
Cuando se aplica voltaje al procesador de un dispositivo electr�nico, �ste ejecuta
un reducido c�digo en lenguaje ensamblador localizado en una direcci�n concreta en
la memoria ROM (direcci�n de reset) y conocido como reset code, que a su vez
ejecuta una rutina con la que se inicializa el hardware que acompa�a al procesador.
Tambi�n en esta fase suele inicializarse el controlador de las interrupciones.
Finalizada esta fase se ejecuta el c�digo de arranque (startup code), tambi�n
c�digo en lenguaje ensamblador, cuya tarea m�s importante es ejecutar el programa
principal (main()) del software de la aplicaci�n.2?

Generalidades
En inform�tica, los sistemas operativos son el n�cleo del ordenador que se asegura
de:

La comunicaci�n entre los programas que solicitan recursos y el hardware.


Gesti�n de los distintos programas inform�ticos (tareas) de una m�quina.
Gesti�n del hardware (memoria, procesador, perif�rico, forma de almacenamiento,
etc.)
La mayor�a de las interfaces de usuario se construyen en torno al concepto de
n�cleo. La existencia de un n�cleo, es decir, de un �nico programa responsable de
la comunicaci�n entre el hardware y el programa inform�tico, resulta de compromisos
complejos referentes a cuestiones de resultados, seguridad y arquitectura de los
procesadores. El n�cleo tiene grandes poderes sobre la utilizaci�n de los recursos
materiales (hardware), en particular, de la memoria.

Funciones generalmente ejercidas por un n�cleo


Los n�cleos tienen como funciones b�sicas garantizar la carga y la ejecuci�n de los
procesos, las entradas/salidas y proponer una interfaz entre el espacio n�cleo y
los programas del espacio del usuario.

Aparte de las funcionalidades b�sicas, 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 n�cleo de
sistema de explotaci�n. Pueden establecerse estas funciones del sistema de
explotaci�n tanto en el espacio usuario como en el propio n�cleo. Su implantaci�n
en el n�cleo se hace con el �nico objetivo de mejorar los resultados. En efecto,
seg�n la concepci�n del n�cleo, la misma funci�n llamada desde el espacio usuario o
el espacio n�cleo tiene un coste temporal obviamente diferente. Si esta llamada de
funciones es frecuente, puede resultar �til integrar estas funciones al n�cleo para
mejorar los resultados.

Unix
Un n�cleo Unix es un programa escrito casi en su totalidad en lenguaje C, con
excepci�n de una parte del manejo de interrupciones, expresada en el lenguaje
ensamblador del procesador en el que opera. Las funciones del n�cleo son permitir
la existencia de un ambiente en el que sea posible atender a varios usuarios y
m�ltiples tareas en forma concurrente, repartiendo al procesador entre todos ellos,
e intentando mantener en grado �ptimo la atenci�n individual.

El n�cleo opera como asignador de recursos para cualquier proceso que necesite
utilizar las facilidades de c�mputo. Sus funciones principales son:

Creaci�n de procesos, asignaci�n de tiempos de atenci�n y sincronizaci�n.


Asignaci�n de la atenci�n del procesador a los procesos que lo requieren.
Administraci�n de espacio en el sistema de archivos, que incluye: acceso,
protecci�n y administraci�n de usuarios; comunicaci�n entre usuarios y entre
procesos, y manipulaci�n de E/S y administraci�n de perif�ricos.
Supervisi�n de la transmisi�n de datos entre la memoria principal y los
dispositivos perif�ricos.
Reside siempre en la memoria principal y tiene el control sobre la computadora, por
lo que ning�n otro proceso puede interrumpirlo; s�lo pueden llamarlo para que
proporcione alg�n servicio de los ya mencionados. Un proceso llama al n�cleo
mediante m�dulos especiales conocidos como llamadas al sistema.

Consta de dos partes principales: la secci�n 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 t�rminos generales, cada
vez que alg�n usuario oprime una tecla de una terminal, o que se debe leer o
escribir informaci�n del disco magn�tico, se interrumpe al procesador central y el
n�cleo se encarga de efectuar la operaci�n de transferencia.

Cuando se inicia la operaci�n de la computadora, debe cargarse en la memoria una


copia del n�cleo, que reside en el disco magn�tico (operaci�n denominada
bootstrap). Para ello, se deben inicializar algunas interfaces b�sicas de hardware;
entre ellas, el reloj que proporciona interrupciones peri�dicas. El n�cleo tambi�n
prepara algunas estructuras de datos que abarcan una secci�n de almacenamiento
temporal para transferencia de informaci�n entre terminales y procesos, una secci�n
para almacenamiento de descriptores de archivos y una variable que indica la
cantidad de memoria principal.

A continuaci�n, el n�cleo 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 duplicaci�n de procesos. Sin embargo, esto no es
suficiente para crear el primero de ellos, por lo que el n�cleo asigna una
estructura de datos y establece apuntadores a una secci�n especial de la memoria,
llamada tabla de procesos, que contendr� los descriptores de cada uno de los
procesos existentes en el sistema.

Despu�s de haber creado el proceso cero, se hace una copia del mismo, con lo que se
crea el proceso uno; �ste muy pronto se encargar� de dar vida al sistema completo,
mediante la activaci�n de otros procesos que tambi�n forman parte del n�cleo. 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 cu�l
proceso se ejecutar� y cu�les van a entrar o salir de la memoria central. A partir
de ese momento se conoce el n�mero uno como proceso de inicializaci�n 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 int�rprete del lenguaje
de control shell de Unix en la terminal principal, o consola del sistema,
proporcion�ndole privilegios de superusuario. En la modalidad de un solo usuario la
consola permite iniciar una primera sesi�n, con privilegios especiales, e impide
que las otras l�neas de comunicaci�n acepten iniciar sesiones nuevas. Esta
modalidad se usa con frecuencia para revisar y reparar sistemas de archivos,
realizar pruebas de funciones b�sicas del sistema y para otras actividades que
requieren uso exclusivo de la computadora.

Init crea otro proceso, que espera a que alguien entre en sesi�n en alguna l�nea de
comunicaci�n. Cuando esto sucede, realiza ajustes en el protocolo de la l�nea y
ejecuta el programa login, que se encarga de atender inicialmente a los nuevos
usuarios. Si el nombre de usuario y la contrase�a proporcionadas son correctos,
entonces entra en operaci�n el programa Shell, que en lo sucesivo se encargar� de
la atenci�n 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


int�rprete Shell. Cuando se desea terminar la sesi�n 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 sistemas
No necesariamente se necesita un n�cleo para usar una computadora. Los programas
pueden cargarse y ejecutarse directamente en una computadora vac�a, siempre que sus
autores quieran desarrollarlos sin usar ninguna abstracci�n del hardware ni ninguna
ayuda del sistema operativo. Esta era la forma normal de usar muchas de las
primeras computadoras: para usar distintos programas se ten�a que reiniciar y
reconfigurar la computadora cada vez. Con el tiempo, se empez� a dejar en memoria
(a�n entre distintas ejecuciones) peque�os programas auxiliares, como el cargador y
el depurador, o se cargaban desde memoria de s�lo lectura. A medida que se fueron
desarrollando, se convirtieron en los fundamentos de lo que llegar�an a ser los
primeros n�cleos de sistema operativo.

Hay cuatro grandes tipos de n�cleos:

Los n�cleos monol�ticos facilitan abstracciones del hardware subyacente realmente


potentes y variadas.
Los micron�cleos (en ingl�s microkernel) proporcionan un peque�o conjunto de
abstracciones simples del hardware, y usan las aplicaciones llamadas servidores
para ofrecer mayor funcionalidad.3?
Los n�cleos h�bridos (micron�cleos modificados) son muy parecidos a los
micron�cleos puros, excepto porque incluyen c�digo adicional en el espacio de
n�cleo para que se ejecute m�s r�pidamente.
Los exon�cleos no facilitan ninguna abstracci�n, pero permiten el uso de
bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi
directo al hardware.
Micron�cleos

Esquema del funcionamiento de un micron�cleo.


Art�culo principal: Micron�cleo
El enfoque micron�cleo consiste en definir una abstracci�n muy simple sobre el
hardware, con un conjunto de primitivas o llamadas al sistema que implementan
servicios del sistema operativo m�nimos, como la gesti�n de hilos, el espacio de
direccionamiento y la comunicaci�n entre procesos.

El objetivo principal es la separaci�n de la implementaci�n de los servicios


b�sicos y de la pol�tica de funcionamiento del sistema. Por ejemplo, el proceso de
bloqueo de E/S se puede implementar con un servidor en espacio de usuario
ejecut�ndose encima del micron�cleo. Estos servidores de usuario, utilizados para
gestionar las partes de alto nivel del sistema, son muy modulares y simplifican la
estructura y dise�o del n�cleo. Si falla uno de estos servidores, no se colgar� el
sistema entero, y se podr� reiniciar este m�dulo independientemente del resto. Sin
embargo, la existencia de diferentes m�dulos independientes origina retardos en la
comunicaci�n debido a la copia de variables que se realiza en la comunicaci�n entre
m�dulos.

Algunos ejemplos de micron�cleos:

AIX
La familia de micron�cleos L4
El micron�cleo Mach, usado en GNU Hurd y en Mac OS X
BeOS
Minix
MorphOS
QNX
RadiOS
VSTa
Hurd
N�cleos monol�ticos en contraposici�n a micron�cleos
Art�culos principales: N�cleo monol�tico y Micron�cleo.
Frecuentemente se prefieren los n�cleos monol�ticos frente a los micron�cleos
debido al menor nivel de complejidad que comporta el tratar con todo el c�digo de
control del sistema en un solo espacio de direccionamiento. Por ejemplo, XNU, el
n�cleo de Mac OS X, est� basado en el n�cleo Mach 3.0 y en FreeBSD, en el mismo
espacio de direccionamiento para disminuir la latencia que comporta el dise�o de
micron�cleo convencional.

A principios de los a�os 90, los n�cleos monol�ticos se consideraban obsoletos. El


dise�o de Linux como un n�cleo monol�tico en lugar de como un micron�cleo fue el
tema de una famosa disputa4? entre Linus Torvalds y Andrew Tanenbaum. Los
argumentos de ambas partes en esta discusi�n presentan algunas motivaciones
interesantes.

Los n�cleos monol�ticos suelen ser m�s f�ciles de dise�ar correctamente, y por lo
tanto pueden crecer m�s r�pidamente que un sistema basado en micron�cleo, pero hay
casos de �xito en ambos bandos. Los micron�cleos suelen usarse en rob�tica embebida
o computadoras m�dicas, ya que la mayor�a de los componentes del sistema operativo
residen en su propio espacio de memoria privado y protegido. Esto no ser�a posible
con los n�cleos monol�ticos, ni siquiera con los modernos que permiten cargar
m�dulos del n�cleo.

Aunque Mach es el micron�cleo generalista m�s conocido, se han desarrollado otros


micron�cleos con prop�sitos m�s espec�ficos. L3 fue creado para demostrar que los
micron�cleos no son necesariamente lentos. La familia de micron�cleos L4 es la
descendiente de L3, y una de sus �ltimas implementaciones, llamada Pistachio,
permite ejecutar Linux simult�neamente con otros procesos, en espacios de
direccionamiento separados.

QNX es un sistema operativo que ha estado disponible desde principios de los a�os
80, y tiene un dise�o de micron�cleo muy minimalista. Este sistema ha conseguido
llegar a las metas del paradigma del micron�cleo con mucho m�s �xito que Mach. Se
usa en situaciones en que no se puede permitir que haya fallos de software, lo que
incluye desde brazos rob�ticos en naves espaciales, hasta m�quinas que pulen
cristal donde un peque�o error podr�a costar mucho dinero.

Mucha gente cree que como Mach b�sicamente fall� en el intento de resolver el
conjunto de problemas que los micron�cleos intentaban subsanar, toda la tecnolog�a
de micron�cleos es in�til. 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.

N�cleos h�bridos (micron�cleos modificados)


Art�culo principal: N�cleo h�brido
Los n�cleos h�bridos fundamentalmente son micron�cleos que tienen algo de c�digo
�no esencial� en espacio de n�cleo para que �ste se ejecute m�s r�pido de lo que lo
har�a si estuviera en espacio de usuario. Este fue un compromiso que muchos
desarrolladores de los primeros sistemas operativos con arquitectura basada en
micron�cleo adoptaron antes que se demostrara que los micron�cleos pueden tener muy
buen rendimiento. La mayor�a de sistemas operativos modernos pertenecen a esta
categor�a, siendo el m�s popular Microsoft Windows. XNU, el n�cleo de Mac OS X,
tambi�n es un micron�cleo modificado, debido a la inclusi�n de c�digo del n�cleo de
FreeBSD en el n�cleo basado en Mach. DragonFlyBSD es el primer sistema BSD que
adopta una arquitectura de n�cleo h�brido sin basarse en Mach.

Algunos ejemplos de n�cleos h�bridos:

Microsoft Windows NT, usado en todos los sistemas que usan el c�digo base de
Windows NT.
XNU (usado en Mac OS X)
DragonFlyBSD
ReactOS
Hay gente que confunde el t�rmino n�cleo h�brido con los n�cleos monol�ticos que
pueden cargar m�dulos despu�s del arranque, lo que es un error. H�brido implica que
el n�cleo en cuesti�n usa conceptos de arquitectura o mecanismos tanto del dise�o
monol�tico como del micron�cleo, espec�ficamente el paso de mensajes y la migraci�n
de c�digo no esencial hacia el espacio de usuario, pero manteniendo cierto c�digo
no esencial en el propio n�cleo por razones de rendimiento.

Exon�cleos
Art�culo principal: Exon�cleo

Esquema b�sico de la interacci�n entre un exon�cleo (exokernel) con el software a


trav�s de bibliotecas.
Los exon�cleos, tambi�n conocidos como sistemas operativos verticalmente
estructurados, representan una aproximaci�n radicalmente nueva al dise�o de
sistemas operativos.

La idea subyacente es permitir que el desarrollador tome todas las decisiones


relativas al rendimiento del hardware. Los exon�cleos son extremadamente peque�os,
ya que limitan expresamente su funcionalidad a la protecci�n 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 din�micas.

Los dise�os de n�cleos cl�sicos (tanto el monol�tico como el micron�cleo) abstraen


el hardware, escondiendo los recursos bajo una capa de abstracci�n del hardware, o
detr�s de los controladores de dispositivo. En los sistemas cl�sicos, si se asigna
memoria f�sica, nadie puede estar seguro de cu�l es su localizaci�n real, por
ejemplo.

La finalidad de un exon�cleo es permitir a una aplicaci�n que solicite una regi�n


espec�fica de la memoria, un bloque de disco concreto, etc., y simplemente
asegurarse que los recursos pedidos est�n disponibles, y que el programa tiene
derecho a acceder a ellos.

Debido a que el exon�cleo s�lo 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 exon�cleo subyacente, y facilita a los programadores
de aplicaciones las funcionalidades que son comunes en otros sistemas operativos.

Algunas de las implicaciones te�ricas de un sistema exon�cleo son que es posible


tener distintos tipos de sistemas operativos (p. e. Windows, Unix) ejecut�ndose en
un solo exon�cleo, y que los desarrolladores pueden elegir prescindir � incrementar
funcionalidades por motivos de rendimiento.

Actualmente, los dise�os exon�cleo est�n fundamentalmente en fase de estudio y no


se usan en ning�n 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 Inform�tica. El MIT tambi�n ha dise�ado algunos sistemas
basados en exon�cleos. Los exon�cleos se manejan en diferente estructura dado que
tambi�n cumplen funciones distintas.

S-ar putea să vă placă și