ChinaUnix.net
相关文章推荐:

linux内核启动流程

Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码,主要作用是检查CPU ID, Architecture Type,初始化BSS等操作,并跳到start_kernel函数。在执行前,处理器应满足以下状态: r0 - should be 0 r1 - unique architecture number MMU - off I-cache - on or off D-cache – off /* 部分源代码分析 */ /* 内核入口点 */ ENTRY(ste...

by flyinox - Linux文档专区 - 2011-12-31 18:52:48 阅读(2492) 回复(1)

相关讨论

1.在顶层MAKEFILE中,包含include $(srctree)/arch/$(ARCH)/Makefile (此Makefile中head-y=arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o) vmlinux-init := $(head-y) $(init-y) vmlinux-main := $(core-y) $(libs-y) $(drivers-y) $(net-y) vmlinux-all := $(vmlinux-init) $(vmlinux-main) vmlinux-lds := arch/$(ARCH)/kernel/vmlinux.lds 从以上,可以看出,内核首先执行的是head.S 2.第一阶段 从head.S到...

by 罗克炬 - Linux文档专区 - 2009-04-03 15:37:42 阅读(1249) 回复(0)

计算机在启动时都是先加电,然后进行硬件检测并引导操作系统的初始化程序,然后操作系统的初始化程序程负责读入系统内核并建产系统的运行环境.一这过程相对来说比较复而且与CPU体系结构相关,这里我们通过linux并以i386的体系结构对这一过程进行较为详细的说明. 一、硬件检测 当 机器加电后它首先执行BIOS(基本输入输出系统)中的代码,BIOS首先执行加电自检程序(POST),当自检通过程便完成了硬件的启动。POST程序 通过对内存及其...

by shenxiaocheng - Linux文档专区 - 2008-11-06 08:41:32 阅读(1380) 回复(0)

从后往前看下编译生成zImage的过程,我们可以找到程序的入口还是那个很重要 链接文件,找到它,生成zImage所在的目录是kernel\arch\arm\boot\compressed\ Make过程为....ld -p -X -T vmlinux.lds head.o misc.o head-s3c2410.o piggy.o libgcc.o -o vmlinux 然后是用二进制工具objcopy把vmlinux制作成可执行的二进制映像文件zImage 这样在我们就去kernel\arch\arm\boot\compressed\目录下去找到vmlinux.lds文件 如果没有编译就不会...

by fly123456789 - Linux文档专区 - 2008-09-16 22:38:51 阅读(983) 回复(0)

见: http://blog.csdn.net/dansen_xu/archive/2007/08/13/1740738.aspx Author-------Dansen-----xzd2734@163.com 从后往前看下编译生成zImage的过程,我们可以找到程序的入口还是那个很重要 链接文件,找到它,生成zImage所在的目录是kernel\arch\arm\boot\compressed\ Make过程为....ld -p -X -T vmlinux.lds head.o misc.o head-s3c2410.o piggy.o libgcc.o -o vmlinux 然后是用二进制工具objcopy把vmlinux制作成可执行的二进制...

by LinuxSmartphone - Linux文档专区 - 2008-05-08 17:48:14 阅读(694) 回复(0)

Author-------Dansen-----xzd2734@163.com 从后往前看下编译生成zImage的过程,我们可以找到程序的入口还是那个很重要 链接文件,找到它,生成zImage所在的目录是kernel\arch\arm\boot\compressed\ Make过程为....ld -p -X -T vmlinux.lds head.o misc.o head-s3c2410.o piggy.o libgcc.o -o vmlinux 然后是用二进制工具objcopy把vmlinux制作成可执行的二进制映像文件zImage 这样在我们就去kernel\arch\arm\boot\compressed\目录下...

by j1j1h1 - Linux文档专区 - 2007-09-23 16:28:05 阅读(686) 回复(0)

我分析的是2.4.19的内核版本,是xscale的平台,参考了网上很多有价值的帖子,也加入了自己的一些看法, 陆续总结成文字,今天是第一篇: 内核一般是由bootloader来引导的,通过bootloader启动内核一般要传递三个参数, 第一个参数放在寄存器0中,一般都为0,r0 = 0; 第二个参数放在寄存器1中,是机器类型id,r1 = Machine Type Number; 第三个参数放在寄存器2中,是启动参数标记列表在ram中的起始基地址; bootloader首先要将ra...

by liangyuyong - Linux文档专区 - 2009-03-11 17:55:00 阅读(906) 回复(0)

我分析的是2.4.19的内核版本,是xscale的平台,参考了网上很多有价值的帖子,也加入了自己的一些看法, 陆续总结成文字,今天是第一篇: 内核一般是由bootloader来引导的,通过bootloader启动内核一般要传递三个参数, 第一个参数放在寄存器0中,一般都为0,r0 = 0; 第二个参数放在寄存器1中,是机器类型id,r1 = Machine Type Number; 第三个参数放在寄存器2中,是启动参数标记列表在ram中的起始基地址; bootloader首先要将ra...

by nuaagcj - Linux文档专区 - 2008-05-16 17:31:18 阅读(818) 回复(0)

================================ Author: taoyuetao Email: [email=tao_yuetao@yahoo.com.cn][color="#0000ff"]tao_yuetao@yahoo.com.cn[/email] Blog: http://www.eetop.cn/blog/?11145 2006-11-01 ================================ 我分析的是2.4.19的内核版本,是xscale的平台,参考了网上很多有价值的帖子,也加入了自己的一些看法, 陆续总结成文字,今天是第一篇: 内核一般是由bootloader来引导的,通过bootloader...

by xiaxinmoto - Linux文档专区 - 2008-03-19 15:26:14 阅读(943) 回复(0)

我在看Linux内核Start.S时遇到以点开头的,不知道这有什么含义?比如说 .type stat #function 跪求高人!!!

by 秋的良序 - 嵌入式开发 - 2014-04-01 11:03:03 阅读(968) 回复(3)

见: http://blog.csdn.net/dansen_xu/archive/2007/08/13/1741576.aspx 还是从编译链接生成vmlinux的过程来看吧,由一大堆.o文件链接而成,第一个就是 kernel\arch\arm\kernel\head-armv.o ,而且我们还看到了 lds链接文件kernel\arch\arm\vmlinux.lds,先把它分析一下 ENTRY(stext) //入口点是stext 应该就在head-armv.s中了 SECTIONS { . = 0xC0008000; //基址,是内核开始的虚拟地址 .init : { /* Init code and data *...

by kaka007981 - Linux文档专区 - 2009-11-20 13:36:43 阅读(951) 回复(0)