Sunteți pe pagina 1din 4

1

Resumen Tres temas se tratan en este documento, la


definicin de kernel de un sistema operativo, los tipos de kernel
ms frecuentes, y una aproximacin a los kernel de Windows y
Linux.

I. INTRODUCCIN
EFINICIN DE KERNEL El software de computadora
puede dividirse a grandes rasgos en dos tipos: programas
de sistema, que controlan la operacin de la computadora
misma, y programas de aplicacin, que realizan las tareas
reales que el usuario desea. El programa de sistema ms
fundamental es el sistema operativo, que controla todos los
recursos de la computadora y establece la base sobre la que
pueden escribirse los programas de aplicacin. [1]

En relacin a la ciencia de la tecnologa de la informacin
podemos decir que: El kernel representa la pieza de software
principal del los sistemas operativos, [2] es el encargado de
manejar las peticiones de entrada y salida de los aplicativos
pues se encarga de traducir las instrucciones o comandos que
solicitan a la CPU y otros dispositivos.

El Kernel se encarga de administrar los procesos, la
memoria, los dispositivos y todas las llamadas al propio
sistema, siendo el responsable de ejecutar los programas y
decidir cundo van a ser procesados, asignarles los espacios en
memoria que requieren.

Esta estructura se puede observar en la Fig. 1 donde el
ncleo o kernel es un mediador entre el hardware y los
procesos del sistema operativo para la ejecucin de
aplicaciones.

Puede decirse que el kernel es un conjunto de aplicaciones
que tienen la capacidad de interactuar o controlar la capa fsica
del dispositivo computacional, en otras palabras, es aquel
software que se encarga de servir como intermediario entre el
dispositivo fsico y todos sus recursos y el sistema operativo
para ejecutar una aplicacin o servicio.

Por ejemplo, un Kernel puede aumentar o disminuir la
cantidad del voltaje que utiliza el procesador, Tambin puede
cambiar los valores de la pantalla haciendo que esta se vea
ms brillante o ms definida, tambin puede ajustar diversos

Documento recibido en Agosto 15, 2014.
Pavel Valencia Barrenechea; e-mail: neo1484@gmail.com.
parmetros de hardware de manera automtica sin la
intervencin del usuario.



Fig. 1. Esquema de kernel en relacin al hardware y el sistema operativo

II. TIPOS DE KERNEL [3]
Se presentan a continuacin algunos de los tipos de kernel
utilizados en la actualidad, relevantes por su difusin y uso
casi generalizado.
A. Exokernel
Un sistema operativo se interpone entre las aplicaciones y la
dotacin fsica. Por lo tanto, su estructura tiene un impacto
dramtico en el funcionamiento y el alcance de las
aplicaciones que se pueden construir en l. Desde su inicio, el
campo de sistemas operativos ha estado procurando identificar
una estructura apropiada: las tentativas anteriores incluyen los
sistemas operativos monolticos y del micro-ncleo as como
sistemas operativos de la mquina lenguaje-base y virtual.

Un Exokernel elimina la nocin que un sistema operativo
debe proporcionar a las abstracciones en las cuales se
construyen las aplicaciones. Se concentra solamente con
seguridad la multiplexacin de la dotacin fsica sin procesar:
herramientas bsicas primitivas, las bibliotecas y los
servidores del nivel aplicacin pueden poner directamente las
abstracciones tradicionales del sistema operativo en ejecucin,
especializadas para la conveniencia y la velocidad.
B. Cache Kernel
Es un sistema que propone que el kernel del sistema sea
bsicamente una cache de los recursos empleados por las
aplicaciones. De este modo, son las aplicaciones las que
KERNEL
Pavel Valencia Barrenechea, Miembro, Apple Developer Team
D
2
poseen los recursos fsicos (aunque de modo virtualizado) y
dentro del ncleo se mantienen slo aquellos recursos ms
empleados. En la prctica, el cache kernel es un sistema
similar al exokernel.

