---
title: 鲲鹏 DevKit 通过动态二进制翻译快速迁移无源码应用-官方技术文章-鲲鹏社区
description: 本文主要向大家介绍如何通过鲲鹏开发套件DevKit提供动态二进制指令翻译软件ExaGear，实现“低损耗”、“零成本”的无源码快速迁移，使得Linux x86/ARM32应用无需重新编译即可运行在鲲鹏平台上。
keywords: DevKit,通过动态二进,制翻译快速迁,移无源码应用,官方技术文章,鲲鹏社区,ExaGear,是什么
url: https://www.hikunpeng.com/developer/techArticles/20230922-1?envFlag=1
section: (其他)
---

# 鲲鹏 DevKit 通过动态二进制翻译快速迁移无源码应用-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20230922-1?envFlag=1
描述: 本文主要向大家介绍如何通过鲲鹏开发套件DevKit提供动态二进制指令翻译软件ExaGear，实现“低损耗”、“零成本”的无源码快速迁移，使得Linux x86/ARM32应用无需重新编译即可运行在鲲鹏平台上。
关键词: DevKit,通过动态二进,制翻译快速迁,移无源码应用,官方技术文章,鲲鹏社区,ExaGear,是什么

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

鲲鹏 DevKit 通过动态二进制翻译快速迁移无源码应用

鲲鹏 DevKit 通过动态二进制翻译快速迁移无源码应用

实战经验

发表于 2022/02/16


在数字化背景下，算力多样性发展已成为必然。作为多样性计算的典型代表，越来越多的开发者加入鲲鹏产业生态，基于鲲鹏平台进行应用的迁移和开发。在应用软件迁移过程中，存在部分存量现网应用软件只有x86/ARM32版本二进制工具包，且无源码可供移植的问题，导致无法直接在鲲鹏平台上运行。

针对这一问题，鲲鹏开发套件DevKit提供动态二进制指令翻译软件ExaGear，实现“低损耗”、“零成本”的无源码快速迁移，使得Linux x86/ARM32应用无需重新编译即可运行在鲲鹏平台上。

## ExaGear是什么？

ExaGear是华为自主创新的动态二进制翻译软件，在运行时将待迁移Guest应用的x86(32/64-bit)或ARM32指令翻译成ARM64指令，并模拟Guest应用调用的操作系统API，使得Linux x86(32/64-bit)或ARM32的程序可运行在鲲鹏平台上，实现低成本、快速迁移到ARM64服务器。

其翻译过程准确、稳定、高效，为当前无源码的商用软件运行于ARM64平台上铺平了最后一公里道路。

【ExaGear在鲲鹏上翻译运行二进制程序】

简单来说，ExaGear 是一种“中间件”解决方案，位于Guest应用程序和 ARM64 Linux 操作系统之间。开发者使用 ExaGear，通过无源码应用迁移，大幅降低了存量业务部署门槛，让用户以最低的人力和时间成本平滑迁移业务，实现了存量业务快速迁移到鲲鹏生态。下面将从使用ExaGear进行软件迁移的几点优势来揭秘ExaGear的技术实现。

## ExaGear有哪些优势？

（1）一键式快速安装，支持多种部署方式

ExaGear的安装和部署过程简单，一键即可完成，安装完成后，进入ExaGear环境，尤如在原生x86环境操作一样。ExaGear始终运行于Linux用户态，不对操作系统的运行产生干扰。

以编译技术作为依托，ExaGear基于IR中间表示层做中端优化，既有支持多指令集的前端模块（如x86_32、x86_64、ARM32等），也有支持多指令集的后端模块（如ARM64、RISC-V等）。

当前，ExaGear支持CentOS、openEuler、Ubuntu、安卓等主流操作系统，及容器相关的部署。后续版本根据市场需求可以适配更多的操作系统平台。

【ExaGear的各种部署形态】

（2）代码 “0”修改，最小化业务迁移成本

无需改造源码，直接在ExaGear环境中部署x86软件，即可完成迁移，迁移周期短，业务连续性好。翻译过程遵循指令集标准规格以及Linux操作系统调用标准规格进行转换，在最底层完成业务执行，避免软件跨平台源码移植引入的额外bug，整体迁移过程兼容性好，稳定性有保障。

（3）性能领先，翻译性能极致优化

在通用的编译框架基础上，ExaGear采用了“边翻译边执行+二级优化”的策略，在不影响业务流畅度的前提下，利用Guest程序在运行过程中表现出来的热点特征，针对热点执行路径极致优化，从而达到相对纯粹静态编译更优的翻译结果。

【ExaGear工作流程图】

通过Benchmark对比评测x86的程序经过ExaGear指令翻译后的性能与原生AArch64的程序性能，当前在二级优化开启的情况下已经达到AArch64 Native的80%+能力，部分测试项甚至超越了原生应用的表现。随着技术的不断演进与优化，HPC等典型场景的性能损耗会进一步压缩。

【ExaGear性能数据】

## ExaGear主要用于哪些场景？

ExaGear解决了用户将原有平台的软件系统迁移到鲲鹏平台时遇到的痛点问题。在迁移过程中，用户业务按重要性差异，往往可分为三类：无源码业务、有源码的非关键业务和有源码的关键业务。

（1）行业相关的无源码商业软件。这类软件只有二进制、没有源码，在行业内又有相当的影响力。在这样的场景下，需要ExaGear动态二进制翻译技术保障顺利完成迁移。

（2）有源码的非关键业务。使用频率低、对性能不敏感。对于这部分业务，客户就可以利用ExaGear完成动态的二进制翻译，使存量业务应用不需要通过代码移植，就可以直接运行在鲲鹏平台上。这一过程省却了大量的移植或优化源代码所需的人力和时间，而且没有因移植代码而引入额外的稳定性隐患。

（3）性能敏感且有源码的关键业务。建议通过手工的代码移植和性能优化完成迁移，达到最优的性能预期。

ExaGear利用动态二进制翻译技术，结合动态二进制优化能力，能够稳定支持无源码的x86和ARM32存量业务运行在鲲鹏平台上，并且适于部署的场景广泛，既可以直接部署于操作系统，也可以部署于容器中，甚至是在ExaGear中再部署容器，能够在无源码的情况下屏蔽底层平台差异，低成本解决应用的平滑迁移，释放鲲鹏平台澎湃算力。

往期推荐：

计算产业专题页正式发布！ [了解详情](http://mp.weixin.qq.com/s?__biz=MzUyNjk4NjM1MA==&mid=2247591385&idx=2&sn=7effeef4e6d310774e56b28587cf1a3d&chksm=fa0558d8cd72d1ce2825236268741339efba1eea15ce2e0dfb8b51cbfa51a06638155caa3b13&scene=21#wechat_redirect)
