当前位置: 首页 > 软件库 > 开发工具 > 编译器 >

tokell

ELF+ARM动态链接器
授权协议 GPLv3
开发语言 C/C++
所属分类 开发工具、 编译器
软件类型 开源软件
地区 国产
投 递 者 印成天
操作系统 Linux
开源组织
适用人群 未知
 软件概览

封闭式系统智能化中间件

非智能系统智能化中间件

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

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

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

  1. ROM层。

  2. ELL层。

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

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

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

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

  4. 全面支持C99标准。

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

 相关资料
  • 静态链接方法:静态链接的时候,载入代码就会把程序会用到的动态代码或动态代码的地址确定下来 静态库的链接可以使用静态链接,动态链接库也可以使用这种方法链接导入库 动态链接方法:使用这种方式的程序并不在一开始就完成动态链接,而是直到真正调用动态库代码时,载入程序才计算(被调用的那部分)动态代码的逻辑地址,然后等到某个时候,程序又需要调用另外某块动态代码时,载入程序又去计算这部分代码的逻辑地址,所以,这

  • 在编译Linux程序时,我们经常会看到动态链接和静态链接这两个术语。这两个术语中是我Linux的共享函数库(shared libraries)相关的。共享函数库就象Windows系统里的.dll文件,它里面包含有很多程序常用的函数。为了方便程序开发和减少程序的冗余,程序当中就不用包含每个常用函数的拷贝,只是在需要时调用系统中共享函数库中常函数功能即可。这种方式我们称之为动态链接(Dynamical

  • 动态链接库(也称为DLL)是Microsoft Windows最重要的组成要素之一。大多数与Windows相关的磁盘文件如果不是程序模块,就是动态链接程序。迄今为止,我们都是在开发Windows应用程序;现在是尝试编写动态链接库的时候了。许多您已经学会的编写应用程序的规则同样适用于编写这些动态链接库模块,但也有一些重要的不同。 动态链接库的基本知识 正如前面所看到的,Windows应用程序是一个可

  • 我在firebase控制台中创建了一个动态链接,这个动态链接指向Play Store中的一个应用程序(即我使用这个链接通过WhatsApp与其他用户共享这个应用程序)。另外,我通过getDynamicLink方法在我的应用程序中接收深度链接。 当我向动态链接追加查询参数()时,Play Store页面将出现,但我无法在link方法中接收深度链接,该链接为空。如何将查询参数追加到动态链接并在安装时重

  • 在HTML中,通过 a 元素来定义超链接,并通过 a 元素的 href 属性来定义链接的目标地址。 <a href = "http://www.www.waibo">百度</a> 默认情况下,超链接是蓝色字体并带有下划线,被访问后,链接文本会变为紫色并且也带有下划线。并且,默认的链接样式平淡无奇,通过CSS,可以设置超链接的各种属性,如字体、颜色、背景等,并结合链接伪类,便可以实现各种各样的动态

  • 主要内容:静态链接库,动态链接库,总结我们知道,C、C++程序从源文件到生成可执行文件需经历 4 个阶段,分别为预处理、编译、汇编和链接,本节将重点围绕链接阶段,对静态链接库和动态链接库做详细的讲解。 有关链接操作的具体细节,感兴趣的读者可阅读《 到底什么是链接,它起到了什么作用?》和《 符号——链接的粘合剂》这两节。总的来说链接阶段要完成的工作,就是将同一项目中各源文件生成的目标文件以及程序中用到的库文件整合为一个可执行文件。 通过

  • 我有一个代码就像 到目前为止,我还有各种其他方法,它们与上面的方法相同,只是过滤器不同。有些方法具有附加过滤器,有些方法具有不同的过滤器或没有过滤器。 我是否可能创建条件所需的过滤器集合并动态传递。并且集合中的所有过滤器都应用于流。我不想硬编码正在应用的过滤器列表。我想让它基于配置。我如何做到这一点?

  • 以前,我使用下面的动态链接在我的应用程序中启动一个想要的页面 然而,这有一个缺点,对于没有安装我的应用程序的用户。对于没有安装我的应用程序的用户,这是当他点击链接时发生的情况 转到Google Play商店 安装应用程序。 启动应用程序。将转到应用程序的第一页,而不是在“深度链接”中指定的所需页面。 后来,我意识到Firebase动态链接可以解决我的问题。如果我使用下面的URL,一切正常。 对于第