一:迁移代码工具是什么?
鲲鹏代码迁移工具是一款可以简化应用迁移到鲲鹏架构服务器过程的工具。主要面向鲲鹏平台的开发者、用户和第三方待迁移软件提供方开发工程师,对海量代码进行快速地自动化扫描和分析,提供专业的迁移指导报告。同时能够自动分析出需修改的代码内容,井指导如何修改,帮助开发者实现高效的代码迁移。同时支持原生开发代码亲和检查等能力。
二:代码迁移工具功能
1.软件迁移评估:
软件迁移的评估的目标:非源码软件包(RPM/DEB/JAR/ZIP/TAR等)
2.源码迁移
源码迁移可扫描用户源码,包括C/C++/汇编/Fortran等,识别出这些源码中需要迁移的部分,给出迁移报告,修改建议一键替换
3.软件包重构
与软件迁移评估有一定关系,将待迁移的RPM/DEB包自动重构为鲲鹏版本,提供已有鲲鹏软件或直接获取鲲鹏依赖文件重构,最后获取重构后的鲲鹏软件
4.专项软件迁移
可和源码迁移配套起来,对部分专项开源软件提供一键快速迁移(CentOS7.6)及迁移参考,大数据、数据库、web、HPC
5.鲲鹏亲和分析
包括64位运行模式检查,结构体字节对齐检查,结构体缓存行对齐检查,内存一致性检查,构建亲和检查
二:应用场景
1.为c/c++代码提供迁移指导
2.对最常用的x86汇编指令进行识别并转换
3.部署方式
4.如何访问与使用
代码迁移工具提供两种用户访问模式,安装时由用户选择,同一套环境只能安装一种:
• CLI方式:
通过命令行方式使用代码迁移工具各功能,最终移植分析结果输出到 .csv和.json文件,用户可以根据迁移建议进行处理。
•Web/IDE插件方式:
通过浏览器/IDE远程使用代码迁移工具各功能,最终迁移分析结果输出到.csv和.html文件(可下载)中,用户可以根据迁移建议进行处理。如果当前用户已经在登录使用,重复登录会挤掉前面的登录。 用户的各种分析和迁移任务都在自己的工作空间内完成。
5.源码迁移
- 识别C/C++/Fortran/汇编源代码,提供修改建议;Make、CMake、Automake编译选项、编译宏的解析及迁移建议
- 支持100%lntrinsic函数转换( 6000+个),包括MMX、SSE及AVX Intrinsic等
- 支持Fortran内联函数和语法特性以及编译选项的识别
- 支持Go语言迁移,对go程序使用cgo编译部分中的编译选项、宏定义提供兼容性检查,给出修改建议
支持python、Java、Scala语言,对程序中的动态链接库提供兼容性检查,给出修改建议
C/C++:
• x86Intrinsic函数实现了一键式自动迁移;
•平台相关宏扫描;
•构建文件编译选项、宏定义识别。
Fortran:
- Fortran内联函数识别,Fortran语法特性解析;
- 构建文件中针对Fortran语言中所使用编译选项的。
Go:
- 对编译选项、宏定义、依赖库提供兼容性检查,一键下载替换。
Python/Java/Scala:
- 识别源码中的加载动态库的函数
- 识别依赖库文件,进行兼容性检查,一键下载替换
6.源码迁移业务流程
输入:
源码文件:
- C/C++/Fortran/Python/Go/Java/Scala源代码文件
- 汇编源代码文件
- 软件构建文件
分析处理:
源码文件扫描分析:
- 用户C/C++/Fortran/python/Go/Java/Scala需要迁移部分识别
- 汇编源码同功能指令集、兼容指令集迁移部分
- 从构建工程配置文件中识别需要迁移/替代的编译依赖库
- 根据知识库给出迁移指导建议
输出:
报告文件:
- 分析文件、分析时间戳等信息
- 关键修改内容综述,简单说明
- 详细csv或html报告,需修改的代码行号,更改点及指导建议
- 编译依赖库迁移或替换建议
- 迁移预估工作量
7.源码迁移:

8.源码迁移报告

