# Arch Linux

Arch Linux, ou Arch (pronúncia em inglês:), é uma distribuição Linux para computadores com arquitetura x86-64. Desenvolvido inicialmente pelo canadense Judd Vinet, esse sistema operacional se apresenta de maneira diferente de outros, como Windows e MacOS. Além de ser composto predominantemente por software livre e de código aberto, ele envolve contribuições da comunidade.
O desenvolvimento é focado na elegância, minimalismo e simplicidade no código, e espera que o usuário faça alguns esforços para compreender o modo de funcionamento do sistema. O gerenciador de pacotes, Pacman, foi escrito especialmente para o Arch Linux e é usado para instalar, remover, pesquisar e atualizar os pacotes do sistema.
O Arch Linux usa o modelo rolling release. Com esse sistema, os usuários podem ter acesso às últimas atualizações estáveis dos pacotes e também evita atualizações muito grandes que podem gerar erros nos componentes do sistema. As imagens de instalação lançadas pela equipe do Arch são apenas capturas instantâneas de imagens de disco atualizadas dos principais componentes do sistema.
Usuários da distribuição podem criar facilmente seus próprios pacotes compatíveis com o pacman usando ferramentas como o "Arch Build System", funcionalidade esta que ajudou a sustentar o AUR, um repositório de pacotes criados por usuários que complementam os repositórios oficiais.

## História

Inspirado pela CRUX, outra distribuição minimalista, Judd Vinet iniciou o desenvolvimento do Arch Linux em março de 2002. Vinet liderou o Arch Linux até 1 de outubro de 2007, quando ele desistiu por falta de tempo, transferindo o controle do projeto para Aaron Griffin.
Originalmente apenas para CPUs de 32 bits x86, o primeiro ISO de instalação x86_64 foi lançado em abril de 2006. O fim do suporte para i686 foi anunciado em janeiro de 2017, com o ISO de fevereiro de 2017 sendo o último incluindo i686 e tornando a arquitetura não suportada em novembro de 2017.

### Segurança de repositório

Até a versão 4.0.0, o gerenciador de pacotes do Arch Linux, o pacman, não tinha suporte para pacotes assinados. Pacotes e metadados não tinham a autenticidade verificada pelo pacman durante o processo de download e instalação. Sem verificação de autenticação de pacotes, repositórios falsificados, comprometidos ou maliciosos podem comprometer a integridade de um sistema. Pacman 4 permitiu a verificação de banco de dados dos pacotes e dos pacotes, mas este recurso estava desativado por padrão. Em novembro de 2011, a assinatura de pacotes tornou-se obrigatória para novas compilações de pacotes e, a partir de 21 de março de 2012, todos os pacotes oficiais são assinados.
Em junho de 2012, a verificação da assinatura do pacote tornou-se oficial e agora está habilitada por padrão no processo de instalação.

## Filosofia

O Arch Linux é baseado em 5 pontos: simplicidade, modernidade, pragmatismo, centralidade no usuário e versatilidade.
O Arch Linux tem foco na simplicidade do design. Isso significa que o foco principal é criar um ambiente que é direto e relativamente simples de se adaptar, ao invés de oferecer, por padrão, ferramentas que trazem interface gráfica no estilo "aponte e clique" que escondem os arquivos de configuração do usuário. O pacman, por exemplo, não possui uma interface oficial, embora seja composto de uma ótima documentação, arquivos de configuração simples, comentários bem definidos e facilmente organizados para fácil acesso e edição. Por isso, ganhou respeito como uma distribuição para usuários intermediários e avançados, e que não têm medo da linha de comando.
Segundo Aaron Griffin, ao depender de ferramentas para esconder a complexidade do sistema, o resultado será um sistema mais complexo ainda. O uso de camadas para esconder o sistema interno nunca foi uma boa ideia. Ao invés disso, os componentes internos devem ser organizados de um jeito que não precisem ser escondidos.

