Está en la página 1de 20

Linux comenz como una variante UNIX para la arquitectura del PC IBM (Intel 80386).

Linus Torvalds, un estudiante finlands de informtica, escribi la versin inicial. Distribuyo por internet una primera versin de Linux en 1991. Linux es libre y el cdigo fuente est disponible, se convirti pronto en una alternativa para otras estaciones de trabajo UNIX, tal como las ofrecidas por Sun Microsystems e IBM. La clave del xito de Linux ha sido la disponibilidad de los paquetes de software libre bajo los auspicios de la Fundacin de Software Libre (Free Software Foundation, FSF). El proyecto de GNU proporciona herramientas para desarrolladores de software y la licencia publica GNU(GPL: GNU Public License) es el sello de aprobacin de FST.

Torvald utiliz herramientas GNU para el desarrollo del ncleo, las distribuciones Linux que aparecen hoy en da son los productos del proyecto GNU de FSF(Free Software Foundation). Linux es muy modular y fcilmente configurable. Resulta ptimo para incrementar el rendimiento de una variedad de plataformas hardware. Adems, con el cdigo fuente disponible, los distribuidores pueden adaptar las aplicaciones y facilidades para cumplir unos requisitos especficos.

La mayora de los ncleos Linux son monolticos. Un ncleo monoltico es aquel que incluye prcticamente toda la funcionalidad del sistema operativo en un gran bloque de cdigo que ejecuta como un nico proceso con un nico espacio de direccionamiento. Tienen acceso a todas las estructuras internas de datos y rutinas. Si los cambios se hacen sobre cualquier porcin de un sistema operativo monoltico, todos los mdulos y rutinas deben volverse a enlazar y reinstalar, y el sistema debe ser reiniciado para que los cambios tengan efecto. Como resultado, cualquier modificacin. Linux est estructurado como una coleccin de mdulos, algunos de los cuales pueden cargarse y descargarse automticamente bajo demanda. Estos bloques relativamente independientes se denomina mdulos cargables (GOYE99).

Un modulo implementa algunas funciones especificas, como un sistema de ficheros, un controlador de dispositivos o algunas caractersticas de la capa superior del ncleo. Linux se puede considera monoltico, su estructura modular elimina algunas de las dificultades para desarrollar y evolucionar el ncleo.
Los mdulos cargables de Linux tienen dos caractersticas importantes: Enlace dinmico: Un modulo de ncleo puede cargarse y enlazarse al ncleo mientras el ncleo esta en memoria y ejecutndose.

Mdulos apilables: Los mdulos se gestionan como una jerarqua. Los mdulos individuales sirven como bibliotecas cuando los mdulos cliente los referencian desde la parte superior de la jerarqua, y actan como clientes cuando referencian a mdulos de la parte inferior de la jerarqua.

El enlace dinmico [FRAN97] facilita la configuracin y reduce el uso de la memoria del ncleo. En Linux, un programa de usuario o un usuario puede cargar y descargar explcitamente mdulos del ncleo utilizando los mandatos insmod y rmmod. El ncleo mismo detecta la necesidad de funciones particulares y puede cargar y descargar mdulos cuando lo necesite. Con mdulos apilables, se pueden definir dependencias entre los mdulos. Esto tiene dos ventajas:

1. EL cdigo comn para un conjunto de mdulos similares (por ejemplo, controladores para hardware similar) se puede mover a un nico modulo, reduciendo la replicacin. 2. El ncleo puede asegurar que los mdulos necesarios estn presentes, impidiendo descargar un modulo del cual otros mdulos que ejecutan dependen y cargando algunos mdulos adicionalmente requeridos cuando se carga un nuevo mdulo.

