SlideShare a Scribd company logo
1 of 16
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 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 mas
usadas:
– 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 modo
kernel
– 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 no
oficial.
– 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/) o
distcc (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 ram
despué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 permite
configurar al vuelo ciertos parametros del sistema.
% echo “mihost” >/proc/sys/kernel/hostname
• Podemos hacer los cambios permanentes con
sysctl:
% 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 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 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);
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:
– 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

More Related Content

What's hot

Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)Kelwin Gamez
 
Arquitectura riscc
Arquitectura risccArquitectura riscc
Arquitectura risccMirkoBlanco
 
Arquitectura sics
Arquitectura sicsArquitectura sics
Arquitectura sicsMirkoBlanco
 
Hyper v ha t echnet latam
Hyper v ha t echnet latamHyper v ha t echnet latam
Hyper v ha t echnet latamPablo Campos
 
KVM Kernel Based Virtual Machine
KVM  Kernel Based Virtual MachineKVM  Kernel Based Virtual Machine
KVM Kernel Based Virtual MachineAlina Guerrero
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadorasAdriiimarok
 
Arquitectura de computadoras (1)
Arquitectura de computadoras (1)Arquitectura de computadoras (1)
Arquitectura de computadoras (1)Adriiimarok
 
PresentacióN1x
PresentacióN1xPresentacióN1x
PresentacióN1xurumisama
 
Manual clase VMware
Manual clase VMwareManual clase VMware
Manual clase VMwareaktivfinger
 
Reparabilidad
ReparabilidadReparabilidad
ReparabilidadLauC2457
 
Virtualizacion De Servidores (Open Source)
Virtualizacion De Servidores (Open Source)Virtualizacion De Servidores (Open Source)
Virtualizacion De Servidores (Open Source)Victor M. Fernández
 

What's hot (20)

Replicación Mysql
Replicación MysqlReplicación Mysql
Replicación Mysql
 
Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)Documental de Arquitecturas Avanzadas (Computación)
Documental de Arquitecturas Avanzadas (Computación)
 
Kernel
KernelKernel
Kernel
 
Arquitectura riscc
Arquitectura risccArquitectura riscc
Arquitectura riscc
 
Arquitectura sics
Arquitectura sicsArquitectura sics
Arquitectura sics
 
Informe laboratorio 1 kvm
Informe laboratorio 1 kvmInforme laboratorio 1 kvm
Informe laboratorio 1 kvm
 
Hyper v ha t echnet latam
Hyper v ha t echnet latamHyper v ha t echnet latam
Hyper v ha t echnet latam
 
KVM Kernel Based Virtual Machine
KVM  Kernel Based Virtual MachineKVM  Kernel Based Virtual Machine
KVM Kernel Based Virtual Machine
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
 
Arquitectura de computadoras (1)
Arquitectura de computadoras (1)Arquitectura de computadoras (1)
Arquitectura de computadoras (1)
 
Virtualización con vmware
Virtualización con vmwareVirtualización con vmware
Virtualización con vmware
 
PresentacióN1x
PresentacióN1xPresentacióN1x
PresentacióN1x
 
Manual clase VMware
Manual clase VMwareManual clase VMware
Manual clase VMware
 
Reparabilidad
ReparabilidadReparabilidad
Reparabilidad
 
Virtualizacion De Servidores (Open Source)
Virtualizacion De Servidores (Open Source)Virtualizacion De Servidores (Open Source)
Virtualizacion De Servidores (Open Source)
 
Virtualización de GNU/Linux Debian con Xen
Virtualización de GNU/Linux Debian con XenVirtualización de GNU/Linux Debian con Xen
Virtualización de GNU/Linux Debian con Xen
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Virtualización con Xen
Virtualización con XenVirtualización con Xen
Virtualización con Xen
 
Virtualización con Xen y KVM
Virtualización con Xen y KVMVirtualización con Xen y KVM
Virtualización con Xen y KVM
 

Similar to Arquitecturas so

Similar to Arquitecturas so (20)

Arquitectura sistemas operativos
Arquitectura sistemas operativosArquitectura sistemas operativos
Arquitectura sistemas operativos
 
