Skip to content

Compatibility pt BR

ArchiBot edited this page Oct 18, 2021 · 70 revisions

Compatibilidade

O ASF é um aplicativo C# que roda na plataforma .NET Core. Isso significa que o ASF não é compilado diretamente em código de máquina que roda no seu CPU, mas em CIL, que requer um tempo de execução compatível para a execução.

Esta abordagem tem uma quantidade gigantesca de vantagens, como a CIL não é dependente de plataforma, o ASF pode ser executado nativamente em vários Sistemas Operacionais, especialmente no Windows, Linux e macOS. Não apenas é desnecessário qualquer emulação como também há suporte para quaisquer otimizações relacionadas a plataforma ou hardware, tais como instruções CPU SSE. Graças a isso, o ASF pode alcançar desempenho e otimização superiores, enquanto continua a oferecer compatibilidade e confiabilidade perfeitos.

Isto também significa que o ASF não tem nenhum requisito específico quanto ao Sistema Operacional, porque ele exige um tempo de execução funcional no Sistema Operacional e não o Sistema Operacional em si. Desde que o tempo de execução execute o código do ASF corretamente, não importa se o Sistema Operacional é Windows, Linux, macOS, BSD, Sony Playstation 4, Nintendo Wii ou a sua torradeira: uma vez que rode o .NET Core, roda o ASF.

No entanto, independente de onde você executar o ASF, você deve garantir que sua plataforma de destino tenha os requisitos para o .NET Core instalados. Essas são bibliotecas de baixo nível necessárias para a funcionalidade adequada do tempo de execução e são primordiais para o funcionamento do ASF. É bem possível que você já tenha algumas delas (ou mesmo todas) já instaladas.


Empacotamento do ASF

O ASF está disponível em 2 formas diferentes: pacote genérico e pacote específico para Sistema Operacional. Funcionalmente ambos os pacotes são exatamente o mesmo e ambos são capazes de se atualizarem automaticamente. A única diferença entre eles é se o pacote genérico do ASF acompanha ou não o tempo de execução específico do Sistema Operacional para rodar o mesmo.


Genérico

O pacote genérico não depende de plataforma de compilação e não inclui nenhum código de máquina específico. Esta instalação requer que você tenha o tempo de execução .NET Core, na versão apropriada, já instalada no seu Sistema Operacional. Nós todos sabemos como é complicado manter dependências atualizadas, portanto este pacote existe principalmente para pessoas que já usam o .NET Core e não querem duplicar seu tempo de execução unicamente para o ASF, já que podem fazer uso do que eles já tem instalado. O pacote genérico também permite que você rode o ASF em qualquer lugar onde você possa obter uma implementação funcional do tempo de execução .NET Core, independente de existir ou não uma compilação do ASF específica para a SO.

Não se recomenda usar o tipo genérico se você quer apenas fazer o ASF funcionar, sendo um usuário casual ou avançado, e não quer entrar em detalhes técnicos do .NET Core. Em outras palavras: se você sabe o que ele é, você pode usá-lo, caso contrário é muito melhor usar o pacote específico para o seu Sistema Operacional, que será explicado abaixo.

Pacote do .NET Framework

Além do pacote genérico mencionado acima, há também um pacote netf-genérico que é construído em cima do .NET Framework (e não do .NET Core). Esse pacote é uma variante herdada que fornece compatibilidades que faltavam nos tempos do ASF V2, e pode rodar, por exemplo, com o Mono, enquanto o pacote genérico .NET Core já não pode.

Em geral, você deve evitar este pacote o quanto for possível, já que a maioria dos sistemas operacionais e configurações são perfeitamente (e muito mais) compatíveis com o pacote genérico mencionado acima. Na verdade, só faz sentido usar esse pacote em plataformas que não tenham o tempo de execução .NET Core, e tenham uma implementação funcional do Mono. Exemplos de tais plataformas incluem linux-x86 (linux i386/i686 32-bit), bem como linux-armel (placas ARMv6 encontradas, p. ex., no Raspberry Pi 0 & 1), todas elas que não tem um tempo de execução oficial .NET Core até hoje.

Conforme o tempo passa, com mais plataformas sendo suportadas pelo .NET Core, e com compatibilidade entre o .NET Framework e o .NET Core diminuindo, o pacote genérico-netf será inteiramente substituído pelo genérico. Por favor, evite usá-lo se você pode usar qualquer pacote do .NET Core em seu lugar, já que exite um monte de funcionalidades e compatibilidades faltantes no pacote genérico-netf em comparação com as versões .NET Core, e ele será cada vez menos funcional com o passar do tempo. Oferecemos suporte para este pacote apenas em máquinas que não podem usar a variante genérica acima (por exemplo, o linux-x86) e somente com o tempo de execução atualizado (por exemplo, o Mono mais recente).


Sistema Operacional específico

