📄 linux_driver_model.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head> <title></title> <link rel="stylesheet" media="screen" type="text/css" href="./style.css" /> <link rel="stylesheet" media="screen" type="text/css" href="./design.css" /> <link rel="stylesheet" media="print" type="text/css" href="./print.css" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body><a href=start.html>start</a></br><h4><a name="the_linux_driver_model" id="the_linux_driver_model">The Linux Driver Model</a></h4><div class="level4"><p>This can best be described by examining a typical <strong>write</strong> system call. This is performed after an <strong>open</strong> call during which the kernel checks for user permissions on the <strong>device node</strong> and then creates an entry in the file descriptor table for future device access.</p><p>Following the <strong>open</strong> call the user process can then proceed to exchange data with the device using a number of methods. </p><ul><li class="level1"><div class="li"> read / write send and receive buffers to and from the device</div></li><li class="level1"><div class="li"> ioctl send commands and a data buffer to the device </div></li><li class="level1"><div class="li"> proc examine driver characteristics and even perform full communications</div></li><li class="level1"><div class="li"> poll / select get notification when the device can provide or process data or has an exception</div></li><li class="level1"><div class="li"> misc a number of misc system calls to seek and get signals on io completion.</div></li></ul><p>The user process uses an index into the file descriptor table to define the major number which in turn refers to a particular device driver which uses a file operations table to satisfy a system service call for a given device operation.</p><p>In this example a user write call is shown.</p><p> <a href="media/ddfig.gif" class="media" target="_blank" title="ddfig.gif"><img src="media/ddfig.gif" class="media" alt="" /></a></p><p> A block of data in user space is to be transfered to the device driver in kernel space for eventual distribution to the device.</p></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -