Device drivers comprise the largest part of the Linux kernel sources. Nevertheless, I did not consider the implementation of individual drivers in this chapter, but focused on the framework provided by the kernel for this purpose instead. This is reasonable because device drivers can be seen as ''kernel applications'' that are built on top of this framework.
You have learned that device drivers can essentially be grouped into two categories: Character devices that transfer a stream of bytes to and from the kernel, and block devices that require a more complicated request management. Both, however, do interact with userland applications by means of device special files that allow them to access the services of drivers with regular file I/O operations.
Finally, I have also discussed how I/O memory and port resources are handled by the kernel, and have discussed how bus systems connect devices with the computer and with other devices. This also included a presentation of the generic device and driver model, which allows both kernel and userspace applications to enjoy a unified picture of the available resources.
25In allusion to the date of the patch, the authors of the new layer refer to this rewrite as the ''USB October revolution''
Continue reading here: Modules
Was this article helpful?