linux内核启动流程分析(三),Linux内核启动流程分析(一).docx

本文详细解析了Linux内核从源码到生成可执行映像的步骤,包括vmlinux的生成、去除调试信息、gzip压缩、自解压代码编译等过程,最终形成可用于S3C2410平台的uImage。此外,还概述了内核启动的基本分析。
摘要由CSDN通过智能技术生成

Linux内核启动流程分析(一)

很久以前分析的,一直在电脑的一个角落,今天发现贴出来和大家分享下。由于是word直接粘过来的有点乱,敬请谅解!S3C2410?Linux?启动分析(第一阶段) HYPERLINK "/sustzombie/article/details/5626780" \o "arm linux 内核生成过程" arm?linux?内核生成过程?1.?依据arch/arm/kernel/vmlinux.lds?生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试信息、符号表的最初的内核,大小约23MB;?命令:arm-linux-gnu-ld?-o?vmlinux?-T?arch/arm/kernel/vmlinux.lds??arch/arm/kernel/head.o??init/built-in.o??--start-group???arch/arm/mach-s3c2410/built-in.o???kernel/built-in.o??????????mm/built-in.o???fs/built-in.o???ipc/built-in.o???drivers/built-in.o???net/built-in.o??--end-group?.tmp_kallsyms2.o?2.?将上面的vmlinux去除调试信息、注释、符号表等内容,生成arch/arm/boot/Image,这是不带多余信息的linux内核,Image的大小约3.2MB;???命令:arm-linux-gnu-objcopy?-O?binary?-S??vmlinux?arch/arm/boot/Image?3.将?arch/arm/boot/Image?用gzip?-9?压缩生成arch/arm/boot/compressed/piggy.gz大小约1.5MB;??????????命令:gzip?-f?-9?<?arch /arm/boot/compressed/../Image?>?arch/arm/boot/compressed/piggy.gz?4.?编译arch/arm/boot/compressed/piggy.S?生成arch/arm/boot/compressed/piggy.o大小约1.5MB,这里实际上是将piggy.gz通过piggy.S编译进piggy.o文件中。而piggy.S文件仅有6行,只是包含了文件piggy.gz;??命令:arm-linux-gnu-gcc?-o?arch/arm/boot/compressed/piggy.o?arch/arm/boot/compressed/piggy.S?5.?依据arch/arm/boot/compressed/vmlinux.lds?将arch/arm/boot/compressed/目录下的文件head.o?、piggy.o?、misc.o链接生成?arch/arm/boot/compressed/vmlinux,这个vmlinux是经过压缩且含有自解压代码的内核,大小约1.5MB;?命令:arm-linux-gnu-ld?zreladdr=0params_phys=0-T?arch/arm/boot/compressed/vmlinux.lds?arch/arm/boot/compressed/head.o?arch/arm/boot/compressed/piggy.o?arch/arm/boot/compressed/misc.o?-o?arch/arm/boot/compressed/vmlinux?6.?将arch/arm/boot/compressed/vmlinux去除调试信息、注释、符号表等内容,生成arch/arm/boot/zImage大小约1.5MB;这已经是一个可以使用的linux内核映像文件了;?命令:arm-linux-gnu-objcopy?-O?binary?-S??arch/arm/boot/compressed/vmlinux??arch/arm/boot/zImage?7.?将arch/arm/boot/zImage添加64Bytes的相关信息打包为arch/arm/boot/uImage大小约1.5MB;?命令:?./mkimage?-A?arm?-O?linux?-T?kernel?-C?none?-a?0-e?0-n?'Linux-'?-d?arch/arm/boot/zImage?arch/arm/boot/uImage

内核启动分析:本文着重分析S3C241

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值