Vous êtes sur la page 1sur 16

Arquitec turas de Sistemas Operativ os

VICENTE PANATA CASTILLO 5 SISTEMAS

Objetivo Conocer las estructuras/arquitectura de SOS actuales desde el punto de vista de la adaptabilidad funcional de los mismos a nuevos servicios y hardware.

ndice Arquitectura monoltica: configuracin del kernel configuracin en el arranque configuracin en tiempo de ejecucin mdulos de carga Maquinas virtuales: Soporte del kernel a la virtualizacin: namespaces, cgroups, containers. Soporte a maquinas virtuales: Xen, KVM.

Arquitecturas en uso En la actualidad, las estructuras mas usadas: Monoltica Linux, ... Microkernel MacOS, Windows, QNX, ... Maquinas virtuales Xen, VMWare, SO de internet PalmOS(WebOS)

Arquitectura Monolitica Caractersticas: Toda la funcionalidad en modo kernel. Ventaja: eficiencia Problema: no confinamiento de errores en modo kernel Adaptabilidad: De forma esttica: Configuracin y arranque del kernel Modificar o aadir cdigo De forma dinmica: On-the-fly LKM (Linux Kernel Modules)

Arq. Monolitica: configuracion Razones para configurar un kernel: Anadir nuevo hardware Optimizar segn entorno: servidor, desktop, .., SMP, Anadir nueva funcionalidad o un manejador no oficial. Fijar errores de la versin actual. Lista opciones de configuracin:

Compilacion del kernel (2.6) Configurado el kernel, debemos compilarlo: Situados en /usr/src/linux, ejecutamos: % make Optimizaciones: Compilar una porcin del kernel: % make [M=]drivers/usb/serial Realizar una compilacin cruzada: % make ARCH=arm CROSS_COMPILER=/usr/local/bin/... Acelerar la compilacin con ccache (http://ccache.samba.org/) o distcc (http://code.google.com/p/distcc/): % make CC=ccache distcc Compilacin mutihebra:

Instalacion del kernel (2.6) Instalamos los mdulos: % make modules_install Instalamos la imagen del kernel: % make install verifica la correcta construccin del kernel Instala el kernel en /boot Se genera cualquier imagen ramdisk inicial (se debe generar un disco ram despus de hacer make modules_install: # mkinitramfs -o /boot/initrd.img-2.6.20.1 /lib/modules/2.6.20.1 Se notificar al programa cargador de la existencia de una nueva imagen y se actualiza. Algunas distribuciones automatizan los pasos de la compilacin: installkernel (paquete mkinitrd).

Modificaciones on-the-fly El seudo-sistema de archivos /proc nos permite configurar al vuelo ciertos parametros del sistema. % echo mihost >/proc/sys/kernel/hostname Podemos hacer los cambios permanentes con sysctl: d % sysctl w kernel.hostname=mihost Ajuste de servicios a traves de ordenes (start/stop/restart/reload/status): % /etc/init.d/xinetd reloa

Linux Kernel Modules Un LKM es un objeto ELF (Executable and Linkable Format) que resuelve sus simbolos cuando se carga en el kernel. Aligera el nucleo vs. Sobrecarga No es un proceso. Puede estar en un de los siguientes estados: MODULE_STATE_COMING, MODULE_STATE_LIVE, y MODULE_STATE_GOING. Ordenes relacionadas: insmod, rmmod, modprobe y lsmod.

LKM

Estructura de un LKM (2.6)


#include <linux/module.h> #include <linux/init.h> MODULE_LICENSE(GPL) MODULE_AUTHOR(Autor del mdulo) MODULE_DESCRIPTION(Descripcin del mdulo) static int __init funcion_entrada(void) { .... return 0; } static void __exit funcion_salida (void) { return; } module_init (funcion_entrada); module_exit(funcion_salida); Includes Macros del modulo Constructor del modulo Destructor del modulo Macros de entrada/salida

Virtualizacion en Linux Soporta a maquinas virtuales: Xen KVM UML, y otros Virtualizacion ligera Namespaces cgroups Container

Namespaces Namespaces es una forma ligera de virtualizacion que permite que veamos propiedades globales de un sistema bajo diferentes aspectos (un namespace es esencialmente una vista del sistema). SOs que soportan este tipo de virtualizacion:

PID Namespace: relacion

Los namespaces pueden o no estar jerarquicamente relacionados. Podemos observar como un proceso tiene varios PIDs dependiendo del contexto en el que se observa.

PID ns: Estructuras de datos

Vous aimerez peut-être aussi