ExaGear Concept
ExaGear is a piece of software that dynamically translates binary instructions and runs on Arm64 servers. It translates x86 instructions into Arm64 instructions at runtime and executes them, so that most applications on x86 can run on Arm64 servers without recompilation, achieving low costs and quickly migrating x86 applications to Arm64 servers.
During ExaGear installation, the Linux component binfmt_misc is updated to register the parser of an x86 application as ExaGear. After the installation is complete, there are two main components: instruction translation engine and x86 operating environment.
Instruction Translation Engine
ExaGear instruction translation engine is a "middleware" software solution located between x86 applications and Armv8 servers (see Figure 1). When an x86 application is started, the Linux kernel identifies the x86 application through binfmt_misc, loads and parses the x86 application through the ExaGear instruction translation engine, and translates the x86 application into Arm instructions and executes them during running. For users running x86 applications, the entire process is simple and transparent, and is no different from operating an Arm application.
x86 Operating Environment
An x86 operating environment is an x86 application operating environment created by ExaGear and contains all standard libraries, utilities, and configuration files. This ensures the availability of infrastructure components required for running x86 applications. Technically, the x86 operating environment is a specific file directory that contains x86 libraries, commands, utilities, and other system files (see Figure 2). Binary files of x86 applications must also be stored in the x86 operating environment.

