You are on page 1of 6

En informtica, un ncleo o kernel (de la raz germnica Kern, ncleo, hueso) es un softwa

re que constituye una parte fundamental del sistema operativo, y se define como
la parte que se ejecuta en modo privilegiado (conocido tambin como modo ncleo).1 E
s 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 recu
rsos, 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. Es
to 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 ncleo como tal (algo comn en sistemas
empotrados), debido a que en ciertas arquitecturas no hay distintos modos de ej
ecucin.
Cuando se aplica voltaje al procesador de un dispositivo electrnico, ste ejecuta u
n 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. Finaliza
da esta fase se ejecuta el cdigo de arranque (startup code), tambin cdigo en lengua
je 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 abst
raccin: hardware, firmware, lenguaje de mquina, ncleo, software de sistema y aplica
ciones3
En informtica, los ordenadores son el ncleo del 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 comun
icacin entre el hardware y el programa informtico, resulta de compromisos complejo
s referentes a cuestiones de resultados, seguridad y arquitectura de los procesa
dores. El ncleo tiene grandes poderes sobre la utilizacin de los recursos material
es (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 pr
ocesos, 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 explot
acin 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 concepc
in del ncleo, la misma funcin llamada desde el espacio usuario o el espacio ncleo ti
ene un coste temporal obviamente diferente. Si esta llamada de funcines es frecue
nte, puede resultar til integrar estas funciones al ncleo para mejorar los resulta
dos.

Unix
Un ncleo Unix es un programa escrito casi en su totalidad en lenguaje C, con exce
pcin de una parte del manejo de interrupciones, expresada en el lenguaje ensambla
dor del procesador en el que opera. Las funciones del ncleo son permitir la exist
encia de un ambiente en el que sea posible atender a varios usuarios y mltiples t
areas en forma concurrente, repartiendo al procesador entre todos ellos, e inten
tando mantener en grado ptimo la atencin individual.
El ncleo opera como asignador de recursos para cualquier proceso que necesite hac
er 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, prot
eccin y administracin de usuarios; comunicacin entre usuarios y entre procesos, y m
anipulacin de E/S y administracin de perifricos.
Supervisin de la transmisin de datos entre la memoria principal y los disposit
ivos 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 pr
oporcione 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 contro
l de dispositivos. La primera asigna recursos, programas, procesos y atiende sus
requerimientos de servicio; la segunda, supervisa la transferencia de datos ent
re la memoria principal y los dispositivos del ordenador. En trminos generales, c
ada vez que algn usuario oprime una tecla de una terminal, o que se debe leer o e
scribir informacin del disco magntico, se interrumpe al procesador central y el ncl
eo se encarga de efectuar la operacin de transferencia.
Cuando se inicia la operacin de la computadora, debe cargarse en la memoria una c
opia del ncleo, que reside en el disco magntico (operacin denominada bootstrap). Pa
ra 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 tran
sferencia de informacin entre terminales y procesos, una seccin para almacenamient
o de descriptores de archivos y una variable que indica la cantidad de memoria p
rincipal.
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), qu
e funciona por un mecanismo de duplicacin de procesos. Sin embargo, esto no es su
ficiente para crear el primero de ellos, por lo que el ncleo asigna una estructur
a de datos y establece apuntadores a una seccin especial de la memoria, llamada t
abla de procesos, que contendr los descriptores de cada uno de los procesos exist
entes en el sistema.
Despus de haber creado el proceso 0, se hace una copia del mismo, con lo que se c
rea el proceso 1; ste muy pronto se encargar de "dar vida" al sistema completo, me
diante 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 co
nocido como despachador, o planificador, que es el responsable de decidir cul pro
ceso se ejecutar y cules van a entrar o salir de la memoria central. A partir de e
se 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 Uni
x. Normalmente, es capaz de crear al menos dos estructuras distintas de procesos

: el modo monousuario y el multiusuario. Comienza activando el intrprete del leng


