Linux. Kernel Linux Modulos y procfs

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Linux. Kernel Linux Modulos y procfs"

Transcripción

1 Linux Kernel Linux Modulos y procfs

2 Kernel El kernel Linux se compila a un gran binario: es un kernel monolítico. Existe la posibilidad de que ciertas partes se modifiquen en tiempo de ejecución, pero es simplemente una solución implementativa: eventualmente los módulos se convierten en parte del binario del kernel.

3 Subsistemas y Capas del kernel La funcionalidad del kernel Linux está dividida en subsistemas claramente diferenciados: Funcionalidad básica del sistema (kernel/) Procesos (kernel/) Manejo de memoria (mm/) Almacenamiento (fs/) Redes (net/) Interacción con el usuario A su vez, el kernel también puede dividirse en capas, teniendo en cuenta la distancia con el usuario: Interfaz con el usuario Construcciones virtuales (procesos, memoria virtual,protocolos) Bridges (funcionalidad que cruza subsistemas) Lógica (implementación de funciones) Control de dispositivos (drivers/) Interfaz con el hardware (interrupciones, registros)

4 Mapa del Kernel De esta manera queda el siguiente cuadro:

5 System Call Interface El camino de una llamada al sistema operativo

6 Algunos servicios Para Procesos fork() permite crear procesos identicos a quien lo invoca clone() permite elegir que recursos se duplican y que recursos se comparten Para Archivos y Directorios creat() permite crear archivos o directorios open() permite abrir archivos read() permite leer archivos write() permite escribir un archivo ya abierto Un directorio es un archivo con formato especial.

7 Partes del Kernel Primitivas de Sincronización en el kernel Semáforos (kernel/semaphore.c) Mutexes (kernel/mutex.c) Spinlocks (kernel/spinlock.c) Manejo de Memoria El Linux es paginado por demanda La función que maneja los fallos de página es do_page_fault() en arch/x86/mm/fault.c La función que realiza el swap es do_swap_page() en mm/memory.c Inicio del kernel: BIOS -> Bootloader -> kernel -> Init El punto de entrada es la función start_kernel() en kernel/main.c

8 Partes del Kernel Scheduler Un proceso puede estar en uno de los siguientes estados: #define TASK_RUNNING 0 #define TASK_INTERRUPTIBLE 1 #define TASK_UNINTERRUPTIBLE 2 #define TASK_STOPPED 4 #define TASK_TRACED 8 (include/linux/sched.h) La función principal de scheduling es void schedule(void). La función que realiza el context switch es: void context switch(struct rq *rq, struct task struct *prev, struct task struct *next). (kernel/sched.c)

