Caracteristicas Tecnicas del Kernel de Linux

Para conocer a fondo cómo trabaja el Sistema Operativo Linux, no hay nada mejor que conocer las características técnicas de su Kernel:

3137373449_66999d5677_o


Kernel de tipo monolítico: básicamente es un gran programa creado como una unidad, pero conceptualmente dividido en varios componentes lógicos.

• Tiene soporte para carga/descarga de porciones del kernel bajo demanda, estas porciones se llaman módulos, y suelen ser características del kernel o controladores de dispositivo.

Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al sistema operativo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte de Multiprocesamiento Simétrico.
El hecho de que Linux no fuera desarrollado siguiendo el diseño de un micronúcleo (diseño que, en aquella época, era considerado el más apropiado para un núcleo por muchos teóricos informáticos) fue asunto de una famosa y acalorada discusión entre Linus Torvalds y Andy Tanenbaum.

A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos son fácilmente configurables como módulos del núcleo cargables, y se pueden cargar o descargar mientras se está ejecutando el sistema.

Threads de kernel: para el funcionamiento interno se usan varios hilos (threads) de ejecución internos al kernel, que pueden estar asociados a un programa de usuario o bien a una funcionalidad interna del kernel. En Linux no se hace un uso intensivo de este concepto, sólo unas pocas funcionalidades.

• Soporte de aplicaciones multithread: soporte de aplicaciones de usuario de tipo multithread, ya que muchos paradigmas de computación de tipo cliente/servidor necesitan servidores capaces de atender múltiples peticiones simultáneas dedicando un hilo de ejecución a cada petición o grupo de ellas. Linux tiene una biblioteca propia de threads que puede usarse para las aplicaciones multithread, pero también se esperan mejoras importantes en este aspecto en las nuevas versiones.

El kernel es de tipo no apropiativo (nonpreemptive): esto supone que dentro del kernel no pueden pararse llamadas a sistema (en modo supervisor) mientras se está resolviendo la tarea de sistema, y cuando ésta acaba, se reasume la ejecución de la tarea anterior. Por lo tanto, el kernel dentro de una llamada no puede ser interrumpido para atender otra tarea. Normalmente, los kernels apropiativos están asociados a sistemas que trabajan en tiempo real, en que debe permitirse lo anterior para tratar eventos críticos. Hay algunas versiones especiales del kernel de Linux para tiempo real, que permiten esto por medio de la introducción de unos puntos fijos donde pueden intercambiarse. También se está probando este concepto en la versión 2.5/2.6 de desarrollo del kernel. Este concepto de kernel apropiativo también puede ser útil para mejorar tareas interactivas, ya que si se producen llamadas costosas al sistema, pueden provocar retardos en las aplicaciones interactivas.

• Soporte para multiprocesador, lo que llama multiprocesamiento simétrico (SMP). Este concepto suele englobar máquinas que van desde el caso simple de 2 hasta 64 CPU. Linux puede usar múltiples procesadores, donde cada procesador puede manejar una o más tareas. Pero hay algunas partes del kernel que disminuyen el rendimiento, ya que están pensadas para una única CPU y obligan a parar el sistema entero. SMP es una de las técnicas más estudiadas en la comunidad del kernel de Linux, y se esperan mejoras importantes para las nuevas versiones, ya que se depende en gran medida del rendimiento SMP para la adopción de Linux en los sistemas empresariales.

• Sistemas de ficheros: el kernel tiene una buena arquitectura de los sistemas de ficheros, el trabajo interno se basa en una abstracción de un sistema virtual (VFS, Virtual File System), que puede ser adaptada fácilmente a cualquier sistema real. Como resultado, Linux es quizás el operativo que más sistemas de ficheros soporta, desde los propios ext2 y ext3, hasta msdos, vfat, sistemas con journal como ReiserFS, JFS(IBM), XFS(Silicon), NTFS(sólo lectura), iso9660 (CD), udf, etc. y se van añadiendo más.

Comentarios

Entradas populares de este blog

Instalar Watchtower Library en Linux.

Instalar Watchtower Library 2011 en Linux Mint 11

Cosas que Linux hace que Windows no puede. (Experiencia)