## Gerenciamento de Pacotes

Arch é baseado principalmente em pacotes binários. Esses pacotes são gerenciados pela ferramenta Pacman que conduz a instalação de pacotes, atualizações do sistema, remoção de programas e consultas ao banco de dados de pacotes. Os pacotes binários são compilados de forma otimizada para processadores i686. Também podem ser construídos a partir dos códigos fonte através do ABS (Arch Linux Build System), que trabalha nos moldes do Ports.
Os pacotes vêm da árvore de pacotes do Arch Linux e de seus mirrors. Atualmente existem 5 diferentes grupos:
* Core - Contém todos os pacotes necessários para o sistema Linux básico.
* Extra - Contém pacotes que não são necessários para o sistema base, mas adicionam funcionalidades extras.
* Multilib - Possui as bibliotecas 32bits para 64bits, ou vice-versa, permitindo o uso simultâneo de aplicações 32bits ou 64bits. Útil para programas que só estejam disponíveis justamente na arquitetura oposta.
* Community - Contém pacotes construídos pela comunidade e aprovada pelos usuários confiáveis.
* Testing - Contém pacotes que são instáveis e ainda estão sendo testados antes de serem adicionados ao grupo extra ou core.
* Community Testing - Este repositório é similar ao Testing, mas para pacotes que são candidatos para o repositório community.
* Multilib Testing - Este repositório é similar ao Testing, mas para pacotes que são candidatos para o repositório multilib.
Existem repositórios não oficiais também e são integrados à árvore oficial.

### Mudanças nos repositórios

Publicado em 15 de maio de 2023 a exclusão do Community e do Community Testing migrando os pacotes para o extra e extra-testing. Foi realizado a migração para o Git usando instância própria do GitLab.

## Versões
### Rolling Release

Similar ao Gentoo, e diferente das outras distribuições que são Point release como Ubuntu e Fedora, o Arch Linux não possui versões, mas usa o sistema rolling release, com novos pacotes atualizados constantemente. Esse tipo de funcionamento permite que o usuário tenha um sistema sempre atualizado. Ao invés de encorajar os usuários a mudarem entre versões, as ISO's que são atualizadas regularmente são apenas capturas instantâneas de imagens de disco com pacotes mais recentes, às vezes com algum tipo de revisão. Não há diferença entre um sistema instalado com a versão 2016.01.19 e a versão 2020.06.29, se ambos estiverem atualizados através do Pacman. Mesmo assim, se alguma atualização precisar de intervenção manual, as instruções serão postadas na seção de notícias do website. Um fato interessante: alguns membros do fórum do Arch Linux se vangloriam ao mostrar a data em que o sistema foi instalado e o seu uptime.

### Outros kernels

Projetos como o PacBSD (baseado no FreeBSD) e o Arch Hurd (baseado no GNU Hurd) são projetos que trazem os ideais e as ferramentas do Arch Linux para outros kernels.

### Outras arquiteturas

Há o Arch Linux ARM, que almeja trazer o Arch Linux para dispositivos baseados em ARM, incluindo o Raspberry Pi, bem como o projeto Arch Linux 32, que continuou com o suporte a sistemas com CPUs somente de 32 bits depois que o projeto Arch Linux abandonou o suporte à arquitetura em novembro de 2017.

## Arch User Repository

O Arch User Repository (AUR) é um repositório comunitário e não oficial do Arch Linux para usuários. Ele contém apenas "arquivos de descrição" (chamados PKGBUILDS) que permitem compilar pacotes a partir de seu código fonte e instalá-los posteriormente com o Pacman.
Muitos pacotes novos no Arch Linux começam no AUR. Usuários podem votar contra ou a favor dos pacotes, para só então — depois de se tornarem populares o suficiente — serem movidos para o repositório oficial da comunidade e foi realizado uma migração para o extra em 15 de maio de 2023. Com esta mudança, o Community e Community Testing deixa de existir.