jueves, 4 de junio de 2009

Provando el fullpost

Esta es una introducción

Este es el cuerpo y concluciones

Leer Mas...

expandir contraer 2

Probando otra vez


Ojala q funciones



Expandir/Contraer este Post



Leer Mas...

Probando expand/collapse

Esta es una prueba

Este es el resto de la entrada



expandir/colapsar

Leer Mas...

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