系列文章目录
第二章 鲲鹏应用移植
目录
目录
总结
前言
本文章主要针对 华为鲲鹏认证 中部分知识点进行框架式汇总,如有错误或不足请评论指正。文章仅作学习参考,动态更新当中。
一、软件迁移原理及迁移过程
1.软件迁移原理
编译型语言:C/C++ GO Swift
编译型语言从X86处理器迁移到鲲鹏处理器必须经过重新编译。
解释型语言:Java Python Ruby PHP
解释型语言迁移一般不需要重新编译。但是如果调用了编译型语言所开发的SO库,则 SO库需要重新编译
2.迁移过程
五个阶段:
1.技术分析:
A 制定迁移计划
B 确定当前系统使用的CentOS版本与鲲鹏处理器是否兼容
C 申请或准备调试环境
D 分析C/C++代码中调用的boost库能否移植
2.编译迁移
3.功能验证
4.性能调优
5.规模商用
二、鲲鹏迁移指导
1.鲲鹏代码迁移工具介绍
1.代码迁移工具是什么:
是提供客户应用迁移到基于鲲鹏916/920服务器的工具;
仅支持X86 Linux软件迁移,不支持Windows
2.代码迁移工具有什么用:
软件迁移评估:
评估可移植性;
源码迁移:
检查用户软件C/C++源码和x86汇编源码并指导用户如何移植源文件
检查用户软件C/C++软件结构工程文件,并指导用户如何移植文件
检查用户C/C++软件,构建工程文件使用的链接库并提供可移植信息
软件包重构;
专项软件评估;
鲲鹏亲和分析;
3.代码迁移流程
输入:
分析处理:
输出:
生成内容:
A html格式的移植报告
B 源码移植建议
D csv格式的移植报告
2.编译型语言应用迁移
1.c/c++ 类
移植流程:源码分析,根据建议修改源码,编译安装,测试验证
2. Fortran类
3.解释型语言应用迁移
基于解释型语言开发的应用,例如Java,Python无需修改和重新编译;
依赖SO文件需要移植。
4.华为二进制翻译工具 ExaGear
ExaGear是华为自研动态二进制翻译工具,将X86指令翻译为ARM64指令并执行
三、容器迁移指导
1.Docker
1.什么是容器:
容器是一种轻量级、可移植、自包含的软件打包技术
2.什么是Docker
Docker是最受大众关注的容器技术,容器标准。
3.Docker相关概念:
Repository
Image
volume
4.Docker容器创建:
(1)Docker pull 获取镜像
(2)Dockerfile 构建镜像
5.容器删除
可通过“docker rm <容器ID>“删除已停止的容器
6.dockerfile
Dockerfile 是一个文本格式的配置文件,包含创建镜像所需要的全部指令。基于在 Dockerfile中的指令,用户可以快速创建自定义的镜像。
1)dockerfile一般包含四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动 指令
2)dockerfile中,第一条指令必须为FROM指令
3)完成Dockerfile编写后,可以通过dockerbuild命令来创建镜像
2.isula
1.isula通用引擎特点
.A、升级不中断业务
.B、增强安全性和调测特性
.D、快速灵活
2.isula部署模式
.A、应用容器
.B、安全容器
.C、系统容器
3.容器迁移背景及原理
1.同一架构下的容器迁移
将容器备份为镜像快照,然后将该镜像推送到仓库或者保存本地
2.不同架构下的容器兼容性
跨平台容器无法运行,X86迁移到鲲鹏平台,容器无法执行。
4.容器迁移主要流程
1.鲲鹏平台构建Redis容器应用
(Redis:是跨平台的非关系型数据库)
鲲鹏平台上通过编写Dockerfile构建新的Redis镜像并运行。
2.容器配置步骤
isulad安装,容器与镜像管理,isula-build构建容器镜像,验证应用镜像
四、迁移常见问题及解决思路
1.可能导致编译错误或告警的原因
1.编译选项不同
2.数据类型不同
3.汇编指令
五、开发者支持套件
1.DevKit
开发套件Dekit包括 鲲鹏开发框架插件,编译调试插件,毕昇编译器,毕昇JDK,鲲鹏性能分析工具 等