O pacote para Sistema Operacional específico, além do código gerenciado incluso no pacote genérico, também inclui código nativo para dada plataforma. Em outras palavras, o pacote para Sistema Operacional específico já inclui o tempo de execução .NET Core apropriado, que permite que você ignore inteiramente a bagunça toda da instalação e abra o ASF diretamente. O pacote para Sistema Operacional específico, como você pode adivinhar pelo nome, é específico para cada sistema operacional e cada um requer sua própria versão; por exemplo, o Windows requer o binário PE32 + ArchiSteamFarm.exe, enquanto o Linux trabalha com o binário Unix ELF ArchiSteamFarm. Como você deve saber, esses dois tipos não são compatíveis um com o outro.

ASF está atualmente disponível nas seguintes variantes específicas de Sistema Operacional:

  • win-x64 compatível com a versão de 64 bits do Windows. Isso inclui o Windows 7 (SP1+), 8.1, 10, Server 2012 R2, 2016, bem como versões futuras.
  • linux-arm compatível com a versão de 32 bits do GNU/Linux com base no ARM (ARMv7+). Isso inclui plataformas como Raspberry Pi 2 (e mais recente) com todos os sistemas operacionais GNU/Linux disponíveis (como o Raspbian), nas versões atuais e futuras. Esta variante não funcionará com arquiteturas ARM antigas, como ARMv6 do Raspberry Pi 0 e 1, e também é incompatível com sistemas que não implementem o ambiente GNU/Linux exigido (como o sistema Android).
  • linux-arm64 compatível com a versão de 64 bits do GNU/Linux com base no ARM (ARMv8+). Isso inclui plataformas como Raspberry Pi 3 (e mais recente) com todos os sistemas operacionais GNU/Linux com base no ARM de 64 bits disponíveis (como o Debian), nas versões atuais e futuras. Esta variante não funcionará com sistemas de 32 bits que não disponibilize as bibliotecas de 64 bits exigidas (como o Raspbian), e também é incompatível com sistemas que não implementem o ambiente GNU/Linux exigido (como o sistema Android).
  • linux-x64 compatível com a versão de 64 bits do GNU/Linux. Isso inclui Alpine, CentOS/Fedora/RHEL, Debian/Ubuntu/Linux Mint, OpenSUSE/SLES e mais, incluindo derivados, nas versões atuais e futuras.
  • osx-x64 compatível com a versão de 64 bits do macOS. Isso inclui o 10.13, bem como versões futuras.

Claro, mesmo que não haja um pacote de Sistema Operacional específico para a sua combinação de arquitetura de Sistema, você sempre pode instalar o tempo de execução .NET Core por sua conta e rodar o pacote genérico do ASF, que também é uma das principais razões para ele existir em primeiro lugar. O pacote genérico do ASF não depende de plataforma e será executado em qualquer plataforma que tenha o tempo de execução .NET Core funcional. Há algo importante de se notar: o ASF requer o tempo de execução .NET Core, não um Sistema Operacional ou arquitetura específicos. Por exemplo, se você estiver rodando o Windows de 32 bits, apesar de não haver versão do ASF dedicado win-x86, você pode instalar o .NET Core SDK na versão win-x86 e rodar o ASF genérico tranquilamente. Nós simplesmente não podemos atender a todas as combinações de arquitetura de Sistemas Operacionais que existam e são usadas por alguém, então temos que traçar um limite em algum lugar. O x86 é um bom exemplo desse limite, já que é uma arquitetura obsoleta desde pelo menos 2004.

Para uma lista completa de todas as plataformas e Sistemas Operacionais suportados pelo .NET Core 5.0, acesse as notas de lançamento.


Requisitos do tempo de execução

Se você estiver usando um pacote para Sistema Operacional específico você não precisa se preocupar com requisitos de tempo de execução porque o ASF sempre acompanha o tempo de execução necessário e atualizado que funcionará corretamente, enquanto você tiver os pré-requisitos do .NET Core instalados e atualizados. Em outras palavras, você não precisa instalar o tempo de execução ou SDK .NET Core, já que as compilações específicas de Sistema Operacional exigem apenas as dependências nativas (pré-requisitos) do sistema e nada mais.

No entanto, se você está tentando executar o pacote genérico do ASF, você deve garantir o que o seu tempo de execução .NET Core ofereça suporte a plataforma requerida pelo ASF.

O ASF, como programa, utiliza o .NET 5.0 (net5.0) agora, mas ele deve utilizar plataformas mais novas no futuro. O net5.0 é suportado desde o SDK 5.0.100 (tempo de execução 5.0.0), porém o ASF é configurado para buscar o tempo de execução mais recente na hora da compilação, então você deve garantir que você tem a SDK mais recente (ou ao menos o tempo de execução) disponível para o seu computador. A variante genéria do ASF pode se recusar a iniciar se o seu tempo de execução for mais antigo que o utilizado durante a compilação.

If in doubt, check what our continuous integration uses for compiling and deploying ASF releases on GitHub. You can find dotnet --info output in every build as part of .NET verification step.

Clone this wiki locally