From 7ece2b9d3a8cf8ff4295cd37e65fd89e2b2ec69a Mon Sep 17 00:00:00 2001 From: Austin Date: Wed, 6 Apr 2022 02:59:59 +0000 Subject: [PATCH] update zh-cn/device-dev/kernel/kernel-small-bundles-linking.md. Signed-off-by: Austin --- zh-cn/device-dev/kernel/kernel-small-bundles-linking.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zh-cn/device-dev/kernel/kernel-small-bundles-linking.md b/zh-cn/device-dev/kernel/kernel-small-bundles-linking.md index d0d9e4768a..d5f8e4ed93 100644 --- a/zh-cn/device-dev/kernel/kernel-small-bundles-linking.md +++ b/zh-cn/device-dev/kernel/kernel-small-bundles-linking.md @@ -22,6 +22,7 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及 ## 运行机制 **图1** 动态加载流程 + ![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)。 @@ -31,6 +32,7 @@ OpenHarmony系统的动态加载与链接机制主要是由内核加载器以及 3. 动态链接器自举并查找应用程序依赖的所有共享库并对导入符号进行重定位,最后跳转至应用程序的e_entry(或base + e_entry),开始运行应用程序。 **图2** 程序执行流程 + ![zh-cn_image_0000001133264664](figures/zh-cn_image_0000001133264664.png) 1. 加载器与链接器调用mmap映射PT_LOAD段; -- GitLab