Post on 14-Apr-2017
KERNEL DE LOS SISTEMAS OPERATIVOS
(WINDOWS, LINUX Y MAC)
Diana Tigrero, Andrea Vargas, Wilson Mazzini, Alex Acosta.
Facultad de Sistemas y Telecomunicaciones
Universidad Estatal Península de Santa Elena
La Libertad – Ecuador
SISTEMAS OPERATIVOS
Resumen
El objetivo de este trabajo es elaborar un documento que nos permitirá conocer
la función del Kernel enfocado en tres sistemas operativos como Windows,
Linux y Mac en esto se mostrara las diferencias que el Kernel ejecuta en
diversos sistemas.
INTRODUCCION
El Kernel puede verse como el núcleo
del sistema operativo, este reside en
la memoria RAM cuando se enciende
el ordenador y permanece en
funcionamiento hasta que este se
apaga. Tiene principalmente dos
responsabilidades:
1. Servir a los requerimientos de
programación a bajo nivel, por
ejemplo tratando las
interrupciones hardware
(teclados, discos duros, tarjetas
de video, etc...).
2. Proveer un entorno a los
procesos, que son las
instancias en ejecución de los
programas o threads.
No necesariamente se necesita un
núcleo para usar una computadora.
Los programas pueden cargarse y
ejecutarse directamente en una
computadora vacía, siempre que sus
autores quieran desarrollarlos sin usar
ninguna abstracción del hardware ni
ninguna ayuda del sistema operativo.
Ésta era la forma normal de usar
muchas de las primeras
computadoras: para usar distintos
programas se tenía que reiniciar y
reconfigurar la computadora cada vez.
Con el tiempo, se empezó a dejar en
memoria (aún entre distintas
ejecuciones) pequeños programas
auxiliares, como el cargador y el
depurador, o se cargaban desde
memoria de sólo lectura. A medida que
se fueron desarrollando, se
convirtieron en los fundamentos de lo
que llegarían a ser los primeros
núcleos de sistema operativo.
(ECURED) En su página web nos
muestra y define cuatro tipos de
núcleos o kernels:
Los núcleos monolíticos:
facilitan abstracciones del
hardware subyacente realmente
potentes y variadas.
Los micronúcleos:
proporcionan un pequeño
conjunto de abstracciones
simples del hardware, y usan
las aplicaciones llamadas
servidores para ofrecer mayor
funcionalidad.
Los núcleos híbridos: son
muy parecidos a los
micronúcleos puros, excepto
porque incluyen código
adicional en el espacio de
núcleo para que se ejecute más
rápidamente.
Los exonúcleos: no facilitan
ninguna abstracción, pero
permiten el uso de bibliotecas
que proporcionan mayor
funcionalidad gracias al acceso
directo o casi directo al
hardware.
Funciones del Kernel
Administración de la memoria
para todos los programas y
procesos en ejecución.
Administración del tiempo de
procesador que los programas y
procesos en ejecución utilizan.
La comunicación entre los
programas que solicitan
recursos y el hardware.
Gestión de los distintos
programas informáticos (tareas)
de una máquina.
Gestión del hardware (memoria,
procesador, periférico.
El Kernel de Windows
“Windows es un sistema
operativo serio, capaz de competir en
el mercado con otros como Unix que
ya tienen una posición privilegiada, en
cuanto a resultados, debe tener una
serie de características que le
permitan ganarse ese lugar”
(ECURED).
Modo Kernel
Capa de Abstracción de
Hardware (HAL).
Conocido por sus siglas en inglés HAL
(Hardware AbstractionLayer) es una
interfaz entre el hardware y el resto del
Sistema Operativo, está implementada
como una biblioteca de enlace
dinámico (dll) y es responsable de
proteger el resto del sistema de las
especificaciones del hardware, tales
como controladores de interrupción e
interfaces de entrada/salida. Esta
abstracción hace al sistema más
portable ya que el resto del sistema no
tiene que preocuparse sobre que
plataforma está corriendo.
MicroKernel
Es el responsable de todas las
acciones que se realizan sobre le
sistema y casi todas las funciones del
sistema pasan a través de él. El
microkernel está situado en el corazón
de Windows, trabaja muy
estrechamente con el HAL (Nivel de
Abstracción de Hardware), este
planifica la ejecución de hilos y
manipula las interrupciones y
excepciones de procesos. El papel de
este es mantener a los procesadores
lo más ocupado posible. En sentido
general este se encarga de las
funciones más básicas de todo el SO,
como son:
Ejecución de subprocesos.
Sincronización multiprocesador.
Manejo de las interrupciones de
hardware.
El Ejecutor de Windows
Se encarga de las tareas importantes,
las que son de vital importancia para el
sistema completo, ya que el
microkernel está casi siempre
demasiado ocupado para dirigirse
directamente. El Administrador de
Objetos.
El Administrador de Objetos
(Object Manager)
Es usado para crear, modificar y
eliminar objetos (tipos de datos
abstractos que son usados para
representar recursos del Sistema
Operativo) usados por todos los
sistemas que conforman el Ejecutor de
Windows. Este también proporciona
información sobre el estado de los
objetos a todo el Sistema Operativo.
El Administrador de Procesos
El Administrador de Procesos (Process
Manager) es el responsable de crear,
quitar y modificar los estados de todos
los procesos e hilos. Este también
proporciona información sobre el
estado de procesos e hilos al resto del
sistema. El Administrador de Memoria
Virtual.
Servicios de Llamadas a
Procedimientos Locales
(Local Procedure Call Facility o LPC)
Se integran al diseño cliente/servidor
de Windows. Este es la interfaz entre
todos los procesos clientes y
servidores que corren localmente en el
sistema. El Monitor de Seguridad. El
Monitor de Seguridad (Security
Reference Monitor o SRM) es el lecho
de toda la seguridad dentro del
sistema WINDOWS y es el
responsable de hacer cumplir todas las
políticas de seguridad en la
computadora local.
El Administrador de Entrada-Salida:
El Administrador de Entrada-Salida
(I/O Manager) es responsable de
gestionar la comunicación entre los
distintos drivers de dispositivo, para lo
cual implementa una interfaz bien
definida que permite el tratamiento de
todos los drivers de una manera
homogénea, sin que intervenga el
cómo funciona específicamente cada
uno.
El Subsistema Win32
Este subsistema actúa como un
servidor para todos los otros
subsistemas de ambiente soportados
en WINDOWS, los que actúan como
clientes y traducen sus
llamadas API hacia las API apropiadas
de Win32. El subsistema Win32 es
responsable de toda la entrada y
salida. Este posee el control de la
pantalla, el teclado, y el ratón. Cuando
otros subsistemas, como OS/2 o
POSIX, necesitan beneficiarse de
estos dispositivos, ellos piden los
servicios al subsistema de Win32.
Algunos de los objetivos que se
trazaron para mantener la
compatibilidad con las aplicaciones
hechas en versiones anteriores fueron:
Permitir que los programas hechos
sobre DOS pudieran correr sin
modificación.
Suministrar la capacidad para ejecutar
la mayoría de las aplicaciones
Windows de 16 bits sin modificación.
Proteger al sistema y otras
aplicaciones de 32 bits de la
interferencia de las aplicaciones de 16
bits y DOS.
Permitir a las plataformas RISC
(Reduced Instruction set Computer,
microprocesador cuyo número de
instrucciones es reducido para lograr
una frecuencia más alta de trabajo)
ejecutar aplicaciones Windows de 16
bits y DOS.
El Subsistema POSIX.Microsoft prestó
mucha atención a los diferentes
estándares de sistemas abiertos
cuando Windows NT estaba en vía de
desarrollo. Ellos reconocieron el valor
de soportar sistemas abiertos como un
método para ganar aceptación de su
nuevo sistema operativo avanzado
dentro del mercado.
Uno de los estándares más
frecuentemente citados soportados por
Windows es el POSIX (Interfaz de
Sistema operativo Portable Basado en
Unix), el cual representa la interfaz del
Sistema Operativo portable y fue
desarrollado por el IEEE (Instituto
de Ingenieros en
Electricidad y Electrónica) como un
método de proporcionar portabilidad a
las aplicaciones hechas sobre
plataformas UNIX.
No obstante, POSIX se ha integrado
en muchos sistemas no UNIX. El
Subsistema OS/2. El Subsistema OS/2
igual que el subsistema POSIX
proporciona un entorno para
aplicaciones UNIX, este subsistema da
soporte a las aplicaciones OS/2.
Proporciona la interfaz gráfica y las
llamadas al sistema; las llamadas son
servidas con ayuda del Ejecutor de
Windows.
Un núcleo no es magia, pero es
completamente esencial para cualquier
equipo que ejecute correctamente. El
kernel de Linux es diferente a OS X y
Windows, ya que incluye los
controladores nivel del núcleo y hace
muchas cosas más.
EL KERNEL DE LINUX
El kernel o núcleo de Linux se puede
definir como el corazón de este
sistema operativo.
Las funciones más importantes del
mismo, aunque no las únicas, son:
Administración de la memoria
para todos los programas y
procesos en ejecución.
Administración del tiempo de
procesador que los programas y
procesos en ejecución utilizan.
Es el encargado de que
podamos acceder a los
periféricos/elementos de
nuestra computadora de una
manera cómoda.
Hasta que empezó el desarrollo de la
serie 2.6 del núcleo, existieron dos
tipos de versiones del núcleo:
Versión de producción: La versión
de producción, era la versión estable
hasta el momento. Esta versión era el
resultado final de las versiones de
desarrollo o experimentales. Cuando el
equipo de desarrollo del núcleo
experimental, decidía que tenía un
núcleo estable y con la suficiente
calidad, se lanzaba una nueva versión
de producción o estable. Esta versión
era la que se debía utilizar para un uso
normal del sistema, ya que eran las
versiones consideradas más estables
y libres de fallos en el momento de su
lanzamiento.
Versión de desarrollo: Esta versión
era experimental y era la que
utilizaban los desarrolladores para
programar, comprobar y verificar
nuevas características, correcciones,
etc. Estos núcleos solían ser
inestables y no se debían usar sin
saber lo que se hacía.
Arquitectura del Kernel Linux
“Debido a que el kernel de Linux es
monolítico, tiene más complejidad que
en los otros tipos de kernels. Esta fue
una característica de diseño que
estaba bajo un poco de debate en los
primeros días de Linux y aún tiene
algunos de los defectos de diseño que
los núcleos monolíticos son inherentes
a tener” (ECURED).
Una cosa que los desarrolladores del
kernel de Linux hicieron para
conseguir solucionar estas fallas es
hacer módulos del kernel que pueden
ser cargados y descargados en tiempo
de ejecución, lo que significa que
puede agregar o quitar características
de su núcleo en el momento. Esto
puede ir más allá de la adición de la
funcionalidad de hardware para el
núcleo, mediante la inclusión de
módulos que ejecutan los procesos del
servidor, como la virtualización de bajo
nivel, pero también puede permitir que
el núcleo pueda ser del todo
reemplazado sin necesidad de reiniciar
el equipo en algunos casos.
Módulos del Kernel
Los módulos del kernel, también
conocido como un módulo del kernel
cargables (LKM), son esenciales para
mantener el funcionamiento del núcleo
con todo el hardware sin consumir
toda la memoria disponible.
Kernel Mac OS X
“Darwin es el kernel del sistema
operativo Mac OS, está basado en los
kernels de los sistemas operativos
Mach y FreeBSD, pero también incluye
parte de MkLinux, NetBSD, OpenBSD
y otras tecnologías de Mach, y sobre el
que se centran las más importantes
interacciones del software con el
hardware” (Delgado A).
También (Delgado A) menciona que el
trabajo del Mach 3.0 es dotar al
procesador y la memoria de la
capacidad de abstracción del resto de
los componentes del equipo. Se
encargará de gestionar los tiempos de
trabajo del procesador, así como de
facilitar la protección de memoria entre
las distintas aplicaciones e se estén
ejecutando en un momento dentro del
ordenador. Todo ello sin olvidar la
gestión de todos los mecanismos de
entrada y salida de que dispongamos
para un proceso en ejecución. El
Sistema Operativo Mac usa un kernel
de tipo híbrido.
CONCLUSIONES
El kernel es muy importante y
además permite que el S.O se
comunique con el Hardware
dando mayor funcionamiento y
rendimiento a todo el sistema.
El Micro Kernel, es aquel que lo
puedes configurar a tu gusto
ampliando módulos para que
vaya adquiriendo más
funcionalidades y capacidades,
En el monolítico se encuentran
todas las capacidades reunidas
en un solo kernel, si lo ves
como programación, el primero
es como un programa (sin
hacerlo ejecutable) en el cual
añades librerías (conio, math,
etc.) para ir obteniendo más
funciones y el segundo no es
ejecutable no puedes modificar,
pero contiene todo lo que sea
necesario, pero aunque tenga
cosas que ni siquiera necesitas.
RECOMENDACIONES
Actualizar de vez en cuando el
kernel, sobre todo cuando se
corrigen fallos de seguridad o
cuando los cambios en el nuevo
núcleo afectan a características,
funciones, hardware que
utilicemos.
Bibliografía Delgado A, F. (s.f.). Sistema Operativo MAC.
Recuperado el 21 de Octubre de 2015,
de Diseño de Sistemas Operativos:
http://lsi.ugr.es/jagomez/disisoparchi
vos/trabajosDSO/Presenta2/MacOS.p
df
ECURED. (s.f.). Conocimientos con todos y para
todos. Recuperado el 21 de Octubre
de 21, de
http://www.ecured.cu/index.php/Ker
nel#El_Kernel_de_Windows
SINGH. (Diciembre de 2003). MAC OS X
INTERNALS. Recuperado el 21 de
Octubre de 2015, de
http://osxbook.com/book/bonus/anci
ent/whatismacosx/arch_xnu.html
UNIVERSIDAD DE LA RIOJA. (24 de Abril de
2006). CAMPUS DE EXCELENCIA
INTERNACIONAL. Recuperado el 21 de
Octubre de 2015, de
https://www.unirioja.es/cu/jearansa/
1112/ficheros/Tema_3IN.pdf