【华为云技术分享】鲲鹏初学者开始指南
【摘要】 鲲鹏是华为海思发布的基于ARM架构授权,由华为自主设计完成的鲲鹏芯片;华为海思在今年1月初发布的一款兼容ARM指令集的服务器芯片鲲鹏920,配备了64个物理核,当前SPECint Benchmark评测跑分超过930分,将性能纪录提升了25%,创造计算性能纪录,是业界最高性能ARM-Based CPU。
1. 了解鲲鹏
鲲鹏芯片是华为海思发布的基于ARM架构授权,由华为自主设计完成的鲲鹏芯片;华为海思在今年1月初发布的一款兼容ARM指令集的服务器芯片鲲鹏920,配备了64个物理核,当前SPECint Benchmark评测跑分超过930分,将性能纪录提升了25%,创造计算性能纪录,是业界最高性能ARM-Based CPU。
当前鲲鹏不再仅仅局限于鲲鹏系列服务芯片,更是包含了服务器软件在多元计算架构平台上的完整软硬件生态和云服务生态;该生态汇聚了芯片、服务器、操作系统、应用软件、云服务和解决方案等,更多信息请点击如下链接:
2. 鲲鹏兼容性
2.1 鲲鹏当前OS兼容性
产品与服务 |
软件 |
兼容的软件版本 |
Taishan服务器 |
centos |
centos 7.4 |
centos 7.5 |
||
centos 7.6 |
||
centos 8.0及以上 |
||
canonical |
ubuntu 16.04.3及以上 |
|
ubuntu 18.04.1及以上 |
||
中标麒麟 |
中标麒麟高级服务器操作系统软件(ARM64版)V7U5 |
|
中标麒麟高级服务器操作系统软件(ARM64版)V5U5 |
||
中标麒麟高级服务器操作系统软件(ARM64版)V7U6 |
||
中标麒麟高级服务器操作系统软件(ARM64版)V5U6 |
||
深之度 |
深度操作系统ARM服务器版软件V15.2 |
|
深度操作系统ARM桌面版软件V15.5SP2及以上 |
||
深度操作系统ARM服务器版软件V15.3及以上 |
||
红旗 |
红旗Asianux服务器操作系统V7.0 |
|
凝思 |
Linx 6.0 arm安全版及以上 |
|
Linx 6.0 arm通用版及以上 |
||
泰山国心 |
TaishanOS 7 |
|
TaishanOS 8及以上 |
||
普华 |
普华服务器操作系统(arm版)V5.0 |
|
普华服务器操作系统(arm版)V5.1及以上 |
||
银河麒麟 |
银河麒麟V4.0.2及以上 |
|
湖南麒麟 |
麒麟操作系统 V3-ARM及以上 |
|
移动苏研所 |
BC-Linux 7.4 |
|
BC-Linux 7.6 |
||
华为云ECS RC6云服务器 |
centos |
centos 7.4 |
centos 7.5 |
||
centos 7.6 |
||
Euler OS |
Euler OS 2.8 |
|
Fedora |
Fedora 29 |
|
Ubuntu |
ubuntu 18.04 |
2.2 鲲鹏当前语言兼容性
当前鲲鹏兼容C、C++、golang、JAVA、python、ruby、erlang、Lua、shell、php、perl、kotlin、Js等语言。
2.3 鲲鹏当前应用兼容性
软件类型 |
能否运行在鲲鹏 |
开源软件 |
鲲鹏软件生态主页已经列举了兼容鲲鹏的常用开源软件列表,也可咨询社区获取ARM v8指令集的兼容情况。 |
商用软件 |
咨询软件供应商(ISV)获取ARM v8指令集的兼容情况。 |
3. 如何在鲲鹏上运行第一个应用
3.1 搭建编译环境
- 搭建鲲鹏开发环境有三种方式:
- 方式一:在华为云购买基于鲲鹏芯片的RC6规格云服务器即可。
- 方式二:在X86平台安装虚拟环境模拟器构建鲲鹏编译环境,如果采用QEMU模拟器,请参考QEMU安装指南。
- 方式三:在X86平台搭建交叉编译环境,详细指导请参考Linaro GCC编译工具安装指导。
3.2 编译和运行
如果程序源代码由编译类语言如C/C++等编写而成,有如下方式:
- 方式一:对于采用在华为云购买基于鲲鹏处理器的弹性云服务器(RC6 ECS)的方式,可在ECS云服务器上通过gcc/g++等编译工具编译源代码生成可执行程序 并运行。具体可参考在鲲鹏上使用编程语言-C语言
- 方式二:对于采用在X86平台上利用交叉编译工具编译的方式,将源代码编译成aarch64平台可执行的程序并拷贝至鲲鹏云服务器运行。具体可参考搭建鲲鹏开发环境中的“linux x86主机上安装目标为鲲鹏服务器的交叉编译环境” 。
- 方式三:对于采用在X86平台上运行一个兼容ARMv8指令集的模拟环境的方式,在模拟环境中编译成可执行程序,然后将编译的可执行程序拷贝至鲲鹏云服务器运行。
3.3 帮助与分享
对于软件从X86平台移植到鲲鹏平台的问题,您可以参考鲲鹏生态软件,那里汇聚了常用的开源软件的移植指南供参考。另外华为云提供了鲲鹏论坛,您既可以从中寻找资源学习、交流互动、也可以将您的经验和知识共享至论坛。
4. 如何发布鲲鹏应用(正在建设中,敬请期待)
- 方式对于以镜像形式发布的应用,请参考制作虚拟机镜像
- 对于以Docker容器形式发布的应用,请参考制作Docker容器镜像
- 发布应用至鲲鹏云市场
5. 学习与帮助
当前华为云已经提供了鲲鹏社区,您可以在这里学习鲲鹏相关知识和寻求对应的帮助,您也可以将您的经验和知识共享至社区,交流学习和成长。鲲鹏社区即将提供沙箱Openlab环境供您体验和学习鲲鹏,敬请期待。
6. FAQ
(1) 为什么X86上应用不能直接运行在鲲鹏上?
例如,使用C语言编写的一个简单的Hello World程序,在x86_64的机器上编译通过后,将所生成的可执行程序直接拷贝至基于鲲鹏芯片的服务器上去执行,会报文件格式不正确之类的错误从而导致程序无法执行,原因是程序的编译平台和和程序的运行平台不同导致的,x86_64的机器CPU是基于复杂指令集的amd64架构,而基于鲲鹏芯片的服务器的CPU是基于精简指令集的架构的,这两种指令集的执行读取等寻址方式不同,所以两个不同指令集结构的机器,不能相互解释执行。
(2) 鲲鹏能否运行Windows操作系统
暂不支持
(3) 如何判断我的应用是否能运行在鲲鹏上?
请参考上述的鲲鹏兼容性,通过比较应用的目标OS,应用的编程语言鲲鹏是否兼容来确定。
(4) 基于鲲鹏的云服务器价格是否比同等基于X86的优惠?
基于鲲鹏芯片带来的低功耗、低成本等优势,原则上基于鲲鹏的云服务器价格是比同等基于X86的优惠,具体以华为云官网发布信息为准。