En:
Sistemas operativos monotarea: Slo pueden
manejar un proceso, es decir , las tareas deben
ejecutarse una tras otra. Por ejemplo, el sistema
DOS es monotarea, al no poder ejecutar varias
aplicaciones simultneamente, aunque existieron
varios intentos de aadirle esta capacidad.
CLASIFICACIN EJEMPLO
MULTIUSUARIO LINUX
MONOUSUARIO WINDOWS 3.0 Y 3.1
(PRIMERAS VERSIONES)
MULTITAREA UNIX
TIEMPO REAL WINDOWS CE, Mac Os
MULTIPROCESADOR WINDOWS NT
DISTRIBUIDO SOLARIS
CENTRALIZADO MY SQL
LOTES SENCILLO MS-DOS
HIBRIDO ARCHGNU/LINUX
1.4.-Clasificacion
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna
interaccion entre los usuarios y los programas en ejecucion. Se reunen todos los trabajos
comunes para realizarlos al mismo tiempo, evitando la espera de dos o mas trabajos como
sucede en el procesamiento en serie. Estos sistemas son de los mas tradicionales y antiguos, y
fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los
programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucion muy alto,
porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido
a la secuenciabilidad de la ejecucion de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual
esta orientado a procesamiento cientifico pesado, y el EXEC II para el UNIVAC 1107,
orientado a procesamiento academico.
Algunas otras caracteristicas con que cuentan los Sistemas Operativos por lotes son:
Requiere que el programa, datos y ordenes al sistema sean remitidos todos juntos en
forma de lote.
Permiten poca o ninguna interaccion usuario/programa en ejecucion.
Mayor potencial de utilizacion de recursos que procesamiento serial simple en sistemas
multiusuarios.
No conveniente para desarrollo de programas por bajo tiempo de retorno y depuracion
fuera de linea.
Conveniente para programas de largos tiempos de ejecucion (Ej., analisis estadisticos,
nominas de personal, etc.).
Se encuentra en muchos computadores personales combinados con procesamiento
serial.
Planificacion del procesador sencilla, tipicamente procesados en orden de llegada.
Planificacion de memoria sencilla, generalmente se divide en dos: parte residente del
S.O. y programas transitorios.
No requieren gestion critica de dispositivos en el tiempo.
Suelen proporcionar gestion sencilla de manejo de archivos: se requiere poca
proteccion y ningun control de concurrencia para el acceso.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy especificas
como control de trafico aereo, bolsas de valores, control de refinerias, control de laminadores.
Tambien en el ramo automovilistico y de la electronica de consumo, las aplicaciones de tiempo
real estan creciendo muy rapidamente. Otros campos de aplicacion de los Sistemas Operativos
de tiempo real son los siguientes:
1. Control de trenes.
2. Telecomunicaciones.
3. Sistemas de fabricacion integrada.
4. Produccion y distribucion de energia electrica.
5. Control de edificios.
6. Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y
Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes caracteristicas:
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno esta
usando el procesador, o un procesador distinto, es decir, involucra maquinas con mas de una
UCP.
Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2,
soportan la multitarea.
Permiten la simulacion de que el sistema y sus recursos son todos para cada usuario. El usuario
hace una peticion a la computadora, esta la procesa tan pronto como le es posible, y la
respuesta aparecera en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son
continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusion de que
tiene el sistema dedicado para su mismo. Esto trae como consecuencia una gran carga de
trabajo al Sistema Operativo, principalmente en la administracion de memoria principal y
secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Caracteristicas de los Sistemas Operativos de tiempo compartido:
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser
que este conjunto de procesadores esta en un equipo o en diferentes, en este caso es
transparente para el usuario. Existen dos esquemas basicos de estos. Un sistema fuertemente
acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son
similares para todos los procesadores. En un sistema debilmente acoplado los procesadores no
comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se
compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes:
Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Son aquellos sistemas que mantienen a dos o mas computadoras unidas a traves de algun medio
de comunicacion (fisico o no), con el objetivo primordial de poder compartir los diferentes
recursos y la informacion del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola
68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal
Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o mas procesos que
compitan por algun recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe tambien la posibilidad de ejecutar programas sin tener que atenderlos en
forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios
procesos de un mismo usuario). Asi, en lugar de esperar a que el proceso termine de ejecutarse
(como lo haria normalmente), regresa a atender al usuario inmediatamente despues de haber
creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos estan: Alpha, PVM, la serie AIX, que es
utilizado en los sistemas RS/6000 de IBM.
1.5 Estructura: niveles o estratos de diseo
Internamente los sistemas operativos estructuralmente de se clasifican
segn como se hayan organizado intrnamente en su diseo, por esto
la clasificacin ms comn de los S.O. son:
Sistemas monolticos
CARACTERSTICAS
Sistemas en estratos
CARACTERSTICAS.
Multics y Unix
CARACTERSTICAS
EJEMPLOS
Mquina Virtual
CARACTERSTICAS
EJEMPLOS
5 Operador de THE
4 Programas del usuario
3 Administracin de Entrada/Salida
2 Comunicacin entre el operador y el proceso
1 Administracin de la memoria y el tambor magntico
0 Distribucin del procesador y multiprogramacin
- El estrato 0 trabajaba con la distribucin del procesador, cambiando entre procesos cuando
ocurran interrupciones o los relojes expiraban. Sobre el estrato 0, el sistema constaba de procesos
secuenciales, cada uno de los cuales poda programarse sin tener que preocuparse por el hecho
de que mltiples procesos estuvieran corriendo en un solo procesador. En otras palabras, el
estarto 0 ofreca la multiprogramacin bsica de la CPU.
El estrato 1 realizaba el manejo de memoria. Este distribua espacio para procesos contenidos en
la memoria central y en un tambor de 512K palabras que se usaba para contener partes de
procesos (pginas) para las cuales no haba espacio en la memoria central. Sobre el estrato 1, los
procesos no tena que preocuparse de si estaban en la memoria o en el tambor; el software del
estrato 1 se haca cargo de asegurar que las pginas se trajeran a la memoria siempre que se
necesitaran.
El estrato 2 manejaba la comunicacin entre cada proceso y la consola de operador.
El estrato 3 se haca cargo de manejar los dispositivos de E/S y de separar la informacin en flujo
que entraba y sal de ellos. Sobre el estrato 3 cada proceso poda trabajar con dispositivos de E/S
abstractos con propiedades agradables, en vez de dispositivos reales con muchas peculiaridades
El estrato 4 era donde se encontraban los programas de los usuarios. No tenan que preocuparse
por el manejo de los procesos, memoria, consola o E/S. El proceso operador del sistema se
localizaba en el estrato 5.
En esta unidad examinaremos cuatro estructuras distintas que ya han sido probadas, con el fin de
tener una idea ms extensa de cmo esta estructurado el sistema operativo. Veremos brevemente
algunas estructuras de diseos de sistemas operativos.
Estructura modular.Tambin llamados sistemas monolticos. Este tipo de organizacin es con
mucho la mas comn; bien podra recibir el subtitulo de "el gran embrollo". La estructura consiste
en que no existe estructura alguna. El sistema operativo se escribe como una coleccin de
procedimientos, cada uno de los cuales puede llamar a los dems cada vez que as lo requiera.
Cuando se usa esta tcnica, cada procedimiento del sistema tiene una interfaz bien definida en
trminos de parmetros y resultados y cada uno de ellos es libre de llamar a cualquier otro, si este
ultimo proporciona cierto clculo til para el primero. Sin embargo incluso en este tipo de sistemas
es posible tener al menos algo de estructura. Los servicios (llamadas al sistema) que proporciona
el sistema operativo se solicitan colocando los parmetros en lugares bien definidos, como en los
registros o en la pila, para despus ejecutar una instruccin especial de trampa de nombre
"llamada al ncleo" o "llamada al supervisor".
Esta instruccin cambia la mquina del modo usuario al modo ncleo y transfiere el control al
sistema operativo, lo que se muestra en el evento (1) de la figura 1. El sistema operativo examina
entonces los parmetros de la llamada, para determinar cual de ellas se desea realizar, como se
muestra en el evento (2) de la figura 1. A continuacin, el sistema operativo analiza una tabla que
contiene en la entrada k un apuntador al procedimiento que realiza la k-esima llamada al sistema.
Esta operacin que se muestra en (3) de la figura 1, identifica el procedimiento de servicio, al cual
se llama. Por ultimo, la llamada al sistema termina y el control regresa al programa del usuario.
Figura 1. La forma en que debe hacerse una llamada al sistema: (1) el programa del usuario es
atrado hacia el ncleo. (2) el sistema operativo determina el nmero del servicio solicitado. (3) el
sistema operativo localiza y llama al procedimiento correspondiente al servicio. (4) el control
regresa al programa del usuario.
Esta organizacin sugiere una organizacin bsica del sistema operativo:
1.- un programa principal que llama al procedimiento del servicio solicitado.
2.- un conjunto de procedimientos de servicio que llevan a cabo las llamadas al sistema.
3.- un conjunto de procedimientos utilitarios que ayudan al procedimiento de servicio.
En este modelo, para cada llamada al sistema existe un procedimiento de servicio que se encarga
de l. Los procedimientos utilitarios hacen cosas necesarias para varios procedimientos de
servicio, por ejemplo buscar los datos de los programas del usuario.
5 El operador
4 Programas del usuario
3 Control de entrada/salida
2 Comunicacin operador-proceso
1 Administracin de la memoria y del disco
Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su ejecucin y
gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o
tipos de aplicaciones.
Estructura Jerrquica.A medida que fueron creciendo las necesidades de los usuarios y se
perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del sistema
operativo, donde una parte del sistema contena subpartes y esto organizado en forma de niveles.
Se dividi el sistema operativo en pequeas partes, de tal forma que cada una de ellas estuviera
perfectamente definida y con un claro interface con el resto de elementos.
Se constituy una estructura jerrquica o de niveles en los sistemas operativos, el primero de los
cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utiliz con
fines didcticos. Se puede pensar tambin en estos sistemas como si fueran `multicapa'. Multics y
Unix caen en esa categora.
En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por
donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas ms internas
del sistema operativo o ncleo del sistema estarn ms protegidas de accesos indeseados desde
las capas ms externas. Las capas ms internas sern, por tanto, ms privilegiadas que las
externas.
Mquina Virtual.Se trata de un tipo de sistemas operativos que presentan una interface a cada
proceso, mostrando una mquina que parece idntica a la mquina real subyacente. Estos
sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la
multiprogramacin y la mquina extendida. El objetivo de los sistemas operativos de mquina
virtual es el de integrar distintos sistemas operativos dando la sensacin de ser varias mquinas
diferentes.
El ncleo de estos sistemas operativos se denomina monitor virtual y tiene como misin llevar a
cabo la multiprogramacin, presentando a los niveles superiores tantas mquinas virtuales como
se soliciten. Estas mquinas virtuales no son mquinas extendidas, sino una rplica de la mquina
real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que
ser el que ofrezca la mquina extendida al usuario
Nivel 2. Entrada/Salida.
1.6 Ncleo
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. 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.
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.
Generalidades
En informtica, los ordenadores son el ncleo del programa informtico que se asegura de:
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:
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
El microncleo Mach, usado en GNU Hurd y en Mac OS X
BeOS
Minix
MorphOS
QNX
RadiOS
VSTa
Hurd
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.
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
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