Go to file
Hanlu Li c9050b2f06 LATX, docs: Improve README presentation
- Render the closing section of both READMEs in a compact
  phase-grouped table layout.
- Collapse per-distribution build dependency commands into
  expandable sections.

Signed-off-by: Hanlu Li <heuleehanlu@gmail.com>
2026-08-07 17:56:38 +08:00
.github LATX: guide users when guest runtimes fail to load 2026-08-05 07:33:25 +08:00
accel linux-user: allow ELF loader errors to be returned 2026-08-05 07:33:25 +08:00
authz authz-simple: Check that 'identity' property is set 2020-11-18 10:51:35 +00:00
configs LATX, feat: add default runtime configuration file 2026-04-07 09:55:24 +08:00
crypto LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
default-configs/targets LATX, clean: prune default non x86 target configs 2026-06-09 09:50:23 +08:00
disas LATX, clean: prune disassembler sources 2026-06-09 09:50:23 +08:00
docs LATX, docs: Focus the configuration reference 2026-08-07 16:15:58 +08:00
fpu LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
hw LATX, opt: Add multithread support to fast_jmp_cache 2025-11-27 09:44:19 +08:00
include linux-user: allow ELF loader errors to be returned 2026-08-05 07:33:25 +08:00
latxbuild build: report release artifact locations 2026-08-07 16:02:40 +08:00
linux-headers LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
linux-user linux-user: silence missing LASX notice 2026-08-07 16:02:40 +08:00
meson@5685dc35f0 LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
nbd nbd: server: Report holes for raw images 2021-03-08 13:08:45 -06:00
plugins build: remove Meson deprecation warnings 2026-08-07 11:56:21 +08:00
python Python: close the log file kept by QEMUMachine before reading it 2021-02-15 21:40:16 -05:00
qapi LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
qobject LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
qom LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
runtime runtime: support symlinked translator installs 2026-08-04 20:43:37 +08:00
scripts LATX, clean: prune metadata and syscall scripts 2026-06-09 09:50:23 +08:00
scsi scsi: fix sense code for EREMOTEIO 2021-03-16 14:30:30 -04:00
semihosting Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
storage-daemon qsd: Document FUSE exports 2021-03-29 18:28:33 +02:00
stubs LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
subprojects/libvhost-user LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
target LATX: make raw LBT assembly compatible with LTO 2026-08-07 11:56:21 +08:00
tcg LATX, clean: prune tcg backends 2026-06-09 09:50:23 +08:00
tests build: remove Meson deprecation warnings 2026-08-07 11:56:21 +08:00
trace build: remove Meson deprecation warnings 2026-08-07 11:56:21 +08:00
util linux-user: allow ELF loader errors to be returned 2026-08-05 07:33:25 +08:00
.cirrus.yml cirrus.yml: Update the FreeBSD task to version 12.2 2021-03-24 14:25:34 +00:00
.dir-locals.el
.editorconfig .editorconfig: update the automatic mode setting for Emacs 2021-03-10 15:34:11 +00:00
.exrc
.gdbinit
.gitattributes maint: Tell git that *.py files should use python diff hunks 2021-02-15 22:13:34 -05:00
.gitignore feat: Try to use Github Actions 2025-05-16 09:21:20 +08:00
.gitmodules LATX, clean: Remove some submodules from configure 2025-03-28 11:15:10 +08:00
.gitpublish
.mailmap MAINTAINERS: chenhc@lemote.com -> chenhuacai@kernel.org 2020-12-13 16:00:58 +01:00
.patchew.yml ci: store Patchew configuration in the tree 2019-06-03 14:03:02 +02:00
.readthedocs.yml readthedocs: build with Python 3.6 2020-10-05 16:30:45 +01:00
.travis.yml travis.yml: Limit simultaneous jobs to 3 2021-02-19 06:31:40 +01:00
COMMIT_CONVENTION.en.md LATX, docs: align commit convention with traceability rules 2025-12-05 08:49:04 +08:00
COMMIT_CONVENTION.md LATX, docs: align commit convention with traceability rules 2025-12-05 08:49:04 +08:00
CONTRIBUTING.md docs: add DCO contribution guidance 2026-07-30 20:58:42 +08:00
CONTRIBUTORS.md LATX, docs: Improve README presentation 2026-08-07 17:56:38 +08:00
COPYING
COPYING.LIB COPYING.LIB: Synchronize the LGPL 2.1 with the version from gnu.org 2019-01-30 11:01:22 +01:00
Kconfig semihosting: Move hw/semihosting/ -> semihosting/ 2021-03-10 15:34:12 +00:00
Kconfig.host multi-process: Add config option for multi-process QEMU 2021-02-09 20:53:56 +00:00
LICENSE tcg/LICENSE: Remove out of date claim about TCG subdirectory licensing 2019-11-11 15:11:21 +01:00
MAINTAINERS LATX, clean: remove unused sun4v RTC header 2026-06-16 15:53:58 +08:00
Makefile LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
NOTICE LATX: remove XED debug disassembler 2026-06-16 17:32:41 +08:00
README.en.rst LATX, docs: Improve README presentation 2026-08-07 17:56:38 +08:00
README.rst LATX, docs: Improve README presentation 2026-08-07 17:56:38 +08:00
VERSION LATX Version 1.6.5 2026-03-23 12:37:26 +08:00
block.c Do not include sysemu/sysemu.h if it's not really necessary 2021-05-02 17:24:50 +02:00
blockdev-nbd.c qemu-nbd: Use SOMAXCONN for socket listen() backlog 2021-02-12 07:42:08 -06:00
blockdev.c block: bdrv_append(): don't consume reference 2021-04-30 12:27:47 +02:00
blockjob.c block: drop ctx argument from bdrv_root_attach_child 2021-04-30 12:27:47 +02:00
configure build: remove Meson deprecation warnings 2026-08-07 11:56:21 +08:00
cpu.c LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
cpus-common.c LATX, fix: bound final AOT exclusive wait 2026-07-30 19:51:25 +08:00
disas.c LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
gdbstub.c Do not include sysemu/sysemu.h if it's not really necessary 2021-05-02 17:24:50 +02:00
gitdm.config contrib: gitdm: add a mapping for Janus Technologies 2019-03-12 19:31:29 +00:00
hmp-commands-info.hx migrate: remove QMP/HMP commands for speed, downtime and cache size 2021-03-18 09:22:55 +00:00
hmp-commands.hx block: Remove monitor command block_passwd 2021-03-23 22:31:56 +01:00
iothread.c multi-process: define MPQemuMsg format and transmission functions 2021-02-10 09:23:28 +00:00
job-qmp.c qapi: Use QAPI_LIST_APPEND in trivial cases 2021-01-28 08:08:45 +01:00
job.c job: Allow complete for jobs on standby 2021-04-09 18:00:29 +02:00
latx-new.lds LATX, fix: Fix latx-new.lds for loongnix server 23 2025-11-18 11:25:24 +08:00
latx-x86_64-new.lds LATX, fix: Fix latx-x86_64-new.lds for lns23 2025-10-30 08:49:20 +08:00
latx-x86_64.lds LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
latx.lds LATX, init: LATX user-level binary translator 2025-03-21 15:26:22 +08:00
memory_ldst.c.inc fuzz: ignore address_space_map is_write flag 2021-02-08 14:43:54 +01:00
meson.build build: remove Meson deprecation warnings 2026-08-07 11:56:21 +08:00
meson_options.txt build: remove Meson deprecation warnings 2026-08-07 11:56:21 +08:00
module-common.c
os-posix.c os: deprecate the -enable-fips option and QEMU's FIPS enforcement 2021-01-29 17:07:53 +00:00
os-win32.c vl: relocate paths to data directories 2020-09-30 19:11:36 +02:00
page-vary-common.c exec: Build page-vary-common.c with -fno-lto 2021-03-23 19:36:47 -06:00
page-vary.c exec: Build page-vary-common.c with -fno-lto 2021-03-23 19:36:47 -06:00
qemu-bridge-helper.c qemu-bridge-helper: relocate path to default ACL 2020-09-30 19:11:36 +02:00
qemu-edid.c qemu-edid: drop cast 2020-10-14 06:05:56 +02:00
qemu-img-cmds.hx qemu-img: add support for rate limit in qemu-img convert 2020-10-27 15:26:20 +01:00
qemu-img.c qemu-img convert: Unshare write permission for source 2021-04-30 12:27:48 +02:00
qemu-io-cmds.c qemu-io: add preallocate mode parameter for truncate command 2020-12-18 12:35:55 +01:00
qemu-io.c qemu-io: Use user_creatable_process_cmdline() for --object 2021-03-19 10:17:14 +01:00
qemu-keymap.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-nbd.c qemu-nbd: Use user_creatable_process_cmdline() for --object 2021-03-19 10:17:14 +01:00
qemu-options-wrapper.h qemu-img: remove references to GEN_DOCS 2018-05-20 08:35:54 +03:00
qemu-options.h
qemu-options.hx docs: More precisely describe memory-backend-*::id's user 2021-05-03 10:07:41 +02:00
qemu.nsi nsis: adjust for new MinGW paths 2021-01-23 15:55:05 -05:00
qemu.sasl
replication.c
replication.h Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
thunk.c overall usermode...: Fix Lesser GPL version number 2020-11-15 16:43:40 +01:00
trace-events trace-events: Fix attribution of trace points to source 2020-09-09 17:17:58 +01:00
version.rc configure: remove CONFIG_FILEVERSION and CONFIG_PRODUCTVERSION 2021-01-02 21:03:37 +01:00