Virtualización Avanzada con Elastix
Virtualización Avanzada con ElastixVirtualización Avanzada con Elastix
Virtualización Avanzada con Elastix
 
XEN - Taller presentación Xen
XEN - Taller presentación XenXEN - Taller presentación Xen
XEN - Taller presentación Xen
 
Consolidacion
ConsolidacionConsolidacion
Consolidacion
 
Virtual pc
Virtual pcVirtual pc
Virtual pc
 
MAQUINA VIRTUAL
MAQUINA VIRTUALMAQUINA VIRTUAL
MAQUINA VIRTUAL
 
Presentacin3 090720202939-phpapp01
Presentacin3 090720202939-phpapp01Presentacin3 090720202939-phpapp01
Presentacin3 090720202939-phpapp01
 
Virtual pc
Virtual pcVirtual pc
Virtual pc
 
41 parámetros y módulos generales
41  parámetros y módulos generales41  parámetros y módulos generales
41 parámetros y módulos generales
 
1
11
1
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Sistema de colas Condor en CICA
Sistema de colas Condor en CICASistema de colas Condor en CICA
Sistema de colas Condor en CICA
 
SISTEMAS OPERATIVOS VIRTUALIZACION
SISTEMAS OPERATIVOS VIRTUALIZACIONSISTEMAS OPERATIVOS VIRTUALIZACION
SISTEMAS OPERATIVOS VIRTUALIZACION
 
Maquinas Virtuales
Maquinas VirtualesMaquinas Virtuales
Maquinas Virtuales
 
Tema 02 virtualizacion
Tema 02 virtualizacionTema 02 virtualizacion
Tema 02 virtualizacion
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containers
 
Configuración del Kernel en CenOS
Configuración del Kernel en CenOSConfiguración del Kernel en CenOS
Configuración del Kernel en CenOS
 
presentacion-proxmox-comparativa.pdf
presentacion-proxmox-comparativa.pdfpresentacion-proxmox-comparativa.pdf
presentacion-proxmox-comparativa.pdf
 
Virtualización Libre para sistemas Linux
Virtualización Libre para sistemas LinuxVirtualización Libre para sistemas Linux
Virtualización Libre para sistemas Linux
 
Backup de máquinas virtuales
Backup de máquinas virtualesBackup de máquinas virtuales
Backup de máquinas virtuales
 

Arquitecturas so

  • 1.
  • 2. 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.
  • 3. Í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.
  • 4. Arquitecturas en uso • En la actualidad, las estructuras mas usadas: – Monolítica – Linux, ... – Microkernel – MacOS, Windows, QNX, ... – Maquinas virtuales – Xen, VMWare, … – SO de internet – PalmOS(WebOS)
  • 5. Arquitectura Monolitica • Características: – Toda la funcionalidad en modo kernel. – Ventaja: eficiencia – Problema: no confinamiento de errores en modo kernel – 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)
  • 6. Arq. Monolitica: configuracion • Razones para configurar un kernel: – Anadir nuevo hardware – Optimizar según entorno: servidor, desktop, .., SMP, … – Anadir nueva funcionalidad o un manejador no oficial. – Fijar errores de la versión actual. • Lista opciones de configuración: – [Kroadh-Hartman2006] – make [config|menuconfig|xconfig|gconfig]
  • 7. 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/) o distcc (http://code.google.com/p/distcc/): % make CC=”ccache distcc” • Compilación mutihebra: % make -jn (donde n = 2 * numero_de_procesadores).
  • 8. 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 ram despué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.
  • 9. 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: % sysctl –w kernel.hostname=mihost • Ajuste de servicios a traves de ordenes (start/stop/restart/reload/status): % /etc/init.d/xinetd reload
  • 10. 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.
  • 11. LKM
  • 12. 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); Includes Macros del modulo Constructor del modulo Destructor del modulo Macros de entrada/salida
  • 13. Virtualizacion en Linux • Soporta a maquinas virtuales: – Xen – KVM – UML, y otros • Virtualizacion “ligera” – Namespaces – cgroups – Container
  • 14. 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: – Namespaces – Linux – Zones – Solaris – Jail – FreeBSD
  • 15. 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.