informática electrónica unidad 6 interfaces y … · diseñada por microsoft para el acceso de...
TRANSCRIPT
![Page 1: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/1.jpg)
APIs y Device Drivers
Informática ElectrónicaUnidad 6
Interfaces y Manejadores de Dispositivos
![Page 2: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/2.jpg)
APIs y Device Drivers
Modalidad y Materiales● Dos clases expositivas a cargo del docente
responsable ([email protected])● Una práctica cargo de los alumnos (Práctica 5)
que deberá entregarse antes del fin de cursado.
● Tres documentos de bibliografía en la página de material de la cátedra
● Documentos complementarios desarrollados en clase
![Page 3: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/3.jpg)
APIs y Device Drivers
API● Application Program Interface (interface para
programas aplicativos) es el mecanismo mediante el cual un programa aplicativo accede a servicios de otros componentes de software
● Un API puede tomar distintas formas:● Librerías● Procedimientos● Protocolos● Objetos
![Page 4: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/4.jpg)
APIs y Device Drivers
Componentes de un API● Convenciones de utilización● Estructuras de datos● Protocolos de invocación● Mecanismos de sincronización
![Page 5: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/5.jpg)
APIs y Device Drivers
API: Conceptos● Conceptualmente, un API expone a los
programas del usuario un conjunto de funcionalidades accesibles un forma controlada
● Un API puede permitir el acceso a dispositivos físicos (device drivers), a servicios de plataforma tales como E/S y comunicaciones o a funcionalidades específicas de una pieza de software
![Page 6: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/6.jpg)
APIs y Device Drivers
API: Arquitectura
API
Aplicación Aplicación Aplicación
Hardware u otras capas de software
![Page 7: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/7.jpg)
APIs y Device Drivers
API: Arquitectura
API
AplicaciónLlamada Respuesta
![Page 8: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/8.jpg)
APIs y Device Drivers
Código: Ejemplos ● Funcional:
int nbytes = send(tx_buf, len); /* C */
● Objetos:sc = new Socket(port);salida = new DataOutputStream(sc.getOutputStream()); salida.write(i); // Java
![Page 9: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/9.jpg)
APIs y Device Drivers
API: Tipos● Dependiente del lenguaje: disponible para ser
utilizada desde un lenguaje de programación específico. Ejemplo: API de sockets de UNIX (C)
● Independiente del lenguaje: diseñada de forma tal que puede utilizarse por programas escritos en distintos lenguajes de programación. Ejemplo: web services
![Page 10: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/10.jpg)
APIs y Device Drivers
API: Ejemplos● POSIX: Interface a los servicios de los sistemas
operativos UNIX/POSIX● WIN32: Interface a los servicios de Windows● Linux Standard Base: ídem anteriores para Linux● Nvidia CUDA: (Compute Unified Device
Architecture) compilador y conjunto de herramientas de desarrollo que permiten a los programadores usar una variación del lenguaje C para codificar algoritmos en GPUs de nVidia.
![Page 11: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/11.jpg)
APIs y Device Drivers
Componentes de un API
● Uno o mas archivos de encabezado (*.h)● Una o mas librerías (*.o, *.lib, *.dll,
etc.)● Un paquete de clases (Java: *.jar)● Usualmente encapsuladas en un “SDK”
(software Development Kit)● Una especificación de protocolo y mensajes
![Page 12: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/12.jpg)
APIs y Device Drivers
Modelos● Un API puede utilizar uno o mas mecanismos
para comunicarse con los programas aplicativos, por ejemplo:● Llamada a funciones● Invocación de métodos● Paso de mensajes
![Page 13: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/13.jpg)
APIs y Device Drivers
API Basada en Funciones● Un API basada en funciones se presenta como
una librería que se carga dinámica o estáticamente, y un conjunto de funciones o procedimientos que pueden invocarse desde un programa aplicativo.
● Para utilizarla se debe compilar el aplicativo junto con los encabezados (*.h) y vincular con uno o mas archivos *.lib
● Si la librería es dinámica se carga sólo en el momento de ejecución, y toma la forma de DLLs (Windows) o SO (Unix/Linux)
![Page 14: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/14.jpg)
APIs y Device Drivers
API Basada en Funciones● Es un modelo muy utilizado● Ejemplos:
● Placas adquisidoras de datos y conversores A/D● Placas de comunicaciones● Placas de captura de video
![Page 15: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/15.jpg)
APIs y Device Drivers
API Basada en Mensajes● Establecen protocolos de diálogo en una
arquitectura similar al modelo OSI● Incluyen al menos una capa física, una de
enlace y una de aplicación● Como el intercambio está basado en mensajes,
permiten independizar el lenguaje del aplicativo● Ejemplo:
● NMEA● Garmin● ELCOM
![Page 16: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/16.jpg)
APIs y Device Drivers
APIs Basada en Objetos● Utilizable cuando el lenguaje de programación
soporta el modelo de objetos: Java, C++, .NET● Se presenta como un paquete de clases que
brindan las funcionalidades requeridas mediante la instanciación de objetos y la posterior invocación de métodos sobre estos objetos
● Ejemplos:● Java ME para dispositivos móviles● Componentes de comunicaciones
![Page 17: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/17.jpg)
APIs y Device Drivers
Caso de Estudio:Windows IP Helper API
● Diseñada por Microsoft para el acceso de los programas aplicativos a la configuración y el estado de la red IP
● Está especificada mediante funciones utilizables desde C o C++
● Permite la lectura y modificación de la configuración de red en el equipo
● Es parte integral de los sistemas operativos Windows (XP, 7, 2003, 2008, etc.)
![Page 18: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/18.jpg)
APIs y Device Drivers
Windows IP Helper API: Componentes
● Un archivo de encabezado: iphlpapi.h que debe incluirse (con #include) en los programas aplicativos que utilicen el API
● Un archivo de vinculación estática iphlpapi.lib que debe incluirse en la lista de librerías estáticas a vincular
● Un archivo de librería dinámica iphlpapi.dll que se carga en el momento de ejecutar los aplicativos que usen el API
![Page 19: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/19.jpg)
APIs y Device Drivers
Servicios IP Helper API● GetNetworkParams(): devuelve parámetros de
red● GetAdaptersInfo(): devuelve información de
las interfaces de red● GetIPStatistics() devuelve estadísticas de
tráfico IP del equipo● ...
![Page 20: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/20.jpg)
APIs y Device Drivers
IP Helper API: Modelo Arquitectural
Capa Física
Sistema Operativo
Aplicaciones
IP Helper API
Red
Enlace
![Page 21: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/21.jpg)
APIs y Device Drivers
Windows IP Helper API
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366073%28v=vs.85%29.aspx
![Page 22: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/22.jpg)
APIs y Device Drivers
Device Drivers
![Page 23: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/23.jpg)
APIs y Device Drivers
Bibliografía● Arquitectura de diseño de Device Drivers para Windows
(en inglés)● Linux Device Drivers (en inglés)● Comparación de arquitecturas de Device Drivers
en Linux y Windows (en inglés)● Todos los buenos libros sobre Sistemas
Operativos, por ejemplo “Sistemas Operativos Modernos” de Tannenbaum tienen capítulos dedicados al tema.
![Page 24: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/24.jpg)
APIs y Device Drivers
Manejadores de Dispositivos● En inglés “Device Drivers”, son piezas de
software que se adicionan a los sistemas operativos para permitirles operar dispositivos.
● Los viejos kernels monolíticos manejaban un conjunto limitado de dispositivos
● En la actualidad un S.O. debe operar gran multiplicidad de dispositivos, algunos inexistentes cuando el S.O. fue diseñado
![Page 25: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/25.jpg)
APIs y Device Drivers
Arquitectura
Hardware
Capa de abstracción del hardware
Kernel
Device Driver
API del S.O.
Device Driver Device Driver
Aplicación Aplicación Aplicación Aplicación
EspacioDel
Kernel
EspacioDe
Usuario
open(), read(), write()
![Page 26: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/26.jpg)
APIs y Device Drivers
¿Qué es un Device Driver?● Una pieza de software que nos permite acceder
a servicios de uno o mas dispositivos● Puede ser provisto por el fabricante del S.O.,
por el fabricante del dispositivo o por terceros, o incluso, fabricado por el usuario
● Es fuertemente dependiente de la plataforma y del dispositivo, y generalmente no es “portable”
![Page 27: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/27.jpg)
APIs y Device Drivers
Clases de DD● Kernel Space: el DD es integrado al código del
Kernel del SO, y corre en la región de memoria y con el nivel de privilegio de Kernel. Las fallas del DD pueden comprometer la estabilidad de todo el sistema.
● User Space: el DD corre como una aplicación de usuario, sin privilegios especiales y en su espacio de memoria propio.
![Page 28: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/28.jpg)
APIs y Device Drivers
Política y Mecanismo● Los DD deben transferir datos desde o hacia la
periferia -un disco rígido, un enlace de comunicaciones o un sensor- a la memoria del computador en forma eficiente y previsible
● Existen distintas técnicas para ejecutar esta tranferencia, entre las mas usadas están● DMA (Direct Memory Access)● Programmed I/O (interrupciones)
![Page 29: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/29.jpg)
APIs y Device Drivers
Ciclo de Vida de un DD● Un DD puede estar integrado en forma rígida
con el SO o puede ser cargado y descargado bajo demanda.
● Ejemplo del primer caso son los DD de discos internos de una computadora
● Ejemplo del segundo caso es el de los dispositivos “plug-and-play”
![Page 30: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/30.jpg)
APIs y Device Drivers
Marcos de Desarrollo● Por la complejidad inherente al desarrollo de
DD, los sistemas operativos modernos brindan entornos de programación que proveen funcionalidades de base y permiten al diseñador de DD centrarse en el manejo del dispositivo
● Consisten en especificaciones, librerías y herramientas a disposición del diseñador
![Page 31: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/31.jpg)
APIs y Device Drivers
Marcos de Desarrollo● Windows:
● Microsoft proporciona el Windows Driver Foundation, que especifica el modelo arquitectural que deben seguir los DD para los sistemas operativos Windows, y el Windows Driver Kit, con las herramientas necesarias para el diseño, la construcción, prueba y certificación de DD
![Page 32: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/32.jpg)
APIs y Device Drivers
Marcos de Desarrollo● Linux:
● el proyecto Linux Driver Project aspira crear una plataforma común para el desarrollo, prueba y certificación de DD de este sistema operativo.
http://www.linuxdriverproject.org/
![Page 33: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/33.jpg)
APIs y Device Drivers
Arquitectura● Los distintos sistemas operativos imponen en
mayo o menor medida una arquitectura para los DD que soportan
● En algunos casos la arquitectura es obligatoria (Windows) y en otros hay mas elasticidad (Linux)
![Page 34: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/34.jpg)
APIs y Device Drivers
Arquitectura WDM (Windows kernel mode dd)
Windows KernelI/O Manager
Kernel Mode
User Mode
KMDF
Application
Win32 API
Kernel-Mode Driver
I/O request
![Page 35: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/35.jpg)
APIs y Device Drivers
Arquitectura WDM (Windows user mode dd)
Driver Manager
Windows Kernel I/O Manager
Kernel Mode
User Mode
Reflector
Application
Host Process
User-mode Driver
UMDF
Runtime EnvironmentWin32 API
I/O request
![Page 36: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/36.jpg)
APIs y Device Drivers
Arquitectura DD Unix/Linux
Hardware
Kernel
Módulo
System Calls API
Módulo Módulo
Aplicación Aplicación Aplicación Aplicación
EspacioDel
Kernel
EspacioDe
Usuario
open(), read(), write()
![Page 37: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/37.jpg)
APIs y Device Drivers
Utilización de un DD● Según la plataforma, existen servicios del S.O.
que permiten acceder en forma controlada a los dispositivos.
● El modelo de acceso sigue la lógica de archivos. El dispositivo es mostrado por el S.O. como un archivo especial, sobre el cual pueden ejecutarse lecturas, escrituras y funciones de control.
● En todo caso el programa que quiere acceder al DD debe obtener un “manejador” (handler).
![Page 38: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/38.jpg)
APIs y Device Drivers
Device Handlers● En Windows se obtiene mediante la llamada CreateFile(), tomando como argumento el “device path”: \\device\deviceX
● En Unix/Linux, la llamada open() devuelve un “file descriptor” asociado al archivo de dispositivo en el directorio /dev.
● El acceso a los servicios del DD se hace vía el API del sistema operativo
![Page 39: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/39.jpg)
APIs y Device Drivers
Acceso al DD vía API del S.O.● Windows:
● CreateFile()● WriteFile()● ReadFile()● DeviceIoControl()
● Linux/Unix:● open()● read()● write()● ioctl()
![Page 40: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/40.jpg)
APIs y Device Drivers
Caso de Estudio: RTC Linux● Todas las computadoras tienen un “Reloj de
Tiempo Real”, encargado de mantener la referencia temporal externa en forma permanente, aún cuando la PC esté apagada
● Es frecuentemente utilizado el chip Motorola MC146818
● En Linux este dispositivo es representado mediante el archivo especial “/dev/rtc”
![Page 41: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/41.jpg)
APIs y Device Drivers
Lectura del RTC en Linux*
/* Leer los segundos de RTC */unsigned char segundos;int fd;fd = open (“/dev/rtc”, O_RDONLY);ioctl (fd, 0, &segundos);close (fd);
/* Leer fecha y hora del RTC */char fecha_hora[256];int fd;fd = open (“/dev/rtc”, O_RDONLY);read (fd, fecha_hora, 255);close (fd);
* Ubuntu
![Page 42: Informática Electrónica Unidad 6 Interfaces y … · Diseñada por Microsoft para el acceso de los ... Uso de Visual C++ (o Visual Studio) en Windows Elementos necesarios para hacer](https://reader036.vdocumento.com/reader036/viewer/2022062910/5b9a472509d3f2c41b8d13ea/html5/thumbnails/42.jpg)
APIs y Device Drivers
Práctica 5● Para hacerla se debe conocer al menos:
● Uso de gcc y make o gmake en Linux● Uso de Visual C++ (o Visual Studio) en Windows
● Elementos necesarios para hacer el TP:● Una PC con Windows XP, 7, 2003 o 2008, con al
menos una placa de red y el IDE Visual Studio 2010 o 2008 instalado (primera parte)
● Una PC con Linux instalado (cualquier distribución) y los paquetes gcc y make o gmake instalados
● El paquete InfElecTP5.rar bajado de la página de la asignatura