Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7691023
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

发布时间:2012-07-27 11:17:14

内核数据使用的数据类型分为 3 个主要类型: 标准 C 类型例如 int, 明确大小的类型例如 u32, 以及用作特定内核对象的类型 操作系统内核, 如同其他程序, 常常需要维护数据结构的列表. Linux 内核已经同时有几个列表实现. 为减少代码的数量, 内核开发者已经创建了一个标准环形的, 双链表; 鼓励需要操作列表的人.........【阅读全文】

阅读(1962) | 评论(0) | 转发(2)

发布时间:2012-07-27 10:06:25

Linux (许多其他系统一起)解决这个问题通过将中断处理分为 2 半. 所谓的前半部是实际响应中断的函数 -- 你使用 request_irq 注册的那个. 后半部是由前半部调度来延后执行的函数, 在一个更安全的时间. 最大的不同在前半部处理和后半部之间是所有的中断在后半部执行时都使能 -- 这就是为什么它在一个更安全时间运行. 在.........【阅读全文】

阅读(2237) | 评论(0) | 转发(1)

发布时间:2012-07-27 09:48:02

中断线是一个宝贵且常常有限的资源, 特别当它们只有 15 或者 16 个时. 内核保持了中断线的一个注册, 类似于 I/O 端口的注册. 一个模块被希望来请求一个中断通道(或者 IRQ, 对于中断请求), 在使用它之前, 并且当结束时释放它. 在很多情况下, 也希望模块能够与其他驱动共享中断线, 如同我们将看到的. 下面的函数, 声明在 , .........【阅读全文】

阅读(2422) | 评论(0) | 转发(1)

发布时间:2012-07-26 17:23:08

几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:  (1)I/O映射方式(I/O-mapped)  典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或.........【阅读全文】

阅读(3310) | 评论(0) | 转发(5)

发布时间:2012-07-26 15:19:58

kmalloc 原型是:#include void *kmalloc(size_t size, int flags); 给 kmalloc 的第一个参数是要分配的块的大小. 第 2 个参数, 分配标志, 一般使用的标志, GFP_KERNEL驱动开发者应当记住的一件事情是, 内核只能分配某些预定义的, 固定大小的字节数组. 如果你请求一个任意数量内存, 你可能得到稍微多于你.........【阅读全文】

阅读(4029) | 评论(0) | 转发(6)
给主人留下些什么吧!~~

_Yangdada2017-02-28 16:20

后生专门找回密码过来膜拜一下

回复  |  举报

注册看下2016-06-28 22:46

非常感谢

回复  |  举报

X_Unstoppable2016-01-18 13:59

神一样的崇拜

回复  |  举报

流浪者转世2015-02-14 21:59

看了以后,感觉神一般的人!!崇拜中
。。。。

回复  |  举报

hfm_honey2012-08-10 09:10

你好,基于看见你也学习过Linux内核的知识,也相信你也是个高手。如今我现在看到Linux内存分配的slab机制这一块,我实在理解不了什么是slab机制,它里面包含的对象什么情况下叫 “空闲”?什么情况下又叫不空闲,到底该怎么具体的理解呢?能给我具体化,举个实例说明一下吗,感激不尽!谢谢!

回复  |  举报
留言热议
请登录后留言。

登录 注册