README.rst

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

================================================
LATX (LoongArch Architecture Translator for x86)
================================================

.. image:: https://img.shields.io/badge/license-GPL--2.0-blue.svg
   :target: COPYING
   :alt: GPL-2.0 license

.. image:: https://github.com/lat-opensource/lat/actions/workflows/tests.yml/badge.svg
   :target: https://github.com/lat-opensource/lat/actions/workflows/tests.yml
   :alt: LAT Tests

LATXLoongArch Architecture Translator for x86即龙芯 x86 架构转译器,是
一个面向 LoongArch 架构的高性能用户级二进制翻译器,用于在龙架构系
统上高效地运行 32/64 位 x86 应用程序。

LATX 基于 QEMU 6 版本开发并进行了深度优化,性能相比原生 QEMU 有显著提升。
项目利用龙架构的各指令集扩展(如向量扩展和二进制转译指令集)对 X86 指令集
进行了高效翻译并采用了AOTAhead-of-Time )预编译、运行时库直通等关键优
化技术,其中库直通优化思想借鉴及引用了 box64 项目的部分源码。

`See the English Version Here >> <README.en.rst>`_


项目背景
========

在 LoongArch 架构生态建设过程中,运行已有的 x86 程序存在兼容性和性能瓶颈,
原生 QEMU 等模拟器在性能和兼容性上并不能完全满足需求。因此,我们在 QEMU 6
的基础上进行了二次开发,通过引入预编译、库直通以及其他针对性优化,大幅减少
了指令翻译和执行的开销,努力实现“更快、更稳定、更兼容”的目标。