Los objetos de los que hace caching el Cache Kernel son
espacios de direcciones y threads. El mecanismo de
intercomunicacin de procesos empleado se basa en la
implementacin de los espacios de direcciones. Bsicamente
se extiende el concepto de traduccin de direcciones para que
incluya opcionalmente un thread que deber manejar mensajes
relacionados con dicha direccin.

Los clientes pueden sealar dicha direccin y el thread que
lo sirve ser notificado. La transferencia de datos entre
clientes y servidores se implementa con ayuda del gestor de
memoria virtual.

C. Kernel Monoltico
La estructura de esta arquitectura es simplemente no tener
ninguna. A nivel de ncleo no se produce ninguna abstraccin,
es decir, si un procedimiento necesita a otro, es libre de
hacerlo en cualquier momento. Fue el primer enfoque en la
historia, el resto son evoluciones.

D. Microkernel
En este caso, el S.O. se ocupa solo de unas pocas funciones,
reduciendo el ncleo a su mnima expresin. El resto de
funciones pasan a estar en el espacio de usuario.

El kernel y el SHELL son trminos usados ms con
frecuencia en UNIX y algunos otros sistemas operativos que
en sistemas de la unidad central de la IBM.

Un kernel puede incluir a un encargado de los espacios de
direccionamiento del sistema operativo en memoria o el
almacenaje, compartiendo stos entre todos los componentes y
otros utilizadores de los servicios del kernel. Los servicios de
un kernel son solicitados por otras partes del sistema operativo
o por la aplicacin a travs de un conjunto especificado de
interfaces del programa sabidos a veces mientras que el
sistema llama. Porque el cdigo que hace para subir el kernel
se necesita continuamente, se carga generalmente en la
memoria interna en un rea de modo que se proteja de que
notenga contacto con otras partes menos con frecuencia
usadas del sistema operativo. El kernel no debe ser confundido
con el sistema bsico de la entrada-salida (BIOS). Algunos
kernels se han desarrollado independientemente para el uso en
cualquier sistema operativo que desee utilizarlo.

Un ejemplo bien conocido es el kernel de Mach,
desarrollado en la universidad de Carnegie-Mellon, y usado
actualmente en una versin del sistema operativo de Linux
para los ordenadores de PowerMac.
III. EL KERNEL DE WINDOWS VISTA [4]

Como base y fundamento de muchas de las nuevas
caractersticas de Windows Vista fueron realizadas
importantes mejoras al kernel. Con un esfuerzo sin
precedentes, expertos trabajaron sobre un objetivo comn, una
misma meta y enfoque: entregar un sistema seguro. Resumir
algunas de las ms mejoras e inclusiones al kernel de
Windows Vista.

El kernel incluido en Vista, proviene de sus antecesores
(NT, 2000, XP) y es la base de Windows Server 2008. La
versin de kernel liberada con Vista continu en desarrollo y
fue sincronizada en su versin final a travs del SP1 de
Windows Vista.

Al tratarse de una mejora sobre el modelo NT-Kernel
(hbrido) podemos asegurar que contina combinando los
conceptos de Kernel-monoltico y Microkernel. Lo cual brinda
la garanta de un buen desempeo de un kernel monoltico y la
estabilidad del microkernel.

Kernel Transaction Manager (KTM) es un componente del
Kernel de Windows Vista y Windows Server 2008 que le
permite a las aplicaciones usar atomic transactions sobre los
recursos hacindolos disponibles como objetos del kernel.

El transaction engine opera en modo kernel, permite
transacciones en modo kernel y modo user as como a travs
de recursos distribuidos. El KTM intenta facilitar a los
desarrolladores la tarea de recuperacin de errores de forma
transparente, actuando como administrador de transacciones
sobre el cual los clientes de transacciones puedan conectarse.
KTM se utiliza para implementar Transactional NTFS (TxF) y
Transactional Registry (TxR).

