没有时间把一件事情做好,却有时间把一件事情反复做!
全部博文(191)
发布时间:2014-03-26 15:27:20
学习linux设备驱动程序,字符设备驱动是最基础的,在第一节简单字符设备中我们举了一个虚拟内存设备globalmem来说明字符设备驱动的基本框架。在linux设备驱动中,我们不是看程序的复杂(读内核源码也是不一定要全部读懂),而要掌握的是linux设备驱动的框架,而前面我们介绍的诸如linux中的多进程并发访问控制、阻塞访问.........【阅读全文】
发布时间:2014-03-26 15:09:42
异步通知的概念与作用 异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上"中断"的概念,比较准确的称谓是"信号驱动的异步I/O"。 Linux信号 Linux系统中,异步通知使用信号来实现。信号也就是一种软件中断。信.........【阅读全文】
发布时间:2014-03-26 11:54:34
阻塞与非阻塞I/O还记得上篇 我们讲到的是linux中并发控制访问的手段有哪些????原子、信号量、自旋锁、互斥体。这是为了保护临界区的资源,是多个进程对共享资源的并发访问的一种处理手段。但是,在驱动程序中,我们常常为了支持用户空间对设备的灵活访问,引入了阻塞与非阻塞I/O两种不同模式。  .........【阅读全文】
发布时间:2014-03-26 10:12:46
首先,让我们来回顾一下在简单的linux字符设备驱动中,我们是通过file_operation的连接实现了应用程序访问内核的接口,在各个注册的函数接口中,我们并没有考虑一些比较复杂的情况,比如:当一个进程在打开文件进行修改时候,而另一个进程也在打开修改,同时可能有一个进程正在阅读,这时候就会发生竞争了。因此linux中必.........【阅读全文】
发布时间:2014-03-26 10:03:55
struct file_operations{ struct module *owner; // 指向拥有该结构的模块的指针,避免正在操作时被卸载,一般为初始化为THIS_MODULES loff_t (*llseek) (struct file *, loff.........【阅读全文】