jueves, 14 de agosto de 2008

Sistemas Operativos de Núcleo Monolítico

El núcleo o kernel, es el corazón de todo sistema operativo, específicamente es la parte del S.O. que se encarga de administrar la memoria y tiempo de procesados para todos los programas y procesos que se están ejecutando, se encarga de manejar los perífericos y de que podamos acceder a ellos de una forma sencilla, además de encargarse de algunas cosillas de la comunicación en redes. 

En los sistemas Windows podremos encontrar el kernel en la dirección:

C:\windows\system\krnl32.dll

Mientras que en los sistemas Unix-Like, lo podemos encontrar en:

/boot/vmlinuz.


Los núcleos podemos dividirlos en tres tipos:

  1. Monolíticos
  2. Microkernels
  3. Híbridos

A pesar de que cada kernel merecería ser estudiado con detenimento, por ahora nos limitaremos en describir las diversas características de los kernels monolíticos.

Los núcleos (o kernels) monolíticos surgieron a partir de kernels de sistemas operativos relativamente sencillos (por ejemplo DOS o UNIX) y que gracias a la popularidad que alcanzaron, fueron creciendo, agregando cada vez más funcionalidades, hasta convertirse en unos verdaderos monstruos del código.

Como se dijo anteriormente, un núcleo monolítico concentra todas sus funcionalidades en un solo programa, donde todas están al mismo nivel, y todas tienen acceso a todas las estructuras y rutinas definidas dentro del código del núcleo , además, siempre se ejecutan en modo supervisor.

La forma en la que trabaja un núcleo monolítico es cuando un proceso necesita un resultado de parte del kernel, le manda una señal, la cual es procesada por el núcleo y luego es retornada al proceso solicitante. Lo cual simplifica el trabajo entre procesos y el kernel.

Una de las características por las que se aboga a favor de este modelo es que debido a que no se necesita manejar modulos externos al núcleo, el rendimiento es significativamente mayor al que se obtiene con los otros modelos.

Otra de las ventajas que el modelo monolitico tiene es que 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.

Sin embargo, uno de los mayores problemas que este modelo presenta es que, en caso de necesitar agregar alguna nueva funcionalidad, se deberá agregar al código del kernel y se tendrá que recompilar el kernel completo para que funcione. Ahora bien, si ese nuevo código tiene algún error, este se propagará a todo el funcionamiento del kernel, pudiendo hacer que se vuelva inestable o incluso que falle por completo.


A continuación les dejo una imagen que explica un poco mejor la estructura del kernel linux:


Leer Mas...

3 comentarios:

  1. En efecto el sistema monolitico trabja cone el kernel, en la que para cada llamada al sistema existe un procedimiento de servicio que se encarga de buscar los datos de los programas usuario.

    http://darineloperativos1.blogspot.com/

    ResponderBorrar
  2. Muy buen aporte y excelente información, pudiste enlazar todos los conceptos dejándolos muy claros. Solo te hizo falta algunas referencias para indagar mas en el tema, por ejemplo la imagen de donde la sacaste. Pero en general un muy buen post.

    ResponderBorrar