• 内核镜像zImage是如何生成的


    转载:内核镜像zImage是如何生成的

    内核镜像zImage是如何生成的

    前面两篇文章介绍了vmlinux 文件生成,这个文件必然是核心的linux内核,但是它是ELF格式的文件,其中包含了可执行的二进制指令(内核),调试信息,符号表等内容。 vmlinux的生成是编译内核的关键,但是得到的vmlinux文件是不能烧写到flash中执行的。主要的问题是,没有一个环境来加载ELF格式的文 件。而zImage则是可以加载执行的二进制代码。

    总的来说zImage和vmlinux的关系是:

    1、zImage是可可运行的二进制内核镜像

    2、zImage是由vmlinux处理、压缩得到的

    3、zImage的大小比vmlinux小很多


    下面介绍一下如何由vmlinux处理得到zImage

    a、将vmlinux文件中的调试信息、符号表除去生成一个Image的镜像文件

    /usr/local/arm/3.4.1/bin/arm-linux-objcopy -O binary -R .note -R .comment -S  vmlinux arch/arm/boot/Image


    b、将Image镜像用gzip压缩工具进行压缩,得到piggy.gz的文件

    gzip -f -9 < arch/arm/boot/compressed/../Image > arch/arm/boot/compressed/piggy.gz


    c、piggy.S文件中直接将上面一步的piggy.gz文件包含在其中,将piggy.S编译得到piggy.o文件

    /usr/local/arm/3.4.1/bin/arm-linux-gcc -Wp,-MD,arch/arm/boot/compressed/.piggy.o.d  

    -nostdinc -isystem /usr/local/arm/3.4.1/bin/../lib/gcc/arm-linux/3.4.1/include

    -D__KERNEL__ -Iinclude  -mlittle-endian -D__ASSEMBLY__ -mapcs-32 -mno-thumb-interwork

    -D__LINUX_ARM_ARCH__=4 -march=armv4 -mtune=arm9tdmi -msoft-float    

    -c -o arch/arm/boot/compressed/piggy.o

    arch/arm/boot/compressed/piggy.S


    d、将piggy.gz head.o misc.o三个文件链接成文内核镜像

    /usr/local/arm/3.4.1/bin/arm-linux-ld -EL   --defsym zreladdr=0x30008000 --defsym params_phys=0x30000100

    -p --no-undefined -X /usr/local/arm/3.4.1/bin/../lib/gcc/arm-linux/3.4.1/libgcc.a -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


    e、再次去除掉镜像中的符号、注释、调试信息的内容

    /usr/local/arm/3.4.1/bin/arm-linux-objcopy -O binary -R .note -R .comment

    -S  arch/arm/boot/compressed/vmlinux

    arch/arm/boot/zImage

  • 相关阅读:
    数字证书学习笔记
    在微服务中使用领域事件
    用Gradle构建Spring Boot项目
    七言 朱雀
    作为分享者
    Spring Framework学习要点摘抄
    Servlet 3.0/3.1 中的异步处理
    Java集合学习笔记
    Java垃圾回收学习笔记
    你究竟有多了解Spring?
  • 原文地址:https://www.cnblogs.com/pengdonglin137/p/3293877.html
Copyright © 2020-2023  润新知