
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
《Linux内核源码分析——compiler.h分析》转自 强悍的lost的bolg Linux的内核源码都会包含文件linux/compile.h,所以先分析该文件内的内容,作为开篇。1 汇编编译时不定义的内容该文件的第一个内容是对宏__ASSEMBLY__的判
Linux内核中在自旋锁,信号量及中断禁止之间的选择一.linux内核控制路径的三种执行环境: 1>中断 中断的顶半部分,也就是用request_irq注册的中断例程 处中断上下文,不可睡眠 2>可延迟函数(软中断及基于软中断实现的其它处理函数,如tasklet, 定时器等) 被中
在VMware中用Kgdb调试linux内核参考:http://blog.csdn.net/jie12310/archive/2009/09/18/4564853.aspx设置断点后可能出现如下错误:Cannot insert breakpoint 4.Error accessing memory address 0xd0ce8000
<br />yihect | 09 元月, 2011 09:52<br />顶层Makefile的总体框架结构 <br />既然前面我们说过顶层Makefile最为重要,那么我们就先来研究一下这个文件。在你用VI编辑器打开这个文件时,千万别被它的复杂吓倒。这个文件虽然行数颇多,但其实里面也是有道道可寻的,我们可以抽出其中最重要的框架结构出来,列出如下(稍做整理和缩进):<br />从上面的框架中
<br />yihect | 08 元月, 2011 09:30<br />Linux内核构建系统所支持的目标 <br />由前面的概述可以知道,不管是kconfig步骤、还是kbuild步骤、还是安装都可藉由"make targets"形式的命令来完成。所以,分析一下所有可能的targets是必要的。内核构建系统所支持的目标完整列表可由命令 "make help" 打印出来。这里仅简单的列出最
<br />yihect | 11 元月, 2011 12:59<br />在编译 vmlinux 以及 modules 的过程中,构建系统已经产生了很多输出:vmlinux elf 映像、System.map符号表文件、各种内部模块等等。这些东西是编译支持任何架构的Linux内核过程中都要产生的,但是如果要想真正去使用Linux内核,光用前面产生的 vmlinux 是不行的。因为前面产生的 vm
<br />yihect | 10 元月, 2011 16:38<br />回到处理 vmlinux 的那条规则上面来,在处理好 $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main)等目标后,构建系统接下来要处理的就是 vmlinux.o 和 $(kallsyms.o) 了。<br />内核构建系统之所以要在链接 vmlinux 之前,去链接出vmlinux
<br />yihect | 11 元月, 2011 15:28<br />这个系列的上一片文章介绍了为讲述构建目标而举的第一个例子:"make ARCH=arm CROSS_COMPILE=arm-linux-"。接下来,让我们来看看另外一个例子,也就是编译外部模块的命令:"make ARCH=arm CROSS_COMPILE=arm-linux- -C KERNELDIR M=dir"。<b
<br />yihect | 09 元月, 2011 10:47<br />回到我们的主框架上面来,讨论完配置目标的处理后,就轮到框架中 "ifeq ($(config-targets),1)-endif" 块的 else 部分了。这部分是为了处理那些构建目标以及和.config无关的目标,其对这些目标处理的代码都位于框架中的E部分中。在E部分之前,有一个不小的 "ifeq ($(dot-conf
<br />yihect | 11 元月, 2011 09:39<br />通过前面的分析,我们已经知道,在 Linux 中,区分有两种模块:内部模块和外部模块。我们这里说的对目标 modules 的处理指的就是要编译出那些内部模块,对外部模块的处理我们将在后面叙述。我们还知道,不管是内部模块,还是外部模块,其编译都要分两个阶段进行。阶段一生成组成模块的对应 .o 文件和 .mod 文件,阶段二要







