实现原理
应用迁移工具&亲和分析工具
应用迁移工具&亲和分析工具采用相同架构,具体如图1所示。
模块名 |
功能 |
---|---|
Nginx |
开源第三方组件,在Web方式下需要安装部署。 处理用户前端的HTTPS请求,向前端提供静态页面,或者向后台传递用户输入数据,并将扫描结果返回给用户。 |
Django |
开源第三方组件,在Web方式下需要安装部署。 Django是RESTful框架,将HTTP请求转换成RESTful API并驱动后端功能模块。同时Django提供用户认证、管理功能。 |
Main Entry |
命令行方式入口。 负责解析用户输入参数,并驱动各功能模块完成用户指定的作业。 |
依赖字典检查 |
根据“用户软件包扫描”输入的SO文件列表,对比SO依赖字典,得到所有SO库的详细信息。 |
C/C++/ASM/Fortran/Go/解释型语言源码检查 |
扫描分析用户软件目标二进制文件依赖的源文件集合,根据编译器版本信息,检查源码中使用的架构相关的编译选项、编译宏、builtin函数、attribute、用户自定义宏等,确定需要迁移的源码及源文件。包括:
|
编译器检查 |
根据编译器版本确定x86与鲲鹏平台相异的编译宏、编译选项、builtin函数、attribute等列表。 |
用户软件迁移指导 |
|
软件迁移评估 |
自动扫描并分析软件包(非源码包)、已安装的软件,提供可迁移性评估报告。 |
源码迁移 |
自动分析源码包,提供迁移至鲲鹏916/920平台迁移修改建议。 |
专项软件迁移 |
根据华为积累的基于解决方案分类的软件迁移方法汇总。 |
软件包重构 |
对用户x86软件包进行重构分析,产生适用鲲鹏平台的软件包。 |
64位运行模式检查 |
将原32位应用向鲲鹏平台迁移并转换为64位应用的迁移检查并给出修改建议。 |
字节对齐检查 |
对用户软件中的结构体变量的内存分配进行检查。 |
缓存行对齐检查 |
对齐检查是对C/C++源码中结构体变量进行128字节对齐检查,提升访存性能。 |
内存一致性检查 |
根据用户需要检查或修复内存一致性问题:
说明:
BitCode文件简称BC文件,是编译器中间表示(IR,Intermediate Representation)的字节码文件格式。 |