La figura 2.17 es un ejemplo que ilustra las estructuras utilizadas por Linux para gestionar mdulos. La figura muestra la lista de los mdulos del ncleo que existen despus de que solo dos mdulos han sido cargados: FAT y VFAT. Cada modulo se define mediante dos tablas, la tabla de mdulos y la tabla de smbolos. La tabla de mdulos incluye los siguientes elementos: Next. Puntero al siguiente mdulo. Name. Puntero al nombre del mdulo. Size. Tamao del mdulo en pginas de memoria. Usecount. Contador del uso del mdulo. El contador se incrementa cuando una operacin relacionada con las funciones del modulo comienza y se decremento cuando la operacin finaliza. Flags. Opciones del mdulo.

Nsyms. Numero de smbolos exportados. Ndeps. Numero de mdulos referenciados. Syms. Puntero a la tabla de smbolos de este mdulo. Deps. Puntero a la lista de mdulos referenciados por este mdulo. Refs. Puntero a la lista de mdulos que usa este mdulo.

La fig. 2.18, tomada de [MOSB02] muestra los principales componentes del ncleo Linux tal y como estn implementados en una arquitectura IA-64 (por ejemplo, Intel Itanium). La fig. muestra varios procesos ejecutando encima del ncleo. Cada caja indica un proceso separado, mientras que cada lnea curvada con una cabeza de flecha representa un hilo de ejecucin. El ncleo mismo est compuesto por una coleccin de componentes que interaccionan, usando flechas para indicar las principales interacciones. Tambin se muestra el hardware subyacente como un conjunto de componentes utilizando flechas para indicar que componentes del ncleo utilizan o controlan que componentes del hardware.

Principales componentes del ncleo son los siguientes: Seales: El ncleo utiliza las seales para llamar a un proceso. Por ejemplo, las seales se utilizan para notificar ciertos fallos a un proceso como por ejemplo, la divisin por cero. La tabla 2.65 da unos pocos ejemplos de seales. Llamadas al sistema: La llamada al sistema es la forma en la cual un proceso requiere un servicio de ncleo especfico. Hay varios cientos de llamadas al sistema, que pueden agruparse bsicamente en seis categoras: sistema de ficheros, proceso, planificacin, comunicacin entre procesos, socket (red) y miscelneos. La tabla 2.7 define pocos ejemplos de cada categora.

Procesos y planificador: Crea, gestiona y planifica procesos. Memoria virtual: Asigna y gestiona la memoria virtual para los procesos. Sistemas de ficheros: Proporciona un espacio de nombres global y jerrquico para los ficheros, directorios y otros objetos relacionados con los ficheros. Adems, proporciona las funciones del sistema de ficheros.

Protocolo de red: da soporte a la interfaz Socket para los

usuarios, utilizando la pila de protocolos TCP/IP.


Controladores de dispositivos tipo carcter: Gestiona los dispositivos que requiere el ncleo para enviar o recibir datos un byte cada vez, como los terminales los mdems y las impresoras. Controladores

de

dispositivo

tipo

bloque:

Gestiona

dispositivos que leen y escriben datos en bloques, tal como varias formas de memoria secundaria (discos magnticos, CDROM, etc.).

Controladores de dispositivos de red: Gestiona las tarjetas de interfaz de red y los puertos de comunicacin que permiten las conexiones a la red, tal como los puentes y los encaminadores. Traps y fallos: Gestiona los traps y fallos generados por la CPU, como los fallos de memoria. Memoria fsica: Gestiona el conjunto de marcos de pginas de memoria real y asigna las pginas de memoria virtual. Interrupciones: Gestiona las interrupciones de los dispositivos perifricos.

CONCLUSIN
Linux es un kernel monoltico. Es capaz de linkar mdulos en tiempo de ejecucin.

No est diseado a partir de hilos de ncleo.


Tiene un diseo reentrante de modo que pueden existir

varios procesos en modo ncleo 'ejecutndose' a la vez. Tiene soporte para aplicaciones de usuario multihilo compatible con estndares: POSIX, las APIs del UNIX SysV y los sockets BSD. Admite multiproceso simtrico (SMP).

También podría gustarte