This course describes the FreeBSD networking stack. It is made up of a series of lectures derived from tutorials given by George Neville-Neil. Additional lectures will be developed over the next year or two. Each lecture may be ordered separately and is described below.
Lecture 1: Device Drivers
This lecture 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.
George Neville-Neil is a FreeBSD Committer, member of the FreeBSD Core team, and an author. He works on networking and operating system code for fun and profit. He also teaches various course on subjects related to computer programming. His professional areas of interest include code spelunking, operating systems, networking and security. He is the co-author with Marshall Kirk McKusick of The Design and Implementation of the FreeBSD Operating System, and is the columnist behind ACM Queue's ``Kode Vicious.'' Mr. Neville-Neil earned his bachelor's degree in computer science at Northeastern University in Boston, Massachusetts, and is a member of the ACM, the Usenix Association and the IEEE. He is an avid bicyclist and traveler who currently resides in New York City.
Click here to purchase the class on DVD video.