进行vxworks下的动态链接研究,如何选择方向,求建议
最近我们实验室正在做一个项目,由于不能公开,所以就不说了,平台是嵌入式的vxworks
然后这个项目还没开始,里面有些相关技术跟动态链接有关,正好我本科生毕设要开题了,老师就给我定了一个题目,叫
【vxworks中动态链接的方法设计与实现】
具体描述是:
【分析vxworks下可执行文件的格式和程序运行中进程的代码结构,设计合适的方案将一段不属于本进程的代码,动态加载并链接到自己创建的进程中】
我感到很迷惑,在6.x版本以上,动态链接都已经实现好了,可以自己在workbench中创建一个shared libaray,需要研究啥呢。导师说,动态链接是一个很好的题目,可以有很多可研究的地方,不一定要拘泥于他给的题目,具体要我自己来挖掘,而且还不能把项目中的东西写太多进去。
于是我找了很多资料,但是一头雾水,所以想请各路大神帮忙,一起讨论一下动态链接的研究,可以向哪些方面发展。最终选题要既能有一定的深度,体现一定的工作量,又要兼顾本科生的水平限制
以下是我自己的想法,请批评校正:
1、分析vxworks中的可执行文件的格式:我通读了《程序员的自我修养》,对于linux下的ELF文件格式已经比较熟悉了,在tornado和workbench中,都是gcc编译器,那编出来的目标文件和连接形成的可执行文件是不是跟linux下差不多呢? 我觉得这个目标文件/可执行文件的分析工作肯定是工作的一个重要部分,但是不知道要全部搞清楚vxworks下的这些东西是不是很困难?可能需要多少工作量?
2、分析进程的代码结构:vxworks中我印象中好像只有一个进程,更小的分支叫任务,可以理解为线程,我的理解就是分析vxworks的任务在内存中的代码/数据段的分布,以及内存中的段与文件系统的映射关系等等。我的疑惑是,这些段的分布该用什么工具来查看?《自我修养》那本书里可以用shell命令来查看进程的情况,tornado或者workbench提供了这样的交互用的shell了吗?
3、我的理解就仅限于上面两个阶段了,下面该如何做,向什么方向进行研究,就不太清楚了,是研究动态链接的性能优势?(貌似动态还没有静态连接快) 还是动态链接对vxworks实时性、可靠性的影响,比如vxworks内存隔离本来就不好,动态链接下有什么变化呢。
希望各路大神多多和我交流,我虽然接触嵌入式不久,但对此非常感兴趣
留下QQ 251280吴司令
谢谢!
[解决办法]
这个没啥可研究的.本来,vxworks从5.x起就可以加载一个模块了.这个模块可以导出一些符号,后加载的模块可以直接用.