使用前提
========

- 本文的构建流程需要在 LoongArch Linux 环境中执行,生成的翻译器也运行在
  LoongArch Linux 上。
- LATX 运行需要主机 CPU 和内核提供 LSX 与 LBT_X86 扩展。普通 SIMD 翻译也会
  在主机支持时使用 LASX启动时未检测到 LASXLATX 会关闭 LASX 路径并改用
  128 位 LSX 指令翻译。
- LATX 支持 LoongArch ABI 1.0 和 ABI 2.0。构建配置会自动检测当前环境的 ABI
  因此请在与安装目标 ABI 一致的环境中构建。
- x86 Linux 程序可直接通过 LATX 运行;运行 x86 Windows 程序还需要 x86 Wine
  及与 Wine 匹配的运行时环境。


快速开始
========

在 LoongArch Linux 主机上安装 `编译依赖`_ 后,执行:

.. code-block:: bash

    git clone --depth=1 --recursive https://github.com/lat-opensource/lat
    cd lat
    ./latxbuild/build-release.sh

脚本会生成 ``lat-<版本>-<日期>.tar.xz``。安装最新生成的包,并让 binfmt 和
sysctl 配置立即生效:

.. code-block:: bash

    package=$(ls -1t lat-*.tar.xz | head -n 1)
    sudo tar -Jxf "$package" -C / --strip-components=1
    sudo systemctl restart systemd-binfmt.service
    sudo systemctl restart systemd-sysctl.service

