Está en la página 1de 11

QUE

ES

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.

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

HISTORIA
El concepto de Sistema Operativo surge en la dcada de los 50. El primer Sistema Operativo de la historia fue
creado en 1956 para un ordenador IBM 704, y bsicamente lo nico que haca era comenzar la ejecucin de un
programa cuando el anterior terminaba.
En los aos 60 se produce una revolucin en el campo de los Sistemas Operativos. Aparecen conceptos como
sistema multitarea, sistema multiusuario, sistema multiprocesadores y sistema en tiempo real.
Es en esta dcada cuando aparece UNIX, la base de la gran mayora de los Sistemas Operativos que existen
hoy en da.

En los aos 70 se produce un boom en cuestin de ordenadores personales, acercando estos al pblico
general de manera impensable hasta entonces. Esto hace que se multiplique el desarrollo, crendose el
lenguaje de programacin C (diseado especficamente para reescribir por completo el cdigo UNIX).
Como consecuencia de este crecimiento exponencial de usuarios, la gran mayora de ellos sin ningn
conocimiento sobre lenguajes de bajo o alto nivel, hizo que en los aos 80, la prioridad a la hora de disear un
sistema operativo fuese la facilidad de uso, surgiendo as las primeras interfaces de usuario.
En los 80 nacieron sistemas
Windows.

En la dcada de los
Linux, publicndose
ncleo en septiembre
posteriormente se
GNU, un sistema
completamente libre,
que le faltaba para
funcional. Hoy en da
gente conoce por
Operativo que
GNU/Linux

como MacOS, MS-DOS,

90 hace su aparicin
la primera versin del
de 1991, que
unira al proyecto
operativo
similar a UNIX, al
funcionar un ncleo
la mayora de la
Linux al Sistema
realmente se llama

GENERALIDADES
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 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
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 proporcionadas 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 SISTEMAS
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.

MICRONUCLEOS

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

NUCLEOS MONOLITICOS EN CONTRAPOSICION DE MICRONUCLEOS


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

NUCLEOS HIBRIDOS
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. DragonFly BSD 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)

DragonFly BSD

React OS

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.

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

También podría gustarte