RT-Smart 类似于Linux,可以动态的加载与运行应用程序 elf 文件,也就是内核与应用可以分开,一个内核,多个应用,不同的应用可以按需加载执行
应用程序 elf 文件,有的是静态链接编译的,有的是动态链接编译的,动态链接编译的,elf 的运行依赖动态共享库 (.so)
本篇讲解一下 RT-Smart 上 elf 文件的介绍 与 动态加载原理,动态加载属于内核的【基础设施】,对于一般用户来讲其实是【透明】的,不过了解动态加载的原理与流程,可以更好的理解与掌握操作系统
RT-Thread 版本: 当前 最新 master 主线版本
BSP : bsp/qemu-virt64-aarch64
开启 RT-Smart
dfs : V2 版本,开启 pagecache
开启 ldso 动态加载
使用开启了 ldso 功能的 musl gcc 交叉编译工具链编译内核与应用程序
既然 elf 文件是可执行的,但是我在 RT-Smart msh 命令行输入 xxx.elf
文件时,执行失败,提示找不到这个命令,这是什么原因?
显然 elf 文件执行并不像 shell 命令那样执行
那么 elf 文件到底是怎么执行的呢?