Kernel Patch Protection (KPP) informalmente conocido
como PatchGuard, es una caracterstica de la edicin x64 de
Microsoft Windows que previene tener que aplicar parches al
kernel. Fue introducida inicialmente en el 2005 con las
ediciones x64 de Windows XP y Windows Server 2003
Service Pack 1.

Entre otras importantes mejoras encontramos:

Time Stamp Counter (TSC): hace ms justa la asignacin de
procesador a cada subproceso en ejecucin, permitindole
ejecutarse al menos una vez por ciclo de reloj.

Multimedia Class Scheduler: permite que los subprocesos
se declaren como multimedia obteniendo prioridad sobre otros
subprocesos y evitando interrupciones en la reproduccin del
contenido.

Mklink.exe command: genera symbolic links para archivos
y directorios resolviendo la ruta proporcionada en el cliente.
Se requieren permisos de administrador.
3

I/O Cancellation Support: implementa soporte a cancelar
subprocesos synchronous I/O, por ejemplo al tratar de acceder
a un archivo en un dominio no disponible desde el bloc de
notas, tendramos que esperar el timeout para continuar la
operacin, con el nuevo soporte a cancelar subprocesos I/O,
nos permite presionar CTRL-C desde un command prompt o
dar click al botn de cancel a la caja de dialogo.

I/O Prioritization: introduce categoras y niveles a los
subprocesos para priorizar la ejecucin segn la relevancia
que estas representen en la experiencia general del usuario.

SuperFetch: introduce el concepto de prioridades de
memoria que nos permitirn utilizar la memoria de forma
adaptiva segn nuestra actividad.

ReadyBoost: utiliza flash drives para crear un write-through
cache entre el disco y la memoria.

Hybrid Hard Drive (H-HHD): hace uso del NVCACHE
para localizar informacin del superfetch, archivos de
hibernacin y lo activa como write-through cache para ahorro
de energa en laptops funcionando con batera.

Windows Service Hardening: en Windows Vista, el nmero
de capas de seguridad entre el usuario y el kernel se
increment. Adicionalmente, el tamao de las capas de alto
riesgo se redujo. Esto significa que la cantidad de cdigo a
ejecutar en la capa de kernel se redujo significativamente.

Existen otros muy importantes como el Boot Configuration
Database (BCD): pre-shutdown services, Volume Shadow
Copy, Windows Error Reporting (WER), BitLocker, Protected
Processes, User Account Control (UAC).

