O FreeBSD fornece uma excelente base sobre a qual podemos construir produtos:
O [GoldGab2005] analisa em maior profundidade os motivos comerciais para se utilizar código fonte aberto. Para as organizações, os benefícios do uso de componentes do FreeBSD em seus produtos incluem a redução do tempo necessário para lançar novos produtos no mercado, menores custos e menores riscos de desenvolvimento.
Aqui estão alguns exemplos de como as empresas estão utilizando o FreeBSD:
Como um provedor (upstream source) de códigos testados para bibliotecas e utilitários.
Sendo o downstream do projeto, as organizações se aproveitam das novas funcionalidades, das correções de bugs e dos testes que o código fonte do projeto FreeBSD recebe.
Como sistema operacional integrado (por exemplo, em um roteador OEM e ou em um dispositivo de firewall). Neste modelo, as empresas utilizam uma versão customizada do kernel e do conjunto de aplicativos do FreeBSD, juntamente com uma camada proprietária de gestão para os seus dispositivos. Os fabricantes de equipamentos originais (OEMs) se beneficiam da adição por parte do FreeBSD de suporte a novos componentes de hardware, bem como se beneficia dos testes que o sistema base recebe.
O FreeBSD é distribuído com um ambiente de desenvolvimento auto-hospedado o qual permite a fácil criação de tais configurações.
Como um ambiente Unix compatível para as funções de gerenciamento em dispositivos de armazenamento high-end e em dispositivos de rede, executando em uma lâmina separada.
O FreeBSD fornece ferramentas para a criação de imagens do sistema operacional dedicadas a executar uma função específica. Sua implementação da API unix BSD é madura e testada. O FreeBSD também pode proporcionar um ambiente de desenvolvimento cruzado estável para os outros componentes de dispositivos topo de linha.
Como um veículo para obter suporte e testes amplos de uma equipe mundial de desenvolvedores para a sua “propriedade intelectual” não-crítica.
Neste modelo, as organizações contribuem com frameworks de infra-estrutura úteis ao projeto FreeBSD (por exemplo, veja o netgraph(3)). A ampla exposição que o código obtém ajuda na rápida identificação de bugs e de problemas de desempenho. O envolvimento de desenvolvedores de alta qualidade também resulta no desenvolvimento de extensões úteis para a infra-estrutura do sistema, e das quais a empresa que está contribuindo com o projeto também se beneficia.
Como um ambiente de desenvolvimento apoiando desenvolvimento cruzado para sistemas operacionais embarcados como RTEMS e o eCOS.
Existem muitos ambientes de desenvolvimento completos na forte coleção de mais de 24,000 aplicativos portados e empacotados para o FreeBSD.
Como forma de suportar uma API estilo Unix em um sistema operacional que de outro modo seria proprietário, aumentando a sua palatabilidade para os desenvolvedores de aplicativos.
Aqui as partes do kernel do FreeBSD e as aplicações são “portadas” para serem executadas juntamente com outras tarefas no sistema operacional proprietário. A disponibilidade de uma implementação estável e bem testada da API Unix™ pode reduzir o esforço necessário para portar aplicações populares para um sistema operacional proprietário. Como o FreeBSD é distribuído acompanhado de uma documentação de alta qualidade sobre a sua estrutura interna, e possui processos eficazes de engenharia para gerenciamento de vulnerabilidades e para lançamento de novas versões, os custos para mantê-lo atualizado são baixos.
Existe um grande número de tecnologias suportadas pelo projeto FreeBSD. Abaixo você encontra uma lista com alguma delas:
Funcionalidades avançadas de rede: firewalls, gerenciamento de QoS, rede TCP/IP de alta performance com suporte a muitos recursos avançados.
O framework Netgraph (netgraph(4)) presente no kernel do FreeBSD, permite que os módulos de rede possam ser conectados entre si de formas flexíveis.
Suporte para tecnologias avançadas de armazenamento Fibre Channel, SCSI, RAID por software e hardware, ATA e SATA.
O FreeBSD suporta um grande numero de sistemas de
arquivos, e o seu sistema de arquivos nativo UFS2 suporta
soft updates
,
snapshots
e sistemas de arquivos de
tamanho muito grandes (até 16 TB por sistema de arquivos)
[McKu1999].
O framework GEOM (geom(4)) presente no kernel do FreeBSD permite que módulos de armazenamento sejam compostos de forma flexível.
A estrutura organizacional do FreeBSD não é hierárquica
Existem basicamente dois tipos de colaboradores no projeto FreeBSD, os usuários em geral e os desenvolvedores com acesso de escrita (conhecidos como committers no jargão) ao repositório de código fonte.
Existem muitos milhares de colaboradores no primeiro
grupo, a grande maioria das contribuições para o FreeBSD vêm
de indivíduos desse grupo; A permissão de
commit
(acesso de escrita) no repositório é
concedida a pessoas que contribuem de forma consistente para o
projeto. O direito de commit
vem
acompanhado de responsabilidades adicionais, e para facilitar
o aprendizado das mesmas, um mentor é atribuído a todos os
novos committers
.
A resolução de conflitos é realizada por um
“Core Team
” de 9 pessoas, o
qual é eleito a partir do grupo de
committers
.
O FreeBSD não tem committers
corporativos. Os committers
são obrigados
a assumir de forma individual a responsabilidade pelas
mudanças que introduzem no código. O FreeBSD Committer's
Guide [ComGuide] documenta as
regras e responsabilidades que se aplicam aos
committers
.
O modelo do projeto FreeBSD é examinado em detalhes no [Nik2005].
O processo de engenharia para a liberação de uma nova versão do FreeBSD desempenha um papel importante para assegurar que as suas novas versões sejam de alta qualidade. Em qualquer ponto do tempo, os voluntários do FreeBSD suportam múltiplas versões do código sistema (Figura 2, “Ramos de versões do FreeBSD”):
As linhas de código são mantidas vivas enquanto houver interesse dos usuários e dos desenvolvedores nelas.
As arquiteturas de máquina estão agrupadas em “tiers”; As arquiteturas Tier 1 são totalmente suportadas pelas equipes de engenharia de lançamento e de segurança, as arquiteturas Tier 2 são suportadas em regime de “melhores esforços”, e as arquiteturas experimentais compreendem o Tier 3. A lista das arquiteturas suportadas é parte da coleção de documentos do FreeBSD.
A equipe de engenharia de lançamentos publica um road map
para as versões futuras do FreeBSD no web site do projeto. As
datas indicadas no road map
não são prazos;
As novas versões do FreeBSD são liberadas apenas quando o seu
código e documentação estão prontos.
O processo de engenharia para a liberação de novas versões do FreeBSD é descrito em detalhes no [RelEngDoc].
Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Para perguntas sobre FreeBSD, leia a
documentação antes de contatar
<questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para
<doc@FreeBSD.org>.