LABORATORIO DE SISTEMAS ELECTRÓNICOS. Controladores para GNU/Linux

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

Download "LABORATORIO DE SISTEMAS ELECTRÓNICOS. Controladores para GNU/Linux"

Transcripción

1 DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA LABORATORIO DE SISTEMAS ELECTRÓNICOS Controladores para GNU/Linux Alvaro Araujo Marzo 06 OBJETIVOS CONCEPTO DE CONTROLADOR CONTROLADORES EN GNU/LINUX EJEMPLO DE CONTROLADOR DESMITIFICAR LOS CONTROLADORES 1

2 DEFINICIÓN ARQUITECTURA Módulo software que permite a otros módulos interactuar con los diferentes dispositivos hardware ESPACIO DE USUARIO Y KERNEL Espacio de usuario (aplicaciones) Funciones de intercambio entre el espacio de usuario y el espacio del kernel (Ficheros) Espacio de kernel (módulos o controladores) Hardware Funciones de intercambio entre el espacio del kernel y el dispositivo hardware 2

3 FUNCIONES USUARIO-KERNEL Eventos Carga de módulo Abrir dispositivo Leer dispositivo Escribir dispositivo Cerrar dispositivo Quitar módulo Funciones de usuarios Funciones de kernel FUNCIONES KERNEL-HARDWARE Eventos Leer datos Funciones del kernel Escribir datos 3

4 MI PRIMER CONTROLADOR nada.c KERNEL #define MODULE #include <linux/module.h> $ gcc c nada.c $ insmod nada.o $ lsmod $ rmmod nada FUNCIONES USUARIO-KERNEL Eventos Carga de módulo Abrir dispositivo Leer dispositivo Escribir dispositivo Cerrar dispositivo Quitar módulo Funciones de usuarios insmod rmmod Funciones de kernel 4

5 MI PRIMER CONTROLADOR algo.c KERNEL #define MODULE #include <linux/module.h> int init_module(void){ printk( <1>Hola mundo\n ); return 0; void cleanup_module(void) { printk( <1>Adios amigos\n ); MI PRIMER CONTROLADOR algo.c KERNEL #define MODULE #include <linux/module.h> int init_module(void){ printk( <1>Hola mundo\n ); return 0; void cleanup_module(void) { printk( <1>Adios amigos\n ); 5

6 MI PRIMER CONTROLADOR algo.c KERNEL #define MODULE #include <linux/module.h> #include <linux/init.h> module_init(mi_inicio); module_exit(mi_final); MI PRIMER CONTROLADOR algo.c KERNEL #define MODULE #include <linux/module.h> int init_module(void){ printk( <1>Hola mundo\n ); return 0; void cleanup_module(void) { printk( <1>Adios amigos\n ); 6

7 FUNCIONES USUARIO-KERNEL Eventos Carga de módulo Abrir dispositivo Leer dispositivo Escribir dispositivo Cerrar dispositivo Quitar módulo Funciones de usuarios insmod rmmod Funciones de kernel init_module cleanup_module CONTROLADOR PUERTO PARALELO OCUPA TRES BYTES DE MEMORIA DIRECCIÓN PRIMER BYTE 0x378 ÚNICAMENTE PRIMER BYTE: SALIDAS 7

8 CONTROLADOR PUERTO PARALELO KERNEL #define MODULE #include <linux/module.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/types.h> #include <asm/io.h> CONTROLADOR PUERTO PARALELO /*Declaración de funciones*/ int paralelo_open(struct inode *inode, struct file *filp); int paralelo_release(struct inode *inode, struct file *filep); ssize_t paralelo_read(struct file *filep, char *buf, size_t count, loof_t *f_pos); ssize_t paralelo_write(struct file *filep, const char *buf, size_t count, loof_t *f_pos); void cleanup_module(void); 8

