1.3. Sobre o projeto FreeBSD

A seção a seguir oferece algumas informações básicas sobre projeto, incluindo uma breve história, seus objetivos e seu modelo de desenvolvimento.

1.3.1. Uma Breve História do FreeBSD

Contribuição de Jordan Hubbard.

O projeto FreeBSD teve seu nascimento no início de 1993, em parte como uma consequência do conjunto de manutenção não-oficial do 386BSD (``Unofficial 386BSD Patchkit'') pelos seus 3 últimos coordenadores : Nate Williams, Rod Grimes e eu.

Nosso objetivo original era produzir um snapshot intermediário do 386BSD, de forma a poder corrigir uma série de problemas com este sistema, que o mecanismo de manutenção não era capaz de resolver. Alguns se lembrarão do nome nome inicial do projeto que era ``386BSD 0.5'' ou ``386BSD Interim'' em referência a este fato.

386BSD era o sistema operacional de Bill Jolitz, que já estava naquele instante sofrendo quase um ano de negligência. Como o mecanismo de manutenção patchkit se tornava mais e mais desconfortável a cada dia que passava, fomos unânimes em decidir que algo tinha que ser feito e decidimos ajudar Bill oferecendo a ele este snapshot ``interim''. Tais planos foram bruscamente interrompidos quando Bill Jollitz repentinamento decidiu retirar sua sanção ao projeto sem nenhuma indicação clara do que deveria ser feito.

Não levou muito para decidirmos que o objetivo continuava a valer a pena, mesmo sem a ajuda de Bill, e então adotamos o nome ``FreeBSD'', sugerido por David Greenman. Nossos objetivos iniciais foram definidos depois de consultar os usuários recentes do sistema e, uma vez estando claro que o projeto estava na estrada para, talvez, tornar-se uma realidade, entrei em contato com a Walnut Creek CDROM, com o olho aberto á possibilidade de aperfeiçoar os canais de distribuição do FreeBSD para as pessoas que não tinham acesso à Internet. Walnut Creek CDROM não apenas aprovou a idéia de distribuir o FreeBSD em CD, mas também foi mais longe, ao ponto de oferecer ao projeto uma máquina para trabalho dedicado e uma conexão rápida com a Internet. Sem esta confiança, sem precedentes, da Walnut Creek CDROM no que era, naquele momento, um projeto completamente desconhecido, é muito provável que o FreeBSD não tivesse chegado tão longe e tão rápido ao ponto em que está hoje.

A primeira distribuição em CDROM (e na Internet em geral) foi o FreeBSD 1.0, lançado em Dezembro de 1993. Era baseado na fita 4.3BSD-Lite (``Net/2'') da Universidade da Califórnia, Berkeley (U.C. Berkeley), com muitos componentes originados do 386BSD e da Fundação do Softare Livre (Free Software Foundation). Foi um sucesso razoávelmente grande para uma primeira aparição, e nós continuamos o ciclo com uma versão altamente bem sucedida, o FreeBSD 1.1 release de Maio de 1994.

Por volta desta época, algumas núvens de tempestade inesperadas começaram a se formar no horizonte, conforme a Novell e U.C. Berkeley acertaram ao longo do processo penal entre ambas, a respeito da situação legal da fita contendo o Net/2 de Berkeley. Uma das condições do acordo eram as concessões da U.C. Berkeley que implicava que grandes trechos do Net/2 fossem códigos ``impedidos'' e de propriedade da Novell, que havia por sua vez adquirido-os da AT&T algum tempo antes. O que Berkeley recebeu em retribuição foi a ``benção'' da Novell para o lançamento da versão 4.4BSD-Lite, que quando acontecesse, seria declarado como ``impedido'' e todos os usuários do Net/2 seriam fortemente encorajados a mudar de sistema para a nova versão. Isso incluiu o FreeBSD, ao projeto foi dado o prazo final de Julho de 1994 para parar de distribuir seu produto baseado na versão Net/2. Sob tais termos de acordo, o projeto poderia lançar uma última versão antes do prazo em questão, o que originou o FreeBSD 1.1.5.1.

O FreeBSD definiu então a árdua tarefa de literalmente se reinventar à partir de um sistema completamente novo e consideravelmente incompleto, o 4.4BSD-Lite. As versões ``Lite'' continham grandes blocos de código a menos, removidos pelo CSRG de Berkeley (devido a várias decisões legais), códigos necessários para a construção de um sistema inicializável e que podia ser utilizado em produção e o fato é, que a conversão do 4.4 para a plataforma Intel era altamente incompleta. O projeto levou até Novembro de 1994 para concluir esta transição, quando lançou a versão 2.0 do FreeBSD na rede mundial e em CDROM ( em Dezembro ). Apesar de um pouco bruta naquele instante, a versão teve um sucesso significante, e foi seguida pelo FreeBSD 2.0.5, mais robusto e de mais fácil instalação, em Junho de 1995.

