Device Drivers

This class describes how to write and maintain network drivers in FreeBSD. By way of example it uses the Intel Gigabit Ethernet driver (igb). The lecture covers the basic data structures and APIs necessary to implement a network driver in FreeBSD. The lecture is general enough that it can be applied to other BSDs, and likely to other embedded and UNIX like systems. It is specific enough that given a device and a manual, you should be able to develop a working driver on your own.


This class is available on DVD.

Course Outline

  1. Quick Ethernet Overview
  2. Basic Data Structures
  3. Device Startup and Initialization
  4. Packet Reception
  5. Packet Transmission
  6. Device Control
  7. Special Features

Pre-requisites

Suggested Texts

Although the class is fully self contained it is often helpful to have supporting texts. I recommend the following.