uaje de control Shell de Unix en la terminal principal, o consola del sistema, p
roporcionndole privilegios de "superusuario". En la modalidad de un solo usuario
la consola permite iniciar una primera sesin, con privilegios especiales, e impid
e que las otras lneas de comunicacin acepten iniciar sesiones nuevas. Esta modalid
ad se usa con frecuencia para revisar y reparar sistemas de archivos, realizar p
ruebas 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 ejec
uta el programa login, que se encarga de atender inicialmente a los nuevos usuar
ios. Si el nombre de usuario y la contrasea proporcionadas son correctos, entonce
s 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 She
ll (y, por lo tanto, de Unix), mediante una secuencia especial de teclas (usualm
ente. < CTL > - D). A partir de ese momento la terminal queda disponible para at
ender a un nuevo usuario.
Tipos de sistemas
No necesariamente se necesita un ncleo para usar una computadora. Los programas p
ueden cargarse y ejecutarse directamente en una computadora vaca, siempre que sus a
utores quieran desarrollarlos sin usar ninguna abstraccin del hardware ni ninguna
ayuda del sistema operativo. sta era la forma normal de usar muchas de las prime
ras computadoras: para usar distintos programas se tena que reiniciar y reconfigu
rar 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 depura
dor, o se cargaban desde memoria de slo lectura. A medida que se fueron desarroll
ando, se convirtieron en los fundamentos de lo que llegaran a ser los primeros ncl
eos de sistema operativo.
Hay cuatro grandes tipos de ncleos:
Los ncleos monolticos facilitan abstracciones del hardware subyacente realment
e potentes y variadas.
Los microncleos (en ingls microkernel) proporcionan un pequeo conjunto de abstr
acciones 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 bibliot
ecas que proporcionan mayor funcionalidad gracias al acceso directo o casi direc
to al hardware.
Microncleos
Esquema del funcionamiento de un microncleo.
Artculo principal: Microncleo
El enfoque microncleo consiste en definir una abstraccin muy simple sobre el hardw
are, con un conjunto de primitivas o llamadas al sistema que implementan servici
os del sistema operativo mnimos, como la gestin de hilos, el espacio de direcciona
miento 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 enc

ima del microncleo. Estos servidores de usuario, utilizados para gestionar las pa
rtes 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 exist
encia de diferentes mdulos independientes origina retardos en la comunicacin debid
o 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 a
l 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 di
reccionamiento para disminuir la latencia que comporta el diseo de microncleo conv
encional.
A principios de los aos 90, los ncleos monolticos se consideraban obsoletos. El dis
eo de Linux como un ncleo monoltico en lugar de como un microncleo fue el tema de un
a famosa disputa5 entre Linus Torvalds y Andrew Tanenbaum. Los argumentos de amb
as partes en esta discusin presentan algunas motivaciones interesantes.
Los ncleos monolticos suelen ser ms fciles de disear correctamente, y por lo tanto pu
eden crecer ms rpidamente que un sistema basado en microncleo, pero hay casos de xit
o en ambos bandos. Los microncleos suelen usarse en robtica embebida o computadora
s 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 mi
croncleos con propsitos ms especficos. L3 fue creado para demostrar que los microncle
os 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 separado
s.
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 lle
gar 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 incl
uye desde brazos robticos en naves espaciales, hasta mquinas que pulen cristal don
de un pequeo error podra costar mucho dinero.
Mucha gente cree que como Mach bsicamente fall en el intento de resolver el conjun
to de problemas que los microncleos intentaban subsanar, toda la tecnologa de micr
oncleos es intil. Los partidarios de Mach afirman que sta es una actitud estrecha d
e 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 esenc
ial en espacio de ncleo para que ste se ejecute ms rpido de lo que lo hara si estuvier
a en espacio de usuario. ste fue un compromiso que muchos desarrolladores de los
primeros sistemas operativos con arquitectura basada en microncleo adoptaron ante
s que se demostrara que los microncleos pueden tener muy buen rendimiento. La may
ora de sistemas operativos modernos pertenecen a esta categora, siendo el ms popula
r 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. Drag
onFlyBSD 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 W
indows NT
XNU (usado en Mac OS X)
DragonFlyBSD
ReactOS

Hay gente que confunde el trmino ncleo hbrido con los ncleos monolticos que pueden car
ar mdulos despus del arranque, lo que es un error. Hbrido implica que el ncleo en cues
tin usa conceptos de arquitectura o mecanismos tanto del diseo monoltico como del m
icroncleo, 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 estructurad
os, representan una aproximacin radicalmente nueva al diseo de sistemas operativos
.
La idea subyacente es permitir que el desarrollador tome todas las decisiones re
lativas 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 m
emoria y pasa a estar fuera, en bibliotecas dinmicas.
Los diseos de ncleos clsicos (tanto el monoltico como el microncleo) abstraen el hard
ware, escondiendo los recursos bajo una capa de abstraccin del hardware, o detrs d
e 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 espe
cfica 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 acce
der a ellos.
Debido a que el exoncleo slo proporciona una interfaz al hardware de muy bajo nive
l, careciendo de todas las funcionalidades de alto nivel de otros sistemas opera
tivos, ste es complementado por una biblioteca de sistema operativo. Esta bibliotec
a se comunica con el exoncleo subyacente, y facilita a los programadores de aplic
aciones las funcionalidades que son comunes en otros sistemas operativos.

Algunas de las implicaciones tericas de un sistema exoncleo son que es posible ten
er distintos tipos de sistemas operativos (p.e. Windows, Unix) ejecutndose en un
solo exoncleo, y que los desarrolladores pueden elegir prescindir incrementar fun
cionalidades por motivos de rendimiento.
Actualmente, los diseos exoncleo estn fundamentalmente en fase de estudio y no se u
san 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 e
n exoncleos. Los exoncleos se manejan en diferente estructura dado que tambin cumpl
en funciones distintas
Referencias