Lançamos o FreeBSD 2.1.5 em Agosto de 1996, que foi bastante popular entre os provedores de internet (ISP) e as empresas a ponto de justificar a viabilidade de outra versão no ramo 2.1-STABLE. Esta versão foi o FreeBSD 2.1.7.1, lançado em Fevereiro de 1997, que marcou o término do desenvolvimento mainstream do 2.1-STABLE. Agora em manutenção, apenas aperfeiçoamentos de segurança e outras correções críticas são realizadas neste ramo (RELENG_2_1_0).

O ramo 2.2 do FreeBSD foi iniciado a partir da série parcial de desenvolvimento (``-CURRENT'') em Novembro de 1996, foi intitulado ramo RELENG_2_2, e a primeira versão completa (2.2.1) foi lançada em Abril de 1997. Versões posteriores ao longo do ramo 2.2 foram criadas no verão e outono de 1998, sendo a última delas (2.2.8) lançada em Novembro de 1998, marcando o início do fim do ramo 2.2.

A árvore foi ramificada mais uma vez, em 20 de Janeiro de 1999, iniciando os ramos 4.0-CURRENT e 3.X-STABLE. A partir da 3.X-STBALE, a versão 3.1 foi lançada, em 15 de Fevereiro de 1999; a versão 3.2 foi lançada em 15 de Maio de 1999; a 3.3 em 16 de Setembro de 1999; a versão 3.4 em 20 de Dezembro de 1999, e a 3.5 em 24 de Junho de 2000, que foi complementada um pouco depois com uma pequena atualização de segurança, o 3.5.1, que incorporava algumas correções de segurança de última hora para o Kerberos. Esta se tornou a versão final para o ramo 3.X.

Outro ramo foi iniciado em 13 de Março de 2000, de forma emergencial na metade do ramo 4.X-STABLE, considerado agora o ``ramo -stable corrente''. Posteriormente houveram várias versões desta série: 4.0-RELEASE foi apresentado ao mundo em Março de 2000, e a versão mais recente, 4.10-RELEASE surgiu em May 2004. Existirão versões adicionais ao longo do ramo 4.X-STABLE (RELENG_4) ainda em 2003.

A versão 5.0-RELEASE, muito aguardada, foi anunciada em 19 de Janeiro de 2003. O resultado culminante de aproximadamente três anos de trabalho, esta versão colocou o FreeBSD no caminho do suporte avançado a multiprocessamento simétrico, suporte avançado a aplicações multithread e apresentou ao público suporte às plataformas UltraSPARC® e ia64. Esta versão foi seguida pela 5.1 em Junho de 2003. Além de um número muito grande de novas funcionalidades, as versões 5.X do FreeBSD contem ainda uma série de trechos em desenvolvimento em todas as arquiteturas de sistemas relacionadas. Por tal razão, as versões 5.X são consideradas versões de ``Nova Tecnologia'', enquanto a série 4.X atua como versões de ``Produção''. No momento apropriado, a série 5.X será declarada estável e o trabalho mais recente será destinado ao próximo ramo de desenvolvimento, o 6.0-CURRENT.

Por hora, projetos de desenvolvimento que requerem mais tempo continuam sendo realizados no ramo 5.X-CURRENT, e versões SNAPshot da série em CDROM (e lógico, na rede) estão contínuamento sendo disponibilizados à partir do servidor de snapshots e apresentado como o trabalho em progresso.

1.3.2. Objetivos do Projeto FreeBSD

Contribuição de Jordan Hubbard.

Os objetivos do Projeto FreeBSD são de oferecer software que pode ser utilizado para qualquer propósito, sem restrições impeditivas. Muitos de nós investimos significantemente no código (e no projeto) e certamente não seria uma surpresa se de vez em quando recebessemos uma pequena compensação financeira, mas definitivamente não insistimos nisso. Acreditamos que nossa primeira e principal ``missão'' é oferecer código para qualquer usuário, e para qualquer propósito, de forma que o código em questão chegue o mais longe que puder e que traga os maiores benefícios que forem possíveis. Este é, acreditamos, um dos principais fundamentos do projeto e do Software Livre, e um dos quais nós apoiamos de forma entusiasmada.

