Courses/Computer Science/CPSC 457.F2013/Lecture Notes/Devices

= Devices =

One of the most visible parts of any system is the variety of devices that the system supports; after all, these I/O devices are the way humans largely interact with the CPU and memory: we type on keyboards and touchscreens; we view terminals, monitors, and screens; we point with mice, stylus pens, and game controllers; we use a variety of communications equipment (bluetooth devices, USB devices, network cards), we write to a variety of media like tape, optical discs, rotational drives, SSDs, floppy diskettes, we print to a wide range of printing devices.

Operating systems have to offer a consistent way to access such devices and control them, but the wide variety of internal organizations and physical properties of these devices offers a very challenging target indeed.


 * major, minor numbers
 * man 3 makedev
 * man 1 mknod
 * man 2 mknod
 * mkdir
 * mkfifo
 * character devices
 * block devices
 * special devices (pipes, FIFOs, etc.)
 * psuedo devices (/dev/null, /dev/zero)
 * udev
 * sysfs

Slides
http://www.cpsc.ucalgary.ca/~locasto/teaching/2013/CPSC457-Fall/talks/devices.pdf

Scribe Notes

 * s1
 * s2
 * s3

Readings

 * MOS, 5.1, 5.2, 5.3
 * LKD, Chapter 17: Devices and Modules

Related Work
Snooping on USB: http://travisgoodspeed.blogspot.ca/2012/07/emulating-usb-devices-with-python.html