Date: Mon, 24 Sep 2012 10:30:55 +0000 (UTC) From: Edson Brandi <ebrandi@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r39610 - in head/pt_BR.ISO8859-1: articles articles/building-products share/sgml Message-ID: <201209241030.q8OAUtiM000454@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ebrandi Date: Mon Sep 24 10:30:54 2012 New Revision: 39610 URL: http://svn.freebsd.org/changeset/doc/39610 Log: - Add new Brazilian Portuguese translation of the building-products article Obtained from: The FreeBSD Brazilian Portuguese Documentation Project (http://doc.fug.com.br) Approved by: gabor (mentor) Added: head/pt_BR.ISO8859-1/articles/building-products/ head/pt_BR.ISO8859-1/articles/building-products/Makefile (contents, props changed) head/pt_BR.ISO8859-1/articles/building-products/article.sgml (contents, props changed) Modified: head/pt_BR.ISO8859-1/articles/Makefile head/pt_BR.ISO8859-1/share/sgml/mailing-lists.ent Modified: head/pt_BR.ISO8859-1/articles/Makefile ============================================================================== --- head/pt_BR.ISO8859-1/articles/Makefile Mon Sep 24 09:04:00 2012 (r39609) +++ head/pt_BR.ISO8859-1/articles/Makefile Mon Sep 24 10:30:54 2012 (r39610) @@ -9,6 +9,7 @@ # $FreeBSD$ SUBDIR = +SUBDIR+= building-products SUBDIR+= contributing SUBDIR+= contributing-ports SUBDIR+= explaining-bsd Added: head/pt_BR.ISO8859-1/articles/building-products/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/pt_BR.ISO8859-1/articles/building-products/Makefile Mon Sep 24 10:30:54 2012 (r39610) @@ -0,0 +1,25 @@ +# The FreeBSD Documentation Project +# The FreeBSD Brazilian Portuguese Documentation Project +# +# $FreeBSD$ +# +# Original revision: r38826 +# +# Article: Building products using FreeBSD + +DOC?= article + +FORMATS?= html html-split +WITH_ARTICLE_TOC?= YES + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +IMAGES_EN= freebsd-branches.pic freebsd-organization.pic + +URL_RELPREFIX?= ../../../.. +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" Added: head/pt_BR.ISO8859-1/articles/building-products/article.sgml ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/pt_BR.ISO8859-1/articles/building-products/article.sgml Mon Sep 24 10:30:54 2012 (r39610) @@ -0,0 +1,1166 @@ +<?xml version="1.0" encoding="iso-8859-1" standalone="no"?> +<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" + "../../../share/sgml/freebsd42.dtd" [ +<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//PT" + "../../share/sgml/entities.ent"> +%entities; +]> + +<!-- + The FreeBSD Documentation Project + The FreeBSD Brazilian Portuguese Documentation Project + + Original revision: r39544 +--> + +<article lang='pt_br'> + <articleinfo> + <title>Construindo Produtos com o FreeBSD</title> + <authorgroup> + <author> + <firstname>Joseph</firstname> + <surname>Koshy</surname> + <affiliation> + <orgname>The FreeBSD Project</orgname> + <address><email>jkoshy@FreeBSD.org</email></address> + </affiliation> + </author> + </authorgroup> + + <legalnotice 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> + </articleinfo> + + <sect1 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 <ulink + url="&url.base;/">Projeto FreeBSD</ulink> 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 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 <ulink + url="http://www.rtems.com/">RTEMS</ulink> e o <ulink + url="http://ecos.sourceware.org/">eCOS</ulink>.</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 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" format="PIC"/> + </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 <ulink + url="&url.articles.committers-guide;">FreeBSD Committer's + Guide</ulink> <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 id="fig-freebsd-branches"> + <title>Ramos de versões do FreeBSD</title> + <mediaobject> + <imageobject> + <imagedata fileref="freebsd-branches" format="EPS"/> + </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 <ulink + url="&url.articles.committers-guide;/archs.html">arquiteturas + suportadas</ulink> é parte da coleção de documentos do + FreeBSD.</para> + + <para>A equipe de engenharia de lançamentos publica um <ulink + url="&url.base;/releng/"><literal>road map</literal></ulink> + 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 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 <ulink + url="&a.mailman.listinfo;">listas publicas de + discussão</ulink>, que também são arquivadas para a + posteridade. As políticas do projeto são <ulink + url="&url.base;/internal/policies.html">documentadas</ulink> + e mantidas sob controle de revisão. A participação no + projeto é aberta a todos.</simpara> + </listitem> + </itemizedlist> + + <sect2 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 <ulink url="http://cvsweb.freebsd.org/">repositório + de código fonte</ulink> do FreeBSD contém a história do + projeto desde a sua concepção, e existem <ulink + url="http://www.mckusick.com/csrg/">CDROMs + disponíveis</ulink> 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 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 <ulink + url="&url.articles.cvsup-advanced;">CVSup</ulink>. + 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 <ulink + url="http://cvsweb.freebsd.org/">disponíveis na + web</ulink>.</para> + <figure 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 <ulink + url="&url.base;/send-pr.html">relatório de + problema</ulink>. 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 <ulink + url="&url.base;/commercial/consult_bycat.html">galeria + de consultores e empresas de consultoria</ulink> que + trabalham com FreeBSD. O <ulink + url="http://www.bsdcertification.org/">Grupo de + Certificação BSD</ulink> oferece certificação para todos + os principais sistemas operacionais derivados do + BSD.</simpara> + + <simpara>Para as necessidades menos importantes, você pode + pedir ajuda nas <ulink + url="http://lists.FreeBSD.org/mailman/listinfo">listas + de discussão do projeto</ulink>. 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 + <ulink url="&url.base;/donations/">canal de comunicação + dedicado</ulink> 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 <ulink + url="&url.base;/donations/wantlist.html">listar suas + necessidades</ulink>.</simpara> + <simpara>Por uma política do projeto, o FreeBSD <ulink + url="&url.articles.contributors;">reconhece</ulink> + todas as contribuições recebidas em seu site + web.</simpara> + </listitem> + </varlistentry> + </variablelist> + </sect2> + </sect1> + + <sect1 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><ulink url="http://www.ietf.org/rfc/rfc1958.txt">The + Architectural Principles of the Internet</ulink></citetitle> + <author> + <firstname>B.</firstname> + <surname>Carpenter</surname> + <affiliation> + <orgname>The Internet Architecture Board</orgname> + </affiliation> + </author> + <copyright> + <year>1996</year> + </copyright> + </biblioentry> + <biblioentry xreflabel="Com2004"> + <abbrev>Com2004</abbrev> + <citetitle><ulink + url="http://csdl.computer.org/comp/mags/so/2004/01/s1028.pdf">How + is Open-Source Affecting Software + Development?</ulink></citetitle> + <authorgroup> + <author> + <firstname>Diomidis</firstname> + <surname>Spinellis</surname> + </author> + <author> + <firstname>Clemens</firstname> + <surname>Szyperski</surname> + </author> + </authorgroup> + <title>IEEE Computer</title> + <copyright> + <year>Jan/Feb 2004</year> + </copyright> + <publisher> *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209241030.q8OAUtiM000454>