tokell - ELF+ARM动态链接器


GPLv3
Linux
C/C++

软件简介

封闭式系统智能化中间件

非智能系统智能化中间件

ARM+ELF动态链接器+动态加载器

在 封闭式操作系统中代码被烧录到设备后内存地址空间就被固定了下来,并且系统无法从外部(如文件)加载应用程序,例如车载计算机系统一般是封闭的,系统无法
从外部设备加载应用程序,再例如大家熟悉的非智能手机跟智能手机的区别就在于后者可以任意安装应用程序,这是开放式式系统的一个优点,封闭式系统不具备这
个优点从而使其局限性非常大。这个项目的发起目的是为了让封闭式操作系统可以自由地加载应用程序,我们将该过程称为“智能化过程”。

加载应用程序并执行的这个过程,从编程语言角度来说的话就是让“A”程序可以调用“B”的函数让其可以产生交互,或反之亦然。它的架构共有两层:

  1. ROM层。

  2. ELL层。

封闭式系统属于ROM层,而应用程序属于ELL层。这两层通过一个动态链接器相连,为此我们实现了一个ELF动态链接器,让封闭式系统可以与应用程序交互,不仅如此,通过动态链接器可以让应用层与系统之间任意调用,这个解决方案有以下特点:

  1. 方便APP内存调度等管理问题,由于加载的可重定位的elf目标文件,通过动态链接器,可以将APP转移到任意区域中运行。

  2. 以“应用程序”为单位加载,一个APP被划分为多个动态链接库,库可以由其他模块互相调用,运行时由动态链接器将其连接。

  3. 由于加载的是可重定位的elf目标文件,可以做到单函数级别的调度,基于该方案可以实现更为强劲的线程。

  4. 全面支持C99标准。

  5. 适用于封闭式操作系统。