A list of chapters and sections which would be of use while working on project 4 is listed below. The minimum you need to read for this project are Chapters 2,3,5. The rest are listed for completeness so that you can look things up. Feel free to explore beyond what is listed. You can find the book here: http://lwn.net/Kernel/LDD3/ Chapter 1: Introduction to Device Drivers Loadable Modules Classes of Devices and Modules Chapter 2:Building and Running Modules The Hello World Module Kernel Modules Versus Applications User Space and Kernel Space Concurrency in the Kernel Compiling and Loading Loading and Unloading Modules Preliminaries Initialization and Shutdown Module-Loading Races Module Parameters Chapter 3: Char devices The Design of scull Major and Minor Numbers The Internal Representation of Device Numbers Allocating and Freeing Device Numbers Dynamic Allocation of Major Numbers Some Important Data Structures Char Device Registration open and release scull’s Memory Usage read and write Chapter 4: Debugging Techniques Debugging by Printing Chapter 5:Concurrency and Race Conditions Concurrency and Its Management Semaphores and Mutexes Locking Traps Alternatives to Locking Chapter 6: Advanced Char Driver Operations Simple Sleeping Chapter 8: Allocating Memory The Real Story of kmalloc