• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Arquitecturas so
 

Arquitecturas so

on

  • 488 views

 

Statistics

Views

Total Views
488
Views on SlideShare
487
Embed Views
1

Actions

Likes
0
Downloads
5
Comments
0

1 Embed 1

https://drive.jolicloud.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Arquitecturas so Arquitecturas so Presentation Transcript

    • Objetivo• Conocer las estructuras/arquitectura de SOSactuales desde el punto de vista de laadaptabilidad funcional de los mismos a nuevosservicios y hardware.
    • Índice• Arquitectura monolítica:– configuración del kernel– configuración en el arranque– configuración en tiempo de ejecución– módulos de carga• Maquinas virtuales:– Soporte del kernel a la virtualización: namespaces,cgroups, containers.– Soporte a maquinas virtuales: Xen, KVM.
    • Arquitecturas en uso• En la actualidad, las estructuras masusadas:– Monolítica – Linux, ...– Microkernel – MacOS, Windows, QNX, ...– Maquinas virtuales – Xen, VMWare, …– SO de internet – PalmOS(WebOS)
    • Arquitectura Monolitica• Características:– Toda la funcionalidad en modo kernel.– Ventaja: eficiencia– Problema: no confinamiento de errores en modokernel– Adaptabilidad:• De forma estática:– Configuración y arranque del kernel– Modificar o añadir código• De forma dinámica:– “On-the-fly”– LKM (Linux Kernel Modules)
    • Arq. Monolitica: configuracion• Razones para configurar un kernel:– Anadir nuevo hardware– Optimizar según entorno: servidor, desktop, ..,SMP, …– Anadir nueva funcionalidad o un manejador nooficial.– Fijar errores de la versión actual.• Lista opciones de configuración:– [Kroadh-Hartman2006]– make [config|menuconfig|xconfig|gconfig]
    • Compilacion del kernel (2.6)• Configurado el kernel, debemos compilarlo:– Situados en /usr/src/linux, ejecutamos:% make– Optimizaciones:• Compilar una porción del kernel:% make [M=]drivers/usb/serial• Realizar una compilación cruzada:% make ARCH=arm CROSS_COMPILER=/usr/local/bin/...• Acelerar la compilación con ccache (http://ccache.samba.org/) odistcc (http://code.google.com/p/distcc/):% make CC=”ccache distcc”• Compilación mutihebra:% make -jn (donde n = 2 * numero_de_procesadores).
    • Instalacion del kernel (2.6)• Instalamos los módulos:% make modules_install• Instalamos la imagen del kernel:% make install– verifica la correcta construcción del kernel– Instala el kernel en /boot– Se genera cualquier imagen ramdisk inicial (se debe generar un disco ramdespués 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 compilación:– installkernel (paquete mkinitrd).– make-kpkg en Ubuntu.
    • Modificaciones “on-the-fly”• El seudo-sistema de archivos /proc nos permiteconfigurar al vuelo ciertos parametros del sistema.% echo “mihost” >/proc/sys/kernel/hostname• Podemos hacer los cambios permanentes consysctl:% sysctl –w kernel.hostname=mihost• Ajuste de servicios a traves de ordenes(start/stop/restart/reload/status):% /etc/init.d/xinetd reload
    • Linux Kernel Modules• Un LKM es un objeto ELF (Executable andLinkable Format) que resuelve sus simboloscuando 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, yMODULE_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 módulo”)MODULE_DESCRIPTION(“Descripción del módulo)static int __init funcion_entrada(void){....return 0;}static void __exit funcion_salida (void){return;}module_init (funcion_entrada);module_exit(funcion_salida);IncludesMacros del moduloConstructor del moduloDestructor del moduloMacros 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 devirtualizacion que permite que veamospropiedades globales de un sistema bajodiferentes aspectos (un namespace esesencialmente una “vista” del sistema).• SOs que soportan este tipo de virtualizacion:– Namespaces – Linux– Zones – Solaris– Jail – FreeBSD
    • 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