近年来,仿真领域取得了巨大进步,特别是在 x86-64 和 RISC-V 等不同架构之间的兼容性方面。如果您想知道如何在基于 RISC-V 的主板和计算机上运行专为英特尔或 AMD 处理器设计的程序和游戏,答案就在 Felix86 等工具中。 RISC-V架构的兴起和交叉兼容性的需求使得Felix86等项目成为人们热议的话题。,吸引了开发人员、硬件爱好者以及希望扩展设备潜力的用户的关注。
Felix86 给人的感觉就像一股清新的空气。 在仿真领域,为日益普遍的问题提供创新的解决方案:大量 x86-64 软件无法在 RISC-V 硬件上原生运行。它不再仅仅是在 Linux 上打开游戏,还可以通过 Wine 访问部分 Windows 目录,所有这些都基于一个由于其开放性和定制可能性而在市场上日益流行的架构。
Felix86 是什么?它为何重要?
Felix86 是一款正在开发中的模拟器 专为运行 x86-64 应用程序和游戏而设计,最初是为英特尔和 AMD 处理器创建的,在 Linux 系统下配备 RISC-V 的设备上。这项提议源于 需要利用 x86-64 现有应用程序的整个生态系统,而不依赖特定的硬件。与 VMware 等解决方案中的传统虚拟化不同,Felix86 选择 实时动态翻译 (即时或 JIT),允许软件利用 RISC-V 自己的扩展(例如用于 SIMD 操作的矢量指令)更高效地运行。
RISC-V的崛起 在科技界,它正在推动人们对仿真的兴趣显著增长,尤其是那些希望打破架构之间传统障碍的用户和企业。 Felix86 正是在这样的背景下诞生的,它促进了这一转变,并使这两个截然不同的世界更加紧密地联系在一起。
技术结构:Felix86 的工作原理
的核心 Felix86 是基于一个 JIT动态重编译器,负责将动态 x86-64 指令转换为其 RISC-V 等效指令。这一策略对于保持可接受的性能至关重要,因为它不仅可以高效翻译,而且 利用 RISC-V 硬件的高级扩展:
- 向量扩展:对于处理许多游戏和应用程序中的 SSE 指令至关重要,可加速 SIMD 操作。
- 扩展 B(位操作):用于翻译复杂的指令,例如 BSR,在位操作过程和仿真中的高级数学中很重要。
- 支持可选扩展:Felix86 考虑了现代 RISC-V 硬件上可能存在的各种扩展,例如 XThead(用于高级系统中的自定义任务)。
此外,模拟器还维护一个 抽象层来管理内存分配和系统调用的差异 架构之间,这是交叉仿真的最大挑战之一,因为 x86-64 和 RISC-V 具有不同的内存和系统调用模型。这一附加层对于支持复杂的应用程序和确保执行中的一定稳定性至关重要。
兼容性:您希望使用 Felix86 运行什么?
尽管还处于全面开发阶段,但使用 Felix86 进行的测试已经取得了积极成果,尤其是在 Linux 游戏环境中。一些已成功执行且回报率不同的最知名的项目包括:
- 超级卡丁车
- 粘粘世界
- 铲骑士:折磨的幽灵
- 天体
- 巴拉特罗
- VVVVVV
- 不要饿死
- 以撒的结合:重生
- 热线迈阿密2:错号码
另外, 由于与 Wine 的集成,Felix86 可以运行简单的 Windows 应用程序和游戏 在 RISC-V 上的 Linux 环境中,尽管兼容性仍然有限。
至于硬件,第一次测试已经在以下主板上进行: 香蕉派 BPI-F3 配备SpacemIT K1 SoC,以及不同的显卡(AMD HD 7350,NVIDIA GTX 1050 Ti,AMD Radeon HD 7790)。硬件的选择对体验有很大影响;例如,HD 7350 似乎提供了更好的结果,而不同 Linux 发行版上的驱动程序支持可能会影响图形性能。
绩效和主要挑战
尽管取得了进展,但 Felix86 面临的最明显的挑战之一是 性能。早期测试显示 0,5 至 10 FPS 之间 在《World of Goo》或《SuperTuxKart》等游戏中,尽管对于早期版本来说这些数字很有希望,但表明还有很长的路要走。
瓶颈主要在于 JIT 翻译 (必须在编译速度和优化之间找到平衡)并且在 内存管理,考虑到在不影响稳定性的情况下将 x86-64 内存模型适配到 RISC-V 所涉及的复杂性。此外,图形兼容性在很大程度上取决于所使用的 Linux 发行版中是否有合适的驱动程序以及是否与硬件正确集成。
该优化旨在充分利用 RISC-V 处理器的 SIMD 扩展来与其他仿真解决方案竞争。然而,它仍然无法与更成熟的解决方案相匹敌,尤其是在 ARM 上,其他替代方案的开发时间更长。
Felix86 的替代方案:rv8、Box64 和 Box32
Felix86 并不是唯一一个在非原生硬件上解决 x86-64 仿真的项目。该领域的其他值得注意的工具包括 rv8 y Box64 与 Box32尽管它们有着共同的目标,但却采取了不同的方法:
- rv8:这是一个 RISC-V 模拟器,不仅可以翻译 x86-64 二进制文件,还提供 用于分析和调试 ELF 二进制文件中的代码的工具。他们的方法结合了频繁轨迹的解释和编译,仅在应用程序最需要的部分优化性能。非常适合寻求完整模拟生态系统的开发人员和高级用户。
- Box64 和 Box32:这些在 ARM 上非常流行的工具已扩展对 RISC-V 的支持。 Box64 允许您运行 64 位程序,而 Box32 提供对 32 位应用程序的支持。。两者都采用动态翻译并与 Wine 进行高级集成,从而可以轻松运行 Windows 软件。它们还因与 OpenGL 和 Vulkan 的改进集成而脱颖而出,这对于现代游戏至关重要。
选择哪种方案取决于每个用户的需求。虽然 rv8 在低级模拟方面更强大,但 Box64 和 Box32 更适用于 只想在 ARM 或 RISC-V 上的 Linux 上运行 x86 应用程序,而不想遇到太多技术难题的用户。就 Felix86 而言,它仍然专注于优化 RISC-V 体验,尽管它仍需要成熟才能达到更成熟的替代方案的图形集成和兼容性水平。
Felix86 与 Box64/Box32:比较表
特点 | Felix86 | Box64 与 Box32 |
---|---|---|
支持的体系结构 | RISC-V | ARM、RISC-V |
仿真类型 | JIT x86-64 到 RISC-V 的转换 | x86-64 到 ARM/RISC-V 的动态转换 |
Windows 兼容性 | 部分通过 Wine | 与 Linux 上的 Wine 兼容 |
游戏表现 | 低(0,5-10 FPS) | 在 ARM 上表现更好,在 RISC-V 上表现有限 |
图形支持 | 使用 AMD HD 7350、NVIDIA GTX 1050 Ti 进行测试 | 更好地与 OpenGL/Vulkan 集成 |
优化 | RISC-V SIMD 扩展 | 专为在 ARM 和 RISC-V 上快速执行而设计 |
发展与社区 | 新兴项目,在 Banana Pi BPI-F3 上测试 | 巩固项目,积极支持 |
用例 | RISC-V 上的 x86-64 软件 | ARM/RISC-V 上的 Linux 上的 x86 软件 |
Felix86 是一个年轻的赌注 并且雄心勃勃,64%专注于 RISC-V,而 Box32 和 BoxXNUMX 在 ARM 上拥有更长的记录和支持,这使它们在集成和性能方面具有一定的优势,至少目前如此。
发展视角和社区参与
Felix86 是一个开源项目,尽管还处于初始阶段, 在 GitHub 上已经有一个活跃的社区 并支持对仿真、编译器优化和异构架构研究感兴趣的开发人员的贡献。其开发原因包括 x86-64、RISC-V 和 Linux 的深度学习,以及希望为社区创建高效而有趣的解决方案。
该项目建立在 Panda3DS、shadPS4 和 ChonkyStation3 等类似计划的基础上,这些计划为交叉仿真领域铺平了道路,并启发了 Felix86 的模块化结构。除了, 预览和兼容性列表的发布很频繁,让任何有兴趣在自己的机器上贡献或测试模拟器的人都可以轻松地关注。
对于那些希望体验或参与开发的人来说, Felix86 的源代码已开放,可在 GitHub 上获取,以及更新的兼容性列表和技术文档。
Felix86 的突破对于 RISC-V 社区和仿真爱好者来说是个好消息。尽管性能和兼容性挑战仍然存在,但该项目的持续发展有望在不久的将来取得更好的结果。该领域 hardware libre 而新的架构在 Felix86 中拥有一个关键工具,可以实现对为传统平台设计的软件的民主化访问,为在家庭、专业和教育环境中更广泛地采用 RISC-V 铺平了道路。
跨架构仿真将继续成为一个令人着迷的技术挑战,而像 Felix86 这样的工具正在引领更灵活、可互操作和更易于访问的计算。随着每次增强,RISC-V 用户越来越接近完整、无缝的用户体验。