也可以重启系统使配置生效。确认两个翻译器已经安装:

.. code-block:: bash

    latu-runtime-manager status

第一次验证建议使用静态链接的 x86_64 Linux 程序,因为它不依赖额外的 x86
运行时:

.. code-block:: bash

    wget -O busybox.pkg.tar.zst \
        https://archlinux.org/packages/extra/x86_64/busybox/download/
    tar xf busybox.pkg.tar.zst
    latx-x86_64 ./usr/bin/busybox uname -m

注册 binfmt 后也可以直接执行 ``./usr/bin/busybox uname -m``。动态链接程序还
需要在 ``/usr/gnemul`` 下准备与程序匹配的 x86 运行时,详见
`编译、安装和运行 Wiki`_。


编译依赖
========

选择当前发行版对应的命令。依赖列表也包含首次 BusyBox 验证使用的 ``file``、
``wget`` 和 ``zstd``。项目优先使用版本不低于 0.55.3 的系统 Meson系统 Meson
不可用或版本过低时,会使用 ``--recursive`` 获取的 Meson 子模块。Python 版本
必须不低于 3.6。

各发行版的依赖命令如下,点击展开对应的发行版:

.. raw:: html

   <details>
   <summary>Debian / Ubuntu</summary>

.. code-block:: bash

    sudo apt install -y git meson ninja-build libssl-dev libc6 gcc g++ \
        pkg-config libglib2.0-dev libdrm-dev lsb-release make python3 \
        python3-setuptools binutils file tar wget xz-utils zstd

.. raw:: html

   </details>
   <details>
   <summary>Arch Linux</summary>

.. code-block:: bash

    sudo pacman -S --needed git make meson ninja gcc pkgconf glib2 python \
        python-setuptools openssl binutils file tar wget xz zstd

.. raw:: html

   </details>
   <details>
   <summary>安同 OSAOSC OS</summary>

.. code-block:: bash

    sudo oma install -y git make gcc meson nettle pcre2 libffi gnutls glib zlib \
        glib-static libgcrypt-static libgpg-error-static libnfs-static \
        pcre-static zlib-static zstd-static openssl-static pkg-config ninja \
        binutils file tar wget xz zstd

.. raw:: html

   </details>
   <details>
   <summary>Fedora</summary>

.. code-block:: bash

    sudo dnf install gcc gcc-c++ make git ninja-build meson openssl-devel \
        glib2-devel binutils file tar wget xz zstd

.. raw:: html

   </details>

可以在构建前检查基础工具:

.. code-block:: bash

    python3 --version
    ninja --version


构建与产物
==========

默认发布构建同时生成 32 位和 64 位翻译器:

.. code-block:: bash

    ./latxbuild/build-release.sh

生成的 ``tar.xz`` 包包含:

