linux 解压后会跳转到,kernel执行地址: head.S中入口执行。解压之前的操作流程呢?

1. linux kernel 被uboot load到内存后的入口函数

arch/arm/boot/compressed/vmlinux.lds.in中定义了linux 入口:

OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{

....

这里的start定义在 arch/arm/boot/compressed/head.s中

start:
        .type    start,#function
        .rept    7
        mov    r0, r0
        .endr
   ARM(        mov    r0, r0        )
   ARM(        b    1f        )
 THUMB(        adr    r12, BSYM(1f)    )
 THUMB(        bx    r12        )
 THUMB(        bx    r12        )

.word    0x016f2818        @ Magic numbers to help the loader
        .word    start            @ absolute load/run zImage address
        .word    _edata            @ zImage end address
 THUMB(        .thumb            )
1:        mov    r7, r1            @ save architecture ID
        mov    r8, r2            @ save atags pointer

......

*
 * The C runtime environment should now be setup sufficiently.
 * Set up some pointers, and start decompressing.
 *   r4  = kernel execution address
 *   r7  = architecture ID
 *   r8  = atags pointer
 */
        mov    r0, r4
        mov    r1, sp            @ malloc space above stack
        add    r2, sp, #0x10000    @ 64k max
        mov    r3, r7
        bl    decompress_kernel
        bl    cache_clean_flush
        bl    cache_off
        mov    r0, #0            @ must be zero
        mov    r1, r7            @ restore architecture number
        mov    r2, r8            @ restore atags pointer
        mov    pc, r4            @ call kernel

decompress_kernel实现在misc.c中,可以看到,misc中同样定义了

unsigned int __machine_arch_type; 这个在kernel的setup.c中已经有定义了?unsigned int __machine_arch_type __read_mostly;

因此, 可以看到arch\arm\boot\compressed中代码编译是独立于kernel image的
---------------------
作者:thegameisfives
来源:CSDN
原文:https://blog.csdn.net/thegameisfives/article/details/9019503
版权声明:本文为博主原创文章,转载请附上博文链接!

linux kernel decompress_kernel 启动解压相关推荐

  1. Linux按压缩率大小排序,Linux下常用压缩 解压命令与压缩比率对比

    常用的格式有: tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar 只是打包动作,相当于归档处理,不做压缩:解压也一样 ...

  2. Linux下常见文件解压方法及命令

    Linux下常见文件解压方法及命令时间:2007-01-08 18:34来源:CSDN作者:bitsCN编辑字体:[大 中 小]1.以.a为扩展名的文件: #tar xv file.a 2.以.z为扩 ...

  3. 4核a5中断linux,Cortex A5 MPcore寄存器TPIDRPRW复位值不为零,造成Linux Kernel不能启动的问题...

    问题现象: Cortex A5 MPcore寄存器TPIDRPRW复位值不为零,造成Linux Kernel不能启动的问题. 问题原因分析: 由于Linux Kernel内核配置使能了CONFIG_T ...

  4. 解压文件到服务器是什么意思,linux中zip文件解压命令是什么

    linux中zip文件解压命令是什么 发布时间:2020-10-15 14:35:15 来源:亿速云 阅读:102 作者:小新 这篇文章给大家分享的是有关linux中zip文件解压命令是什么的内容.小 ...

  5. 解压报错 你需要从上一压缩卷启动解压命令以便解压 解决方案及WinRAR怎么分卷压缩详解

    一.解决方案: 1.问题描述: 解压的时候报错,提示"你需要从上一压缩卷启动解压命令以便解压" 2.解决: 会出现这个问题,是因为你正在解压的文件为分卷压缩生成的压缩包.首先你要确 ...

  6. Linux下常用压缩 解压命令和压缩比率对比

    https://www.cnblogs.com/joshua317/p/6170839.html Linux下常用压缩 解压命令和压缩比率对比 常用的格式有: tar, tar.gz(tgz), ta ...

  7. 【Linux】压缩与解压zip

    [Linux]压缩与解压zip 1.背景 2.zip压缩 3.unzip解压 1.背景 zip是工作中最常见的一种压缩格式. 本博客介绍在linux下的使用. 2.zip压缩 打印zip的使用说明: ...

  8. 浅谈Linux下各种压缩 解压命令和压缩比率对比

    Linux下压缩.解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.rar .zip格式. 比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而 ...

  9. Arch Linux下解决zip解压乱码的方法

    Arch Linux下解决zip解压乱码的方法 完全转载于一个大佬的论坛发帖,感觉很有用但没有搜到CSDN的相关文章所以转过来,瑟瑟发抖 安装unarchiver,用unar解压zip文件.(给kde ...

最新文章

  1. 暑期集训1:C++STL 例2:UVA-10935
  2. 收集的网络上大型的开源图像处理软件代码(提供下载链接)
  3. Android中Handler的使用
  4. Linq to sql和lambda
  5. 课堂练习——最大联通之数组
  6. 服务器升级内存跟cpu之后性能更差,云服务器cpu重要还是内存重要
  7. 关于python import的sys.path路径问题
  8. 性能测试界“网红”云性能测试服务,了解一下?
  9. php报错提醒,php报错问题
  10. 计算机表格怎么加减乘除,如何在Word表格中进行加减乘除
  11. [Java] ArrayList、LinkedList、Vector的区别
  12. 提醒:安装MS11-100 .NET Framework高危漏洞补丁一定要所有服务器一起安装
  13. 【转】Pycharm的激活
  14. RHEL6.5 部署DNS服务器
  15. 工业AI落地场景案例实战,飞桨EasyDL让工业更智能
  16. 基于图像的三维重建——针孔相机模型(1)
  17. 总结HTMLT5高级的新特性
  18. BTC txid与vote的关系
  19. centos8 免密登录
  20. python设置刻度间隔不等_Matplotlib绘图遇到时间刻度就犯难?现在,一次性告诉你四种方法...

热门文章

  1. Python毕业设计选题推荐
  2. Win10怎么隐藏任务栏时间 如何看不到右下角时间
  3. stm32L1151用cube配置ADC
  4. Autcad 2020,2019 一键安装64位破解版
  5. goim 架构与定制
  6. go每日新闻(2021-12-01)——Go 1.18新特性前瞻:原生支持Fuzzing测试
  7. 服务器主板准系统怎么拆,【技嘉B85评测】主板准系统及电源装箱步骤完成-中关村在线...
  8. 神经科学(第三版)书籍,神经系统相关书籍
  9. selenium打开浏览器后闪退解决
  10. JS返回前一页(或关闭本页面,返回首页)