Skip to content

Compatibility ru RU

ArchiBot edited this page Jun 4, 2024 · 72 revisions

Совместимость

ASF - это приложение на C#, работающее на .NET платформе. Это означает, что ASF не компилируется напрямую в машинный код, который исполняется на вашем ЦП, а в код CIL, которому для работы требуется CIL-совместимая среда выполнения.

Этот подход имеет очень весомые преимущества, поскольку CIL независим от платформы, Именно поэтому ASF может запускаться на многих доступных ОС, особенно Windows, Linux и macOS. Нет необходимости не только в эмуляции, но и в поддержке всех оптимизаций, связанных с платформой и оборудованием, таких как CPU SSE инструкции. Благодаря этому, ASF может достигать превосходной производительности и оптимизации, и при этом оставаться полностью совместимым и надёжным.

Это также означает, что ASF не имеет особых требований к ОС, поскольку всё, что он требует - это работающую среду выполнения на этой ОС, а не саму ОС. Пока эта среда выполнения корректно выполняет ASF-код, неважно, какая ОС лежит в основе: Windows, Linux, macOS, BSD, Sony Playstation 4, Nintendo Wii или ваш тостер - если для неё существует .NET, то на ней будет работать ASFgeneric варианте).

Однако, независимо от того, где вы запускаете ASF, вы должны убедиться, что на вашей целевой платформе установлены необходимые компоненты .NET. Это низкоуровневые библиотеки, необходимые для функционирования среды выполнения и ядра ASF. Вполне возможно, что некоторые (или даже все) из них у вас уже установлены.


Пакеты ASF

ASF поставляется в 2 основных вариациях - универсальный пакет и пакеты под конкретные ОС. С точки зрения функциональности они ничем не отличаются, и оба способны обновляться автоматически. Единственная разница в том, содержится ли там только универсальный (generic) пакет, или с ним поставляется среда выполнения под конкретную ОС.


Универсальный пакет

Универсальный (generic) пакет - это платформо-независимая сборка, не включающая в себя никакого машинно-ориентированного кода. Этот вариант требует, чтобы в вашей ОС уже была установлена требуемая версия среды выполнения .NET Core . Все мы знаем, как сложно бывает поддерживать все зависимости в актуальном состоянии, поэтому этот пакет предназначен в основном для людей, которые уже используют .NET Core и не хотят дублировать среду выполнения только для ASF, если можно использовать ту, которая уже установлена. Основной пакет также позволяет вам запустить ASF везде, где вы можете получить рабочую реализацию .NET runtime, независимо от того, существует ли сборка AFS под конкретную ОС, или нет.

Не рекомендуется использовать универсальный пакет, если вы начинающий или даже продвинутый пользователь, желающий просто запустить ASF и не вдаваться в технические подробности, связанные с .NET Core. Другими словами - если вы знаете что это, можете пользоваться, иначе вам лучше взять пакет под конкретную ОС, как описано ниже.


Особенности OC

Пакеты под конкретную ОС, помимо управляемого кода, присутствующего в универсальном пакете, также включают в себя машинный код для заданной платформы. Другими словами, в пакете под конкретную ОС уже присутствует правильная среда выполнения .NET, что позволяет вам полностью пропустить весь процесс установки и просто запустить ASF напрямую. Пакет под конкретную ОС, как понятно из названия, подходит только для одной ОС, и для каждой ОС нужна своя версия - например, для Windows требуется исполняемый файл ArchiSteamFarm.exe формата PE32+, а для Linux исполняемый файл ArchiSteamFarm формата Unix ELF. Как вы, возможно, знаете, эти два типа несовместимы между собой.

ASF на данный момент доступно для следующих вариантов ОС:

  • linux-arm works on 32-bit ARM-based (ARMv7+) GNU/Linux OSes with glibc 2.23/musl 1.2.2 and newer. Этот вариант охватывает такие платформы, как Raspberry Pi 2 (и более новые), он не будет работать с более старыми архитектурами ARM, такими как ARMv6 в Raspberry Pi 0 & 1, он также не будет работать с ОС, не реализующими необходимое окружение GNU/Linux (например, Android).
  • linux-arm64 работает на 64-битных операционных системах GNU/Linux на базе ARM (ARMv8+) с glibc 2.23/musl 1.2.2 и новее. Этот вариант охватывает такие платформы, как Raspberry Pi 3 (и новее), он не будет работать с 32-битными ОС, в которых отсутствуют необходимые 64-битные библиотеки (например, 32-битная Raspberry Pi OS), он также не будет работать с ОС, в которых не реализовано необходимое окружение GNU/Linux (например, Android).
  • linux-x64 работает на 64-битных ОС GNU/Linux с glibc 2.23/musl 1.2.2 и новее.
  • osx-arm64 работает на 64-разрядных операционных системах macOS на базе ARM (кремний Apple) версии 12.0 и новее.
  • osx-x64 работает на 64-битных ОС macOS в версии 12.0 и новее.
  • win-arm64 работает на 64-разрядных операционных системах Windows на базе ARM (ARMv8+) в версиях 10, 11 и новее.
  • win-x64 работает на 64-битных ОС Windows версий 10, 11, Server 2012+ и новее.

Разумеется, даже если под ваше сочетание ОС и архитектуры отсутствует готовый пакет, вы всегда можете самостоятельно установить подходящую среду выполнения .NET Core и запустить универсальный пакет ASF (generic), это и есть основная причина, почему он существует. Универсальный пакет ASF не зависим от платформы и будет работать на любой, на которой есть работоспособная среда выполнения .NET Core. Важно отметить - ASF требуется среда выполнения .NET Core, а не конкретная ОС или архитектура. К примеру, если вы пользуетесь 32-разрядной версией Windows, то несмотря на то, что нет отдельной версии ASF win-x86, вы всё равно можете установить .NET Core SDK версии win-x86 и без проблем запустить универсальный ASF. Мы просто не можем создать пакеты под все возможно используемые сочетания ОС-архитектура, поэтому приходится чем-то ограничиваться. x86 не попадает в это ограничение, поскольку это устаревшая архитектура как минимум с 2004 года.

Для просмотра полного списка поддерживаемых .NET Core 8.0 платформ и ОС, посетите раздел "release notes" в репозитории .NET Core.


Требования среды выполнения

Если вы используете пакет под конкретную ОС, вам не нужно беспокоиться о требуемой среде выполнения, поскольку ASF всегда включает в себя требуемую и актуальную среду исполнения, самое главное - чтобы у вас были установлены актуальные предусловия для .NET Core. Другими словами, вам не нужно устанавливать среду выполнения или SDK для .NET Core, поскольку пакеты под конкретную ОС требуют только присутствия необходимых библиотек в данной ОС (предусловий) и ничего более.

Однако, если вы пытаетесь запустить универсальный (generic) пакет ASF - вам следует убедиться, что среда .NET Core поддерживает необходимую ASF платформу.

ASF as a program is targeting .NET 8.0 (net8.0) right now, but it may target newer platform in the future. net8.0 is supported since 8.0.100 SDK (8.0.0 runtime), although ASF might prefer latest runtime at the moment of compilation, so you should ensure that you have latest SDK (or at least runtime) available for your machine. Generic ASF-вариант может отказаться запускаться, если при компиляции время выполнения старше указанного минимально поддерживаемого.

Если есть сомнения - проверьте, что использует наша система непрерывной интеграции для компиляции и развертывания сборок ASF на GitHub. Вы можете найти вывод dotnet --info в каждой сборке как часть этапа проверки .NET.

Clone this wiki locally