This blog updates the latest developments in Linux device driver development (version 3rd) in real time.
At present, Chapter 4-9 has been initially completed on April 30, 2nd. Compared with version, these chapters are mainly changed.
[F] indicates correction or upgrade; [N] indicates new knowledge points; [D] indicates deleted content.
Chapter 4 Linux kernel module
[F] Correct the non-GPL license used by the module;
[F] modify the memory management of the _ exit modifier Function
Chapter 4 Linux File System and Device Files
[F] modify the driver relationship between the file system and the block device;
[N] added the file operation call diagram from the application to the driver;
[N] added an example of accepting kernel uevent through netlink;
[N] example of adding sysfs traversal;
[N] added an example for writing udev rules for the kingston USB disk;
[F] update udev rules to comply with the new version;
[N] added udevadm instructions;
[N] highlight Android vold
Chapter 2 character Device Driver
[F] update the definition of file_operations and upgrade the ioctl () prototype;
[N] added explanations about Linux access_ OK () and Linux kernel security vulnerabilities;
[F] corrected the globalmem encoding style;
[F] When globalmem supports more than two instances, it is upgraded from directly two instances to support N instances;
Chapter 2 Concurrency Control in Linux Device Drivers
[N] drawing provides an in-depth description of competing states in Single-core and multi-core environments;
[N] added explanations on compilation disorder, execution disorder, compilation barrier, and memory barrier;
[N] added instructions on arm ldrex/STREX commands;
[N] in-depth analysis of single-core and multi-core use cases of the spin_lock;
[F] reorganize the RCU explanation methods and examples;
[F] indicates that the semaphore has expired;
[F] Replace the semaphore used in globalmem with mutex;
Chapter 2 blocking and non-blocking I/O in Linux Device Drivers
[N] Add a sequence chart for blocking and non-group congestion;
[F] corrected the globalfifo encoding style;
[F] modify the readable and writable if value of globalfifo to while value;
[N] The sequence chart of the new select statement;
[N] add EPOLL chapter;
Chapter 2 asynchronous notifications and asynchronous I/O in Linux Device Drivers
[F] fixed glibc AIO support;
[F] modify kernel AIO support;
[F] AIO interface for driver correction;
[D] deleting error instances supported by AIO driver;
[N] highlighting C10K issues;