鲲鹏迁移微认证学习笔记

举报
黄生 发表于 2020/08/01 17:12:38 2020/08/01
【摘要】 半价14元买了一个微认证:鲲鹏软件迁移实践。还会送50元京东卡,相当于免费还有奖励。迁移就是搬家。本来其实你住的好好的,房租从来是一分不少按时给,突然房东说,我看你的好日子过的太久了,早看你不爽了,get out,不租给你了。那没办法,只能搬家了。搬新家其实也是挺麻烦的,容易搬出啥问题,或者丢个啥东西什么的。但租人房子总是有受人制约的隐患,碰上无德房东更是不按规矩,搞得很没有安全感。搬了新家后

半价14元买了一个微认证:鲲鹏软件迁移实践。还会送50元京东卡,相当于免费还有奖励。

迁移就是搬家。

本来其实你住的好好的,房租从来是一分不少按时给,突然房东说,我看你的好日子过的太久了,早看你不爽了,get out,不租给你了。

那没办法,只能搬家了。搬新家其实也是挺麻烦的,容易搬出啥问题,或者丢个啥东西什么的。但租人房子总是有受人制约的隐患,碰上无德房东更是不按规矩,搞得很没有安全感。搬了新家后,也不用再看房东脸色了

闲话少说,下面是学习笔记

第一课 2020.08.01

一.鲲鹏与X86的指令差异,导致程序不能在对方平台上直接运行

1.高级语言对应的汇编代码指令不同 mov/ldr 2指令长度不同 变长16,24/定长32 3使用的寄存器不同

二、迁移5步走

1.准备:收集硬件、软件技术栈;申请环境(Openlab直接申请远程环境)

2.分析:对第1步中软件技术栈的深入分析

3.编译:编译型语言和解释型语言的不同处理。显然解释型语言不要太方便,主要考虑其可能使用的依赖库。要感谢发明JAVA的人。一次编译到处运行,这里好处就出来了。

4.测试

5.认证

整个下来,我个人认为的难点

1.商业软件。如中间件、数据库等,厂商尤其是大厂商不太可能提供鲲鹏版本。需要替换。替换的效果可能引起客户担忧。需要形成足够规模的,形成强说服力的案例。

第二课 2020.08.23

C/C++代码迁移

本课应该是整个迁移中最有技术难度的部分,我也看了二遍,简要记录一下

  1. 编译脚本。涉及编译选项、编译宏

  2. builtin函数,需移植的不多,主要关注SSE intrinsic函数;已有2个工程AVX/SSE2Neon可解决大部分问题,少部分自己动手

  3. 内联汇编函数

  4. 工具介绍。人与动物的区别就是人会用工具,会制造工具。Porting Advisor可以“完整”扫描出要迁移的点,给出建议。

  5. 就这些了

第三课 Java/Python代码迁移

Java和Python是类似的,所以这里就记录一个

  1. JDK。建议是升级到新版本,有现成的。对于老版本JDK,和业务定制JDK,坚持要用的,拿到源码编译JDK

  2. jar包里调用了so库的,不用说,so库要处理的

  3. 不同架构下的JVM参数的配置值的差异要关注。比如X86下,和ARM下,Xss(stack size)参数,一个是1M,一个是2M。默认就是这样

第四课 Maven仓软件构建 一句话:配置远程仓库,优先使用鲲鹏Maven仓

第五课 2020.08.31

软件包迁移

软件包,这里举例是发行版的rpm包,其他都类似,如deb,gz等。

步骤:

1扫描(使用Dependency Advisor工具扫描)

2编译(使用前面学到的本领)

3打包(rpmrebuild生成SPEC文件,rpm2cpio解压,包替换,rpmbuild打包)

4验证

借助Porting Advisor自动化以上步骤


课程上完后,云学院有沙箱实验室可以练习第2到第5课学习的内容

这里要赞一下,实验室将需要的所有环境(包括硬件、软件、配置等,当然都在华为云上)都准备好了,

万事俱备,只差你上去操练了

第2课比较难,实验完成是没有问题的。但要自己独立完成的话,还有很多要消化的


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200