- ``usr/bin/latx-i386``:运行 32 位 i386 程序。
- ``usr/bin/latx-x86_64``:运行 64 位 x86_64 程序。
- ``usr/bin/latu-runtime-manager``:检查翻译器安装状态。
- ``usr/lib/binfmt.d/*.conf``:注册 x86 ELF 的 binfmt 配置。
- ``usr/lib/sysctl.d/mmap_min_addr.conf``LATX 所需的地址映射配置。

打包时会移除符号表和调试信息,因此包内二进制比 ``build32/`` 和
``build64/`` 中的原始产物更小。安装和日常使用以包内二进制为准;构建目录中
的未剥离文件适用于调试。

运行动态链接程序
================

动态链接的 x86 程序需要匹配的 guest 运行时。可以查看当前翻译器选择的目录:

.. code-block:: bash

    latx-x86_64 -runtime-info
    latx-i386 -runtime-info

默认目录因宿主 ABI 而异。ABI 1.0 使用 ``/usr/gnemul/latx-*``ABI 2.0 使用
``/usr/gnemul/lat-*``。运行时的安装、Wine 配套关系、升级和卸载说明见
`编译、安装和运行 Wiki`_。


支持范围与已知限制
==================

Guest 程序范围:

- 支持 32 位i386和 64 位x86_64的 x86 Linux 用户态程序,不提供 x86
  全系统模拟。
- x86 Windows 程序通过 x86 Wine 运行,需要与 Wine 匹配的运行时环境,详见
  `编译、安装和运行 Wiki`_。
- 16 位实模式vm86程序不在支持范围内未做验证。

x86 指令集覆盖:

- 发布构建O1 档)翻译并上报 x87、MMX、SSE、SSE2、SSE3以及 SSSE3、
  SSE4.1、SSE4.2、POPCNT、AES、PCLMULQDQ 和 CMPXCHG16B。
- AVX、AVX2、FMA、F16C、BMI1/BMI2 属于测试档优化(-O 3默认不启用
  发布包不包含这些指令的翻译。需要时按 `AVX 指令支持`_ 一节自行构建。

运行行为说明:

- 库直通( ``LATX_KZT`` )仅在 64 位构建中提供,默认按兼容性检查启用;
  32 位构建没有该选项。
- 多线程 guest 程序沿用 QEMU 用户态多线程模型,原子指令根据宿主内核能力
  选择优化路径。
- 自修改代码默认按页失效。个别程序出现兼容性问题时,可以调整
  ``LATX_SMC`` 策略;浮点结果异常时可以尝试 ``LATX_SOFTFPU`` (会降低性能
  并自动关闭 AOT。这些选项的语义见
  `LATX 配置信息 <docs/user/latx-environment.rst>`_。


配置
====

LATX 支持系统配置文件、用户配置文件、环境变量和命令行参数。优先级、常用配置
及示例见 `LATX 配置信息 <docs/user/latx-environment.rst>`_。


AVX 指令支持
============

当前 ``build-release.sh`` 不提供 AVX 打包参数。``build32.sh`` 和
``build64.sh`` 均支持 ``-a``;该选项会在配置阶段传入
``--enable-latx-avx-opt``,为当前构建目标启用 x86 AVX 指令翻译支持:

.. code-block:: bash

    ./latxbuild/build32.sh -c -a
    ./latxbuild/build64.sh -c -a

``-c`` 会重新生成构建配置,切换 AVX 支持时不能省略。

AVX 构建默认向 guest 上报相关 CPUID 信息。如需隐藏该信息,必须在启动 guest
前设置:

.. code-block:: bash

    export LATX_AVX_CPUID=0

该设置会改变 CPUID 上报,但不会关闭已经编译的 AVX 指令翻译,也不支持在
guest 运行期间热切换。


文档与问题反馈
==============

- `LAT Wiki <https://github.com/lat-opensource/lat/wiki>`_
- `编译、安装和运行 Wiki`_
- `调试与问题定位指南`_
- `Issues <https://github.com/lat-opensource/lat/issues>`_
- `Discussions <https://github.com/lat-opensource/lat/discussions>`_

提交 Pull Request 前,请阅读 `贡献指南 <CONTRIBUTING.md>`_ 和
`提交规范 <COMMIT_CONVENTION.md>`_。每个提交都必须包含 DCO
``Signed-off-by`` 签署。


贡献者
======

.. raw:: html

   <table>
     <tr>
       <td align="center" colspan="8"><b>内部开发阶段20212024</b></td>
     </tr>
     <tr>
       <td align="center"><a href="https://github.com/luzeng87"><img src="https://github.com/luzeng87.png?size=64" width="64" height="64" alt="Lu Zeng"><br><sub><b>Lu Zeng</b></sub></a></td>
       <td align="center"><a href="https://github.com/LaurenIsACoder"><img src="https://github.com/LaurenIsACoder.png?size=64" width="64" height="64" alt="Hanlu Li"><br><sub><b>Hanlu Li</b></sub></a></td>
       <td align="center"><a href="https://github.com/ganjue66da"><img src="https://github.com/ganjue66da.png?size=64" width="64" height="64" alt="Wenqiang Wei"><br><sub><b>Wenqiang Wei</b></sub></a></td>
       <td align="center"><a href="https://github.com/JonLeeTaoShan"><img src="https://github.com/JonLeeTaoShan.png?size=64" width="64" height="64" alt="Jing Li"><br><sub><b>Jing Li</b></sub></a></td>
       <td align="center"><a href="https://github.com/specialpointcentral"><img src="https://github.com/specialpointcentral.png?size=64" width="64" height="64" alt="Qi Hu"><br><sub><b>Qi Hu</b></sub></a></td>
       <td align="center"><a href="https://github.com/rmjskhy"><img src="https://github.com/rmjskhy.png?size=64" width="64" height="64" alt="Chaoyi Liu"><br><sub><b>Chaoyi Liu</b></sub></a></td>
       <td align="center"><a href="https://github.com/y347812075"><img src="https://github.com/y347812075.png?size=64" width="64" height="64" alt="Rengan Yue"><br><sub><b>Rengan Yue</b></sub></a></td>
       <td align="center"><a href="https://github.com/yetist"><img src="https://github.com/yetist.png?size=64" width="64" height="64" alt="Xiaotian Wu"><br><sub><b>Xiaotian Wu</b></sub></a></td>
     </tr>
     <tr>
       <td align="center" colspan="8"><b>开源社区2025</b></td>
     </tr>
     <tr>
       <td align="center"><a href="https://github.com/NiuGenen"><img src="https://github.com/NiuGenen.png?size=64" width="64" height="64" alt="NiuGenen"><br><sub><b>NiuGenen</b></sub></a></td>
       <td align="center"><a href="https://github.com/xiezyang"><img src="https://github.com/xiezyang.png?size=64" width="64" height="64" alt="Zhaoyang Xie"><br><sub><b>Zhaoyang Xie</b></sub></a></td>
       <td align="center"><a href="https://github.com/xiangzhai"><img src="https://github.com/xiangzhai.png?size=64" width="64" height="64" alt="Leslie Zhai"><br><sub><b>Leslie Zhai</b></sub></a></td>
       <td align="center"><a href="https://github.com/sunhaiyong1978"><img src="https://github.com/sunhaiyong1978.png?size=64" width="64" height="64" alt="Sun Haiyong"><br><sub><b>Sun Haiyong</b></sub></a></td>
       <td align="center"><a href="https://github.com/baibaidashixiong"><img src="https://github.com/baibaidashixiong.png?size=64" width="64" height="64" alt="zqz"><br><sub><b>zqz</b></sub></a></td>
       <td align="center"><a href="https://github.com/zhaodongru"><img src="https://github.com/zhaodongru.png?size=64" width="64" height="64" alt="Dongru Zhao"><br><sub><b>Dongru Zhao</b></sub></a></td>
       <td align="center"><a href="https://github.com/phorcys"><img src="https://github.com/phorcys.png?size=64" width="64" height="64" alt="phorcys"><br><sub><b>phorcys</b></sub></a></td>
       <td align="center"><a href="https://github.com/wojiushixiaobai"><img src="https://github.com/wojiushixiaobai.png?size=64" width="64" height="64" alt="wojiushixiaobai"><br><sub><b>wojiushixiaobai</b></sub></a></td>
     </tr>
   </table>

以上为部分贡献者,头像顺序仅用于展示,不表示贡献排名。

LATX 感谢每一位贡献者。各阶段贡献者与贡献领域说明见
`CONTRIBUTORS.md <CONTRIBUTORS.md>`_开源后的贡献记录见
`GitHub Contributors <https://github.com/lat-opensource/lat/graphs/contributors>`_。


许可证
======

本项目基于 QEMU 源代码进行二次开发,原始项目遵循 GNU 通用公共许可证第 2 版
GNU General Public License, version 2简称 GPLv2发布。

因此,本项目同样遵循 GPLv2 协议。


致谢
====

特别鸣谢 QEMU 项目与 box64 项目及开发者,他们的开源成果为本项目提供了宝贵
的参考与支持。

------------

如有任何问题或建议,欢迎通过 `Issue <https://github.com/lat-opensource/lat/issues>`_ 与我们交流!


.. _编译、安装和运行 Wiki: https://github.com/lat-opensource/lat/wiki/%E7%BC%96%E8%AF%91%E4%B8%8E%E8%BF%90%E8%A1%8C
.. _调试与问题定位指南: https://github.com/lat-opensource/lat/wiki/%E8%B0%83%E8%AF%95%E4%B8%8E%E9%97%AE%E9%A2%98%E5%AE%9A%E4%BD%8D%E6%8C%87%E5%8D%97