If you are using Word, use either the Microsoft Equation
Editor or the MathType add-on (http://www.mathtype.com)
for equations in your paper (Insert | Object | Create New |
Microsoft Equation or MathType Equation). Float over text
should not be selected.
IV. EL KERNEL DE LINUX [5]
En 1984, Richard Stallman fund el Proyecto GNU con el
objetivo de conseguir un sistema operativo libre y abierto.
Esto es, un sistema operativo tal que los usuarios puedan
usarlo, leer el cdigo fuente, modificarlo, y redistribuirlo.

A partir de ese momento, un gran nmero de colaboradores
se fueron sumando al proyecto, desarrollando software libre
para reemplazar cada una de las herramientas del sistema
UNIX.

La filosofa GNU apoya el crecimiento de la sociedad como
un conjunto, haciendo especial hincapi en la valoracin de las
libertades personales, an cuando esto puede estar en conflicto
con intereses empresariales.

En 1991, Linus Torvalds complet el sistema con su kernel
(que es la aplicacin encargada de comunicar los procesos con
el hardware de la computadora). A este kernel lo bautiz
Linux.

De esta manera, se form el sistema GNU/Linux.
La Universidad de Berkeley estuvo relacionada con el
desarrollo de los sistemas operativos UNIX. Recibi de AT&T
una versin gratuita de UNIX, y a partir de entonces comenz
a promover el desarrollo de aplicaciones para UNIX dentro de
la universidad. Ms adelante, desarrollo su propio sistema
operativo UNIX, sin utilizar el cdigo fuente de AT&T. El
kernel fue creado desde Berkeley, pero las herramientas
utilizadas son en su mayora GNU, es decir las mismas que en
el sistema GNU/Linux. Existen actualmente 3 sistemas
operativos libres, derivado de BSD: FreeBSD, OpenBSD y
NetBSD.

El sistema operativo GNU/Linux cuenta con una interfaz
grfica, llamada XFree86 o simplemente X. El protocolo X
fue desarrollado por el MIT, principalmente como un logro
acadmico para proporcionar un entorno grfico a UNIX. La
licencia mediante la cual se distribuye permite usarlo,
modificarlo, redistribuirlo e incluso re licenciarlo.

El cdigo fuente del sistema GNU y del kernel Linux est
accesible a todo el mundo, sin embargo, hacer funcionar un
sistema a partir del cdigo fuente es bastante difcil. Por eso,
un sistema operativo se distribuye (normalmente) en formato
binario, es decir ya compilado.

Poco despus de que apareciera el kernel Linux,
comenzaron a aparecer las primeras distribuciones, que
agrupaban versiones probadas de varios programas, junto con
el kernel, de tal manera que formaban un sistema operativo
listo para usar.

A medida que fue pasando el tiempo, algunas distribuciones
se fueron haciendo ms sofisticadas, otras desaparecieron,
otras se hicieron comerciales y aparecieron mucha ms.
Existen distribuciones de muchos tipos: distribuciones que
ocupan 1 diskette y distribuciones que llegan a ocupar 10
CDs; distribuciones orientadas a una finalidad en especial
(redes, seguridad, etc.) y distribuciones de uso general.

Cada usuario de GNU/Linux suele elegir la distribucin con
la que se siente ms cmodo, y no tiene sentido entrar en
discusiones acerca de cul es mejor. A menos que aclaremos
lo contrario, lo que se ensea en este curso es aplicable a la
gran mayora de los sistemas UNIX, y a cualquiera de las
distribuciones de GNU/Linux.

El mundo de las computadoras no se restringe a las
Computadoras Personales con las que estamos en contacto
todos los das. Existen diversas arquitecturas en las que una
computadora se puede presentar. A cada una de estas
4
arquitecturas la llamamos plataforma.

Ejemplos de algunas plataformas posibles son: iMac (de
Macintosh), Sparc (de Sun), S/390 (de IBM), PlayStation (de
Sony), XBox (de Microsoft). En particular, la plataforma que
utilizamos comnmente se la denomina x86 y x64, ya que est
basada en los procesadores de Intel, a partir de la arquitectura
i386 y la de 64 bits.
V. CONCLUSIN
El kernel es una aplicacin de software, que es el
intermediario entre el hardware y el sistema operativo de todo
dispositivo enmarcado en una arquitectura de microprocesador
x86 y x64, encargado de automatizar los procesos de
comunicacin entre estos componentes de un dispositivo
computacional.

Existen varios tipos de kernel para satisfacer las
necesidades de los distintos tipos de software y hardware
existentes.

Los sistemas operativos propietarios y no propietarios,
difieren de manera considerable tanto en el diseo de sus
kernels como en su forma y funcin, pero sobre todo difieren
en el enfoque hacia el desarrollo y uso de este software.
REFERENCIAS
[1] Andrew S. Tanenbaum, Sistemas Operativos Diseo e
Implementacin, 2nd ed. vol. 1, Pablo Eduardo Roig, Ed. Mexico:
Prentice Hall, 1997, pp. 1960.

[2] L. G. Snchez, G. A. Osorio, Introduccin a kernel ACP y otros mtodo
espectrales aplicados al aprendizaje no supervisado. Revista
Colombiana de Estadstica Junio 2008, volumen 31, no. 1, pp. 19 a 40

[3] http://sistemasop.galeon.com/kernel.html

[4] http://jaimejuarezm.wordpress.com/2008/05/28/el-kernel-de-windows-
vista/

[5] M. Manterola, M. Curia, Curso de GNU/Linux para
principiantesFacultad de Ingeniera UBA, Actualizado Junio 2003

S-ar putea să vă placă și