首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Over-the-Air / Over-the-Wire自动化软件更新(热代码加载)策略

Over-the-Air / Over-the-Wire自动化软件更新(热代码加载)策略
EN

Stack Overflow用户
提问于 2011-07-08 11:57:28
回答 1查看 872关注 0票数 1

我有一个Linux系统(作为我的项目的一部分),在那里我可能必须执行热代码加载,即通过无线(s.a.通过WiFi)或有线(通过局域网)下载软件。这个软件有两个部分,一部分是用C++编写的,另一部分是用Erlang编写的。C++部分通过TCP/IP (一组6-7多个私有协议)与一些外部实体进行通信。我主要需要进行热加载的部分是与这些外部实体对话的C++部分。C++部分通过端口与Erlang进行通信(目前正在开发中),但我希望将其更改为NIF(将来某个时候)。

有人能为C++功能的热代码加载提供一些建议吗?我知道Erlang能够做到这一点,但我的理解是,该功能不会扩展到用C++编写的部分。

此外,我需要确保包含专有协议实现的C++模块来自“有效来源”。什么才是正确的策略呢?

我想,我的需求并不少见,所以如果存在这样的模块、框架、库,我会很高兴被指向这些。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-08 13:38:40

我不知道有没有任何现成的库。在大多数情况下,C/C++中的代码加载是使用动态库完成的,您可以使用dlopen从代码中加载动态库。然后,您可以使用dlsym查找符号的地址。请注意,C++确实存在名称混乱,这会使查找符号变得困难。通常最好创建包装在外部"C“中的普通函数,这些函数为您创建对象,然后您可以像使用任何其他对象一样使用这些对象。

如果您想确定代码是有效的,那么您可能应该研究一下公钥/私钥加密技术。您使用私钥对代码进行签名(基本上是创建二进制文件的加密散列),加载代码的软件使用公钥检查签名。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6619804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档