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

From wiki.ucalgary.ca
< Courses‎ | Computer Science‎ | CPSC 457.F2013‎ | Lecture Notes
Revision as of 00:06, 17 December 2013 by Cmah (talk | contribs) (Scribe Notes)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

notes

00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC \[Natoma\] (rev  02)                                                                        
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA \[Natoma/Triton II\]                                                                          
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)                                                                             
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter                                                            
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)                                                           
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service                                                                       
00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)                                                        
00:06.0 USB controller: Apple Inc. KeyLargo/Intrepid USB                                                                                              
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)                                                                                   
00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller \[AHCI mode\] (rev 02)

Example Drivers and Infrastructure

Scribe Notes

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