O código em nossa árvore fonte sob a Licença Pública Geral GNU (GPL) ou Licença Pública Menos Geral GNU (LGPL) contém consideravelmente mais restrições impeditivas, contudo, felizmente mais pelo lado de forçar o acesso irrestrito ao código do que o oposto tradicional. Devido às complexidades adicionais que podem envolver o uso comercial de software GPL, nós temos preferência pelos programas lançados sob a licença de direito autoral BSD sempre que possível, por ser uma licença consideravelmente mais flexível.

1.3.3. O Modelo de Desenvolvimento FreeBSD

Contribuição de Satoshi Asami.

O desenvolvimento do FreeBSD é um processo muito aberto e flexível, literalmente composto pela contribuição de centenas de pessoas ao redor do mundo, como pode ser visto em nossa lista de contribuidores. A infraestrutura de desenvolvimento do FreeBSD permite que estas centenas de desenvolvedores colaborem mutuamente pela Internet. Estamos constantemente à procura de novos desenvolvedores e novas idéias, e aqueles dispostos a se tornarem mais envolvidos com o projeto precisam apenas nos contatar através da lista lista de discussões técnicas FreeBSD (hackers). A lista lista de discussão dos anúncios FreeBSD também está disponível aos que querem ficar mais informados sobre as principais áreas de trabalho do projeto FreeBSD.

Informações úteis de se conhecer sobre o projeto FreeBSD e seu processo de desenvolvimento, seja trabalhando de forma independente ou em cooperação mútua:

O repositório CVS

A árvore de fontes central do FreeBSD é mantida pelo CVS (Sistema de Versões Concorrentes), uma ferramenta de controle de código fonte disponível gratuitamente, e que vem junto com o FreeBSD. O repositório CVS primário está localizado em Santa Clara, Califórnia, nos EUA, onde ele é replicado em várias máquinas espelho espalhadas ao redor do mundo. A árvore CVS, que contém os ramos -CURRENT e -STABLE, podem ser completamente replicadas, de forma extremamente fácil, à sua própria máquina local. Refira-se à seção Sincronizando seu código fonte para obter mais informações sobre isso.

A lista de committers

Os committers são as pessoas que tem acesso de escrita na árvore CVS, e tem autorização para realizar modificações diretas na árvore fonte do FreeBSD (o termo ``committer'' se origina no comando commit do cvs(1), que é utilizado para incluir novas mudanças no repositório CVS). Ou seja, os committers são os desenvolvedores do FreeBSD. A melhor maneira de submeter modificações/contribuições para revisão dos committers é utilizar o comando send-pr(1). Se algo estiver fora de conformidades com o sistema de send-pr(1), pode ser interessante entrar em contato com os desenvolvedores enviando uma mensagem de correio para a lista lista de discussão de FreeBSD committers.

O Grupo Central (Core Team) do FreeBSD

O FreeBSD core team seria equivalente ao corpo de diretores, se o Projeto FreeBSD fosse uma empresa. A tarefa primária do core team é garantir que o projeto, de forma geral, esteja em boa forma e caminhando nas direções corretas, bem como o recrutamento de novos membros para o core team conforme outros vão se desligando do cargo. O core team atual foi eleito a partir de um grupo de desenvolvedores que se candidataram ao cargo, em Junho de 2002. Eleições para o core team acontecem a cada 2 anos.

Alguns membros do core team tem ainda áreas específicas de responsabilidade no projeto, o que significa que eles são responsáveis por garantir que um trecho bastante relevante e grande do sistema funcionem como se espera. Para a lista completa dos desenvolvedores do FreeBSD e suas respectivas áreas de responsabilidade, por gentileza, consulte a Lista de Contribuidores.

Nota: A maioria dos membros do core team são voluntários no desenvolvimento do FreeBSD, e não se beneficiam financeiramente do projeto, de forma que ``desenvolvimento'' não pode ser confundido com ``suporte garantido'' por parte destes. A analogia com o ``corpo de diretores'' feita acima não é muito precisa, melhor seria dizermos que estas são as pessoas que desistiram de suas vidas em favor do FreeBSD.

Contribuidores externos

Por último, mas definitivamente não em último, o maior grupo de desenvolvedores são os próprios usuários do sistema, que oferecem retorno e correções de problemas ao projeto de maneira consideravelmente constante. A forma principal de se manter em sintonia com os trechos de desenvolvimento menos centralizados no FreeBSD, é se inscrever na lista lista de discussões técnicas FreeBSD (hackers) onde tais assuntos são discutidos. Veja Apêndice C para obter mais informações sobre as inúmeras listas de discussão do projeto FreeBSD.

