判断题
1.Java/Python的虚拟机不支撑再鲲鹏上源码编译,只能使用yum方式安装。(T)
2.如果jar包中有对SO库的依赖,则迁移jar包的时候要重新编译aarch64版本的SO库。(T)
3.Maven官方中央仓库(http://repo.maven.apache.org/maven2/)上部分jar包含x86依赖,无法在鲲鹏上直接使用,需再鲲鹏上重新编译或从鲲鹏Maven仓上下载。(T)
4.X86和鲲鹏的指令存在差异,所以x86上编译的程序无法直接在鲲鹏上运行。(T)
5.有些源码文件带有configure文件,它是用来检测安装平台的目标特征。运行./configure一般用来生成Makefile文件。(T)
6.微架构师计算机软件和硬件之间的接口。(F)
7.MakeFile是C/C++下的编译构建脚本,而CMakelist.txt非编译构建脚本。(F)
8.纯Java或Python实现的代码迁移过程中不需要做其他额外的处理,直接就可以完成迁移。(T)
9.在x86和鲲鹏处理器下,C/C++语言中默认的char类型有所不同,x86下默认的char类型是有符号的char类型,而鲲鹏处理器下则是无符号的char类型。(T)
10.在x86和鲲鹏处理器下C/C++语言中默认的char类型有所不同,x86下默认的char类型是有符号的char类型,而鲲鹏处理器下则是无符号的char类型。(T)
11.典型的如C/C++/Go语言都属于编译型语言,编译型语言开发的程序在从X86处理器迁移到鲲鹏处理器时必须经过重新编译才能运行。(T)
12.X86下C/C++中的内联汇编语句可以不用迁移,直接在鲲鹏处理器下运行。(F)
Maven本地仓默认存储在${user.home}/.m2下。(T)
单选题
1.下列哪个不是numpy案例中的迁移步骤。(D)
A.Porting Advisor分析扫描工具扫描源码。
B.安装Cython>=0.29.2依赖。
C.设置编译选项export CFLAGS=‘-std=c99’。
D.设置编译选项export CFLAGS=‘-std=c11’。
2.以下说法正确的是?(A)
A.华为鲲鹏软件仓库地址是http://mirrors.huaweicloud.com/kunpeng
B.华为云提供基于CentOS的华为鲲鹏软件仓库,华为对rpm软件包质量负责,出了质量问题由华为承担。
C.Porting Advisor可以自动从鲲鹏Maven上下载依赖文件,对于鲲鹏Maven上没有的依赖文件,Porting Advisor也能自动编译,无需手工编译。
3.下面哪些编译选项是鲲鹏不支持的?(D)
A.-fsigned-char
B.-fPIC
C.-mabi=lp64
D.-m64
4.以下哪个工具可以将X86平台rpm重构成鲲鹏平台rpm?(C)
A.Tuning kit
B.JDK
C.Porting Advisor
D.GCC
5.下面哪个工具不属于鲲鹏开发套件?(D)
A.分析扫描工具
B.代码迁移工具
C.性能调优工具
D.Vtune
6.下列哪个选项可以设置CodeCache的大小?(D)
A.Xms
B.Xmx
C.NewSize
D.RessrvedCodeCacheSize
7.下面说法正确的是?(B)
A.X86使用的是简单指令集
B.迁移准备阶段需要收集软件栈信息和申请迁移环境
C.Dependency Advisor分析扫描工具不能对jar进行分析扫描
8.关于编译迁移的说法不对的是?(C)
A.C/C++代码需要重新编译
B.Java代码需要配置JDK
C.Java代码需要修改编译选项
D.Python属于解释型语言
9.软件从X86移植到鲲鹏上为什么要重新编译?(C)
A.文件格式不同
B.代码不一样
C.指令集不同
D.硬件配置不同
10.下列哪项是鲲鹏平台RPM重构流程?(A)
A.扫描->编译->打包->验证
B.编译->扫描->打包->验证
C.扫描->打包->编译->验证
D.扫描->验证->编译->打包
11.Porting-Advisor代码迁移工具能够实现以下哪种功能?(B)
A.观测运行时系统资源的动态变化
B.扫描C/C++代码中的MakeFile文件、汇编语句及SSE intrinsic语句
C.热点函数调用栈分析
D.指导用户完成性能调优
12.C/C++代码编译过程中在哪一个缓解生成汇编代码?(B)
A.预处理环节
B.编译环节
C.汇编环节
D.链接环节
13.类Debian系统提供了什么命令来安装、卸载、升级deb软件包?(B)
A.rpm
B.dpkg
C.tar
D.yum
14.关于内联汇编的移植说法错误的是?(C)
A.可使用汇编指令方式进行移植
B.存在同功能builtin函数移植
C.可通过指定鲲鹏处理器的编译选项进行移植
D.内联汇编语句通常以_asm_或asm关键字开头
15.Maven仓搜索顺序为?(A)
A.本地仓库->远程仓库->中央仓库
B.本地仓库->中央仓库->远程仓库
C.远程仓库->本地仓库->中央仓库
D.远程仓库->中央仓库->本地仓库
16.Python源码编译后得到的是?(D)
A..py
B..pyx
C..so
D..pyc
17.Maven全局配置文件路径为?(B)
A.
u
s
e
r
.
h
o
m
e
/
.
m
2
B
.
{user.home}/.m2 B.
user.home/.m2B.{maven.home}/conf/settings.xml
C./home/settings.xml
D./root/settings.xml
18.下面哪个是鲲鹏上使用的SIMD技术?(D)
A.SSE
B.MMX
C.AVX
D.NEON
19.以下说法不对的是?(B)
A.鲲鹏和X86使用的汇编指令有差异
B.鲲鹏的指令是定长的,24位
C.X86的指令是不定长的
D.鲲鹏和X86使用的寄存器有差异
20.C/C++编译构建不包括哪个步骤?(D)
A.源码获取
B.编译构建脚本
C.编译环境准备、goc编译器安装
D.安装部署JDK
21.C/C++代码迁移不会出现以下哪类移植项?(B)
A.编译选项移植、编译宏移植
B.JDK的移植
C.内联汇编移植
D.SSE intrinsic函数移植
22.类RedHat系统提供了什么命令来安装、卸载和升级rpm软件包?(A)
A.rpm
B.dpkg
C.tar
D.apt-get
23.高级语言经过编译器编译后得到的是?(C)
A.机器码
B.二进制
C.汇编代码
D.指令
多选题
1.netty-all-4.1.34.jar迁移过程中涉及的改动有哪些?(ABCD)
A.重新编译apr模块
B.需要屏蔽boringssl编译
C.需要重新编译openssl模块
D.需要重新编译libressl模块
2.下面哪些可以再Openlab网站获得支持?(ABC)
A.申请远程环境
B.兼容性清单查询
C.鲲鹏展翅认证
D.Deb软件包下载
3.Linux应用程序通常由下列哪些文件组成?(ABCD)
A.二进制文件可执行文件
B.库文件
C.配置文件
D.帮助文件
4.下面哪些属于常见的java代码构建软件?(ABC)
A.maven
B.gradle
C.ivy
D.vscode
5.关于rpmbuild打包目录,下面描述正确的是?(ABD)
A.BUILDROOT目录存放需要打包进rpm包的文件和目录
B.RPMS目录存放最终生成的rpm包
C.RPM目录存放最终生成的rpm包
D.SPECS目录存放SPEC文件
6.鲲鹏开发套件包含哪些功能?(ABC)
A.代码迁移
B.分析扫描
C.性能调优
D.代码替换
7.以下属于C/C++代码工程中的编译构建脚本是?(ABD)
A.Makefile文件
B.src源码文件
C.CMakeList.txt文件
D.autogen.sh文件
8.使用高版本的JDK版本的原因包含?(ABC)
A.生产环境更加注重稳定性
B.对老版本的问题进行了修复和改进
C.新增特性使编程更加方便简洁
D.性能更好
9.下面哪些语言是编译型的?(ABC)
A.C
B.C++
C.Go
D.Java
10.下列说法正确的是?(ABCD)
A.执行rpmrebuild -s xxx.spec -p xxx.rpm 可以得到rpm包对应的SPEC文件
B.执行rpm2cpio xxx.rpm | cpio =dim解压rpm包
C.执行rpmrebuild -bb –noclean /root/rpmbuild/SPECS/xxx.srec生成rpm包
D.执行rpm -ivh xxx.rpm可以安装rpm包
11.编译宏移植一般包括以下哪类移植项?(BD)
A.编译选项移植
B.编译器自定义宏移植
C.平台相关builtin函数移植
D.用户自定义宏移植
12.rpm包中一般包含哪些内容?(ABC)
A.可执行二进制文件
B.库文件/jar
C.配置文件
D.代码
13.将X86 rpm包重构成鲲鹏平台rpm通常包括哪些环节?(ABCD)
A.扫描
B.编译
C.打包
D.验证
14.区别于手动替换移植方法,基于开源工程的SSE intrinsic函数移植方法中主要使用哪些资源?(AD)
A.鲲鹏AvxToNeon开源工程
B.SSE intrinsics Guide网站
C.NEON intrinsic Guide 网站
D.SSE2NEON开源工程
15.以下说法正确的是?(AB)
A.Centos可以直接通过yum方式在鲲鹏上安装python3
B.Python和JDK均可以通过源码包编译的方式进行安装
C.Python代码中对C语言模块的调用在迁移过程中不需要重新编译
16.从X86平台到鲲鹏处理器平台,C/C++代码需要迁移的主要根本原因是?(ABD)
A.加购差异
B.指令集差异
C.C/C++源码差异
D.向量寄存器机向量指令集差异
17.鲲鹏平台RPM包获取渠道有?(ABCD)
A.操作系统本地和远端源
B.华为云鲲鹏镜像
C.X86 RPM重构
D.下载源码编译
18.华为软件仓库中可以下载那些类型的文件?(AB)
A.rpm包
B.jar包
C.C代码
D.Java代码
19.以下属于C/C ++代码工程中的编译构建脚本是?(ACD)
A.Makefile文件
B.src源码文件
C.CMakeList.txt文件
D.autogen.sh文件
20.下面哪些属于C/C++代码迁移需要注意的修改点?(ABCD)
A.编译选项移植
B.编译宏移植
C.Builtin函数移植
D.内联汇编移植
21.Java和Python再迁移过程中的共同点有哪些?(ABCD)
A.都是解释型语言,无SO库调用时可以直接迁移
B.都有可能调用SO库,需要重新编译成aarch64版本
C.都有可以直接用yum安装的虚拟机版本
D.都有一套自己的性能优化机制,且需再迁移过程中特殊处理
22.下面哪些属于性能调优的方法?(ABCD)
A.建立基准
B.压力测试
C.确定瓶颈
D.实施优化
23.华为云提供基于CentOS的华为鲲鹏软件仓库,主要包含哪些rpm?(ABCD)
A.大数据
B.WEB
C.分布式存储
D.数据库