9 Partes del Kernel struct task_struct { volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ void *stack;... unsigned int flags; /* per process flags, defined below */... struct mm_struct *mm, *active_mm;... int exit_code, exit_signal;... pid_t pid; pid_t tgid;... struct task_struct *real_parent; /* real parent process */ struct task_struct *parent; /* recipient of SIGCHLD, wait4() reports */... struct list_head children; /* list of my children */ struct list_head sibling; /* linkage in my parent's children list */... uid_t uid,euid,suid,fsuid; gid_t gid,egid,sgid,fsgid;... (kernel/sched.h)

10 Partes del Kernel VFS Es la manera de desacoplar en Linux las operaciones sobre filesystems de su implementación particular:

11 Partes del Kernel Cada filesystem debe implementar las funciones requeridas por el VFS: const struct file_operations ext3_file_operations = {....read = do_sync_read,.write = do_sync_write,....mmap = generic_file_mmap,.open = generic_file_open,... }; const struct inode_operations ext3_file_inode_operations = {.truncate = ext3_truncate,.setattr = ext3_setattr,....permission = ext3_permission, }; (fs/ext3/file.c)

12 Módulos En Linux, partes del kernel pueden compilarse como módulos. Los módulos pueden insertarse y removerse del kernel en runtime sin necesidad de reiniciar el sistema. El esquema de módulos permite no tener que compilar toda la funcionalidad al mismo binario, y solamente cargar en runtime la que se necesita. Esto es muy útil para no tener que compilar todos los drivers en el kernel. El código de un módulo se compila con el resto del kernel, o bien por separado mientras se disponga de los headers. El linkeo se realiza al insertar el módulo.

13 Módulos Para ver los módulos cargados en el sistema se utiliza el comando lsmod, el cual obtiene la información de /proc/modules. Cuando el kernel necesita una funcionalidad que no esta residente, el daemon de modulos del kernel (kmod) ejecuta modprobe para cargar el módulo (modulo.ko) Ver /etc/modprobe.conf alias eth0 e1000 Ver /lib/modules/version/modules.dep Dependencias entre modulos, generado por depmod a Modprobe usa insmod para cargar el módulo desde un lugar predeterminado /lib/modules/version/ Para descargar un modulo se utiliza rmmod Ver el paquete module-init-tools

14 Módulo Ejemplo viejo Los modulos utilizan dos funciones para cargarse y descargarse #include <linux/module.h> #include <linux/kernel.h> /* KERN_INFO */ int init_module(void) { printk(kern_info "Hello world 1.\n"); return 0; /*!=0 no se pudo cargar el modulo */ } void cleanup_module(void) { } printk(kern_info "Goodbye world 1.\n"); Init_module es utilizado para registrar algun handler o para reemplazar alguna funcionalidad del kernel. Cleanup_module se supone que deshace aquello que modificó init_module

15 Módulo Ejemplo viejo Printk es utilizado en lugar del printf, y se utiliza para notificar al usuario cierta información utilizando niveles de prioridad. Dichos niveles se determinan utilizando macros: KERN_ALERT, DEFAULT_MESSAGE_LOGLEVEL, KERN_WARNING Si los servicios de syslogd y de klogd estan ejecutandose, los mensajes se agregarán en el archivo /var/log/messages. Para compilar los módulos se utiliza Makefile: obj m += hello 1.o all: make C /lib/modules/$(shell uname r)/build M=$(PWD) modules clean: make C /lib/modules/$(shell uname r)/build M=$(PWD) clean

16 Módulo Ejemplo Para no utilizar siempre init_module y cleanup_module se utiliza el nuevo formato de modulos: #include <linux/module.h> #include <linux/kernel.h> /* KERN_INFO */ #include <linux/init.h> /* macros */ static int hello2_data initdata = 2; static int init hello_2_init(void){ printk(kern_info "Hello, world %d\n", hello2_data); return 0; } } static void exit hello_2_exit(void){ printk(kern_info "Goodbye, world 3\n"); module_init(hello_2_init); module_exit(hello_2_exit);

17 Módulo Ejemplo Licenciado #include <linux/module.h> #include <linux/kernel.h> /* KERN_INFO */ #include <linux/init.h> /* macros */ #define DRIVER_AUTHOR " sistemas operativos { #define DRIVER_DESC " Driver Hello" static int init init_hello_4(void) printk(kern_info "Hello, world 4\n"); return 0; } { } static void exit cleanup_hello_4(void) printk(kern_info "Goodbye, world 4\n"); module_init(init_hello_4); module_exit(cleanup_hello_4); MODULE_LICENSE("GPL"); MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_DESCRIPTION(DRIVER_DESC);

18 Temas sobre Modulos Crear y usar archivos en /proc static struct proc_dir_entry *mi_directorio, *mi_archivo; mi_directorio = proc_mkdir(module_name, NULL) mi_archivo = create_proc_entry( Aca, 0644, mi_directorio) remove_proc_entry( Aca,mi_directorio) mi_archivo->write_proc=mifuncion; mifuncion(struct file *f, const char user *buf, unsigned long l, void *data) Uso de otros drivers struct tty_driver *mi_driver; mi_driver = vc_cons[fg_console].d->vc_tty->driver mi_driver->ioctl ( un_tty, NULL, KDSETLED, valor) Includes types.h, proc_fs.h, tty.h, kd.h, vt_kern.h, console_struct.h

19 Temas de Syscalls Para lograr cambiar el puntero a la función correspondiente a un servicio, hay que modificar la sys_call_table. Dicha tabla esta protegida en los kernels 2.6, para evitar la instalación de rootkits, mediante dos métodos: No se exporta No se permite modificar (la memoria es solo de lectura)

20 Temas de Syscalls Para ubicar a la tabla: grep sys_call_table /usr/src/linux/system.map sed \s/^\(.*\) \(.* sys_call_table\)/0x\1/ Definiciones: #define DIR_SYS_CALL_TABLE 0xc void **sys_call_table = (void *) DIR_SYS_CALL_TABLE; asmlinkage int (*sys_call_orig) (const char *pathname);

21 Temas de Syscalls Para modificar la tabla: sys_call_orig = sys_call_table[ NR_mkdir]; Se modifica permisos r-w-x a la pagina pg = virt_to_page( DIR_SYS_CALL_TABLE ); prot.pgprot = VM_READ VM_WRITE VM_EXEC; change_page_attr(pg, 1, prot); Se modifica la función correspondiente al servicio sys_call_table[ NR_mkdir] = fake_mkdir_function;

22 Referencias The Linux Kernel Module Programming Guide (LDP) Peter Jay Salzman, Michael Burian, Ori Pomerantz Kernel map: map Anatomy of the Linux kernel. Tim Jones, developerworks. Kernel command using Linux system calls. Tim Jones, developerworks. Inside the Linux boot process. Tim Jones, developerworks.

Drivers para Linux embebido Martin Ribelotta

Drivers para Linux embebido Martin Ribelotta Drivers para Linux embebido Martin Ribelotta www.emtech.com.ar Temario Drivers en Linux Hola System-land Mundo! Recursos del Kernel IO-MEM, Direcciones Virtuales vs Reales Comunicándose con el user-land

Más detalles

Programación en modo Kernel y Desarrollo de drivers. Carlos Manuel Duclos Vergara carlos@embedded.cl Embedded CL

Programación en modo Kernel y Desarrollo de drivers. Carlos Manuel Duclos Vergara carlos@embedded.cl Embedded CL Programación en modo Kernel y Desarrollo de drivers Carlos Manuel Duclos Vergara carlos@embedded.cl Embedded CL Advertencias APAGAR LOS CELULARES! Contenidos Estructura de un sistema Unix / Linux Principios

Más detalles

Programación de Controladores para Linux

Programación de Controladores para Linux Programación de Controladores para Linux Edgardo E. Hames, Julio A. Bianco Revisión 2.0.1 (1740, 2012-09-27) 1. Introducción Linux es un clon del sistema operativo Unix, escrito desde cero por Linus Torvalds

Más detalles

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas:

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas: 1 Introducción LABORATORIO 2 En esta tarea se desea implementar un servicio sincronización de procesos a través de semáforos binarios con prioridad para el sistema operativo Linux. Para esto se deberá

Más detalles

Sistemas Operativos - Intro

Sistemas Operativos - Intro Sistemas Operativos - Intro Técnicas Digitales III Ing. Gustavo Nudelman 2012 Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Conceptos generales Un sistema operativo es simplemente un

Más detalles

Aspectos básicos de la programación de entrada/salida

Aspectos básicos de la programación de entrada/salida Plataformas de Tiempo Real: Dispositivos y Drivers Tema 2. Programación básica de E/S en Linux Aspectos básicos de la programación de E/S Arquitectura y programación de la E/S en el sistema operativo Módulos

Más detalles

Breve tutorial para escribir drivers en Linux

Breve tutorial para escribir drivers en Linux Breve tutorial para escribir drivers en Linux Xavier Calbet GULIC (Grupo de Usuarios de LInux de Canarias) xcalbet@yahoo.es Do you pine for the nice days of Minix-1.1, when men were men and wrote their

Más detalles

TEMA 2. GESTIÓN DE PROCESOS

TEMA 2. GESTIÓN DE PROCESOS TEMA 2. GESTIÓN DE PROCESOS 2.1. Estados y transiciones de un proceso. 2.1.1. Ciclo de vida de un proceso en UNIX. Conjunto de estados. 2.1.2. Control sobre algunas transiciones a nivel de usuario. 2.1.3.

Más detalles

PROYECTO SISTEMAS INFORMÁTICOS

PROYECTO SISTEMAS INFORMÁTICOS PROYECTO SISTEMAS INFORMÁTICOS CURSO 2011-2012 INTERFAZ DE USO DE CONTADORES HARDWARE MULTIPLATAFORMA GUILLERMO MARTÍNEZ FERNÁNDEZ SERGIO SÁNCHEZ GORDO SOFÍA DRONDA MERINO DIRIGIDO POR: PROF. CARLOS GARCÍA

Más detalles

Linux Devices DriversDesarrollo de un char device

Linux Devices DriversDesarrollo de un char device Linux Devices Drivers Desarrollo de un char device Noviembre 2010 Agenda Prerequisitos 1 Prerequisitos. 2. 3 Registro y funcionalidades. 4 5 6 Linux Headers Prerequisitos Que tenemos que instalar antes

Más detalles

TEMA 8. SISTEMAS OPERATIVOS PARA TIEMPO REAL.

TEMA 8. SISTEMAS OPERATIVOS PARA TIEMPO REAL. TEMA 8. SISTEMAS OPERATIVOS PARA TIEMPO REAL. 8.1. Introducción. 8.2. Problemas de los sistemas operativos convencionales. 8.3. Sistemas operativos para tiempo real 8.3.2. KU-Real-Time Linux (KURT). 8.3.3.

Más detalles

Airam Rodríguez Quintana

Airam Rodríguez Quintana Planificación de Procesos 2008 Kilian Perdomo Curbelo Kilian Perdomo Curbelo Airam Rodríguez Quintana 1 Introducción. Conceptos básicos Proceso y programa. En qué se diferencian? Estados de un proceso

Más detalles

Un modelo de memoria virtual compartida distribuida para Mapaná

Un modelo de memoria virtual compartida distribuida para Mapaná Un modelo de memoria virtual compartida distribuida para Mapaná Alba Eugenia Urrea Cardozo* Rafael Gómez** RESUMEN * M.Sc. - Profesora Escuela de Ingeniería de Sistemas y Computación - Facultad de Ingeniería

Más detalles

Interfaces y Manejadores de Dispositivos

Interfaces y Manejadores de Dispositivos Informática Electrónica Unidad 6 Interfaces y Manejadores de Dispositivos Modalidad y Materiales Dos clases expositivas a cargo del docente responsable (jlsimon@fceia.unr.edu.ar) Una práctica cargo de

Más detalles

Estructura del Sistema Operativo. Módulo 2. Estructuras de Sistemas Operativos

Estructura del Sistema Operativo. Módulo 2. Estructuras de Sistemas Operativos Estructura del Sistema Operativo Módulo 2 Estructuras de Sistemas Operativos Servicios de Sistemas operativos Interfaz de Usuario del Sistema Operativo Llamadas a Sistema Tipos de Llamadas a Sistema Programas

Más detalles

Trabajo práctico. Sistemas Operativos

Trabajo práctico. Sistemas Operativos Trabajo práctico Sistemas Operativos 1C/2010 1 Introducción 11 Objetivos Al terminar este trabajo Ud habrá aprendido a: 1 Instalar Linux sobre un sistema de virtualización 2 Utilizar los principales comandos

Más detalles

Administración Avanzada y Redes UNIX

Administración Avanzada y Redes UNIX TCP/IP en UNIX Facultad de Matemática, Astronomía y Física UNC, Córdoba (Argentina) http://www.cs.famaf.unc.edu.ar/ gabriel Escuela Complutense Latinoamericana 7 de Febrero de 2006 contenidos Arranque

Más detalles

Sistema Operativo Linux. Gilberto Díaz

Sistema Operativo Linux. Gilberto Díaz Sistema Operativo Linux Gilberto Díaz 27 de enero de 2014 Licencia de Uso Este material es resultado de la unión de varios manuales generados de la experiencia obtenida en la administración de los servicios

Más detalles

Introducción al kernel Linux

Introducción al kernel Linux Introducción al kernel Linux Matías Zabaljáuregui matiasz@info.unlp.edu.ar Repaso del modelo kernel / proceso Contextos de ejecución Kernels Unix y Linux Reentrancia y Sincronización Diferencias con el

Más detalles

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña Sistemas Operativos Pedro Cabalar Depto. de Computación Universidade da Coruña TEMA III. PROCESOS. P. Cabalar Sistemas( Operativos Depto. de Computación Universidade Tema da Coruña III. Procesos ) 1 /

Más detalles

Taller de Sistemas Operativos. Módulos del kernel

Taller de Sistemas Operativos. Módulos del kernel Taller de Sistemas Operativos Módulos del kernel Módulos El kernel de Linux es modular ya que permite la inserción y eliminación dinámica de código en el kernel en tiempo de ejecución. Las subrutinas asociadas,

Más detalles

Afinamiento del Sistema

Afinamiento del Sistema Afinamiento del Sistema /home/oscar/asignaturas/aso/presentacion1/aso.sxi Oscar Alejandro Ferrer Bernal Facultad de Informática Universidad de Las Palmas de Gran Canaria Parte 1 Ajuste del Sistema Areas

Más detalles

Taller de Tiempo Real para Control Robótico Mi Introducción A los Drivers

Taller de Tiempo Real para Control Robótico Mi Introducción A los Drivers Taller de Tiempo Real para Control Robótico Mi Introducción A los Drivers Dr. Nelson Acosta nacosta@exa.unicen.edu.ar INCA / INTIA-Facultad Ciencias Exactas-UNCPBA Tandil - Argentina (des)organización

Más detalles

Estructura del Sistema Operativo. Módulo 2. Estructuras de Sistemas Operativos

Estructura del Sistema Operativo. Módulo 2. Estructuras de Sistemas Operativos Estructura del Sistema Operativo Módulo 2 Estructuras de Sistemas Operativos Servicios de Sistemas operativos Interfaz de Usuario del Sistema Operativo Llamadas a Sistema Tipos de Llamadas a Sistema Programas

Más detalles

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos.

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos. Contenidos Sistemas operativos Tema 3: Estructura del sistema operativo Componentes típicos del SO Servicios del SO Llamadas al sistema Programas del sistema El núcleo o kernel Modelos de diseño del SO

Más detalles

Sistemas Operativos I

Sistemas Operativos I Sistemas Operativos I Parte 3 Arnoldo Díaz Ramírez adiaz@itmexicali.edu.mx Septiembre de 2007 Unidad 3 Planificación Planificación El planificador es un módulo del sistema operativo que asigna tiempo de

Más detalles

Linux Devices Drivers Guía para desarrollo de Device Drivers en Linux

Linux Devices Drivers Guía para desarrollo de Device Drivers en Linux Linux Devices Drivers Guía para desarrollo de Device Drivers en Linux 1 Introducción Conceptos básicos 2 We're back to the times when men where men and wrote their own device drivers... Device Drivers

Más detalles

2.- Estructuras de Sistemas Operativos

2.- Estructuras de Sistemas Operativos 2.- Estructuras de Sistemas Operativos Describir los servicios que el SO proporciona a los usuarios, procesos y otros sistemas Estudiar las maneras de estrcturar un SO Explicar como se instala un SO, como

Más detalles

Sistemas Operativos Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

Esta operación merecerá la pena ser efectuada en determinadas ocasiones, que podemos enumerar así:

Esta operación merecerá la pena ser efectuada en determinadas ocasiones, que podemos enumerar así: 10. Núcleo 10.1. Introducción La configuración del kernel es un proceso muy delicado y crítico que no se suele hacer muy a menudo y cuando se hace es con todas las precauciones y medidas de seguridad posibles,

Más detalles

Introducción. Sistemas Operativos. Pedro Chávez Lugo mailto:pchavezl74@gmail.com. 23 de marzo de 2010

Introducción. Sistemas Operativos. Pedro Chávez Lugo mailto:pchavezl74@gmail.com. 23 de marzo de 2010 mailto:pchavezl74@gmail.com 23 de marzo de 2010 1 Introducción Que es un Sistema Operativo? Un sistema operativo es un programa que tiene la finalidad de simplificar el manejo y la utilización de la computadora.

Más detalles

Administrador de File System FAT16 y FAT32

Administrador de File System FAT16 y FAT32 Administrador de File System FAT16 y FAT32 Julio Peralta, Lorena Ibaez, Mariano A. Carabajal, Matias D. Rotela, Patricia Gómez Dpto. de Ingeniería e Investigaciones Tecnológicas, Universidad Nacional de

Más detalles

Fundamentos de Sistemas Operativos

Fundamentos de Sistemas Operativos Fundamentos de Sistemas Operativos Sistemas Informáticos Fede Pérez Índice TEMA Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1

Más detalles

Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica

Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica A. Da Silva, V. Hernández y J.F. Martínez Departamento de Ingeniería y Arquitecturas Telemáticas.

Más detalles

Procesos. Lecturas recomendadas. Ejemplo: gcc. Modelo de procesamiento. Modelo de procesamiento. Jean Bacon Operating Systems (4)

Procesos. Lecturas recomendadas. Ejemplo: gcc. Modelo de procesamiento. Modelo de procesamiento. Jean Bacon Operating Systems (4) Índice Procesos Gustavo Romero 1 Definición 2 Control Arquitectura y Tecnología de Computadores 14 de febrero de 2014 3 Estado 4 IPC Gustavo Romero Procesos (1/50) Gustavo Romero Procesos (2/50) Lecturas

Más detalles

PRACTICA 1. ARRANQUE DE Linux y COMPILACIÓN DEL kernel.

PRACTICA 1. ARRANQUE DE Linux y COMPILACIÓN DEL kernel. PRACTICA 1. ARRANQUE DE Linux y COMPILACIÓN DEL kernel. 1.1. Introducción 1.2. Las órdenes en UNIX 1.3. Ayuda en línea: orden man 1.4. Manejo básico de directorios y archivos 1.5. Órdenes comunes de Linux

Más detalles

Conceptos Básicos de Software. Clase III

Conceptos Básicos de Software. Clase III Clase III Definición de Sistema Operativo El sistema operativo es el programa (o software) más importante de una computadora. Para que funcionen los otros programas, cada computadora de uso general debe

Más detalles

Modelo de procesamiento

Modelo de procesamiento Índice Lecturas recomendadas Procesos Gustavo Romero López Arquitectura y Tecnología de Computadores 15 de mayo de 2015 1 Definición 2 Control 3 Estado 4 IPC Jean Bacon Operating Systems (4) Abraham Silberschatz

Más detalles

Laboratorio #1 Jugando con el kernel de Minix

Laboratorio #1 Jugando con el kernel de Minix Universidad Tecnológica Centroamericana Ingeniería de Sistemas Sistemas Operativos I Prof.: Ing. Egdares Futch H. Introducción Laboratorio #1 Jugando con el kernel de Minix Con este laboratorio se pretende

Más detalles

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Procesos 1 / 31 Concepto de proceso Para entender el concepto de hebra, necesitamos compreender el concepto de proceso Un proceso es un programa en ejecución Una instancia de un programa corriendo en un

Más detalles

Utilización de J2ME sobre Linux en plataformas embebidas

Utilización de J2ME sobre Linux en plataformas embebidas Utilización de J2ME sobre Linux en plataformas embebidas Objetivos Instalación de la máquina virtual de Java ME para entornos embebidos Requisitos Modulo embebido con Linux. Notas Adicionales En el guión

Más detalles

El lenguaje de Programación C. Fernando J. Pereda

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

Más detalles

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos. Curso 2016 Procesos Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor

Más detalles

Analista Universitario en Sistemas. Sistemas Operativos. Instituto Politécnico Superior INTRODUCCIÓN

Analista Universitario en Sistemas. Sistemas Operativos. Instituto Politécnico Superior INTRODUCCIÓN 1 Qué es un sistema operativo? Es software que proporciona un acceso sencillo y seguro al hardware, ocultando detalles al usuario acerca de la implementación particular y creando la ilusión de existencia

Más detalles

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente: (3 ptos) Memoria Compartida y Semáforos R/W 1. Objetivo En esta práctica se pretende crear una librería que dé la funcionalidad de un semáforo para resolver problemas con múltiples lectores y escritores

Más detalles

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación 3.- Procesos Despacho (calendarización) de Procesos Operaciones en Procesos Procesos en cooperación Compunicación Interprocesos Communicación en sistemas Cliente-Servidor Sistema de Batch jobs Sistema

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos 2º Ingeniero de Telecomunicación (Sonido e Imagen) Departamento de Ingeniería Telemática Universidad Carlos III de Madrid 2 Qué vamos a ver hoy? Qué es un sistema

Más detalles

Taller de Sistemas Operativos Introducción

Taller de Sistemas Operativos Introducción Taller de Sistemas Operativos Introducción Escuela de Ingeniería Civil en Informática Universidad de Valparaíso, Chile http:// Conceptos generales 2 Proceso stdin Descriptor Flujo (FILE*) 0 stdout 1 Proceso

Más detalles

Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida

Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida Prueba de Laboratorio APELLIDOS: NOMBRE: GRUPO DE LABORATORIO: Indicaciones: No se permiten libros, apuntes ni teléfonos móviles. Cuando tenga una solución al ejercicio muéstrela al profesor (compilación

Más detalles

Directorio Descripción Archivos Descripción. Cargador del sistema Entorno relacionado con el kernel. boot

Directorio Descripción Archivos Descripción. Cargador del sistema Entorno relacionado con el kernel. boot 1 Resumen Minikernel Material complementario para la asignatura de Sistemas Operativos Preparado por Gabriel Astudillo Muñoz Escuela de Ingeniería Civil Informática Universidad de Valparaíso Este documento

Más detalles

Tema 6. Gestión avanzada de la E/S

Tema 6. Gestión avanzada de la E/S Departamento de Ingeniería y Tecnología de Computadores Universidad de Murcia Índice 1 Objetivos de diseño del software de E/S 2 3 Sistemas RAID Reubicación de bloques Objetivos de diseño del software

Más detalles

Sistemas Operativos I Manual de prácticas

Sistemas Operativos I Manual de prácticas Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...

Más detalles

Taller de sistemas operativos PLANIFICADOR

Taller de sistemas operativos PLANIFICADOR Taller de sistemas operativos PLANIFICADOR Agenda Introducción Clases de planificación Prioridades Timeslice Prioridad dinámica Estructuras del planificador Planificador en funcionamiento Nuevo planificador

Más detalles

Programación Concurrente

Programación Concurrente Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 3. Gestión de Threads Tema 4. Gestión del Tiempo Tema 5. Planificación

Más detalles

Desarrollo de un driver GNU/Linux para sistemas de adquisición de datos embebidos. GNU/Linux driver development for embedded data acquisition systems

Desarrollo de un driver GNU/Linux para sistemas de adquisición de datos embebidos. GNU/Linux driver development for embedded data acquisition systems Tipo de artículo: Artículo original Temática: Software libre Recibido: 14/03/2014 Aceptado: 9/04/14 Desarrollo de un driver GNU/Linux para sistemas de adquisición de datos embebidos GNU/Linux driver development

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN CICLO: 02/2015 GUÍA DE LABORATORIO #6 Nombre de la Practica: Instalación de FreeBSD para Server. Tiempo Estimado: 2 horas

Más detalles

Sistemas Operativos. Tema 1. Arquitectura Básica de los Computadores

Sistemas Operativos. Tema 1. Arquitectura Básica de los Computadores Sistemas Operativos. Tema 1 Arquitectura Básica de los Computadores http://www.ditec.um.es/so Departamento de Ingeniería y Tecnología de Computadores Universidad de Murcia Sistemas Operativos. Tema 1 Arquitectura

Más detalles

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Sistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 2 : entorno programación linux Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Programación

Más detalles

CURSO ADMINISTRACIÓN SISTEMAS LINUX

CURSO ADMINISTRACIÓN SISTEMAS LINUX CURSO ADMINISTRACIÓN SISTEMAS LINUX Objetivo General Al final del curso el participante estará en condiciones de realizar todas las labores de instalación, configuración y preparación para la Administración

Más detalles

Programación de Sistemas. Programación de Sistemas con Ansi C sobre UNIX. Gestión de errores. Gestión de errores. Ficheros regulares

Programación de Sistemas. Programación de Sistemas con Ansi C sobre UNIX. Gestión de errores. Gestión de errores. Ficheros regulares Programación de Sistemas con Ansi C sobre UNIX Pedro Merino Gómez Jesus Martínez Cruz Dpto. Lenguajes y Ciencias de la Computación Universidad de Málaga Programación de Sistemas Llamadas al sistema Gestión

Más detalles

LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS

LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS 26/05/2013 eduar14_cr@hotmail.com cilred_tlapa@hotmail.com LLAMADAS AL SISTEMA Las llamadas al sistema proporcionan la interfaz entre un proceso y el sistema operativo,

Más detalles

EKO-PARTY 2008. Inyección de codigo en máquinas virtuales. Por Nicolás A. Economou

EKO-PARTY 2008. Inyección de codigo en máquinas virtuales. Por Nicolás A. Economou EKO-PARTY 2008 Inyección de codigo en máquinas virtuales Por Nicolás A. Economou VM Algunos terminos Host: Maquina fisica que ejecuta a la maquina virtual. Guest: La maquina virtual. vmware-vmx.exe: Proceso

Más detalles

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009

Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009 Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009 1. [PROCESOS] a) Considerar el siguiente código: void main() { int j=10; pid_t pid; for (int i=0; i

Más detalles

LENGUAJE. Tema 1 - Introducción

LENGUAJE. Tema 1 - Introducción LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del

Más detalles

Linux Monitorización de rendimiento. Herramientas integradas en el sistema Herramientas Sysstat Monitorización de programas Monitor del sistema

Linux Monitorización de rendimiento. Herramientas integradas en el sistema Herramientas Sysstat Monitorización de programas Monitor del sistema Linux Monitorización de rendimiento Herramientas integradas en el Herramientas Sysstat Monitorización de programas Monitor del Monitorizar la carga del. uptime Presenta la hora del y el tiempo que lleva

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

Instalar y Configurar VirtualBox

Instalar y Configurar VirtualBox Instalar y Configurar VirtualBox Autor: Samuel Calleros Sánchez Sitio Web: TuxSoluciones.com.mx Copyright Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo

Más detalles

Módulo 2. Estructura del Sistema Operativo. Servicios del Sistema Operativo. Objectivos. Servicios del Sistema Operativo (Cont)

Módulo 2. Estructura del Sistema Operativo. Servicios del Sistema Operativo. Objectivos. Servicios del Sistema Operativo (Cont) Estructuras de Sistemas Operativos Estructura del Sistema Operativo Módulo 2 Servicios de Sistemas operativos Interfaz de Usuario del Sistema Operativo Llamadas a Sistema Tipos de Llamadas a Sistema Programas

Más detalles

Interfaz de Programación del Controlador MCA

Interfaz de Programación del Controlador MCA Interfaz de Programación del Controlador MCA Alan Cox alan@redhat.com David Weinehall Chris Beauregard Interfaz de Programación del Controlador MCA por Alan Cox, David Weinehall, y Chris Beauregard Copyright

Más detalles

Informática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza

Informática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Informática I Código 2547100 Semestre 2014-2 Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Programming tools Editor de texto (gedit, kate, vim, wordpad, etc):

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Linux Avanzado Tema 10: Almacenamiento Dinámico

Linux Avanzado Tema 10: Almacenamiento Dinámico Linux Avanzado Tema 10: Almacenamiento Dinámico Agregado de hardware nuevo Sobre el hardware Linux, en especial sus últimas versiones, cuenta con una capacidad increíblemente robusta y amplia para utilizar

Más detalles

Taxonomía de los sistemas operativos. Programación de Sistemas. Características en Win3.1 (1/3) Características en Win3.1 (3/3)

Taxonomía de los sistemas operativos. Programación de Sistemas. Características en Win3.1 (1/3) Características en Win3.1 (3/3) Programación de Sistemas Taxonomía de los sistemas operativos Mtro. en IA José Rafael Rojano Cáceres tareasrojano@gmail.com http://www.uv.mx/rrojano Referencia [Oney 96] Características en Win3.1 (1/3)

Más detalles

Integrated Drive Electronics. Jaisiel Santana Almeida Javier Hernández Trujillo

Integrated Drive Electronics. Jaisiel Santana Almeida Javier Hernández Trujillo Integrated Drive Electronics Jaisiel Santana Almeida Javier Hernández Trujillo IDE Qué es IDE? Breve historia sobre IDE/ATA Repaso a la arquitectura ATA Cómo ve el sistema los dispositivos IDE Estructuras

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

IVista: es la interfaz con la que el Presentador se comunica con la vista.

IVista: es la interfaz con la que el Presentador se comunica con la vista. Capítulo 3 MODELO DE DISEÑO 3.1 Arquitectura Modelo-Vista-Presentador La arquitectura Modelo-Vista-Presentador (MVP) [11] separa el modelo, la presentación y las acciones basadas en la interacción con

Más detalles

Si el fichero hashes existe, el script debe notificar el error y salir como corresponde. A continuación se muestra un ejemplo:

Si el fichero hashes existe, el script debe notificar el error y salir como corresponde. A continuación se muestra un ejemplo: Examen de Sistemas Operativos ITIS Fuenlabrada Junio 2009 Tiempo total: 3 horas. Problema: Llamadas al sistema (5 puntos) Escriba en C para Plan 9 un programa llamado catsha1 cuyo propósito es crear un

Más detalles

Examen de Fundamentos de sistemas distribuidos

Examen de Fundamentos de sistemas distribuidos Examen de Fundamentos de sistemas distribuidos Tiempo total: 2 horas Problema: Programa: Rendezvous con semáforos(5 puntos) Utilizando como único mecanismo de sincronización los semáforos descritos en

Más detalles

2. Sistema Operativo Windows

2. Sistema Operativo Windows 2. Sistema Operativo Windows 2.1 Introducción al S.O. Windows NT y Windows 2000 2.2 Subsistema de Archivos 2.3 Subsistema de Procesos 2.4 Gestión de Memoria Dpto. Lenguajes Tema y 2: Sistemas 2. Sistema

Más detalles

Tema 2: Implementación del núcleo de un Sistema Operativo

Tema 2: Implementación del núcleo de un Sistema Operativo Tema 2: Implementación del núcleo de un Sistema Operativo 1. Sistema Operativo Unix 2. Sistema Operativo Windows (a partir de NT) Dpto. Lenguajes y Sistemas Informáticos. Universidad de Granada 1 1. Sistema

Más detalles

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 208006 Sistemas Embebidos Act 11: Reconocimiento Unidad 3 LECTURA 1

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 208006 Sistemas Embebidos Act 11: Reconocimiento Unidad 3 LECTURA 1 LECTURA 1 Qué diferencias hay entre aplicaciones para PC convencional o para sistemas embebidos? No es lo mismo desarrollar aplicaciones para un PC convencional que para un sistema embebido. El desarrollo

Más detalles

TEMA 1. VISIÓN GENERAL E INTRODUCCIÓN AL KERNEL

TEMA 1. VISIÓN GENERAL E INTRODUCCIÓN AL KERNEL TEMA 1. VISIÓN GENERAL E INTRODUCCIÓN AL KERNEL 1.1. Introducción histórica a UNIX y Linux. 1.2. Visión general de UNIX. 1.2.1. Estructura del sistema. 1.2.2. Perspectiva del usuario. 1.2.2.1. El sistema

Más detalles

TECNOLÓGICO DE ESTUDIOS SUPERIORES DE IXTAPALUCA. Unidad 1.

TECNOLÓGICO DE ESTUDIOS SUPERIORES DE IXTAPALUCA. Unidad 1. TECNOLÓGICO DE ESTUDIOS SUPERIORES DE IXTAPALUCA Unidad 1. ALUMNOS: JUAN FRANCISCO CEDILLO ORTIZ RODRIGUEZ TAPIA YANET HINOJOSA GONZÁLEZ MARIA ERIKA MECALCO GUERRERO GUSTAVO RODRIGUEZ ALCALA NIDYA DEL

Más detalles

; hcomment.rc HTTP://AA.ES/INFO.HTML http://www.bb.com http://www.cc.org/a.html aa.es www.bb.com www.cc.org ;

; hcomment.rc HTTP://AA.ES/INFO.HTML http://www.bb.com http://www.cc.org/a.html aa.es www.bb.com www.cc.org ; Examen de Sistemas Operativos ITIS Fuenlabrada Mayo 2011 Problema: Llamadas al sistema (3 puntos) Implemente en C para Plan 9 un programa hlines que a partir de una URL que se le pasa como argumento, escriba

Más detalles

Version 5.0 01/05/2015. Manual del usuario. Adaptador USB 2.0 a Fast Ethernet 10/100 DUB-E100

Version 5.0 01/05/2015. Manual del usuario. Adaptador USB 2.0 a Fast Ethernet 10/100 DUB-E100 Version 5.0 01/05/2015 Manual del usuario Adaptador USB 2.0 a Fast Ethernet 10/100 DUB-E100 Índice Descripción general del manual D-Link se reserva el derecho a revisar esta publicación y a realizar los

Más detalles

GNU/Linux: Programación de Sistemas. Pablo Garaizar Sagarminaga

GNU/Linux: Programación de Sistemas. Pablo Garaizar Sagarminaga GNU/Linux: Programación de Sistemas Pablo Garaizar Sagarminaga GNU/Linux: Programación de Sistemas Pablo Garaizar Sagarminaga Facultad de Ingeniería Universidad de Deusto Bilbao, octubre de 2002 Tabla

Más detalles

Control Digital en PC con MS-DOS

Control Digital en PC con MS-DOS Control Digital en PC con MS-DOS Abel Alberto Cuadrado Vega 19 de abril de 2006 1. Introducción Un PC puede ser utilizado para realizar un sistema de control digital. Para ello necesita lo siguiente: tarjeta

Más detalles

Administración de Redes

Administración de Redes Administración de Redes PROCESOS EN LINUX Profesor Carlos Figueira Departamento de Computación y T. I. USB Grandes objetivos de un Sistema de Operación (SO) Intercalar ejecución de varios procesos para

Más detalles

Procesos y Threads en Windows (Xp y Server 2003)

Procesos y Threads en Windows (Xp y Server 2003) Lic. Ing. Osvaldo Clúa 2008 Facultad de Ingeniería Universidad de Buenos Aires Procesos y Threads en Windows (Xp y Server 2003) EPROCESS Executive Process (bloque de control) Es la representación de un

Más detalles

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador. PRACTICA #1 Aprender a programar una interrupción software empleando C y/o Ensamblador. Aprender a manipular dispositivos externos (8253, 8255) desde C y/o ensamblador. PROCEDIMIENTO: Vamos a programar

Más detalles

Software Libre / Código Abierto Programa de contenidos

Software Libre / Código Abierto Programa de contenidos Software Libre / Código Abierto Programa de contenidos Resumen Se presenta a continuación la organización de un curso de cincuenta horas cuyo fin es dar a conocer la base ideológica que sostiene a los

Más detalles

ADT GStreamer API Manipulación de dispositivos de captura de vídeo mediante GStreamer en C++

ADT GStreamer API Manipulación de dispositivos de captura de vídeo mediante GStreamer en C++ ADT GStreamer API Manipulación de dispositivos de captura de vídeo mediante GStreamer en C++ Mario Chririnos Colunga Áurea - Desarrollo Tecnológico 30 de noviembre de 2010 Índice 1. Introducción 1 2. ADT

Más detalles

La Jerarquía de Sistema de Archivos Estándar en GNU/Linux (FHS)

La Jerarquía de Sistema de Archivos Estándar en GNU/Linux (FHS) La Jerarquía de Sistema de Archivos Estándar en GNU/Linux (FHS) [ admin basico gnu ] Marcelo López Minnucci 17 de octubre de 2015 Objetivo del tutorial Conocer la ubicación estándar

Más detalles

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux Sistemas operativos: una visión aplicada Capítulo 11 Estudio de casos: Linux Contenido Historia de Linux Características y estructura de Linux Gestión de procesos Gestión de memoria Entrada/salida Sistema

Más detalles

Trabajo Práctico 1 Sistema de archivos FAT16 en lenguaje ensamblador

Trabajo Práctico 1 Sistema de archivos FAT16 en lenguaje ensamblador Trabajo Práctico 1 Sistema de archivos FAT16 en lenguaje ensamblador Organización del Computador 2 1er. Cuatrimestre 2010 Versión 3 1. Introducción teórica En las viejas epocas de Windows 95, aparecieron

Más detalles

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso 2014-2015. Notas. Ejemplo. La herramienta make. 1 Diseño modular.

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso 2014-2015. Notas. Ejemplo. La herramienta make. 1 Diseño modular. : Programación 2 Curso 2014-2015 Índice 1 2 3 (1/2) Cuando el programa crece es necesario dividirlo en módulos Cada módulo agrupa una serie de funciones con algo en común El módulo puede reutilizarse en

Más detalles

Diseño de una aplicación basada en objetos de tiempo real

Diseño de una aplicación basada en objetos de tiempo real Metodologías, procesos y entornos para sistemas de tiempo real Master de Computación Diseño de una aplicación basada en objetos de tiempo real José M. Drake Computadores y Tiempo Real Santander, 2010 1

Más detalles

JAVA NATIVE INTERFACE (JNI) INVOCANDO C/C++ DESDE JAVA

JAVA NATIVE INTERFACE (JNI) INVOCANDO C/C++ DESDE JAVA JAVA NATIVE INTERFACE (JNI) INVOCANDO C/C++ DESDE JAVA Java proporciona un marco denominado Java Native Interface (JNI), con la que es posible escribir métodos nativos. Un método nativo es un método que

Más detalles

Primera clase Introducción a los Sistemas Operativos. Aproximación a la definición de sistemas operativos

Primera clase Introducción a los Sistemas Operativos. Aproximación a la definición de sistemas operativos Primera clase Introducción a los Sistemas Operativos Objetivo conceptual: que el alumno aprenda conceptos fundamentales involucrados en el estudio de los sistemas operativos. Objetivo procedimental: que

Más detalles