O FreeBSD é um sistema operacional altamente portátil destinado a funcionar em muitos tipos diferentes de arquiteturas de hardware. Manter uma separação clara entre o código dependente de máquina (MD) e independente de máquina (MI), além de minimizar o código MD, é uma parte importante da nossa estratégia de permanecer ágil em relação às tendências atuais de hardware. Cada nova arquitetura de hardware suportada pelo FreeBSD aumenta substancialmente o custo de manutenção de código, de suporte do toolchain e de engenharia de release. Também aumenta drasticamente o custo do teste efetivo das alterações no kernel. Como tal, há uma forte motivação para diferenciar as classes de suporte para as várias arquiteturas, permanecendo forte em algumas arquiteturas chaves que são vistas como o “público-alvo” do FreeBSD.
O projeto FreeBSD tem como objetivo a "qualidade comercial de produção off-the-shelf (COTS) para workstations, servidores e sistemas embarcados de ponta". Mantendo o foco em um conjunto restrito de arquiteturas de interesse nesses ambientes, o Projeto FreeBSD é capaz de manter altos níveis de qualidade, estabilidade e desempenho, bem como de minimizar a carga de várias equipes de suporte no projeto, como a equipe de ports, a equipe de documentação, o oficial de segurança e as equipes de engenharia de release. A diversidade no suporte de hardware amplia as opções para os consumidores do FreeBSD oferecendo novos recursos e oportunidades de uso (como suporte a CPUs de 64 bits, uso em ambientes embarcados, etc.), mas esses benefícios devem sempre ser cuidadosamente considerados em termos do custo de manutenção no mundo real associado ao suporte adicional à plataforma.
O projeto FreeBSD diferencia as plataformas em quatro níveis. Cada tier inclui uma especificação dos requisitos para que uma arquitetura esteja nesse nível, além de especificar as obrigações dos desenvolvedores em relação à plataforma. Além disso, uma política é definida em relação às circunstâncias necessárias para alterar o tier de uma arquitetura.
Plataformas de nível 1 são completamente suportadas pelas equipes de oficiais de segurança, engenharia de release e equipe de manutenção do toolchain. Novos recursos adicionados ao sistema operacional devem ser totalmente funcionais em todas as arquiteturas Tier 1 para cada release (recursos que são inerentemente específicos da arquitetura, como suporte a drivers de dispositivo de hardware, podem estar isentos desse requisito). Em geral, todas as plataformas de Tier 1 devem ter suporte a automação compilação e teste no cluster do FreeBSD.org ou facilmente disponíveis para todos os desenvolvedores. Plataformas embarcadas podem substituir um emulador disponível no cluster do FreeBSD.org por hardware real.
Espera-se que as arquiteturas de Tier 1 estejam com Qualidade de Produção em relação a todos os aspectos do sistema operacional FreeBSD, incluindo ambientes de instalação e desenvolvimento.
Espera-se que as arquiteturas de Tier 1 sejam completamente integradas na árvore de código e tenham todos os recursos necessários para produzir um sistema inteiro relevante para essa arquitetura alvo. Arquiteturas de Tier 1 geralmente têm pelo menos 6 desenvolvedores ativos.
Espera-se que as arquiteturas de Tier 1 sejam totalmente suportadas pelo sistema de ports. Todos os ports devem ser compilados em uma plataforma de Tier 1 ou ter os filtros apropriados para evitar que sejam compilados nas inadequadas. O sistema de empacotamento deve suportar todas as arquiteturas de Tier 1. Para garantir o status de Tier 1 de uma arquitetura, os proponentes dessa arquitetura devem mostrar que todos os pacotes relevantes podem ser compilados nessa plataforma.
As arquiteturas embarcadas de Tier 1 devem ser capazes de criar pacotes cross-build em pelo menos uma outra arquitetura de Tier 1. Os pacotes devem ser os mais relevantes para a plataforma, mas podem ser um subconjunto não vazio daqueles que são compilados nativamente.
As arquiteturas de Tier 1 devem ser totalmente documentadas. Todas as operações básicas precisam ser cobertas pelo manual ou por outros documentos. Toda a documentação de integração relevante também deve ser integrada na árvore ou estar prontamente disponível.
As plataformas atuais Tier 1 são i386 e amd64.
As plataformas de Tier 2 não são suportadas pelas equipes do oficial de segurança e pelas as equipes de engenharia de release. Os mantenedores de plataformas são responsáveis pelo suporte de toolchain na árvore. Espera-se que os mantenedores de toolchain trabalhem com os mantenedores da plataforma para refinar essas mudanças. Os principais novos componentes de toolchain têm permissão para quebrar o suporte para arquiteturas de Tier 2 se as alterações locais do FreeBSD não tiverem sido incorporadas ao upstream. Espera-se que os mantenedores de toolchain forneçam uma rápida revisão de quaisquer alterações propostas e não possam bloquear, por meio de sua inação, as mudanças que vão para a árvore. Novos recursos adicionados ao FreeBSD devem ser viáveis de implementar nessas plataformas, mas uma implementação não é necessária antes que o recurso possa ser adicionado à árvore de códigos fonte do FreeBSD. Novos recursos que podem ser difíceis de implementar em arquiteturas de Tier 2 devem fornecer um meio de desabilitá-los nessas arquiteturas. Pode se fazer o commit de uma implementação de uma arquitetura de Tier 2 na árvore principal do FreeBSD, desde que não interfira com o trabalho de produção nas plataformas de Tier 1, ou substancialmente com outras plataformas de Tier 2. Antes que uma plataforma Tier 2 possa ser adicionada à árvore de código fonte do FreeBSD, a plataforma deve ser capaz de inicializar em modo multiusuário em hardware real. Geralmente, deve haver pelo menos três desenvolvedores ativos trabalhando na plataforma.
As arquiteturas de Tier 2 geralmente são sistemas destinados ao suporte Tier 1, mas que ainda estão em desenvolvimento. As arquiteturas que atingem o fim da vida útil também podem ser movidas do status de Tier 1 para o status de Tier 2 à medida que a disponibilidade de recursos para continuar a manter o sistema em um estado de Qualidade de Produção diminui. Arquiteturas de nicho bem suportadas também podem ser de Tier 2.
As arquiteturas Tier 2 possuem suporte básico para elas, integradas à infraestrutura de ports. Elas podem ter suporte a cross-build adicionado, a critério do portmgr. Alguns ports devem ser compilados nativamente em pacotes se o sistema de pacotes suportar essa arquitetura. Se não estiver integrado no sistema base, algumas correções externas para a arquitetura dos ports devem ser disponibilizados.
As arquiteturas Tier 2 podem ser integradas no Handbook do FreeBSD. As noções básicas sobre como obter um sistema em execução devem ser documentadas, embora não necessariamente para cada única placa ou sistema suportado por uma arquitetura Tier 2. A lista de hardware suportada deve existir e ser relativamente recente. Ela deve ser integrado na documentação do FreeBSD.
As plataformas atuais Tier 2 são arm, arm64, ia64 (através do FreeBSD 10), mips, pc98 (através do FreeBSD 11), powerpc e sparc64.
As plataformas Tier 3 não são suportadas pelo oficial de segurança e nem pelas equipes de engenharia release. A critério dos mantenedores do toolchain, elas podem ser suportados no toolchain. As plataformas Tier 3 são arquiteturas nos estágios iniciais de desenvolvimento, para plataformas de hardware fora do mainstream, ou que são consideradas sistemas legados que provavelmente não serão vistas um uso futuro amplo. O suporte inicial para plataformas Tier 3 é trabalhado em repositórios externos de SCM. A transição para o subversion do FreeBSD ocorre depois que a plataforma inicializa em modo multiusuário em hardware real; o compartilhamento via subversion é necessário para uma exposição mais ampla; e vários desenvolvedores estão trabalhando ativamente na plataforma. As plataformas que fazem a transição para o status de Tier 3 podem ser removidas da árvore se não forem mais suportadas ativamente pela comunidade de desenvolvedores do FreeBSD, a critério do engenheiro de release.
As plataformas Tier 3 podem ter suporte a ports, integrados ou externos, mas não exigem isso.
Plataformas Tier 3 devem ter as noções básicas documentadas de como construir um kernel e como inicializá-lo em pelo menos um ambiente de hardware ou ambiente de emulação alvo. Esta documentação não precisa ser integrada à árvore do FreeBSD.
As plataformas atuais Tier 3 é a riscv.
Os sistemas Tier 4 não são suportados de nenhuma forma pelo projeto.
Todos os sistemas não classificados em um nível de suporte são sistemas Tier 4. A plataforma ia64 está em transição para o status de Tier 4 no FreeBSD 11. A plataforma pc98 está em transição para o status de Tier 4 no FreeBSD 12.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.