9 CONTROLADOR PUERTO PARALELO /*Funciones de acceso a fichero*/ Struct file_operations paralelo_fops = { read: paralelo_read, write: paralelo_write, open: paralelo_open, release: paralelo_release ; /*Variables globales*/ Int paralelo_major =60; CONTROLADOR PUERTO PARALELO DISPOSITIVOS == FICHEROS /dev $ mknod /dev/paralelo c

10 CONTROLADOR PUERTO PARALELO /*Inicio de módulo*/ Int init_module(void){ int result; //Registrando dispositivo result = register_chrdev(paralelo_major, paralelo, &paralelo_fops); if (result < 0){ printk( <1>Fallo número mayor\n ); return result; CONTROLADOR PUERTO PARALELO /* Disponibilidad de la región de memoria*/ port = check_region(0x378,1); if (port){ printk( <1>Fallo ); result = port; goto fallo; printk( <1>Insertando módulo ); return 0; fallo: cleanup_module(); 10

11 CONTROLADOR PUERTO PARALELO /* Disponibilidad de la región de memoria*/ port = check_region(0x378,1); if (port){ printk( <1>Fallo ); result = port; goto fallo; printk( <1>Insertando módulo ); return 0; fallo: cleanup_module(); CONTROLADOR PUERTO PARALELO /* Disponibilidad de la región de memoria*/ port = check_region(0x378,1); if (port){ printk( <1>Fallo ); result = port; goto fallo; printk( <1>Insertando módulo ); return 0; fallo: cleanup_module(); 11

12 CONTROLADOR PUERTO PARALELO /* Liberando el módulo*/ Void cleanup_module(void) { //Liberamos el número mayor unregister_chrdev(paralelo_major, paralelo ); //Liberamos el puerto if (!port) release_region(0x378,1); printk( <1>Quitando módulo ); CONTROLADOR PUERTO PARALELO /* Abriendo el dispositivo como fichero*/ int paralelo_open( ) { MOD_INC_USE_COUNT; printk( <1>Abriendo ); return 1; /* Abriendo el dispositivo como fichero*/ int paralelo_close( ) { MOD_DEC_USE_COUNT; printk( <1>Cerrando ); return 0; 12

13 CONTROLADOR PUERTO PARALELO /* Leyendo del dispositivo*/ int paralelo_read( ) { char par_buffer; par_buffer = inb(0x378); return 1; /* Escribiendo en el dispositivo*/ int paralelo_write( ) { char par_buffer; outb(par_buffer,0x378); return 1; FUNCIONES USUARIO-KERNEL Eventos Carga de módulo Abrir dispositivo Leer dispositivo Escribir dispositivo Cerrar dispositivo Quitar módulo Funciones de usuarios insmod fopen fread fwrite fclose Rmmod Funciones de kernel init_module File op: open File op: read File op: write File op: release cleanup_module 13

14 FUNCIONES KERNEL-HARDWARE Eventos Leer datos Escribir datos Funciones del kernel inb outb APLICACIÓN FINAL int main(void){ unsigned char byte; FILE * puertopar; puertopar = fopen( /dev/puertopar, w ); byte = 1; while(1){ fwrite(&byte,1,1,puertopar); sleep(1); byte <<=1; if (byte == 0) byte = 1; fclose(puertopar); 14

15 APLICACIÓN FINAL CONSIDERACIONES ANTARES KERNEL #define MODULE #include <linux/module.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/types.h> #include <asm/io.h> #include <asm/mcfsim.h> /* Registros internos del MCF5272 */ #define MCF_BAR 0x

16 REFERENCIA OBLIGADA LINUX DEVICE DRIVER A.Rubini Ed.O Reilly PREGUNTAS 16

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

Taller de Tiempo Real para Control Robótico Ejemplos & Funciones

Taller de Tiempo Real para Control Robótico Ejemplos & Funciones Taller de Tiempo Real para Control Robótico Ejemplos & Funciones Dr. Nelson Acosta nacosta@exa.unicen.edu.ar INCA / INTIA-Fac. Cs. Exactas - UNCPBA Tandil - Argentina Driver: módulos cargables (1) El núcleo

Más detalles

Laboratorio: Construyendo un Driver para Linux 2.6

Laboratorio: Construyendo un Driver para Linux 2.6 Escucho y olvido, veo y recuerdo, hago y entiendo. * Lic. Ing. Osvaldo Clúa 2009 Facultad de Ingeniería Universidad de Buenos Aires Laboratorio: Construyendo un Driver para Linux 2.6 FIUBA 2009 1 Lectura

Más detalles

Mecanismos de extensión del núcleo

Mecanismos de extensión del núcleo Mecanismos de extensión del núcleo Yolanda Becerra Fontal Juan José Costa Prats Facultat d'informàtica de Barcelona Universitat Politècnica de Catalunya BarcelonaTech 2014-2015QT Índice Concepto Mecanismos

Más detalles

Periféricos Avanzados. Depto. Arquitectura de Computadores y Electronica. Universidad de Almeria

Periféricos Avanzados. Depto. Arquitectura de Computadores y Electronica. Universidad de Almeria Programación del teclado bajo linux. 1.- Acceso básico a puertos desde linux. 2.- Programación de módulos en el kernel. Básico. 3.- Avanzado. Codigo de tratamiento de interrupciones. Hacer funcionar. basado

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

Taller de drivers. Sistemas Operativos. Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires

Taller de drivers. Sistemas Operativos. Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Taller de drivers Sistemas Operativos Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 12 de Abril de 2016 Agenda para hoy Vamos a hacer un driver! 2 / 26

Más detalles

Momento! Taller de drivers. La estructura de Linux (1) Hoy veremos: Sistemas Operativos. Alejandro Deymonnaz de Mayo de 2011

Momento! Taller de drivers. La estructura de Linux (1) Hoy veremos: Sistemas Operativos. Alejandro Deymonnaz de Mayo de 2011 Menú del día Taller de drivers Sistemas Operativos Alejandro Deymonnaz 1 1 Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 24 de Mayo de 2011 Hoy veremos:

Más detalles

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

Entrada/Salida. Alexis Tcach. Sistemas Operativos, 1c DC - FCEyN - UBA

Entrada/Salida. Alexis Tcach. Sistemas Operativos, 1c DC - FCEyN - UBA DC - FCEyN - UBA Sistemas Operativos, 1c-2016 Menú del día Menú del día Recordar que es un device driver Recordar tipos de device drivers Programación básica (pseudocódigo). Más real en el taller Recordando

Más detalles

Taller de drivers. Sistemas Operativos. Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires

Taller de drivers. Sistemas Operativos. Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Taller de drivers Sistemas Operativos Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 06 de Octubre de 2015 Agenda para hoy Hoy nos vamos a concentrar en

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

Entrada/Salida RAMDISK

Entrada/Salida RAMDISK Entrada/Salida RAMDISK Oscar Alejandro Ferrer Bernal Facultad de Informática Universidad de Las Palmas de Gran Canaria Ficheros de dispositivos El acceso a dispositivos se realiza mediante ficheros especiales

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 Franco M. Luque 2013-09-09 1. Introducción Linux es un clon del sistema operativo Unix, escrito desde cero por Linus Torvalds con

Más detalles

Taller de Tiempo Real para Control Robótico +Ejem... Plos

Taller de Tiempo Real para Control Robótico +Ejem... Plos Taller de Tiempo Real para Control Robótico +Ejem... Plos Nelson Acosta nacosta@exa.unicen.edu.ar INCA / INTIA-Fac. Cs. Exactas - UNCPBA Tandil - Argentina Tabla de Contenido Makefile...................................

Más detalles

Tema 13: Manejo de archivos en lenguaje C

Tema 13: Manejo de archivos en lenguaje C Tema 13: Manejo de archivos en lenguaje C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco)

Más detalles

Instituto Técnico Jesús Obrero 4to año Programación Profesor: Luis Vallenilla

Instituto Técnico Jesús Obrero 4to año Programación Profesor: Luis Vallenilla Instituto Técnico Jesús Obrero 4to año Programación Profesor: Luis Vallenilla Definición Archivos en Lenguaje C Estructura de datos dinámica y homogénea, compuesta por una colección de registros del mismo

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

Mecanismos de extensión del núcleo

Mecanismos de extensión del núcleo Mecanismos de extensión del núcleo Yolanda Becerra Fontal Juan José Costa Prats Facultat d'informàtica de Barcelona Universitat Politècnica de Catalunya BarcelonaTech 2013-2014QT Índice Concepto Mecanismos

Más detalles

Linux. Kernel Linux Modulos y procfs

Linux. Kernel Linux Modulos y procfs Linux Kernel Linux Modulos y procfs 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

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

ENTRADA/SALIDA. Relación Programa - Sistema Operativo - Hardware

ENTRADA/SALIDA. Relación Programa - Sistema Operativo - Hardware ENTRADA/SALIDA UPCO ICAI Departamento de Electrónica y Automática 1 Relación Programa - Sistema Operativo - Hardware Mi programa no maneja directamente el hardware El sistema operativo es el que maneja

Más detalles

Tema 3: Entrada/Salida de Ficheros

Tema 3: Entrada/Salida de Ficheros Tema 3: Objetivo: Almacenar datos en un dispositivo de almacenamiento secundario (p.e. disco duro). Pasos a seguir: 1 Abrir fichero 2 Escribir/leer del fichero 3 Cerrar fichero 1 Tema 3: Abrir el fichero:

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

Periféricos Interfaces y Buses

Periféricos Interfaces y Buses Periféricos Interfaces y Buses I. Arquitectura de E/S II. Programación de E/S Aspectos básicos de la programación de E/S. Arquitectura y programación de la E/S en el sistema operativo. Manejadores de dispositivos

Más detalles

El bus PCI (Peripheral Component Interconnect) es uno de los más habituales en las arquitecturas PC, así como en Alpha, PowerPC, SPARC64 e IA-64

El bus PCI (Peripheral Component Interconnect) es uno de los más habituales en las arquitecturas PC, así como en Alpha, PowerPC, SPARC64 e IA-64 Plataformas de Tiempo Real: Dispositivos y Drivers Tema 6. Buses El bus PCI Programación del bus PCI Programación de la tarjeta PCI-9111DG GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael

Más detalles

Fundamentos de Informática

Fundamentos de Informática Tema 5: 5: Funciones de de Lectura/Escritura Fundamentos de Informática 1º Ingeniería Industrial Escuela Superior de Ingenieros Universidad de Sevilla Ismael Alcalá Torrego José Ángel Acosta Rodríguez

Más detalles

Plataformas de Tiempo Real

Plataformas de Tiempo Real Master en Computación Plataformas de Tiempo Real Bloque II: Manejadores de dispositivos y drivers Tema 1. Arquitectura de E/S Tema 2. Programación básica de E/S en Linux Tema 3. Programación avanzada de

Más detalles

Guía de Programación de Módulos del Núcleo Linux

Guía de Programación de Módulos del Núcleo Linux Guía de Programación de Módulos del Núcleo Linux 1999 Ori Pomerantz Versión 1.1.0, 26 Abril 1999. Este libro trata sobre cómo escribir Módulos del Núcleo Linux. Es útil, eso espero, para programadores

Más detalles

Boletín 3- Archivos. Departamento de Lenguajes y Sistemas Informáticos

Boletín 3- Archivos. Departamento de Lenguajes y Sistemas Informáticos Boletín 3- Archivos Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción al acceso a Archivos 1. Acceso a archivos en alto nivel 2. Acceso a archivos en bajo nivel 2. El acceso a los

Más detalles

Introducción a Sistemas Operativos: Ficheros

Introducción a Sistemas Operativos: Ficheros Introducción a Sistemas Operativos: Ficheros Clips xxx Fr ancisco J Ballesteros 1. Entrada/salida y buffering El interfaz proporcionado por open, close, read, write, etc. es suficiente la mayoría de las

Más detalles

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

Informática Electrónica Manejadores de Dispositivos (Device Drivers) Informática Electrónica Manejadores de Dispositivos (Device Drivers) DSI-EIE-FCEIA 2015 Que es un DD? Es una pieza de software que interactúa con (entre) el sistema operativo y con uno o mas dispositivos

Más detalles

06 Introducción al procesamiento de imágenes BMP con ANSI C

06 Introducción al procesamiento de imágenes BMP con ANSI C 06 Introducción al procesamiento de imágenes BMP con ANSI C Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo

Más detalles

Apellidos: Nombre: Matrícula: Examen Programación para Sistemas Grado en Ingeniería Informática (2009)

Apellidos: Nombre: Matrícula: Examen Programación para Sistemas Grado en Ingeniería Informática (2009) Examen 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad Politécnica de Madrid

Más detalles

Sistema de Ficheros SOA

Sistema de Ficheros SOA Sistema de Ficheros Indice Introducción Descripción básica del hardware Visión estática Organización del espacio de disco Gestión del espacio de disco Gestión del espacio de nombres Ejemplo: Linux Ext2

Más detalles

Manipulación de archivos estructurados

Manipulación de archivos estructurados Capítulo 1 Manipulación de archivos estructurados 1.1. Introducción Definición Un archivo es un medio de almacenamiento no volátil, es decir permanece luego de terminar la aplicación que la utiliza o luego

Más detalles

Bloque I: Principios de sistemas operativos

Bloque I: Principios de sistemas operativos Bloque I: Principios de sistemas operativos Tema 1. Principios básicos de los sistemas operativos Tema 2. Concurrencia Tema 3. Ficheros Tema 4. Sincronización y programación dirigida por eventos Tema 5.

Más detalles

Archivos. Programación en C 1

Archivos. Programación en C 1 Archivos Programación en C 1 Índice Tipos de archivos. Apertura de archivos. Cierre de archivos. Lectura de archivos. Escritura de archivos. Acceso directo en archivos binarios. Programación en C 2 Introducció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

Archivos de números. Tema 10c. Archivos de números. Archivos de números. Archivos mixtos. Archivos mixtos. Manejo de archivos de datos en C

Archivos de números. Tema 10c. Archivos de números. Archivos de números. Archivos mixtos. Archivos mixtos. Manejo de archivos de datos en C Archivos de números Tema 10c Manejo de archivos de datos en C Para leer datos desde un archivo de texto como enteros (o números en general) se puede utilizar fscanf. Para escribir datos numéricos en archivos

Más detalles

Utilización De Una Función Del Sistema Operativo Por Un Usuario

Utilización De Una Función Del Sistema Operativo Por Un Usuario Utilización De Una Función Del Sistema Operativo Por Un Usuario s. candela Universidad de Las Palmas de Llamada al sistema: open Los usuarios utilizan las funciones del sistema operativo mediante las llamadas

Más detalles

Sistemas Operativos Control 2

Sistemas Operativos Control 2 Sistemas Operativos Control 2 2 horas Mayo de 2009 Pregunta 1 (memoria: conceptos) Parte I Un ingeniero opina que hoy en día, con tanta memoria disponible, ya no es buena idea paginar la memoria. Mejor

Más detalles

Apartado TGR Puntuación. No Presentado. EXAMEN DE SISTEMAS OPERATIVOS (Grado en Ing. Informática) 20/1/2014.

Apartado TGR Puntuación. No Presentado. EXAMEN DE SISTEMAS OPERATIVOS (Grado en Ing. Informática) 20/1/2014. Apartado 1 2 3 4 5 6 7 TGR Puntuación No Presentado EXAMEN DE SISTEMAS OPERATIVOS (Grado en Ing. Informática) 20/1/2014. APELLIDOS Y NOMBRE:....................................................... Justificar

Más detalles

Plataformas de Tiempo Real

Plataformas de Tiempo Real Master en Computación Plataformas de Tiempo Real POSIX Avanzado y Extensiones Tema 1. Ficheros y entrada/salida Tema 3. Monitorización y control del tiempo de ejecución Tema 4. Planificación EDF Tema 5.

Más detalles

Caracter a caracter los datos pueden ser escritos o leidos carácter a carácter, con las funciones fputc() y fgetc().

Caracter a caracter los datos pueden ser escritos o leidos carácter a carácter, con las funciones fputc() y fgetc(). Notas auxiliares sobre manejo de archivos Las funciones de entrada salida (E/S) de las librerías estandar de C, permiten leer y escribir datos a, y desde, archivos y dispositivos. La caracteristica fundamental

Más detalles

Área de Arquitectura y Tecnología de Computadores. Universidad Carlos III de Madrid SISTEMAS OPERATIVOS. Ejercicio. Programación en bash

Área de Arquitectura y Tecnología de Computadores. Universidad Carlos III de Madrid SISTEMAS OPERATIVOS. Ejercicio. Programación en bash Área de Arquitectura y Tecnología de Computares Universidad Carlos III de Madrid SISTEMAS OPERATIVOS Ejercicio. Programación en bash Gra de Ingeniería en Informática Curso 2016/2017 AUTORES (Nombre, Apellis,

Más detalles

Periféricos Interfaces y Buses

Periféricos Interfaces y Buses Periféricos Interfaces y Buses I. Arquitectura de E/S II. Programación de E/S III. Interfaces de E/S de datos IV. Dispositivos de E/S de datos V. Buses Buses de E/S (PCI, PC104, AGP). Sistemas de interconexión

Más detalles

Capítulo 9. Lectura y escritura de ficheros

Capítulo 9. Lectura y escritura de ficheros Capítulo 9. Universidad del País Vasco / Euskal Herriko Unibertsitatea 235 Índice del capítulo 1. Introdución......................................... 237 2. Objetivos...........................................

Más detalles

Plataformas de Tiempo Real

Plataformas de Tiempo Real Master en Computación Plataformas de Tiempo Real POSIX Avanzado y Extensiones Tema 2. Gestión de Interrupciones en MaRTE OS Tema 3. Monitorización y control del tiempo de ejecución Tema 4. Planificación

Más detalles

Tema 5 Archivos o Ficheros

Tema 5 Archivos o Ficheros Tema 5 Archivos o Ficheros Informática Grado en Física Universitat de València Ariadna.Fuertes@uv.es Francisco.Grimaldo@uv.es 1 Introducción: Concepto de Fichero Tipos de acceso a ficheros Tipos de ficheros:

Más detalles

Bloque 9. Ficheros de texto

Bloque 9. Ficheros de texto Bloque 9 Ficheros de texto Ficheros Necesitamos un tipo de datos que nos permita guardar datos de forma permanente en el disco: ficheros El SO se encarga de gestionar físicamente el fichero A nosotros

Más detalles

Tema 5 Archivos o Ficheros

Tema 5 Archivos o Ficheros Francisco Grimaldo Moreno Ariadna Fuertes Seder Tema 5 Archivos o Ficheros Informática Grado en Física Universitat de València Ariadna.Fuertes@uv.es Francisco.Grimaldo@uv.es 1 Introducción: Concepto de

Más detalles

Tema 6. Gestión de ficheros en C. Programación en Lenguajes Estructurados

Tema 6. Gestión de ficheros en C. Programación en Lenguajes Estructurados Tema 6. Gestión de ficheros en C Programación en Lenguajes Estructurados Tema 6. Gestión de ficheros en C 6.1. Introducción a los ficheros En la mayor parte de los programas se quiere almacenar información

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

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior ARCHIVOS. (File Management)

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior ARCHIVOS. (File Management) ARCHIVOS (File Management) 1 Archivos Un archivo es una colección de bytes almacenados en un dispositivo. Un archivo contiene datos, el sistema que lo alberga contiene metadatos del mismo En un programa

Más detalles

Entrada/Salida. Entrada/Salida. Flujos de texto. Flujos de datos. Flujos binarios. Flujos estándares ANSI

Entrada/Salida. Entrada/Salida. Flujos de texto. Flujos de datos. Flujos binarios. Flujos estándares ANSI Entrada/Salida Entrada/Salida Mario Medina C. mariomedina@udec.cl Funciones de entrada/salida no son parte del lenguaje propiamente tal Bibliotecas son parte del estándar ANSI C Biblioteca estándar:

Más detalles

Fundamentos de Informática 7. Introducción al manejo de archivos

Fundamentos de Informática 7. Introducción al manejo de archivos Fundamentos de Informática 7. Introducción al manejo de archivos Fundamentos de Informática Grado en Ingeniería Química 2 Contenidos Introducción Apertura y cierre de archivos Lectura/escritura de datos

Más detalles

12.Arrays dinámicos. Ejemplo en C #include <stdio.h> #include <malloc.h> #include <string.h>

12.Arrays dinámicos. Ejemplo en C #include <stdio.h> #include <malloc.h> #include <string.h> 12.Arrays dinámicos. #include #include typedef struct char Nombre[80]; int Edad; Persona; typedef struct Persona* Gente; int NumPersonas; Personas; void IniPersonas (Personas* X)

Más detalles

Los file pointers y los file descriptors 20-agosto-2003

Los file pointers y los file descriptors 20-agosto-2003 Los file pointers y los file descriptors 20-agosto-2003 Nota: Las siguientes notas son una traducción de una parte del Apéndice B (Low-Level I/O), del libro Advanced Linux Programming de M. Mitchell, J,

Más detalles

LENGUAJE. Tema 8 Ficheros

LENGUAJE. Tema 8 Ficheros LENGUAJE Tema 8 Ficheros FICHEROS EN C Los ficheros, en contraposición con las estructuras de datos vistas hasta ahora (variables simples, vectores, registros, etc.), son estructuras de datos almacenadas

Más detalles

Por ejemplo, para declarar un arreglo de enteros llamado a con diez elementos se hace de la siguiente forma:

Por ejemplo, para declarar un arreglo de enteros llamado a con diez elementos se hace de la siguiente forma: Arreglos unidimensionales y multidimensionales Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua.

Más detalles

Programación 1 Tema 13. Entrada y salida de datos

Programación 1 Tema 13. Entrada y salida de datos Programación 1 Tema 13 Entrada y salida de datos Objetivos Interacción de un programa con su entorno (consola, sistema de ficheros) leyendo o escribiendo datos Fichero como secuencia persistente de datos

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida por ficheros en Entrada y salida por ficheros ficheros y secuencias en Apertura y cierre de un fichero Fin de fichero Entrada

Más detalles

Ingeniería Energética E-ISSN: Instituto Superior Politécnico José Antonio Echeverría. Cuba

Ingeniería Energética E-ISSN: Instituto Superior Politécnico José Antonio Echeverría. Cuba Ingeniería Energética E-ISSN: 1815-5901 orestes@cipel.ispjae.edu.cu Instituto Superior Politécnico José Antonio Echeverría Cuba Duany, Ernesto; Muñoz, Javier; Morera, Mario Aplicación de RT-Linux en el

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

Concepto Concept s Los L nom res re d e e los h c eros: exter te n r os o o fí s fí ico nom re ú nico i del del ar chiv chiv o o o ficher ficher en

Concepto Concept s Los L nom res re d e e los h c eros: exter te n r os o o fí s fí ico nom re ú nico i del del ar chiv chiv o o o ficher ficher en Conceptos Los nombres de los ficheros: externos o físico (nombre único del archivo o fichero en el sistema de archivos) e interno o lógico (identificador del fichero dentro de un programa). Las operaciones

Más detalles

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando

Más detalles

Programación 1. Tema V Clase de problemas. Desarrollo de un módulo de biblioteca C++ para trabajar con conjuntos de letras

Programación 1. Tema V Clase de problemas. Desarrollo de un módulo de biblioteca C++ para trabajar con conjuntos de letras Programación 1 Tema V Clase de problemas Desarrollo de un módulo de biblioteca C++ para trabajar con conjuntos de letras 1 1. Representación del tipo Conjunto DebedefinirselarepresentacióndelosdatosdetipoConjunto

Más detalles

Introducción a la Programación en C Gestión de Ficheros

Introducción a la Programación en C Gestión de Ficheros Gestión de Ficheros Christopher Expósito-Izquierdo cexposit@ull.edu.es Airam Expósito-Márquez aexposim@ull.edu.es Israel López-Plata ilopezpl@ull.edu.es Belén Melián-Batista mbmelian@ull.edu.es José Marcos

Más detalles

Simulador IRSIM. Introducción a la Robótica Inteligente. Álvaro Gutiérrez 8 de febrero de

Simulador IRSIM. Introducción a la Robótica Inteligente. Álvaro Gutiérrez 8 de febrero de Simulador IRSIM Introducción a la Robótica Inteligente Álvaro Gutiérrez 8 de febrero de 2017 aguti@etsit.upm.es www.robolabo.etsit.upm.es Índice 1 Introducción 2 Estructura Actuadores Sensores Controladores

Más detalles

Lenguaje de Programación: C++ ARCHIVOS I/O

Lenguaje de Programación: C++ ARCHIVOS I/O UG C++ Lenguaje de Programación: C++ ARCHIVOS I/O Universidad de Guanajuato Octubre 2010 Como abrir un archivo Antes de poder escribir datos en un archivo, debemos abrirlo, esto significa que debemos decirle

Más detalles

(Seminaris de CASO) Autors. Raúl Mingorance Fernández. Jesús Tallón Pérez.

(Seminaris de CASO) Autors. Raúl Mingorance Fernández. Jesús Tallón Pérez. CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d Arquitectura de Computadors (Seminaris de CASO) Autors Raúl Mingorance Fernández. Jesús Tallón Pérez. Idea original de RTLinux La idea original era

Más detalles

Ficheros. Archivo, o fichero: Características:

Ficheros. Archivo, o fichero: Características: Ficheros Archivo, o fichero: Es una estructura de datos en memoria externa, cuyo tiempo de vida no está ligado a la ejecución del programa que lo crea o lo maneja. Un fichero existe desde que un programa

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 10 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante INDICE 1.1 EJERCICIO 1: MI PRIMER FICHERO EN BINARIO... 1 1.2 EJERCICIO 2: LEYENDO MI PRIMER FICHERO

Más detalles

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA Carrera de Ingeniería Electrónica y Control LABORATORIO DE CONTROL CON MICROPROCESADORES PRÁCTICA N 2

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA Carrera de Ingeniería Electrónica y Control LABORATORIO DE CONTROL CON MICROPROCESADORES PRÁCTICA N 2 LABORATORIO DE CONTROL CON MICROPROCESADORES PRÁCTICA N 2 1. TEMA PROGRAMACION EN LENGUAJE C PARA MICROCONTROLADORES 2. OBJETIVOS 2.1. Familiarizar al estudiante con el lenguaje C para microcontroladores

Más detalles

Funcionamiento de la interfaz serie

Funcionamiento de la interfaz serie Plataformas de Tiempo Real: Dispositivos y Drivers Tema 5. Interfaces de E/S de datos Interfaz serie Programación de la interfaz serie Interfaz paralelo Programación de la interfaz paralelo GRUPO DE COMPUTADORES

Más detalles

Examen de prácticas de Programación 1

Examen de prácticas de Programación 1 Examen de prácticas de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Tiempo para realizar el trabajo de programación propuesto:

Más detalles

Periféricos Interfaces y Buses

Periféricos Interfaces y Buses Periféricos Interfaces y Buses I. Arquitectura de E/S II. Programación de E/S III. Interfaces de E/S de datos Interfaces de comunicaciones serie (RS-232, USB, Firewire). Interfaz paralelo. Modelo de programación

Más detalles

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. Tema 2. TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. PARTE : VARIABLES, OPERADORES Y CONSTANTES.. INTRODUCCIÓN AL LENGUAJE C 2. PROGRAMAS BÁSICOS EN LENGUAJE C 3. DATOS EN LENGUAJE C

Más detalles

Repaso 03: Manejo de Archivos en C

Repaso 03: Manejo de Archivos en C Repaso 03: Manejo de Archivos en C Solicitado: Ejercicios 03: Programa con Archivos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras

Más detalles

UNIVERSIDAD NACIONAL DE INGENIERÍA

UNIVERSIDAD NACIONAL DE INGENIERÍA UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DE ADQUISICIÓN DE DATOS Y GUI DE UN PDA PARA MANTENIMIENTO DE EQUIPOS MÉDICOS UTILIZANDO

Más detalles

Entrada y Salida de Datos. Lectura de archivos.

Entrada y Salida de Datos. Lectura de archivos. 1 Entrada y Salida de Datos. Lectura de archivos. Son innumerables los casos en los que son necesarios guardar datos entre ejecuciones de un programa para poder ser recuperados en futuras sesiones. Los

Más detalles

Guía práctica de estudio 12: Lectura y escritura de datos

Guía práctica de estudio 12: Lectura y escritura de datos Guía práctica de estudio 12: Lectura y escritura de datos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 12: Lectura

Más detalles

Entrada y Salida de Archivos

Entrada y Salida de Archivos Entrada y Salida de Archivos E/S Básica de Archivo El servicio básico es sin buffering, a diferencias de la E/S estándar (stdio.h), dado que las primeras generan llamadas al sistema (read y write). Son

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 1

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 1 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 1 Contenidos: 1. Características generales de C 2. Edición y compilación de un programa C 3. Variables y tipos

Más detalles

Memoria Final. Implementación de la Función Historial y Autocompletado. Laboratorio de A.S. O - Grupo 2T

Memoria Final. Implementación de la Función Historial y Autocompletado. Laboratorio de A.S. O - Grupo 2T Memoria Final Implementación de la Función Historial y Autocompletado Laboratorio de A.S. O - Grupo 2T - INTRODUCCION - H emos tratado de implementar la función historial y el autocompletado en Minix,

Más detalles

Matías Zabaljáuregui

Matías Zabaljáuregui El buffer de la entrada estándar en GNU/Linux Matías Zabaljáuregui (matiasz@info.unlp.edu.ar) http://linux.linti.unlp.edu.ar 0. Introducción Se intentará describir en términos sencillos la forma de tratar

Más detalles

Examen Teórico (1/3 de la nota final)

Examen Teórico (1/3 de la nota final) Examen Teórico (1/3 de la nota final) 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad

Más detalles

Módulo Criptográfico de Anonimato para Servicios Basados en Localización en Dispositivos Android

Módulo Criptográfico de Anonimato para Servicios Basados en Localización en Dispositivos Android Instituto Politécnico Nacional Centro de Investigación en Computación Módulo Criptográfico de Anonimato para Servicios Basados en Localización en Dispositivos Android Autores: Andrea Viridiana Soto Miranda

Más detalles

Linux 2.6 Kernel Hacking

Linux 2.6 Kernel Hacking Linux 2.6 Kernel Hacking Copyleft, all rights reversed txipi@sindominio.net hackandalus'2004 De qué vamos a hablar? Algunas generalidades sobre Linux. Conceptos básicos de un Sistema Operativo Programación

Más detalles

Archivos. Conceptos SESION 13

Archivos. Conceptos SESION 13 Archivos SESION 13 Conceptos Definición Un archivo es una secuencia de bits almacenados en algún dispositivo externo tal como un disco o una cinta magnética. En C un archivo es simplemente un flujo(stream)

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

4. Drivers de dispositivos Una TTY 14

4. Drivers de dispositivos Una TTY 14 Contenido Índice 1. Introducción 1 2. Módulo de ejemplo 3 3. Cómo funcionan los módulos 5 4. Drivers de dispositivos 9 5. Comunicación espacio kernel espacio usuario 12 6. Sistema de ficheros /proc 13

Más detalles

Sistemas Operativos sesión 12: tuberías

Sistemas Operativos sesión 12: tuberías Sistemas Operativos sesión : tuberías Grado en Ingeniería Informática Universidad Carlos III de Madrid Agenda Linux Comunicación con tuberías Ejercicios Agenda Linux Comunicación con tuberías Ejercicios

Más detalles

Los conocimientos previos necesarios para el desarrollo de estas prácticas son:

Los conocimientos previos necesarios para el desarrollo de estas prácticas son: PRÁCTICA 2: MODIFICACIONES AL KERNEL Presentación Las prácticas de las asignaturas Ampliación de Sistemas Operativos y Diseño de Sistemas Operativos pretenden que el estudiante sea capaz de entender porciones

Más detalles