An Introduction to Device Drivers Sarah Diesburg COP

An Introduction to Device Drivers Sarah Diesburg COP

An Introduction to Device Drivers Sarah Diesburg COP 5641 / CIS 4930 Introduction Device drivers Black boxes to hide details of hardware devices Use standardized calls Main role

Independent of the specific driver Map standard calls to device-specific operations Can be developed separately from the rest of the kernel Plugged in at runtime when needed The Role of the Device Driver Implements the mechanisms to access the hardware

E.g., show a disk as an array of data blocks Does not force particular policies on the user Examples Who many access the drive Whether the drive is accessed via a file system Whether users may mount file systems on the drive

Policy-Free Drivers A common practice Support for synchronous/asynchronous operation Be opened multiple times Exploit the full capabilities of the hardware Easier user model Easier to write and maintain

To assist users with policies, release device drivers with user programs Splitting the Kernel Process management Creates, destroys processes Supports communication among processes

Signals, pipes, etc. Schedules how processes share the CPU Memory management Virtual addressing Splitting the Kernel File systems

Everything in UNIX can be treated as a file Linux supports multiple file systems Device control Every system operation maps to a physical device Few exceptions: CPU, memory, etc. Networking Handles packets

Handles routing and network address resolution issues Splitting the Kernel Loadable Modules The ability to add and remove kernel features at runtime Each unit of extension is called a module Use insmod program to add a kernel module Use rmmod program to remove a kernel module

Classes of Devices and Modules Character devices Block devices Network devices Others Character Devices Abstraction: a stream of bytes

Examples Text console (/dev/console) Serial ports (/dev/ttyS0) Usually supports open, close, read, write Accessed sequentially (in most cases) Might not support file seeks Exception: frame grabbers

Can access acquired image using mmap or lseek Block Devices Abstraction: array of storage blocks However, applications can access a block device in bytes Block and char devices differ only at the kernel level

A block device can host a file system Network Devices Abstraction: data packets Send and receive packets Do not know about individual connections Have unique names (e.g., eth0)

Not in the file system Support protocols and streams related to packet transmission (i.e., no read and write) Other Classes of Devices Examples that do not fit to previous categories: USB SCSI FireWire MTD

File System Modules Software drivers, not device drivers Serve as a layer between user API and block devices Intended to be device-independent Security Issues

Deliberate vs. incidental damage Kernel modules present possibilities for both System does only rudimentary checks at module load time Relies on limiting privilege to load modules And trusts the driver writers Driver writer must be on guard for security problems Security Issues

Do not define security policies Provide mechanisms to enforce policies Be aware of operations that affect global resources Setting up an interrupt line Could damage hardware

Setting up a default block size Could affect other users Security Issues Beware of bugs Buffer overrun Overwriting unrelated data

Treat input/parameters with utmost suspicion Uninitialized memory Kernel memory should be zeroed before being made available to a user Otherwise, information leakage could result Passwords Security Issues Avoid running kernels compiled by an

untrusted friend Modified kernel could allow anyone to load a module Version Numbering Every software package used in Linux has a release number You need a particular version of one package to run a particular version of another package Prepackaged distribution contains matching

versions of various packages Version Numbering Different throughout the years After version 1.0 but before 3.0 ... Time based releases (after two to three months) 3.x

Moved to 3.0 to commemorate 20th anniversary of Linux .. https://lkml.org/lkml/2011/5/29/204 License Terms GNU General Public License (GPL2) GPL allows anybody to redistribute and sell a product covered by GPL

As long as the recipient has access to the source And is able to exercise the same rights Any software product derived from a product covered by the GPL be released under GPL License Terms If you want your code to go into the mainline kernel Must use a GPL-compatible license

Joining the Kernel Development Community The central gathering point Linux-kernel mailing list http://www.tux.org/lkml Chapter 20 of LKM further discusses the community and accepted coding style

Recently Viewed Presentations

  • Theatre Terms to Know

    Theatre Terms to Know

    Platforms or body positions of various heights. Creates interesting staging . Kneeling, stage boxes, sitting, etc. Cover. When an actor's position on stage obstructs the audience's view of a person or object. Try to avoid this. Entrance.
  • Figure S6 Total miRNAs Upregulated miRNAs Downregulated miRNAs

    Figure S6 Total miRNAs Upregulated miRNAs Downregulated miRNAs

    Zhou, L., Qi, X., Potashkin, J.A., Abdul-Karim, F.W. and Gorodeski, G.I. (2008) MicroRNAs miR-186 and miR-150 down-regulate expression of the pro-apoptotic purinergic P2X7 receptor by activation of instability sites at the 3'-untranslated region of the gene that decrease steady-state levels...
  • ROOTS

    ROOTS

    roots
  • Vocabulary Words American Literature Week #10 Pragmatic  Pragmatic

    Vocabulary Words American Literature Week #10 Pragmatic Pragmatic

    Pretentious. Definition: (adj) making a claim to importance or distinction. Synonym: showy, pompous, exaggerated. Antonym: down-to-earth, sensible
  • Слайд 1

    Слайд 1

    It's got big/small eyes.. It's got . big . eyes. Посмотри на картинку, прочти предложение и выбери правильное слово.
  • NREL Power point slide template - cover and main slide

    NREL Power point slide template - cover and main slide

    Pick any two: "Fast, cheap, or good" ... N/A (none currently for RE industry) Public (Government) Investment support structures. Tax credits (ITC, PTC, MACRS) Loans or loan guarantees. Grants. Foreign exchange risk mitigation. First loss reserves.
  • Connecting Teaching Practices to Student Data

    Connecting Teaching Practices to Student Data

    The challenge of Teacher Evaluation is to create a system of continuous improvement of instruction, professional development, and feedback. Supervision needs to be frequent and focused on the improvement of instruction within a common language of Instruction. Feedback must be...
  • Examining the Relationship Between Two Variables

    Examining the Relationship Between Two Variables

    Examining the Relationship Between Two Variables (Bivariate Analyses) What type of analysis? We have two variables X and Y and we are interested in describing how a response (Y) is related to an explanatory variable (X).