未验证 提交 7ece2b9d 编写于 作者: A Austin 提交者: Gitee

update zh-cn/device-dev/kernel/kernel-small-bundles-linking.md.

Signed-off-by: NAustin <liaozhiqi7@huawei.com>
上级 52f6790c
...@@ -22,6 +22,7 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及 ...@@ -22,6 +22,7 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及
## 运行机制 ## 运行机制
**图1** 动态加载流程 **图1** 动态加载流程
![zh-cn_image_0000001133104502](figures/zh-cn_image_0000001133104502.png) ![zh-cn_image_0000001133104502](figures/zh-cn_image_0000001133104502.png)
1. 内核将应用程序ELF文件的PT_LOAD段信息映射至进程空间。对于ET_EXEC类型的文件,根据PT_LOAD段中p_vaddr进行固定地址映射;对于ET_DYN类型(位置无关的可执行程序,通过编译选项“-fPIE”得到)的文件,内核通过mmap接口选择base基址进行映射(load_addr = base + p_vaddr)。 1. 内核将应用程序ELF文件的PT_LOAD段信息映射至进程空间。对于ET_EXEC类型的文件,根据PT_LOAD段中p_vaddr进行固定地址映射;对于ET_DYN类型(位置无关的可执行程序,通过编译选项“-fPIE”得到)的文件,内核通过mmap接口选择base基址进行映射(load_addr = base + p_vaddr)。
...@@ -31,6 +32,7 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及 ...@@ -31,6 +32,7 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及
3. 动态链接器自举并查找应用程序依赖的所有共享库并对导入符号进行重定位,最后跳转至应用程序的e_entry(或base + e_entry),开始运行应用程序。 3. 动态链接器自举并查找应用程序依赖的所有共享库并对导入符号进行重定位,最后跳转至应用程序的e_entry(或base + e_entry),开始运行应用程序。
**图2** 程序执行流程 **图2** 程序执行流程
![zh-cn_image_0000001133264664](figures/zh-cn_image_0000001133264664.png) ![zh-cn_image_0000001133264664](figures/zh-cn_image_0000001133264664.png)
1. 加载器与链接器调用mmap映射PT_LOAD段; 1. 加载器与链接器调用mmap映射PT_LOAD段;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册