鲲鹏迁移微认证学习笔记
半价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++代码迁移
本课应该是整个迁移中最有技术难度的部分,我也看了二遍,简要记录一下
编译脚本。涉及编译选项、编译宏
builtin函数,需移植的不多,主要关注SSE intrinsic函数;已有2个工程AVX/SSE2Neon可解决大部分问题,少部分自己动手
内联汇编函数
工具介绍。人与动物的区别就是人会用工具,会制造工具。Porting Advisor可以“完整”扫描出要迁移的点,给出建议。
就这些了
第三课 Java/Python代码迁移
Java和Python是类似的,所以这里就记录一个
JDK。建议是升级到新版本,有现成的。对于老版本JDK,和业务定制JDK,坚持要用的,拿到源码编译JDK
jar包里调用了so库的,不用说,so库要处理的
不同架构下的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课比较难,实验完成是没有问题的。但要自己独立完成的话,还有很多要消化的
- 点赞
- 收藏
- 关注作者
评论(0)