През последните години светът на емулациите постигна гигантски напредък, особено по отношение на съвместимостта между толкова разнообразни архитектури, като x86-64 и RISC-V. Ако някога сте се чудили как да стартирате програми и игри, специално проектирани за процесори Intel или AMD, на дънни платки и компютри, базирани на RISC-V, отговорът се крие в инструменти като Felix86. Възходът на RISC-V архитектурата и търсенето на кръстосана съвместимост направиха проекти като Felix86 тема на разговор в града., привличайки вниманието на разработчици, хардуерни ентусиасти и потребители, които искат да разширят потенциала на своите устройства.
Felix86 ми се струва като глътка свеж въздух. в рамките на емулационния пейзаж, предоставяйки иновативни решения на все по-често срещан проблем: огромното количество x86-64 софтуер, който не може да работи директно на RISC-V хардуер. Вече не става въпрос само за отваряне на игри на Linux, но и за достъп до част от каталога на Windows благодарение на Wine, всичко това на архитектура, която е все по-присъстваща на пазара поради отворения си характер и възможностите за персонализиране.
Какво е Felix86 и защо е от значение?
Felix86 е емулатор в процес на разработка. проектиран за изпълнение на x86-64 приложения и игри, първоначално създаден за процесори Intel и AMD, на устройства, оборудвани с RISC-V, под Linux системи. Това предложение произтича от необходимостта да се използва цялата екосистема от съществуващи приложения за x86-64, без да се разчита на специфичен хардуер. За разлика от традиционната виртуализация, която се среща в решения като VMware, Felix86 избира... динамичен превод в реално време (just-in-time или JIT), което позволява на софтуера да работи по-ефективно чрез използване на собствените разширения на RISC-V, като например векторни инструкции за SIMD операции.
Възходът на RISC-V В света на технологиите това води до значителен ръст на интереса към емулацията, особено сред потребителите и бизнеса, които искат да премахнат традиционните бариери между архитектурите. Felix86 се роди в този контекст, улеснявайки прехода и сближавайки още повече тези два много различни свята.
Техническа структура: Ето как работи Felix86
Сърцевината на Felix86 се основава на a JIT динамичен рекомпилатор, отговорен за преобразуването на x86-64 инструкциите в движение към техния RISC-V еквивалент. Тази стратегия е от съществено значение за поддържане на приемлива производителност, тъй като не само се превежда ефективно, но и Възползвайте се от усъвършенстваните разширения на RISC-V хардуера:
- Векторно разширениеОт съществено значение за обработката на SSE инструкции, присъстващи в много игри и приложения, ускорявайки SIMD операциите.
- Разширение B (манипулация с битове)Използва се за превод на сложни инструкции, като например bsr, важен в процесите на манипулиране на битове и висшата математика в рамките на емулацията.
- Поддръжка за допълнителни разширенияFelix86 взема предвид различни разширения, като например XThead (използвано в напреднали системи за персонализирани задачи), които могат да присъстват в съвременния RISC-V хардуер.
Освен това, емулаторът поддържа слой на абстракция за управление на разликите в разпределението на паметта и системните извиквания между архитектурите, едно от най-големите предизвикателства на кръстосаната емулация, тъй като x86-64 и RISC-V имат различни модели на памет и системни извиквания. Този допълнителен слой е ключов за поддръжката на сложни приложения и осигуряването на определена стабилност при изпълнение.
Съвместимост: Какво можете да очаквате да работи с Felix86?
Въпреки че е в процес на пълна разработка, тестването с Felix86 вече е дало положителни резултати, особено в гейминг средата на Linux. Някои от най-известните заглавия, които са били успешно изпълнени, с различна степен на възвръщаемост, са:
- Super Tux Kart
- Светът на Goo
- Лопата Найт: Призракът на мъката
- Небесен
- Балатро
- VVVVVV
- Не гладувайте
- Обвързването на Исак: Прераждането
- Гореща линия Маями 2: Грешен номер
Освен това, Благодарение на интеграцията с Wine, Felix86 има потенциала да стартира прости Windows приложения и игри. в Linux среда на RISC-V, макар и все още с ограничено ниво на съвместимост.
Що се отнася до хардуера, първите тестове са проведени на платки като Банан Пи BPI-F3 оборудван със SpacemIT K1 SoC, както и с различни графични карти (AMD HD 7350, NVIDIA GTX 1050 Ti, AMD Radeon HD 7790). Изборът на хардуер значително влияе на преживяването; Например, HD 7350 изглежда предоставя по-добри резултати, докато поддръжката на драйвери в различни Linux дистрибуции може да повлияе на графичната производителност.
Производителност и основни предизвикателства
Въпреки напредъка, едно от най-очевидните предизвикателства пред Felix86 е в производителност. Ранните тестове показват проценти на между 0,5 и 10 кадъра в секунда в игри като World of Goo или SuperTuxKart, цифри, които, макар и обещаващи за толкова ранна версия, показват, че все още има дълъг път.
Препятствието се намира главно в JIT превод (което трябва да намери баланса между скоростта на компилация и оптимизацията) и в управление на паметта, предвид сложността, свързана с адаптирането на модела памет x86-64 към RISC-V без компромис със стабилността. Освен това, графичната съвместимост зависи до голяма степен от наличието на подходящи драйвери в използваната Linux дистрибуция и правилната интеграция с хардуера.
Оптимизацията има за цел да се възползва максимално от SIMD разширенията на RISC-V процесорите, за да се конкурира с други емулационни решения. Въпреки това, той все още не може да се сравни с по-зрели решения, особено на ARM, където други алтернативи се разработват от по-дълго време.
Алтернативи на Felix86: rv8, Box64 и Box32
Felix86 не е единственият проект, който се занимава с емулация на x86-64 на не-нативен хардуер. Други забележителни инструменти в тази област са rv8 y Кутия64 с Кутия32, които, въпреки че споделят обща цел, представят различни подходи:
- rv8Това е RISC-V симулатор, който не само превежда x86-64 двоични файлове, но и предлага инструменти за анализ и отстраняване на грешки в код в ELF двоични файлове. Техният метод комбинира интерпретация и компилация на чести траектории, оптимизирайки производителността само в частите, най-търсени от приложението. Идеален за разработчици и напреднали потребители, търсещи цялостна екосистема за симулация.
- Кутия64 и Кутия32Тези инструменти, много популярни в ARM, разшириха поддръжката си и за RISC-V. Box64 ви позволява да стартирате 64-битови програми, докато Box32 осигурява поддръжка за 32-битови приложения.. И двете използват динамичен превод и предлагат разширена интеграция с Wine, което улеснява стартирането на Windows софтуер. Те се открояват и с подобрената си интеграция с OpenGL и Vulkan, което е от съществено значение за съвременните игри.
Изборът между една или друга алтернатива ще зависи от нуждите на всеки потребител. Докато rv8 е по-мощен в симулации на ниско ниво, Box64 и Box32 са по-практични за... Потребители, които просто искат да стартират x86 приложения на Linux на ARM или RISC-V, без толкова много технически усложнения. Felix86, от своя страна, остава фокусиран върху оптимизирането на RISC-V изживяването, въпреки че все още се нуждае от развитие, за да достигне нивото на графична интеграция и съвместимост на по-утвърдени алтернативи.
Felix86 срещу Box64/Box32: Сравнителна таблица
| Característica | Felix86 | Кутия64 с Кутия32 |
|---|---|---|
| Поддържана архитектура | RISC-V | ARM, RISC-V |
| Тип емулация | Преобразуване от JIT x86-64 към RISC-V | Динамично преобразуване от x86-64 към ARM/RISC-V |
| Windows съвместимост | Частично чрез Wine | Съвместим с Wine на Linux |
| Изпълнение в игрите | Ниско (0,5-10 кадъра в секунда) | По-добър на ARM, ограничен на RISC-V |
| Графична поддръжка | Тестове с AMD HD 7350, NVIDIA GTX 1050 Ti | По-добра интеграция с OpenGL/Vulkan |
| Оптимизация | RISC-V SIMD разширения | Проектиран за бързо изпълнение на ARM и RISC-V |
| Развитие и общност | Нововъзникващ проект, тестване на Banana Pi BPI-F3 | Консолидиран проект, активна подкрепа |
| Случаи на употреба | x86-64 софтуер на RISC-V | x86 Софтуер на Linux на ARM/RISC-V |
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 се доближават до пълно и безпроблемно потребителско изживяване.