1 / 8

Mastering Device Drivers: Learn to Write, Manage & Control

Discover the inner workings of device drivers for Windows, Mac OS, and Linux. Understand frameworks, driver models, and interfaces for efficient driver development. Get hands-on with code examples and essential tools.

Download Presentation

Mastering Device Drivers: Learn to Write, Manage & Control

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Εργαστήριο Λειτουργικών ΣυστημάτωνΦροντιστήριο6–Device Drivers Ντίρλης Νικόλαος

  2. Device Drivers • Operates • Controls • Hiding Details • Enable users to use high level functions • Example: Serial Port • High Level Functions: (1) Send Data, (2) Receive Data • Different low-level commands for 16550 UART or FTDI • RS-232 standard compatible

  3. Help Please? - Windows • How difficult is to write a driver? • Windows Driver Foundation: User-Mode Driver Framework (recommended, message-based) and Kernel-Mode Drivers Framework (standard implementations of functions that are known to cause problems, including cancellation of I/O operations, power management, and plug and play device)

  4. Help Please? – Mac OS • X is Not Unix Kernel • I/O Kit • subset of C++ (omits features that Apple feels are unsafe for use in a multithreaded kernel)

  5. APIs • Windows Display Driver Model (WDDM) – the graphic display driver architecture for Win Vista-7-8 • Windows Driver Model (WDM) • Network Driver Interface Specification (NDIS) – a standard network card driver API • Advanced Linux Sound Architecture (ALSA) – as of 2009 the standard Linux sound-driver interface • Scanner Access Now Easy (SANE) – a public-domain interface to raster-image scanner-hardware • Installable File System (IFS) – a filesystem API for IBM OS/2 and Microsoft Windows NT • Open Data-Link Interface (ODI) – a network card API similar to NDIS • Uniform Driver Interface (UDI) – a cross-platform driver interface project • Dynax Driver Framework (dxd) – C++ open source cross-platform driver framework for KMDF and I/O Kit

  6. Others • Firmware • Embedded Systems

  7. The “Hello” Driver • usr/src/drivers/hello int main(intargc, char **argv) { sef_startup(); printf("Hello, World!\n"); return EXIT_SUCCESS; } • make install

  8. System Services • cdetc • vi system.conf • /hello # service up /usr/sbin/hello # service down hello #cd dev #ls| grep “hello” http://wiki.minix3.org/DevelopersGuide/DriverProgramming

More Related