你还在为liunix x86程序移植到ARM环境而烦恼吗?你们现在您的福利来了,ExaGear可以解决您的烦恼,让您试下零代码迁移运行Linux x86程序。
ExaGear是华为自研动态二进制翻译工具,通过在运行时,将x86应用指令翻译为ARM64指令并执行,从而支持Linux x86应用无需重新编译就能运行在ARM64服务器上,帮助客户将Linux x86无源码应用快速迁移到ARM服务器上,且能稳定可靠运行。
安装
默认情况下ExaGear会被安装到opt目录,建议采用默认不要修改。
获取ExaGear
下载地址: https://mirrors.huaweicloud.com/kunpeng/archive/ExaGear/
主要有CentOS和Ubuntu两种系统的支持,本文验证ExaGear for Ubuntu安装。
验证页大小
通过以下命令验证页大小
getconf PAGE_SIZE
如果输出是: 4096
则代表当前操作系统的页大小为4KB。此时,应当使用页大小为4kB的Exagear for Server on CentOS的发布件。
如果输出是: 65536
则代表当前操作系统的页大小为64KB
Exagear2.x不支持64k,如果要安装64k,需要下载Exagear1.x版本。本文主要介绍2.x版本的安装。
安装
安装前保证系统没有安装过Exagear,如果安装了旧版本,请先卸载,不然会导致安装失败,卸载命令如下:
sudo dpkg -r exagear-core-x64a64 exagear-core-x32a64 exagear-guest-for-ubuntu-<os_version>-x86-64 exagear-integration exagear-utils
sudo rm -rf /opt/exagear
安装命令如下:
sudo dpkg -i exagear-utils_2635_all.deb exagear-core-x64a64_2635_arm64.deb exagear-core-x32a64_2635_arm64.deb exagear-guest-for-ubuntu-1804-x86-64_2635_all.deb exagear-integration_2635_all.deb
sudo apt-get install -f
启动
执行
exagear
显示:Starting /bin/bash in the guest image /opt/exagear/images/ubuntu-1804-x86_64
如下图所示
执行
arch
显示:x86_64,如下图所示:
至此,你置身于x86的运行环境。
如果是aarch64则说明安装没有成功!
退出
exit
注意:
安装不是很复杂,但一定要注意页大小匹配,如果页大小不匹配则会安装失败!!
验证Linux程序运行情况
利用最经典的Hello World验证,Hello World可执行程序是Linux编译好的!
注意:
1.验证必须是在启动ExaGear的前提下,启动见安装
2.以下所说的环境变量是指运行了ExaGear后的linux虚拟环境的环境变量!
3.无论是运行程序还是数据必须要放到ExaGear虚拟环境下的目录下