9.汇编翻译
- 支持汇编代码自动识别,一键替换迁移,一分钟完成汇编代码的迁移。
- x86汇编常用指令100%识别,1000+指令自动翻译,覆盖80%的常用应用场景。
10.软件迁移评估
- 识别检查x86平台软件安装包或已安装软件中使用的动态链接库、静态链接库和可执行文件并将检查出的文件与工具内置的依赖文件列表进行比较匹配,从而为用户提供迁移建议
- Jar、war包扫描增强,识别鲲鹏平台已经支持的依赖,提供更精准的依赖兼容替换建议
自动扫描并分析软件包、已安装软件,提供可迁移性评估报告;在报告中对鲲鹏平台支持的依赖库给出提示
11.软件迁移评估流程
a,输入——软件安装包:
- rpm/deb/tar/jar/war软件包
- 已安装软件的安装路径
b,分析处理——软件安装包扫描分析:
- 分析软件包中的文件依赖及安装过程中的文件依赖
- 评估依赖文件的可迁移性(白名单机制)
c,输出——报告文件:
- 版本、分析时间戳等信息
- 依赖文件列表(可迁移性分类)
12.软件包重构
- 识别分析用户x86软件包构成,重构适用于鲲鹏平台软件包,并输出重构报告
软件包重构功能主要对包内包含的.so文件,.a文件和.jar/.war文件进行分析,会对其中需要适配鲲鹏平台的依赖文件进行替换,然后执行软件包的重构,最终输出鲲鹏兼容版本的软件安装包。
如果包中需要的依赖不确定是否鲲鹏平台兼容,可在鲲鹏平台验证后,手动上传依赖配置文件,进行重构操作。
13.专项软件迁移
- 一键下载开源代码,并编译、构建为鲲鹏软件包
- 支持大数据、数据库、web、高性能计算等场景主流软件的一键编译迁移
“一键式软件迁移”支持的软甲范围扩充30%
14.内存一致性
- 静态检查,检查用户软件迁移到鲲鹏平台可能存在的弱内存序问题并修复
- 自动修复功能,更新用户使用的GCC编译器,在用户软件的编译过程中自动完成弱内存序问题的修复
- 支持下载静态检查工具产生的BC文件,可根据实际需要进行BC 文件扫描分析
- 静态检查工具、编译器自动修复工具组合使用,可一键式修复
- 支持自动生成目标工程的中间文件,不需要用户修改编译脚本
15.源码迁移1
操作步骤 :上传源码,选择 C/C++、make参数 ,执行扫描操作,对扫描出源码需修改文件进行逐个修改,然后进行保存。
16.源码迁移2
python语言扫描,识别出工程中使用的依赖库,对其兼容性进行判断,样例报告中可直接下载使用依赖库。
Go语言扫描,识别出工程中使用的依赖库,对于可兼容性替换的依赖库给出提示建议。
16.软件迁移与软件包重构
软件迁移评估:找出so依赖库和可执行文件,并评估so依赖库和可执行文件的可迁移性。
软件包重构:用户上传需要重构的软件包和依赖配置文件,重构完成后,用户可以直接下载重构后的rpm软件包,然后在鲲鹏平台上直接使用。
17.内存一致性
操作步骤 :上传源码,填写编译命令,点击下一步,开始 BC文件解析,选择生成的BC文件,进行弱内存问题检查。
18.专项软件迁移
根据提示信息,进行环境配置,当满足环境检查的时候,下方开始迁移按钮置于可点击状态,点击开始迁移,开始该软件的迁移工作。
一:迁移代码工具是什么?
鲲鹏代码迁移工具是一款可以简化应用迁移到鲲鹏架构服务器过程的工具。主要面向鲲鹏平台的开发者、用户和第三方待迁移软件提供方开发工程师,对海量代码进行快速地自动化扫描和分析,提供专业的迁移指导报告。同时能够自动分析出需修改的代码内容,井指导如何修改,帮助开发者实现高效的代码迁移。同时支持原生开发代码亲和检查等能力。
二:代码迁移工具功能
1.软件迁移评估:
软件迁移的评估的目标:非源码软件包(RPM/DEB/JAR/ZIP/TAR等)
2.源码迁移
源码迁移可扫描用户源码,包括C/C++/汇编/Fortran等,识别出这些源码中需要迁移的部分,给出迁移报告,修改建议一键替换
3.软件包重构
与软件迁移评估有一定关系,将待迁移的RPM/DEB包自动重构为鲲鹏版本,提供已有鲲鹏软件或直接获取鲲鹏依赖文件重构,最后获取重构后的鲲鹏软件
4.专项软件迁移
可和源码迁移配套起来,对部分专项开源软件提供一键快速迁移(CentOS7.6)及迁移参考,大数据、数据库、web、HPC
5.鲲鹏亲和分析
包括64位运行模式检查,结构体字节对齐检查,结构体缓存行对齐检查,内存一致性检查,构建亲和检查
二:应用场景
1.为c/c++代码提供迁移指导
2.对最常用的x86汇编指令进行识别并转换
3.部署方式
(guest OS)
4.如何访问与使用
代码迁移工具提供两种用户访问模式,安装时由用户选择,同一套环境只能安装一种:
• CLI方式:
通过命令行方式使用代码迁移工具各功能,最终移植分析结果输出到 .csv和.json文件,用户可以根据迁移建议进行处理。
•Web/IDE插件方式:
通过浏览器/IDE远程使用代码迁移工具各功能,最终迁移分析结果输出到.csv和.html文件(可下载)中,用户可以根据迁移建议进行处理。如果当前用户已经在登录使用,重复登录会挤掉前面的登录。 用户的各种分析和迁移任务都在自己的工作空间内完成。
5.源码迁移
支持python、Java、Scala语言,对程序中的动态链接库提供兼容性检查,给出修改建议
C/C++:
• x86Intrinsic函数实现了一键式自动迁移;
•平台相关宏扫描;
•构建文件编译选项、宏定义识别。
Fortran:
Go:
Python/Java/Scala:
6.源码迁移业务流程
输入:
源码文件:
分析处理:
源码文件扫描分析:
输出:
报告文件:
7.源码迁移:
8.源码迁移报告
9.汇编翻译
10.软件迁移评估
自动扫描并分析软件包、已安装软件,提供可迁移性评估报告;在报告中对鲲鹏平台支持的依赖库给出提示
11.软件迁移评估流程
a,输入——软件安装包:
b,分析处理——软件安装包扫描分析:
c,输出——报告文件:
12.软件包重构
软件包重构功能主要对包内包含的.so文件,.a文件和.jar/.war文件进行分析,会对其中需要适配鲲鹏平台的依赖文件进行替换,然后执行软件包的重构,最终输出鲲鹏兼容版本的软件安装包。
如果包中需要的依赖不确定是否鲲鹏平台兼容,可在鲲鹏平台验证后,手动上传依赖配置文件,进行重构操作。
13.专项软件迁移
“一键式软件迁移”支持的软甲范围扩充30%
14.内存一致性
15.源码迁移1
操作步骤 :上传源码,选择 C/C++、make参数 ,执行扫描操作,对扫描出源码需修改文件进行逐个修改,然后进行保存。
16.源码迁移2
python语言扫描,识别出工程中使用的依赖库,对其兼容性进行判断,样例报告中可直接下载使用依赖库。
Go语言扫描,识别出工程中使用的依赖库,对于可兼容性替换的依赖库给出提示建议。
16.软件迁移与软件包重构
软件迁移评估:找出so依赖库和可执行文件,并评估so依赖库和可执行文件的可迁移性。
软件包重构:用户上传需要重构的软件包和依赖配置文件,重构完成后,用户可以直接下载重构后的rpm软件包,然后在鲲鹏平台上直接使用。
17.内存一致性
操作步骤 :上传源码,填写编译命令,点击下一步,开始 BC文件解析,选择生成的BC文件,进行弱内存问题检查。
18.专项软件迁移
根据提示信息,进行环境配置,当满足环境检查的时候,下方开始迁移按钮置于可点击状态,点击开始迁移,开始该软件的迁移工作。