1079 lines
46 KiB
XML
1079 lines
46 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
|
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
|
<!--
|
|
The FreeBSD Documentation Project
|
|
The FreeBSD Brazilian Portuguese Documentation Project
|
|
|
|
Original revision: r39544
|
|
-->
|
|
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="pt_br">
|
|
<info><title>Construindo Produtos com o FreeBSD</title>
|
|
|
|
<authorgroup>
|
|
<author><personname><firstname>Joseph</firstname><surname>Koshy</surname></personname><affiliation>
|
|
<orgname>The FreeBSD Project</orgname>
|
|
<address><email>jkoshy@FreeBSD.org</email></address>
|
|
</affiliation></author>
|
|
</authorgroup>
|
|
|
|
<legalnotice xml:id="trademarks" role="trademarks">
|
|
&tm-attrib.freebsd;
|
|
&tm-attrib.general;
|
|
</legalnotice>
|
|
|
|
<pubdate>$FreeBSD$</pubdate>
|
|
|
|
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
|
|
<abstract>
|
|
<title>Sumário</title>
|
|
|
|
<para>O projeto FreeBSD é um projeto voluntário e colaborativo
|
|
de âmbito mundial, o qual desenvolve um sistema operacional de
|
|
alta qualidade, capaz de ser utilizado em diferentes
|
|
arquiteturas computacionais. O projeto FreeBSD distribui o
|
|
código fonte do seu produto sob uma licença liberal, com a
|
|
intenção de incentivar o uso de seu código. Colaborar com o
|
|
projeto FreeBSD pode ajudar sua empresa a reduzir o tempo
|
|
necessário para colocar um produto no mercado, a reduzir
|
|
seus custos de engenharia e a melhorar qualidade de seus
|
|
produtos.</para>
|
|
|
|
<para>Este artigo analisa as questões envolvidas no uso do
|
|
código do FreeBSD em appliances e softwares. Ele também
|
|
destaca as características do FreeBSD, que o tornam uma
|
|
excelente base para o desenvolvimento de produtos. O artigo
|
|
conclui sugerindo um conjunto das <quote>melhores
|
|
práticas</quote> de organizações que colaboram com o projeto
|
|
FreeBSD.</para>
|
|
</abstract>
|
|
</info>
|
|
|
|
<sect1 xml:id="introduction">
|
|
<title>Introdução</title>
|
|
|
|
<para>Atualmente o FreeBSD é bem conhecido como um sistema
|
|
operacional de alto desempenho para servidores. Ele está
|
|
instalado em milhões de servidores web e em outros hosts
|
|
conectados diretamente a internet em todo o mundo. O código
|
|
do FreeBSD também é parte integrante de muitos produtos, que
|
|
vão desde aparelhos como roteadores de rede, firewalls e
|
|
dispositivos de armazenamento, até computadores pessoais.
|
|
Partes do FreeBSD também têm sido utilizadas em softwares
|
|
comerciais (consulte <xref linkend="freebsd-intro"/>).</para>
|
|
|
|
<para>Neste artigo, vamos olhar para o <link xlink:href="&url.base;/">Projeto FreeBSD</link> como um recurso de
|
|
engenharia de software — como um conjunto de blocos de
|
|
construção e de processos os quais você pode utilizar para
|
|
construir produtos.</para>
|
|
|
|
<para>Embora o código fonte do FreeBSD seja distribuído
|
|
gratuitamente ao público, para desfrutar plenamente dos
|
|
benefícios do trabalho do projeto, as organizações precisam
|
|
<emphasis>colaborar</emphasis> com o mesmo. Nas seções
|
|
subsequentes do presente artigo discutiremos formas eficazes de
|
|
colaborar com o projeto, bem como os perigos que precisam ser
|
|
evitados ao fazê-lo.</para>
|
|
|
|
<formalpara>
|
|
<title>Advertência ao Leitor</title>
|
|
|
|
<para>O autor considera que as características do projeto
|
|
FreeBSD mencionadas neste artigo eram substancialmente
|
|
verdadeiras no momento em que o artigo foi concebido e
|
|
escrito (2005). No entanto, o leitor deve ter em mente que
|
|
as práticas e processos utilizados por comunidades de código
|
|
aberto podem mudar ao longo do tempo, e que portanto as
|
|
informações deste artigo devem ser consideradas apenas como
|
|
indicativas e não como verdades absolutas.</para>
|
|
</formalpara>
|
|
|
|
<sect2>
|
|
<title>Público Alvo</title>
|
|
|
|
<para>Este documento tem como público alvo os seguintes grupos
|
|
de pessoas:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>Tomadores de decisão em empresas que estejam em
|
|
busca de meios para melhorar a qualidade de seus produtos,
|
|
de reduzir o tempo necessário para lançá-los no mercado e
|
|
de reduzir seus custos de engenharia no longo
|
|
prazo.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Consultores de tecnologia procurando as melhores
|
|
práticas para alavancar projetos de <quote>código
|
|
aberto</quote>.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Observadores da indústria interessados em
|
|
compreender a dinâmica dos projetos de <quote>código
|
|
aberto</quote>.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Desenvolvedores de software que utilizam o FreeBSD
|
|
e que buscam formas de contribuir com o projeto.</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Objetivos do artigo</title>
|
|
<para>Após a leitura deste artigo, você deve ter:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>Uma melhor compreensão dos objetivos do Projeto
|
|
FreeBSD e de sua estrutura organizacional.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Uma visão geral das tecnologias disponíveis no
|
|
projeto.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Uma melhor compreensão do modelo de
|
|
desenvolvimento adotado pelo Projeto FreeBSD e dos
|
|
processos de engenharia envolvidos no lançamento de uma
|
|
nova versão do sistema.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Uma compreensão de como os processos convencionais
|
|
de desenvolvimento de software em uma empresa diferem dos
|
|
processos utilizados no projeto FreeBSD.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Consciência dos canais de comunicação utilizados
|
|
pelo projeto e do nível de transparência que você pode
|
|
esperar.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Consciência das melhores formas de se trabalhar
|
|
com o projeto — a melhor forma de reduzir os custos
|
|
de engenharia, de reduzir o tempo necessário para levar
|
|
seu produto ao mercado, de gerir vulnerabilidades de
|
|
segurança, e de preservar a compatibilidade futura com o
|
|
seu produto a medida que o Projeto FreeBSD
|
|
evolui.</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Estrutura do Artigo</title>
|
|
<para>O restante deste artigo está estruturado da seguinte
|
|
forma:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>A <xref linkend="freebsd-intro"/> apresenta o
|
|
projeto FreeBSD, explora sua estrutura organizacional, as
|
|
principais tecnologias e processos de engenharia
|
|
envolvidos no lançamento de uma nova versão do
|
|
sistema.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>A <xref linkend="freebsd-collaboration"/>
|
|
descreve formas de colaborar com o Projeto FreeBSD. Esta
|
|
seção também aborda as armadilhas que são geralmente
|
|
encontradas por empresas que trabalham com projetos
|
|
voluntários como o FreeBSD.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>A <xref linkend="conclusion"/> conclui o
|
|
artigo.</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="freebsd-intro">
|
|
<title>O FreeBSD como um conjunto de blocos de construção</title>
|
|
|
|
<para>O FreeBSD fornece uma excelente base sobre a qual podemos
|
|
construir produtos:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>O código fonte do FreeBSD é distribuído sob uma
|
|
licença BSD liberal, o que facilita sua adoção em produtos
|
|
comerciais com um mínimo de preocupações.
|
|
<citation>Mon2005</citation></simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>O Projeto FreeBSD possui excelentes práticas de
|
|
engenharia as quais podem ser aproveitadas.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>O projeto oferece uma transparência excepcional em
|
|
seu funcionamento, permitindo que as empresas que utilizam o
|
|
seu código se planejem de forma eficaz para o
|
|
futuro.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>A cultura do projeto FreeBSD, herdada do Grupo de
|
|
Pesquisa de Ciências da Computação da Universidade da
|
|
Califórnia em Berkeley <citation>McKu1999-1</citation>,
|
|
fomenta trabalhos de alta qualidade. Algumas
|
|
funcionalidades do FreeBSD definem o estado da
|
|
arte.</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<simpara>O <citation>GoldGab2005</citation> 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.</simpara>
|
|
|
|
<sect2>
|
|
<title>Construindo com o FreeBSD</title>
|
|
|
|
<simpara>Aqui estão alguns exemplos de como as empresas estão
|
|
utilizando o FreeBSD:</simpara>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>Como um provedor (<foreignphrase>upstream
|
|
source</foreignphrase>) de códigos testados para
|
|
bibliotecas e utilitários.</simpara>
|
|
|
|
<simpara>Sendo o <foreignphrase>downstream</foreignphrase>
|
|
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.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>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.</simpara>
|
|
|
|
<simpara>O FreeBSD é distribuído com um ambiente de
|
|
desenvolvimento auto-hospedado o qual permite a fácil
|
|
criação de tais configurações.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>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.</simpara>
|
|
|
|
<simpara>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.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Como um veículo para obter suporte e testes
|
|
amplos de uma equipe mundial de desenvolvedores para a sua
|
|
<quote>propriedade intelectual</quote>
|
|
não-crítica.</simpara>
|
|
|
|
<simpara>Neste modelo, as organizações contribuem com
|
|
frameworks de infra-estrutura úteis ao projeto FreeBSD
|
|
(por exemplo, veja o &man.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.</simpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara>Como um ambiente de desenvolvimento apoiando
|
|
desenvolvimento cruzado para sistemas operacionais
|
|
embarcados como <link xlink:href="http://www.rtems.com/">RTEMS</link> e o <link xlink:href="http://ecos.sourceware.org/">eCOS</link>.</simpara>
|
|
|
|
<simpara>Existem muitos ambientes de desenvolvimento
|
|
completos na forte coleção de mais de &os.numports;
|
|
aplicativos portados e empacotados para o
|
|
FreeBSD.</simpara>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<simpara>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.</simpara>
|
|
|
|
<simpara>Aqui as partes do kernel do FreeBSD e as aplicações
|
|
são <quote>portadas</quote> 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 <trademark>Unix</trademark>
|
|
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.</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="freebsd-technologies">
|
|
<title>Tecnologias</title>
|
|
|
|
<para>Existe um grande número de tecnologias suportadas pelo
|
|
projeto FreeBSD. Abaixo você encontra uma lista com alguma
|
|
delas:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>Um sistema completo que pode compilar a si mesmo
|
|
de forma cruzada para as seguintes arquiteturas: alpha
|
|
(até o &os; versão 6.X), amd64, ia64, i386, sparc64,
|
|
powerpc (veja &man.build.7;).</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Suporte para as seguintes tecnologias, protocolos e
|
|
padrões: <!-- Keyword soup. Urk. -->
|
|
<acronym>ATA</acronym>, <acronym>ATAPI</acronym>,
|
|
<acronym>ATM</acronym>, <trademark>Bluetooth</trademark>,
|
|
<acronym>CAM</acronym>, <trademark>CardBus</trademark>,
|
|
<acronym>DHCP</acronym>, <acronym>DNS</acronym>,
|
|
<trademark>EISA</trademark>,
|
|
<trademark>Ethernet</trademark>, <acronym>FDDI</acronym>,
|
|
Fibre Channel, <acronym>GPIB</acronym>, IEEE 1394, IPv4,
|
|
IPv6, <acronym>IPSEC</acronym>,
|
|
<trademark>IPX</trademark>, <acronym>ISDN</acronym>,
|
|
<acronym>MAC</acronym>, <acronym>NIS</acronym>,
|
|
<acronym>NFS</acronym>, OpenSSH, <acronym>OPIE</acronym>,
|
|
<acronym>PAM</acronym>, <trademark>PCI</trademark>,
|
|
<acronym>PCMCIA</acronym>, <trademark>POSIX</trademark>,
|
|
<acronym>PnP</acronym>, <acronym>RAID</acronym>,
|
|
<acronym>RPC</acronym>, <acronym>SATA</acronym>,
|
|
<acronym>SCSI</acronym>, <acronym>SMB</acronym>,
|
|
<acronym>TCP</acronym>, <acronym>USB</acronym>,
|
|
<acronym>VESA</acronym>, <acronym>VLAN</acronym>,
|
|
<acronym>VLB</acronym>,
|
|
<trademark>WebNFS</trademark>.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Um kernel modular capaz de multiprocessamento
|
|
simétrico, com módulos de kernel carregáveis e um
|
|
sistema de configuração flexível e fácil de
|
|
usar.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Suporta a emulação de binários do Linux e do SVR4
|
|
com velocidades próximas as que você obtém executando os
|
|
aplicativos de forma nativa. Suporte para os binários dos
|
|
drivers de rede do <trademark>Windows</trademark>
|
|
(<acronym>NDIS</acronym>).</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Bibliotecas para muitas tarefas de programação:
|
|
arquivos, suporte a FTP e HTTP, suporte a threads, além
|
|
de um ambiente completo de programação
|
|
<trademark>POSIX</trademark> like.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Funcionalidades avançadas de segurança: Controle
|
|
de Acesso Obrigatório (&man.mac.9;), jails (&man.jail.2;),
|
|
<acronym>ACL</acronym>s,e suporte no kernel a dispositivos
|
|
de criptografia.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Funcionalidades avançadas de rede: firewalls,
|
|
gerenciamento de QoS, rede TCP/IP de alta performance com
|
|
suporte a muitos recursos avançados.</simpara>
|
|
<simpara>O framework Netgraph (&man.netgraph.4;) presente no
|
|
kernel do FreeBSD, permite que os módulos de rede possam
|
|
ser conectados entre si de formas flexíveis.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Suporte para tecnologias avançadas de armazenamento
|
|
Fibre Channel, <acronym>SCSI</acronym>, RAID por
|
|
software e hardware, <acronym>ATA</acronym> e
|
|
<acronym>SATA</acronym>.</simpara>
|
|
<simpara>O FreeBSD suporta um grande numero de sistemas de
|
|
arquivos, e o seu sistema de arquivos nativo UFS2 suporta
|
|
<literal>soft updates</literal>,
|
|
<literal>snapshots</literal> e sistemas de arquivos de
|
|
tamanho muito grandes (até 16 TB por sistema de arquivos)
|
|
<citation>McKu1999</citation>.</simpara>
|
|
<simpara>O framework <acronym>GEOM</acronym> (&man.geom.4;)
|
|
presente no kernel do FreeBSD permite que módulos de
|
|
armazenamento sejam compostos de forma flexível.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Mais de &os.numports; aplicativos portados, tanto
|
|
comerciais quanto de código aberto, gerenciados através da
|
|
coleção de ports do FreeBSD.</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Estrutura Organizacional</title>
|
|
<para>A estrutura organizacional do FreeBSD não é
|
|
hierárquica</para>
|
|
|
|
<para>Existem basicamente dois tipos de colaboradores no projeto
|
|
FreeBSD, os usuários em geral e os desenvolvedores com acesso
|
|
de escrita (conhecidos como <firstterm>committers</firstterm>
|
|
no jargão) ao repositório de código fonte.</para>
|
|
|
|
<para>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
|
|
<literal>commit</literal> (acesso de escrita) no repositório é
|
|
concedida a pessoas que contribuem de forma consistente para o
|
|
projeto. O direito de <literal>commit</literal> vem
|
|
acompanhado de responsabilidades adicionais, e para facilitar
|
|
o aprendizado das mesmas, um mentor é atribuído a todos os
|
|
novos <literal>committers</literal>.</para>
|
|
|
|
<figure>
|
|
<title>Organização do FreeBSD</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="freebsd-organization"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
|
|
<para>A resolução de conflitos é realizada por um
|
|
<quote><literal>Core Team</literal></quote> de 9 pessoas, o
|
|
qual é eleito a partir do grupo de
|
|
<literal>committers</literal>.</para>
|
|
|
|
<para>O FreeBSD não tem <literal>committers</literal>
|
|
corporativos. Os <literal>committers</literal> são obrigados
|
|
a assumir de forma individual a responsabilidade pelas
|
|
mudanças que introduzem no código. O <link xlink:href="&url.articles.committers-guide;">FreeBSD Committer's
|
|
Guide</link> <citation>ComGuide</citation> documenta as
|
|
regras e responsabilidades que se aplicam aos
|
|
<literal>committers</literal>.</para>
|
|
|
|
<para>O modelo do projeto FreeBSD é examinado em detalhes no
|
|
<citation>Nik2005</citation>.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Processos de Engenharia para liberação de novas versões
|
|
do FreeBSD.</title>
|
|
|
|
<para>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 (<xref linkend="fig-freebsd-branches"/>):</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>As novas funcionalidades e os códigos disruptivos
|
|
entram no ramo de desenvolvimento, também conhecido como
|
|
ramo <firstterm>-CURRENT</firstterm>.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>O ramo <firstterm>-STABLE</firstterm> contém
|
|
linhas de código que são ramificadas a partir do HEAD em
|
|
intervalos regulares. Apenas código devidamente testado é
|
|
permitido no ramo -STABLE. Novas funcionalidades são
|
|
permitidas após terem sido testadas e estabilizadas no ramo
|
|
-CURRENT.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>O ramo <firstterm>-RELEASE</firstterm> é mantido
|
|
pela equipe de segurança do FreeBSD. Somente correções de
|
|
bugs críticos são permitidos no ramo -RELEASE.</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<figure xml:id="fig-freebsd-branches">
|
|
<title>Ramos de versões do FreeBSD</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="freebsd-branches"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
|
|
<para>As linhas de código são mantidas vivas enquanto houver
|
|
interesse dos usuários e dos desenvolvedores nelas.</para>
|
|
|
|
<para>As arquiteturas de máquina estão agrupadas em
|
|
<quote>tiers</quote>; As arquiteturas <firstterm>Tier
|
|
1</firstterm> são totalmente suportadas pelas equipes de
|
|
engenharia de lançamento e de segurança, as arquiteturas
|
|
<firstterm>Tier 2</firstterm> são suportadas em regime de
|
|
<quote>melhores esforços</quote>, e as arquiteturas
|
|
experimentais compreendem o <firstterm>Tier 3</firstterm>. A
|
|
lista das <link xlink:href="&url.articles.committers-guide;/archs.html">arquiteturas
|
|
suportadas</link> é parte da coleção de documentos do
|
|
FreeBSD.</para>
|
|
|
|
<para>A equipe de engenharia de lançamentos publica um <link xlink:href="&url.base;/releng/"><literal>road map</literal></link>
|
|
para as versões futuras do FreeBSD no web site do projeto. As
|
|
datas indicadas no <literal>road map</literal> 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.</para>
|
|
|
|
<para>O processo de engenharia para a liberação de novas versões
|
|
do FreeBSD é descrito em detalhes no
|
|
<citation>RelEngDoc</citation>.</para>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="freebsd-collaboration">
|
|
<title>Colaborando com o FreeBSD</title>
|
|
|
|
<para>Projetos <literal>open-source</literal> como o FreeBSD
|
|
oferecem códigos finalizados de altíssima qualidade
|
|
<citation>Cov2005</citation>. Estudos anteriores examinaram o
|
|
efeito da disponibilidade do código fonte no desenvolvimento de
|
|
software <citation>Com2004</citation>.</para>
|
|
|
|
<para>Embora o acesso a um código fonte de qualidade possa reduzir
|
|
o custo inicial de desenvolvimento, a longo prazo, os custos com
|
|
o gerenciamento de mudanças começam a dominar. A medida que os
|
|
ambientes computacionais mudam ao longo dos anos e novas
|
|
vulnerabilidades de segurança são descobertas, o seu produto
|
|
também precisará mudar e se adaptar. O uso de código
|
|
open-source não deve ser encarado como uma atividade pontual,
|
|
mas sim como um <emphasis>processo contínuo</emphasis>. Os
|
|
melhores projetos para se colaborar são os que estão
|
|
<emphasis>vivos</emphasis>, ou seja, aqueles com uma
|
|
comunidade ativa, que tenha objetivos claros e que possua um
|
|
estilo de trabalho transparente.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>o FreeBSD tem uma comunidade de desenvolvimento ativa
|
|
em torno dele. No momento em que este artigo foi escrito,
|
|
existiam milhares de colaboradores com representantes de
|
|
praticamente todos os continentes povoados do mundo, e mais
|
|
de 300 indivíduos com acesso de escrita aos repositórios
|
|
do projeto.</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Os objetivos do projeto FreeBSD são
|
|
<citation>Hub1994</citation>:</simpara>
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<simpara>Desenvolver um sistema operacional de alta
|
|
qualidade para o hardware de computadores populares,
|
|
e,</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>Tornar o nosso trabalho disponível para todos
|
|
sob uma licença liberal.</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>O FreeBSD desfruta de uma cultura aberta e
|
|
transparente de trabalho. Quase todas as discussões no
|
|
projeto ocorrem por e-mail, em <link xlink:href="&a.mailman.listinfo;">listas publicas de
|
|
discussão</link>, que também são arquivadas para a
|
|
posteridade. As políticas do projeto são <link xlink:href="&url.base;/internal/policies.html">documentadas</link>
|
|
e mantidas sob controle de revisão. A participação no
|
|
projeto é aberta a todos.</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<sect2 xml:id="freebsd-org">
|
|
<title>Compreendendo a cultura do FreeBSD</title>
|
|
|
|
<para>Para ser capaz de trabalhar de forma eficaz com o projeto
|
|
FreeBSD, você precisa entender a cultura do projeto.</para>
|
|
|
|
<para>As regras que regem a operação de um projeto voluntário
|
|
são diferentes das que regem a operação de uma empresa com
|
|
fins lucrativos. Um erro comum que as empresas cometem ao se
|
|
aventurar no mundo open-source é o de desvalorizar essas
|
|
diferenças.</para>
|
|
|
|
<formalpara>
|
|
<title>Motivação</title>
|
|
|
|
<para>A maioria das contribuições feitas para o FreeBSD são
|
|
feitas voluntariamente, sem que nenhuma recompensa
|
|
financeira esteja envolvida. Os fatores que motivam as
|
|
pessoas são complexos, e vão desde o puro altruísmo até o
|
|
interesse comum em resolver algum tipo de problema que o
|
|
FreeBSD esteja tentando resolver. Neste tipo de ambiente,
|
|
a <quote>elegância jamais é opcional</quote>
|
|
<citation>Nor1993</citation>.</para>
|
|
</formalpara>
|
|
|
|
<formalpara>
|
|
<title>Visão de longo prazo</title>
|
|
<para>O FreeBSD tem raízes de quase 20 anos para com o
|
|
trabalho do Grupo de Pesquisa de Ciências da Computação da
|
|
Universidade da Califórnia, Berkeley.<footnote>
|
|
<simpara>O <link xlink:href="http://cvsweb.freebsd.org/">repositório
|
|
de código fonte</link> do FreeBSD contém a história do
|
|
projeto desde a sua concepção, e existem <link xlink:href="http://www.mckusick.com/csrg/">CDROMs
|
|
disponíveis</link> que contém o código anterior do
|
|
CSRG.</simpara>
|
|
</footnote> Alguns dos desenvolvedores originais do CSRG
|
|
permanecem associados com o projeto.</para>
|
|
</formalpara>
|
|
|
|
<para>O projeto valoriza perspectivas de longo prazo
|
|
<citation>Nor2001</citation>. Uma sigla encontrada com
|
|
frequência no projeto é <acronym>DTRT</acronym>, a qual
|
|
significa <quote>Faça a Coisa Certa</quote> (<literal>Do The
|
|
Right Thing</literal>).</para>
|
|
|
|
<formalpara>
|
|
<title>Processo de Desenvolvimento</title>
|
|
<para>Programas de computador são ferramentas de comunicacão:
|
|
em um nível os programadores comunicam as suas intenções
|
|
usando uma notação precisa para uma ferramenta (um compilador)
|
|
que traduz as suas instruções para um código executável. Em
|
|
outro nível, a mesma notação é usada para a comunicação das
|
|
intenções entre dois programadores.</para>
|
|
</formalpara>
|
|
|
|
<para>Especificações formais e documentos de design raramente
|
|
são utilizados no projeto. Código claro e bem escrito,
|
|
acompanhado de logs bem escritos para as alterações das
|
|
(<xref linkend="fig-change-log"/>), são usados em seu
|
|
lugar. O desenvolvimento do FreeBSD acontece por
|
|
<quote>consenso áspero e por código sendo executado</quote>
|
|
<citation>Carp1996</citation>.</para>
|
|
|
|
<figure xml:id="fig-change-log">
|
|
<title>Um exemplo de entrada no log de alteração</title>
|
|
<programlisting>
|
|
bde 2005-10-29 16:34:50 UTC
|
|
|
|
FreeBSD src repository
|
|
|
|
Modified files:
|
|
lib/msun/src e_rem_pio2f.c
|
|
Log:
|
|
Use double precision to simplify and optimize arg reduction for small
|
|
and medium size args too: instead of conditionally subtracting a float
|
|
17+24, 17+17+24 or 17+17+17+24 bit approximation to pi/2, always
|
|
subtract a double 33+53 bit one. The float version is now closer to
|
|
the double version than to old versions of itself — it uses the same
|
|
33+53 bit approximation as the simplest cases in the double version,
|
|
and where the float version had to switch to the slow general case at
|
|
|x| == 2^7*pi/2, it now switches at |x| == 2^19*pi/2 the same as the
|
|
double version.
|
|
|
|
This speeds up arg reduction by a factor of 2 for |x| between 3*pi/4 and
|
|
2^7*pi/4, and by a factor of 7 for |x| between 2^7*pi/4 and 2^19*pi/4.
|
|
|
|
Revision Changes Path
|
|
1.14 +22 -97 src/lib/msun/src/e_rem_pio2f.c
|
|
</programlisting>
|
|
</figure>
|
|
|
|
<simpara>A comunicação entre os programadores é reforçada pelo
|
|
uso de um &man.style.9; padrão de codificação, comum entre
|
|
eles.</simpara>
|
|
|
|
<formalpara>
|
|
<title>Canais de Comunicação</title>
|
|
<para>Os colaboradores do FreeBSD estão espalhados por todo o
|
|
mundo. O email (e em menor extensão, o IRC) é o meio de
|
|
comunicação preferido no projeto.</para>
|
|
</formalpara>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Melhores práticas para colaborar com o projeto
|
|
FreeBSD.</title>
|
|
|
|
<para>Agora iremos examinar algumas das melhores práticas para
|
|
se fazer um melhor uso do FreeBSD no desenvolvimento de
|
|
produtos.</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>Se planeje para o longo prazo</term>
|
|
<listitem>
|
|
<para>Implante processos que o ajudem a monitorar o
|
|
desenvolvimento do FreeBSD. Por exemplo:</para>
|
|
<formalpara>
|
|
<title>Acompanhe o código fonte do FreeBSD</title>
|
|
<para>O projeto facilita o espelhamento do seu
|
|
repositório CVS usando o <link xlink:href="&url.articles.cvsup-advanced;">CVSup</link>.
|
|
Ter o histórico completo do código fonte é útil quando
|
|
se está debugando problemas complexos e oferece
|
|
informações valiosas sobre as intenções dos
|
|
desenvolvedores originais. Utilize um sistema de
|
|
controle de código que lhe permita mesclar facilmente
|
|
as alterações entre o código original do FreeBSD e o
|
|
seu próprio código.</para>
|
|
</formalpara>
|
|
<para>A <xref linkend="fig-cvs-annotate"/> mostra as
|
|
anotações em uma parte do arquivo referenciado pelo log
|
|
de alterações da <xref linkend="fig-change-log"/>. A
|
|
ascendência de cada linha de código é claramente
|
|
visível. Listagens com as anotações mostrando a
|
|
história de cada arquivo que faz parte do FreeBSD
|
|
estão <link xlink:href="http://cvsweb.freebsd.org/">disponíveis na
|
|
web</link>.</para>
|
|
<figure xml:id="fig-cvs-annotate">
|
|
<title>Código fonte exibindo a listagem de anotações
|
|
gerada utilizando o <command>cvs annotate</command>
|
|
</title>
|
|
<programlisting>
|
|
<![CDATA[
|
|
#LINE #REV #WHO #DATE #TEXT
|
|
|
|
62 1.1 (jkh 19-Aug-94): int32_t __ieee754_rem_pio2f(float x, float *y)
|
|
63 1.1 (jkh 19-Aug-94): {
|
|
64 1.14 (bde 29-Oct-05): double z,w,t,r,fn;
|
|
65 1.13 (bde 29-Oct-05): double tx[3];
|
|
66 1.14 (bde 29-Oct-05): int32_t e0,i,nx,n,ix,hx;
|
|
67 1.1 (jkh 19-Aug-94):
|
|
68 1.1 (jkh 19-Aug-94): GET_FLOAT_WORD(hx,x);
|
|
69 1.1 (jkh 19-Aug-94): ix = hx&0x7fffffff;
|
|
70 1.1 (jkh 19-Aug-94): if(ix<=0x3f490fd8) /* |x| ~<= pi/4 , no need for reduction */
|
|
71 1.1 (jkh 19-Aug-94): {y[0] = x; y[1] = 0; return 0;}
|
|
72 1.14 (bde 29-Oct-05): /* 33+53 bit pi is good enough for special and medium size cases */
|
|
73 1.2 (bde 07-Apr-95): if(ix<0x4016cbe4) { /* |x| < 3pi/4, special case with n=+-1 */
|
|
74 1.14 (bde 29-Oct-05): if(hx>0) {
|
|
75 1.15 (bde 06-Nov-05): z = x - pio2;
|
|
76 1.15 (bde 06-Nov-05): n = 1;
|
|
77 1.15 (bde 06-Nov-05): } else {
|
|
78 1.15 (bde 06-Nov-05): z = x + pio2;
|
|
79 1.15 (bde 06-Nov-05): n = 3;
|
|
80 1.9 (bde 08-Oct-05): }
|
|
81 1.15 (bde 06-Nov-05): y[0] = z;
|
|
82 1.15 (bde 06-Nov-05): y[1] = z - y[0];
|
|
83 1.15 (bde 06-Nov-05): return n;
|
|
84 1.15 (bde 06-Nov-05): }
|
|
85 1.15 (bde 06-Nov-05): if(ix<0x407b53d1) { /* |x| < 5*pi/4, special case with n=+-2 */
|
|
]]>
|
|
</programlisting>
|
|
</figure>
|
|
|
|
<formalpara>
|
|
<title>Nomeie um guardião</title>
|
|
<para>Nomeie um guardião
|
|
(<firstterm>gatekeeper</firstterm>) para monitorar o
|
|
desenvolvimento do FreeBSD, para manter-se atento a
|
|
mudanças que poderiam potencialmente afetar os seus
|
|
produtos.</para>
|
|
</formalpara>
|
|
<formalpara>
|
|
<title>Comunique os erros que encontrar de volta para o
|
|
projeto</title>
|
|
<para>Se você encontrar um bug no código do FreeBSD que
|
|
você está utilizando, envie um <link xlink:href="&url.base;/send-pr.html">relatório de
|
|
problema</link>. Este procedimento simples irá
|
|
ajudar a garantir que você não precisará corrigir o
|
|
erro novamente da próxima vez que precisar importar
|
|
novamente do código base do FreeBSD.</para>
|
|
</formalpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Se alavanque nos esforços de engenharia do FreeBSD
|
|
para lançamento de novas versões.</term>
|
|
<listitem>
|
|
<simpara>Utilize código do ramo de desenvolvimento -STABLE
|
|
do FreeBSD. Este ramo de desenvolvimento é formalmente
|
|
suportado pelas equipes de engenharia de lançamento e de
|
|
segurança, e é formada apenas por código
|
|
testado.</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Doe código para reduzir seus custos</term>
|
|
<listitem>
|
|
<simpara>Uma parte significativa dos custos relacionados
|
|
ao desenvolvimento de um produto é o de realizar a sua
|
|
manutenção. Ao doar partes não criticas do seu código
|
|
para o projeto, você se beneficia por ter o seu código
|
|
exposto de uma forma ampla, exposição que ele não teria
|
|
de outra forma. Esta exposição por sua vez leva
|
|
eliminação de um maior numero de bugs e de
|
|
vulnerabilidades de segurança, e permite que anomalias
|
|
de desempenho sejam identificadas e
|
|
corrigidas.</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Obtenha suporte efetivo</term>
|
|
<listitem>
|
|
<simpara>Para produtos com prazos apertados, é recomendado
|
|
que você contrate o suporte ou consultoria de um
|
|
desenvolvedor ou empresa com experiência em FreeBSD. A
|
|
&a.jobs; é um canal de comunicação muito útil para se
|
|
encontrar talentos. O projeto FreeBSD mantém uma <link xlink:href="&url.base;/commercial/consult_bycat.html">galeria
|
|
de consultores e empresas de consultoria</link> que
|
|
trabalham com FreeBSD. O <link xlink:href="http://www.bsdcertification.org/">Grupo de
|
|
Certificação BSD</link> oferece certificação para todos
|
|
os principais sistemas operacionais derivados do
|
|
BSD.</simpara>
|
|
|
|
<simpara>Para as necessidades menos importantes, você pode
|
|
pedir ajuda nas <link xlink:href="http://lists.FreeBSD.org/mailman/listinfo">listas
|
|
de discussão do projeto</link>. Um guia útil para
|
|
seguir quando precisar pedir está listado em
|
|
<citation>Ray2004</citation>.</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Divulgue o seu envolvimento</term>
|
|
<listitem>
|
|
<simpara>Você não é obrigado a divulgar que faz uso do
|
|
FreeBSD, mas ao fazê-lo você estará ajudando ambos os
|
|
esforços, o seu e o do projeto.</simpara>
|
|
|
|
<simpara>Dar visibilidade para a comunidade FreeBSD de que
|
|
a sua empresa utiliza o sistema ajuda a melhorar as suas
|
|
chances de atrair talentos de alta qualidade. Quanto
|
|
maior for a lista de organizações que apoiam o FreeBSD
|
|
maior será a presença do sistema na cabeça
|
|
(<literal>mind share</literal>) dos desenvolvedores.
|
|
Ao contribuir para aumentar o numero de desenvolvedores
|
|
interessados no FreeBSD, você estará gerando uma base
|
|
saudável para o seu futuro.</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Suporte os desenvolvedores do FreeBSD</term>
|
|
<listitem>
|
|
<simpara>Às vezes, o caminho mais direto para ver uma
|
|
funcionalidade que você deseja implementada no FreeBSD é
|
|
suportar um desenvolvedor que já esteja olhando um
|
|
problema relacionado. A ajuda pode variar de uma doação
|
|
de hardware até uma assistência financeira direta. Em
|
|
alguns países, as doações para o projeto FreeBSD
|
|
usufruem de benefícios fiscais. O projeto possui um
|
|
<link xlink:href="&url.base;/donations/">canal de comunicação
|
|
dedicado</link> para assuntos relacionados a doações e
|
|
para ajudar os doadores. O projeto também mantém uma
|
|
página web na qual os desenvolvedores podem <link xlink:href="&url.base;/donations/wantlist.html">listar suas
|
|
necessidades</link>.</simpara>
|
|
<simpara>Por uma política do projeto, o FreeBSD <link xlink:href="&url.articles.contributors;">reconhece</link>
|
|
todas as contribuições recebidas em seu site
|
|
web.</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="conclusion">
|
|
<title>Conclusão</title>
|
|
<para>O Objetivo do projeto FreeBSD é criar e distribuir o código
|
|
fonte de um sistema operacional de alta qualidade. Ao trabalhar
|
|
com o projeto FreeBSD você pode reduzir os seus custos de
|
|
desenvolvimento e melhorar o tempo necessário para lançar seus
|
|
novos produtos no mercado em vários cenários de desenvolvimento
|
|
de produtos.</para>
|
|
<para>Foram examinadas as características do FreeBSD que o tornam
|
|
uma excelente opção na estratégia de produto de uma organização.
|
|
Em seguida, abordamos os aspectos predominantes da cultura do
|
|
projeto e examinamos formas eficazes de interagir com os seus
|
|
desenvolvedores. O artigo finaliza com uma lista das melhores
|
|
práticas que podem ajudar na colaboração da iniciativa privada
|
|
com o projeto FreeBSD.</para>
|
|
</sect1>
|
|
|
|
<bibliography>
|
|
<biblioentry>
|
|
<abbrev>Carp1996</abbrev>
|
|
<citetitle><link xlink:href="http://www.ietf.org/rfc/rfc1958.txt">The
|
|
Architectural Principles of the Internet</link></citetitle>
|
|
<author><personname><firstname>B.</firstname><surname>Carpenter</surname></personname><affiliation>
|
|
<orgname>The Internet Architecture Board</orgname>
|
|
</affiliation></author>
|
|
<copyright>
|
|
<year>1996</year>
|
|
</copyright>
|
|
</biblioentry>
|
|
<biblioentry xreflabel="Com2004">
|
|
<abbrev>Com2004</abbrev>
|
|
<citetitle><link xlink:href="http://csdl.computer.org/comp/mags/so/2004/01/s1028.pdf">How
|
|
is Open-Source Affecting Software
|
|
Development?</link></citetitle>
|
|
<authorgroup>
|
|
<author><personname><firstname>Diomidis</firstname><surname>Spinellis</surname></personname></author>
|
|
<author><personname><firstname>Clemens</firstname><surname>Szyperski</surname></personname></author>
|
|
</authorgroup>
|
|
<citetitle>IEEE Computer</citetitle>
|
|
<copyright>
|
|
<year>Jan/Feb 2004</year>
|
|
</copyright>
|
|
<publisher>
|
|
<publishername>IEEE Computer Society</publishername>
|
|
</publisher>
|
|
</biblioentry>
|
|
<biblioentry>
|
|
<abbrev>ComGuide</abbrev>
|
|
<citetitle><link xlink:href="&url.articles.committers-guide;">Committer's
|
|
Guide</link></citetitle>
|
|
<authorgroup>
|
|
<author><orgname>The FreeBSD Project</orgname></author>
|
|
</authorgroup>
|
|
<copyright>
|
|
<year>2005</year>
|
|
</copyright>
|
|
</biblioentry>
|
|
<biblioentry>
|
|
<abbrev>Cov2005</abbrev>
|
|
<citetitle><link xlink:href="http://www.coverity.com/news/nf_news_06_27_05_story_9.html">Coverity
|
|
study on kernel security holes in Linux and FreeBSD</link></citetitle>
|
|
<authorgroup>
|
|
<author><orgname>Coverity Inc.</orgname></author>
|
|
</authorgroup>
|
|
<copyright>
|
|
<year>2005</year>
|
|
</copyright>
|
|
</biblioentry>
|
|
<biblioentry>
|
|
<abbrev>GoldGab2005</abbrev> <citetitle><link xlink:href="http://dreamsongs.com/IHE/IHE.html">Innovation Happens
|
|
Elsewhere: Open Source as Business Strategy</link></citetitle>
|
|
<authorgroup>
|
|
<author><personname><firstname>Ron</firstname><surname>Goldman</surname></personname></author>
|
|
<author><personname><firstname>Richard</firstname><surname>Gabriel</surname></personname></author>
|
|
</authorgroup>
|
|
<copyright>
|
|
<year>2005</year>
|
|
</copyright>
|
|
<biblioid class="isbn">ISBN 1558608893</biblioid>
|
|
<publisher>
|
|
<publishername>Morgan-Kaufmann</publishername>
|
|
</publisher>
|
|
</biblioentry>
|
|
<biblioentry xreflabel="Hub1994">
|
|
<!-- XXX Get the date of this article right -->
|
|
<abbrev>Hub1994</abbrev>
|
|
<citetitle><link xlink:href="&url.articles.contributing;">Contributing
|
|
to the FreeBSD Project</link></citetitle>
|
|
<author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname></author>
|
|
<copyright>
|
|
<year>1994—2005</year>
|
|
</copyright>
|
|
<publisher>
|
|
<publishername>The FreeBSD Project</publishername>
|
|
</publisher>
|
|
</biblioentry>
|
|
<biblioentry>
|
|
<abbrev>McKu1999</abbrev>
|
|
<citetitle><link xlink:href="http://www.usenix.org/publications/library/proceedings/usenix99/mckusick.html">Soft
|
|
Updates: A Technique for Eliminating Most Synchronous Writes
|
|
in the Fast Filesystem</link></citetitle>
|
|
<authorgroup>
|
|
<author><personname><firstname>Kirk</firstname><surname>McKusick</surname></personname></author>
|
|
<author><personname><firstname>Gregory</firstname><surname>Ganger</surname></personname></author>
|
|
</authorgroup>
|
|
<confgroup>
|
|
<conftitle>USENIX Annual Technical Conference</conftitle>
|
|
</confgroup>
|
|
<copyright>
|
|
<year>1999</year>
|
|
</copyright>
|
|
</biblioentry>
|
|
<biblioentry>
|
|
<abbrev>McKu1999-1</abbrev>
|
|
<citetitle><link xlink:href="http://www.oreilly.com/catalog/opensources/book/kirkmck.html">Twenty Years of Berkeley Unix: From AT&T-Owned to
|
|
Freely Redistributable</link></citetitle>
|
|
<authorgroup>
|
|
<author><personname><firstname>Marshall Kirk</firstname><surname>McKusick</surname></personname></author>
|
|
</authorgroup>
|
|
<citetitle><link xlink:href="http://www.oreilly.com/catalog/opensources/book/toc.html">Open
|
|
Sources: Voices from the Open Source
|
|
Revolution</link></citetitle>
|
|
<biblioid class="isbn">ISBN 1-56592-582-3</biblioid>
|
|
<publisher>
|
|
<publishername>O'Reilly Inc.</publishername>
|
|
</publisher>
|
|
<copyright>
|
|
<year>1993</year>
|
|
</copyright>
|
|
</biblioentry>
|
|
<biblioentry>
|
|
<abbrev>Mon2005</abbrev>
|
|
<citetitle><link xlink:href="&url.articles.bsdl-gpl;/article.html">Why you should
|
|
use a BSD style license for your Open Source
|
|
Project</link></citetitle>
|
|
<author><personname><firstname>Bruce</firstname><surname>Montague</surname></personname></author>
|
|
<publisher>
|
|
<publishername>The FreeBSD Project</publishername>
|
|
</publisher>
|
|
<copyright>
|
|
<year>2005</year>
|
|
</copyright>
|
|
</biblioentry>
|
|
<biblioentry xreflabel="Nik2005">
|
|
<abbrev>Nik2005</abbrev>
|
|
<citetitle><link xlink:href="&url.books.dev-model;/book.html">A
|
|
project model for the FreeBSD Project</link></citetitle>
|
|
<author><personname><firstname>Niklas</firstname><surname>Saers</surname></personname></author>
|
|
<copyright>
|
|
<year>2005</year>
|
|
</copyright>
|
|
<publisher>
|
|
<publishername>The FreeBSD Project</publishername>
|
|
</publisher>
|
|
</biblioentry>
|
|
<biblioentry xreflabel="Nor1993">
|
|
<abbrev>Nor1993</abbrev>
|
|
<citetitle><link xlink:href="http://www.norvig.com/luv-slides.ps">Tutorial
|
|
on Good Lisp Programming Style</link></citetitle>
|
|
<authorgroup>
|
|
<author><personname><firstname>Peter</firstname><surname>Norvig</surname></personname></author>
|
|
<author><personname><firstname>Kent</firstname><surname>Pitman</surname></personname></author>
|
|
</authorgroup>
|
|
<copyright>
|
|
<year>1993</year>
|
|
</copyright>
|
|
</biblioentry>
|
|
<biblioentry>
|
|
<abbrev>Nor2001</abbrev>
|
|
<citetitle><link xlink:href="http://www.norvig.com/21-days.html">Teach
|
|
Yourself Programming in Ten Years</link></citetitle>
|
|
<author><personname><firstname>Peter</firstname><surname>Norvig</surname></personname></author>
|
|
<copyright>
|
|
<year>2001</year>
|
|
</copyright>
|
|
</biblioentry>
|
|
<biblioentry>
|
|
<abbrev>Ray2004</abbrev>
|
|
<citetitle><link xlink:href="http://www.catb.org/~esr/faqs/smart-questions.html">How
|
|
to ask questions the smart way</link></citetitle>
|
|
<authorgroup>
|
|
<author><personname><firstname>Eric Steven</firstname><surname>Raymond</surname></personname></author>
|
|
</authorgroup>
|
|
<copyright>
|
|
<year>2004</year>
|
|
</copyright>
|
|
</biblioentry>
|
|
<biblioentry>
|
|
<abbrev>RelEngDoc</abbrev>
|
|
<citetitle><link xlink:href="&url.articles.releng;">FreeBSD Release
|
|
Engineering</link></citetitle>
|
|
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname></author>
|
|
<copyright>
|
|
<year>2001</year>
|
|
</copyright>
|
|
<publisher>
|
|
<publishername>The FreeBSD Project</publishername>
|
|
</publisher>
|
|
</biblioentry>
|
|
</bibliography>
|
|
|
|
</article>
|