Está en la página 1de 2

NCLEO / KERNEL DE LINUX

Sebastin Lpez Mario


Ingeniara de Sistemas, Universidad Manuela Beltrn
Cod. 91030405485
sebastianlm@icloud.com



Abstract This document is a short introduction
to the world of Linux and more specically to its
kernel. It aims to inform from the most basic
topics, like what is a kernel, to talk specically
about the most important features introduced in
the 2.6 release and the benets it presents to the
user.


I. Introduccin

Este documento es una pequea introduccin al
mundo de LINUX y mas especcamente a su
ncleo o kernel. Se pretende dar a conocer desde lo
mas bsico, como qu es un kernel, hasta hablar
especcamente de las funciones mas importantes
introducidas en la versin 2.6 y los benecios que
presenta al usuario.


II. Desarrollo de Contenidos

Lo mejor es empezar hablando de Linux, este es
un clon del S.O. Unix, escrito desde cero por Linus
Torvalds junto con un equipo de hackers
adaptndolo a equipos de escritorio comunes.

Posee todas las caractersticas de Unix, incluyendo
multitarea real, memoria virtual, libreras
compartidas, la gestin adecuada de la memoria, y
la creacin de redes MultiStack incluyendo IPv4 e
IPv6.

Aunque fue inicialmente desarrollado para
computadores basados en x86 de 32 bits
actualmente Linux tambin puede ejecutarse en una
multitud de otras arquitecturas de procesadores,
variantes de 32 y 64 bits.

Un kernel en general puede ser denido como el
corazn de cualquier S.O., el es encargado de
comunicar el software y el hardware para que
puedan trabajar en conjunto.

Entre sus funciones ms importantes, encontramos:

Nos permite que podamos acceder y utilizar a los


perifricos de nuestro computador, de la manera
mas cmoda a medida que evoluciona y se
actualiza.

Administra la memoria de todos los procesos que


se estn ejecutando en el computador.

Administra tambin los tiempos del procesador


que los programas que se ejecuten en el
computador utilizan.

Hablando mas puntualmente de lo que nos


interesa, el KERNEL DE LINUX podemos
decir que hasta que empez el desarrollo de la
serie 2.6 del mismo, este tena dos tipos de
versiones:

Versin de Produccin: En pocas palabras, la


versin estable, resultado de las versiones
experimentales o de desarrollo.

Versin de Desarrollo: Es la versin


experimental que utilizan los desarrolladores para
probar las nueva caractersticas a incluir, y
corregir los errores necesarios a tiempo (antes de
la versin de produccin) ya que son ncleos que
suelen ser inestables.

El kernel como tal no es un S.O. que se quiera
instalar y utilizar simplemente, si el inters puntual
es probar Linux lo que hay que conseguir es una de
sus muchas distribuciones (libres) que poseen
diferentes interfaces de usuario dependiendo el
fabricante, entre las mas comunes encontramos
Gnome, KDE y Unity.

Linux es un Kernel Monolitico, quiere decir que
posee un ncleo complejo y grande, fue
programado de forma no modular, y su rendimiento
es mayor al Micronucleo.

Existen diversas ramicaciones de este diseo, que
poco a poco se han ido amoldando a las nuevas
necesidades que van surgiendo.

El sistema de mdulos pueden ser compilados,
modicados, cargados y descargados en tiempo de
ejecucin, al igual que en un microncleo,
ejecutandose en el espacio de memoria del ncleo
en si (anillo 0). Conociendo esto, un bloqueo del
mdulo, es muy probable que bloquee todo el
ncleo.

Arquitectura

El kernel de Linux, como ya se explico
anteriormente es un ncleo monoltico, por lo cual
es mas complejo que otros kernels y actualmente
an tiene algunos defectos de diseo inherentes a
los ncleos monolticos.

Para intentar solucionar estas fallas, los
desarrolladores del kernel de Linux hicieron
mdulos del kernel que pueden ser cargados y
descargados en tiempo de ejecucin, es decir puede
agregar o quitar caractersticas del ncleo el
cualquier momento.

Mdulos del kernel

Son conocidos como mdulos del kernel cargables
(LKM), son muy importantes, ya que permiten
mantener el funcionamiento del ncleo con todo el
hardware y sin utilizar toda la memoria disponible.

Los LKMs tienen extensin .ko y generalmente
estn almacenados en la ruta /lib/modules.

Existen mdulos de terceros de cdigo cerrado
disponibles para algunas de las distribuciones mas
populares como Ubuntu, y no pueden ser instalados
de forma predeterminada ya que su cdigo fuente
no esta disponible.

Kernel vs. Sistema Operativo

Se debe empezar por aclarar que todo SO debe
tener un kernel, ya que este es en pocas palabras su
corazn y sin el no funciona.

El sistema operativo es el paquete, por decirlo de
alguna manera, que comunica directamente el
hardware con las aplicaciones. El kernel es el nivel
mas bajo de un sistema operativo, es la parte
esencial de cualquier sistema operativo y se
encarga de traducir los comandos que el usuario
utiliza, en instrucciones que puedan ser entendidas
por el computador.

Interrupciones y Excepciones

Una interrupcin es denida como un evento que
altera las secuencia de instrucciones ejecutadas en
el procesador.

Se clasican en excepciones e interrupciones.

Excepciones: Son producidas por una unidad de


control de la CPU.

Interrupciones: Son generadas por otros


dispositivos de hardware.

No libc

A diferencia de la aplicaciones de usuario, el kernel
no se ata directamente con la librera C estndar,
en realidad, no lo hace a ninguna librera.

Muchas de las funciones usuales de libc han sido
implementadas dentro del kernel, como las
funciones de strings estn en lic/string.c. Es
necesario incluir <linux/string.h>


Ejemplos

Kernels Monoliticos:

Linux

Kernels Unix tradicionales, como los BSDs

Solaris

Microkernels famosos:

Aix (IBM eServers pSeries, utilizando


procesadores de la familia IBM Power de 32 y 64
bits)

Minix

Mach, usando GNU Hurd y Mac OS X entre


otros

QNX (Real time)




Referencias

[1] Linux Kernel in a Nutshell.
[2] Linux Kernel Organization
[3] Linux Kernel Development. 2da edicin
[4] Understanding the Linux kernel. 3era edicin
[5] https://www.kernel.org/linux.html
[6] http://www.ubuntizados.com/?p=893
[ 7] ht t p: / / pl ug. cs . u. edu/ wi ki / i ndex. php/
Operating_System_vs_Kernel
[8]http://linux.linti.unlp.edu.ar/images/d/d7/
Presentacion-introduccion-kernel.pdf

También podría gustarte