
Linux Kernel
jmflovezlf
这个作者很懒,什么都没留下…
展开
-
Linux抢占发生的时间
linux抢占发生的时间,抢占分为用户抢占和内核抢占。用户抢占在以下情况下产生:l 从系统调用返回用户空间l 从中断处理程序返回用户空间内核抢占会发生在:l 当从中断处理程序返回内核空间的时候,且当时内核具有可抢占性;l 当内核代码再一次具有可抢占性的时候。(如:spin_unlock时)l原创 2013-04-21 19:26:46 · 698 阅读 · 0 评论 -
中断上下文注意事项
1. 如果你的中断上下文进入睡眠,它是一项应该被处以监禁的罪行。中断处理函数不能通过调用schedule_timeout()等睡眠函数放弃处理器,在中断处理函数中调用一个内核API之前,应该仔细分析它以确保其内部不会触发阻塞等待。例如,input_register_device()表面上看起来没有问题,但是它内部以GFP_KERNEL为参数调用了kmalloc()。2. 为了在中断处理原创 2013-04-21 13:52:01 · 831 阅读 · 0 评论 -
为什么中断不能休眠
1. 中断处理的时候,不应该发生进程切换,因为在中断context中,唯一能打断当前中断handler的只有更高优先级的中断,它不会被进程打断(这点对 于softirq,tasklet也一样,因此这些bottom half也不能休眠),如果在中断context中休眠,则没有办法唤醒它,因为所有的 wake_up_xxx都是针对某个进程而言的,而在中断context中,没有进程的概念,没有一个tas原创 2013-04-21 13:56:13 · 1336 阅读 · 1 评论 -
Linux 2.6驱动开发环境搭建
虽然网上已经有很多关于linux驱动开发环境的介绍,但作为一个刚刚涉入linux驱动的菜鸟来说,凡是还是得事必躬亲,亲自操作一番,如果其中某些地方配置错误或不得要领,往往要花费很多时间。权且当做回顾吧,记录下我的具体的搭建过程。内核版本: 2.6.38操作系统: ubuntu 11.04开发环境搭建过程:1, 下载必要的开发工具包(binutils) sudo a原创 2013-05-05 01:07:42 · 696 阅读 · 0 评论 -
虚拟内存
每个进程都有自己的4G地址空间,从 0×00000000-0xFFFFFFFF 。通过每个进程自己的一套页目录和页表来实现。由于每个进程有自己的页目录和页表,所以每个进程的地址空间映射的物理内存是不一样的。两个进程的同一个虚拟地址处(如果都有物理内存映射)的值一般是不同的,因为他们往往对应不同的物理页。原创 2013-05-05 13:36:53 · 542 阅读 · 0 评论 -
make oldconfig作用
ldk上关于make oldconfig作用一笔带过,网上查了下,大概如下: 备份当前.config文件为.config.old,如若make config/menuconfig设置不当可用于恢复先前的.config原创 2013-05-19 18:04:38 · 1027 阅读 · 0 评论 -
linux kernel -oops
本文转自: http://www.cnblogs.com/wwang/archive/2010/11/14/1876735.html什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核转载 2013-05-20 17:36:53 · 1051 阅读 · 0 评论 -
malloc实现
http://blog.chinaunix.net/uid-21712186-id-1818103.html转载 2013-09-15 14:31:36 · 659 阅读 · 0 评论