1、前言 最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要延迟 ...
分类:
系统相关 时间:
2017-11-21 01:12:35
阅读次数:
221
强制解锁因其他进程占用而无法删除的文件。 1.调用 ZwQuerySystemInformation 的 16 功能号来枚举系统里的句柄 2.打开拥有此句柄的进程并把此句柄复制到自己的进程 3.用 ZwQueryObject 查询句柄的类型和名称 4.如果 发现此句柄的类型是文件句柄, 名称和被锁定 ...
分类:
其他好文 时间:
2017-11-01 01:06:39
阅读次数:
206
转自:http://www.th7.cn/system/lin/201606/167750.shtml 我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。注意:动态申请的内存使用完后必须要释放,否则会造成 ...
分类:
系统相关 时间:
2017-08-18 17:13:11
阅读次数:
257
在分析虚拟内存管理前要先看下linux内核内存的具体分配我開始就是困在这个地方。对内核内存的分类不是非常清晰。我摘录当中的一段: 内核内存地址 在linux的内存管理中,用户使用0~3GB的地址空间。而内核仅仅是用了3GB~4GB区间的地址空间。共1GB。非连 续空间的物理映射就位于3GB~4GB之 ...
分类:
系统相关 时间:
2017-08-01 12:43:34
阅读次数:
265
1、 linux驱动分类 2、 信号量与自旋锁 3、 platform总线设备及总线设备怎样编写 4、 kmalloc和vmalloc的差别 5、 module_init的级别 6、 加入驱动 7、 IIC原理,总线框架,设备编写方法,i2c_msg 8、 kernel panic 9、 USB总线 ...
分类:
系统相关 时间:
2017-07-20 12:10:12
阅读次数:
267
近期在调试PCIe的行情加速卡的驱动。当中使用DMA在CPU和FPGA间数据传输。最開始使用的是低16M的DMA ZONE的内存,用slab分配器的kmalloc分配获取。但因为最新的需求,须要使用的内存远远超过16M,这样再使用DMA ZONE区域的内存就不够了,那就仅仅能使用DMA32区域的内存 ...
分类:
其他好文 时间:
2017-07-08 14:13:35
阅读次数:
155
转自:http://blog.csdn.net/cy_cai/article/details/47001245 1、kmalloc()/kfree() static __always_inline void *kmalloc(size_t size, gfp_t flags) 内核空间申请指定大小的 ...
分类:
系统相关 时间:
2017-07-06 20:39:30
阅读次数:
272
本文转载自:http://www.cnblogs.com/pengdonglin137/p/3328984.html hi all and barry, 最近在学习字符设备驱动,不太明白private_data在字符驱动中的作用,我们在 驱动中添加一个设备结构体,然后定义了这个结构体的全局指针变量, ...
分类:
其他好文 时间:
2017-07-01 23:21:23
阅读次数:
224
http://blog.chinaunix.net/uid-20788636-id-4408261.html 前言: 对于Linux内核的Socket系列文章都是依据于:Linux-3.14.5的版本内核分析,对于文中的注释和问题的说明也参考了网络上经典分析文章,对他们奉献表示感谢! 转载请标明:h ...
分类:
其他好文 时间:
2017-06-13 16:55:59
阅读次数:
348
本章主要介绍Linux内核的内存管理。 kmalloc函数的内幕 不正确所获取的内存空间清零分配的区域在物理内存中也是连续的flags參数 <linux/slab.h><linux/gfp.h> GFP_KERNEL 在空暇内存较少时把当前进程转入休眠以等待一个页面分配内存的函数必须是可重入的 GF ...
分类:
系统相关 时间:
2017-06-03 09:48:56
阅读次数:
251