A Lista de contribuidores do FreeBSD é grande e está em constante crescimento, então por que você não entra nessa lista hoje, contribuindo com alguma coisa para o projeto FreeBSD?

Oferecer código não é a única maneira de contribuir com o projeto; para uma lista mais completa do que precisa ser feito, por gentileza, refira-se ao sítio WWW do Projeto FreeBSD.

Em resumo, nosso modelo de desenvolvimento é um conjunto de circulos concêntricos. O modelo centralizado é projetado com o objetivo de oferecer conveniência aos usuários do FreeBSD, que são agraciados com um modelo simples para acompanhar uma base centralizada de códigos, e não para afastar contribuidores em potencial ! Nosso desejo é apresentar um sistema operacional estável com um amplo e coerente conjunto de programas aplicativos que os usuários podem instalar e utilizar de forma fácil. O modelo atual funciona muito bem na realização deste objetivo.

Tudo que pedimos aos que desejam se juntar a nós como desenvolvedores FreeBSD, é um pouco da mesma dedicação que os membros atuais tem, pra prover o contínuo sucesso do projeto!

1.3.4. A Versão Atual do FreeBSD

FreeBSD é um sistema cujos fontes foram inteiramente baseados no 4.4BSD-Lite, disponível livremente para computadores baseados em Intel i386™, i486™, Pentium®, Pentium Pro, Celeron®, Pentium II, Pentium III, Pentium 4 (ou compatíavel), Xeon™, DEC Alpha™ e Sun UltraSPARC. O sistema é baseado primariamente em programas do CSRG (Grupo de Pesquisa em Sistemas Computacionais) da U.C. Berkeley, com algumas melhorias incorporadas do NetBSD, OpenBSD, 386BSD e da Fundação do Software Livre (FSF).

Desde o lançamento do FreeBSD 2.0 no final de 1994, a performance, as funcionalidades, e a estabilidade do FreeBSD foram dramaticamente incrementados. A maior modificação foi a melhoria do sistema de memória virtual com a inclusão do merged VM/file buffer cache que não apenas melhora a performance, mas também reduz pedaços perdidos de memória no FreeBSD, tornando a configuração mínima de 5 MB um requerimento mais aceitável. Outras melhorias incluem suporte completo à cliente e servidor NIS, suporte à transaction TCP, discagem PPP por demanda, suporte DHCP integrado, um subsistema SCSI aperfeiçoado, suporte ISDN, suporte ATM, FDDI, adaptadores de rede Fast Ethernet e Gigabit Ethernet (1000 Mbit), suporte aperfeiçoado às adaptadoras Adaptec mais recentes, e muitos milhares de correções de problemas.

Além da distribuição base, o FreeBSD oferece ainda uma coleção de aplicações ( ports ) composta de milhares de programas populares. No momento da preparação deste documento, haviam mais de 11,800 ports ! A lista de ports varia de servidores http (WWW) à jogos, linguagens de programação, editores de texto e praticamente tudo o mais que se encaixe entre eles. A coleção de ports inteira requer aproximadamente 300 MB de espaço para armazenamento, sendo todos ports identificados como ``deltas'' à seus fontes originais. Isto torna o processo de atualização dos ports considerávelmente mais fácil para nós, e reduz muito a demanda por espaço em disco, especialmente quando comparado à versão 1.0 da Coleção de Ports. Para compilar uma aplicação basta entrar no diretório do port que você deseja instalar, digitar make install e deixar o sistema cuidar do resto. A distribuição original para cada aplicação é obtida dinâmicamente do CDROM ou de um sítio FTP, portanto tudo que você precisa é ter espaço em disco o bastante para compilar os programas desejados. Quase todos os programas também estão disponíveis como `` pacotes'' pré-compilados, que podem ser instalados com um simples comando (pkg_add) por aqueles que preferem não compilar suas próprias aplicaçòes à partir dos fontes. Mais informações sobre pacotes e sobre ports podem ser encontradas no Capítulo 4.

Uma série de documentos adicionais que eventualmente você pode jugar muito úteis durante o processo de instalação e utilização do FreeBSD podem ser encontrados também no diretório /usr/share/doc em qualquer estação FreeBSD recente. Você pode visualizar os manuais instalados localmente com qualquer navegador HTML, utilizando as seguintes URLs:

Você ainda pode acessar as cópias mestre (e frequentemente mais atualizadas) em http://www.FreeBSD.org/.

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>.