Chinaunix首页 | 论坛 | 博客
  • 博客访问: 321013
  • 博文数量: 125
  • 博客积分: 30
  • 博客等级: 民兵
  • 技术积分: 160
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-06 15:18
文章分类

全部博文(125)

文章存档

2014年(29)

2013年(93)

2012年(3)

发布时间:2012-12-27 11:17:59

中断栈与内核栈的话题更多地属于内核的范畴,所以在《深入Linux设备驱动程序内核机制》第5章“中断处理”当中,基本上没怎么涉及到上述内容,只是在5.4节有些许的文字讨论中断栈在中断嵌套情形下可能的溢出问题。本贴在这个基础上对内核栈与中断栈的话题做些补充,讨论基于x86 32位系统,因为64位系统下Linux内核关于栈的支持原理上是相同的,不过也有些特性属于64位特有的,比如IST(Interrupt Stack Table),如果可能将来会在processor版块发个帖子专门讨论。1. x86下内核栈与中断栈是否共享的问题我们知道Linux系统下每个用户进程都有个task_struct对象来表......【阅读全文】

阅读(615) | 评论(0) | 转发(0)

发布时间:2012-12-27 11:09:32

今天在ChinaUnix论坛内核源码版上与linuxfellow网友讨论到hardirq和softirq的问题,虽 然在《深入Linux设备驱动程序内核机制》(以下简称“ILDD”)第5章“中断处理”对此已有详细的解读,但是我觉得还是有必要再花点时间深入探讨一 下这两者的区别。因为此前关于ARM上的中断处理我已经在另一篇帖子解密ARM based Linux内核中断处理框架 中讨论过,所以下面的讨论只限于x86 32位系统。 首先给出一个ILDD书中的一个插图,关于中断处理的整体框架: (图1)接下来的一个插图显示了内核用于标识中断上下文(in_interrupt())的变量preem......【阅读全文】

阅读(568) | 评论(0) | 转发(0)

发布时间:2012-12-27 10:48:26

热插拔(hotplug)不一定非要指类似U盘那样的插入拔出,此处的热插拔广义上讲,是指一个设备加入系统,内核如何通知用户空间。举个简单的例子,如果你的电脑中有块PCI网卡,针对该网卡的驱动程序以内核模块的形式被编译(obj-m),那么Linux系统在启动过程中是如何自动加载该网卡的驱动模块呢?大家都知道现在udev负责干这事,其实除了udev,还可以有其他的手法,你自己就可以这样做。 我们先讨论udev,udev最关键的东西是当系统发现一个设备时,它要能够被通知该事件,一旦它知道了这件事,那么余下的事情就都好说了,无非是个如何查找模块并加载的过程。所以我们看到,这里的关键是热插拔事件的通知机......【阅读全文】

阅读(603) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册