栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

鲲鹏HCIA学习笔记【二】鲲鹏应用移植

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

鲲鹏HCIA学习笔记【二】鲲鹏应用移植

文章目录
        • 2 鲲鹏应用移植
          • 2.1 软件迁移原理和迁移过程
            • 2.1.2 软件迁移原理概述
            • 2.1.3 软件迁移过程概述
          • 2.2 鲲鹏分析扫描工具介绍
          • 2.3 容器迁移指导
            • 2.3.1 容器相关概念
          • 2.4 迁移常见问题及解决思路
          • 2.4 迁移常见问题及解决思路

2 鲲鹏应用移植 2.1 软件迁移原理和迁移过程 2.1.2 软件迁移原理概述

鲲鹏处理器与x86处理器的指令差异

鲲鹏处理器指令集是定长的

x86处理器指令集是不定长的

2.1.3 软件迁移过程概述

要提醒的一点是,如果要迁移的系统包含SSE、MMX、IPP、AVX等x86指令,则移植的工 作量需要单独评估

自研C/C++代码的移植工作量,可以使用迁移工具先做代码扫描,需要修改的代码按照25 行/人天的生产率评估

Java/Python代码如果调用了C/C++等语言开发的外部库,需要将外部库的迁移单独评估工 作量,生产率可以参考开源组件或自研C/C++代码的迁移工作

C/C++代码是编译型语言,源码需要使用编译器重新编译,按照鲲鹏处理器的指令集和程序结构生成可执行程序

如果代码中调用了汇编指令,使用了x86平台扩展的SSE、MMX、AVX等指令,则需要对指令逐条移植

在x86和鲲鹏处理器下,C/C++语言中默认的char类型有所不同,x86下默认的char类型是有符号的char类型,而鲲鹏处理器下则是无符号的char,因此需要移植修改。当然,也可以增加编译选项屏蔽这种差异

Builtin函数是编译器提供的一套函数。编译器实现的builtin函数通常是通过cpu的指令实现 某些频繁调用的函数,以达到很高的性能

-m64是AMD CPU编译64位程序的选项,在鲲鹏处理器下要修改为-mabi=lp64

-march是指定cpu的指令集,broadwell是x86的一款cpu,实用鲲鹏处理器需要指定为 armv8-a

2.2 鲲鹏分析扫描工具介绍

Kunpeng Porting Advisor

“软件包重构”,“专项软件迁移”, "增强功能"只支持Web使用方式

工具的安装方式有Web和CLI两种,Web方式下支持Web浏览器访问和CLI命令行方式访问,CLI方式下只支持CLI命令行访问。其中Web浏览器访问支持所有功能,CLI命令行访问支持软件迁移评估和源代码迁移功能。

鲲鹏代码迁移工具部署方式:

单机部署

可将鲲鹏代码迁移工具部署在用户的开发、测试的x86物理服务器上或基于鲲鹏916/920的物理服务器上。

也可以部署在x86架构或鲲鹏架构的ECS服务器上。

鲲鹏代码迁移工具WEB

HTTPS默认端口8084

系统默认用户名为portadmin,默认密码Admin@9000

为了提升工具运行效率,上述业务流程采取多线程并发处理

工具内部后台处理逻辑如下:

检查用户软件Makefile中的编译链接

与“依赖库白名单”进行比较

产生SO依赖库移植信息

根据用户输入信息依次进行“C/C++源码扫描”

产生用户源码移植列表

根据软件移植规则字典对软件代码输出逐条修改建议

2.3 容器迁移指导 2.3.1 容器相关概念

容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。

定义:容器是容器image运行时的实例

所有的容器共享同一个Host Os,使得容器在体积上要比虚拟机小很多

查找镜像

docker search centos

获取镜像
docker pull arm64v8/centos:7

查看拉取官方镜像

docker images arm64v8/centos:7

启动容器

docker run -it arm64v8/centos:7 /bin/bash

查看容器运行中和未运行的容器

docker ps -a

提交和查看新镜像

docker commit -a "huawei.com" -m "redis images" f4603f1f918a t_arm64v8/centos:7

查看新构建的基础镜像

docker images

2.4 迁移常见问题及解决思路

cker commit -a “huawei.com” -m “redis images” f4603f1f918a t_arm64v8/centos:7`

查看新构建的基础镜像

docker images

2.4 迁移常见问题及解决思路 暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015596.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号