Android知识

Go 汇编层面的初始化

2017-09-28  本文已影响46人  x_zhaohu

读《Go 1.5 源码剖析》时,记录的学习笔记,特此声明。

在执行一个 go 程序时,不是一开始就调用 main.main, 还要执行一些准备操作。
如下所示:

  1. 先执行如下 汇编代码 go/src/runtime/rt0_linux_amd64.s
rt0_linux_amd64.s.png
  1. 根据 $runtime.rt0_go(SB) 查找到了go/src/runtime/asm_amd64.s ,如下这段代码就是要找的真正目标,正是它完成了初始化和运行时启动。
asm_amd64.s.png

至此,由汇编对特定平台实现的引导过程就全部完成。后续内容基本上都是由 Go 代码实现的。

注: 还要执行一系列 Go 代码,之后才会执行 main.main

精彩文章,持续更新,请关注微信公众号:

帅哥美女扫一扫
上一篇 下一篇

猜你喜欢

热点阅读