1. mycdev.c 2. cmd.h 3. test.c ...
分类:
系统相关 时间:
2017-01-17 00:24:05
阅读次数:
300
一、字符设备API 1. cdev_init() /*** cdev_init() - initialize a cdev structure* @cdev: the structure to initialize* @fops: the file_operations for this devic ...
字符设备(顺序读写,不带缓冲)块设备(读写顺序不固定,带读写缓冲)常用sync命令(强行写入硬件)同步数据使数据真正写进磁盘不然可能还在缓冲区网络设备:这家伙破坏了linux一切皆文件规则。字符设备框架:硬件上有个字符设备,内核中就有个cdev结构与之对应structcdev{str..
分类:
其他好文 时间:
2016-11-28 01:29:42
阅读次数:
254
一、字符设备驱动函数接口 1.初始化cdev结构体void cdev_init(struct cdev * cdev, const struct file_operations * fops)功能:初始化cdev结构体参数:@cdev cdev结构体 @fops 操作函数的结构体 2.申请设备号in ...
分类:
其他好文 时间:
2016-11-27 07:49:59
阅读次数:
200
Select函数实现原理分析 <原文> select需要驱动程序的支持,驱动程序实现fops内的poll函数。select通过每个设备文件对应的poll函数提供的信息判断当前是否有资源可用(如可读或写),如果有的话则返回可用资源的文件描述符个数,没有的话则睡眠,等待有资源变为可用时再被唤醒继续执行。 ...
分类:
其他好文 时间:
2016-08-04 14:55:02
阅读次数:
145
tty数据接收流程 //tty子系统 1.tty_fops中的tty_read响应系统调用 2.tty_read调用tty_ldisc_N_TTY中的n_tty_read n_tty_read 1.设置app的状态 2.如果没有数据可读,让阻塞生效 3.如果有数据可读,从read_buf中读走数据
分类:
其他好文 时间:
2016-03-11 10:25:15
阅读次数:
228
linux有一个全局的结构体数组,共255个元素,记录系统中的设备节点。主设备号相同,次设备号不同的设备组成链表。注册一个字符设备调用函数register_chrdev(major, DEV_NAME, &fops)static inline int register_chrdev(unsigned...
分类:
系统相关 时间:
2016-01-13 19:41:08
阅读次数:
197
分析内种LCD驱动程序框架 LCD在fbmem.c文件中1.找到init.函数 static int __initfbmem_init(void){ 做的工作: (1).if (register_chrdev(FB_MAJOR,"fb",&fb_fops))注册字符处理函数结构体,以及生成...
分类:
其他好文 时间:
2015-11-14 21:55:30
阅读次数:
406
近些年来,由于Android系统的兴起,作为Android底层实现的Linux内核其安全问题也是越来越被人们所关注。为了减小漏洞给用户带来的危害和损失,Linux内核增加了一系列的漏洞缓解技术。其中包括DEP,ASLR,更强的Selinux,内核代码段只读,PXN等等。
Linux中这些安全特性的增加,使得黑客们对漏洞的利用越来越困难。其中,DEP,ASLR,Selinux等技术在PC时代就已经比较成熟了。内核代码段只读也是可以通过修改ptmx_fops指针表等方案来绕过。那么,PXN是什么?它又该如何绕过...
分类:
其他好文 时间:
2015-08-10 12:10:51
阅读次数:
407