Professional Documents
Culture Documents
Contenido
1 Tcnica
2 Generalidades
2.2 Unix
3 Tipos de ncleo
o
3.1 Microncleos
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
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
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:
Microncleos
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
BeOS
Minix
MorphOS
QNX
RadiOS
VSTa
Hurd
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
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.
FUENTES: WIKIPEDIA