Objetivo• Conocer las estructuras/arquitectura de SOSactuales desde el punto de vista de laadaptabilidad funcional de los ...
Índice• Arquitectura monolítica:– configuración del kernel– configuración en el arranque– configuración en tiempo de ejecu...
Arquitecturas en uso• En la actualidad, las estructuras masusadas:– Monolítica – Linux, ...– Microkernel – MacOS, Windows,...
Arquitectura Monolitica• Características:– Toda la funcionalidad en modo kernel.– Ventaja: eficiencia– Problema: no confin...
Arq. Monolitica: configuracion• Razones para configurar un kernel:– Anadir nuevo hardware– Optimizar según entorno: servid...
Compilacion del kernel (2.6)• Configurado el kernel, debemos compilarlo:– Situados en /usr/src/linux, ejecutamos:% make– O...
Instalacion del kernel (2.6)• Instalamos los módulos:% make modules_install• Instalamos la imagen del kernel:% make instal...
Modificaciones “on-the-fly”• El seudo-sistema de archivos /proc nos permiteconfigurar al vuelo ciertos parametros del sist...
Linux Kernel Modules• Un LKM es un objeto ELF (Executable andLinkable Format) que resuelve sus simboloscuando se carga en ...
LKM
Estructura de un LKM (2.6)#include <linux/module.h>#include <linux/init.h>MODULE_LICENSE(“GPL”)MODULE_AUTHOR(“Autor del mó...
Virtualizacion en Linux• Soporta a maquinas virtuales:– Xen– KVM– UML, y otros• Virtualizacion “ligera”– Namespaces– cgrou...
Namespaces• Namespaces es una forma ligera devirtualizacion que permite que veamospropiedades globales de un sistema bajod...
PID Namespace: relacion    • Los namespaces    pueden o no estar    jerarquicamente    relacionados.    • Podemos obs...
PID ns: Estructuras de datos
Arquitecturas so
Upcoming SlideShare
Loading in …5
×

Arquitecturas so

826 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
826
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Arquitecturas so

  1. 1. Objetivo• Conocer las estructuras/arquitectura de SOSactuales desde el punto de vista de laadaptabilidad funcional de los mismos a nuevosservicios y hardware.
  2. 2. Í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.
  3. 3. 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)
  4. 4. 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)
  5. 5. 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]
  6. 6. 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).
  7. 7. 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.
  8. 8. 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
  9. 9. 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.
  10. 10. LKM
  11. 11. 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
  12. 12. Virtualizacion en Linux• Soporta a maquinas virtuales:– Xen– KVM– UML, y otros• Virtualizacion “ligera”– Namespaces– cgroups– Container
  13. 13. 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
  14. 14. 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.
  15. 15. PID ns: Estructuras de datos

×