Escolar Documentos
Profissional Documentos
Cultura Documentos
Resumo. Software livre todo software cujo cdigo fonte est disponibilizado publicamente, e
seu contedo pode ser livremente modificado e redistribudo (e no sendo permitida a
apropriao desse cdigo). Uma conseqncia indireta desta liberdade o aparecimento de
comunidades de desenvolvimento que trabalham de forma descentralizada, atravs da Internet,
1 Introduo
Apesar da definio apresentada acima, ainda existem controvrsias em relao ao que seja
precisamente considerado software livre. Isso se d pelo fato de que se trata de um assunto
multifacetado, que contm questes relacionadas a assuntos como engenharia de software,
propriedade intelectual, modelo econmico, poltica tecnolgica, cooperao1, liderana e
motivao. Uma olhada mais de perto em alguns projetos de software livre revela, ainda, uma
grande diversidade de objetivos, formas de participao e tcnicas de implementao.
Ao analisar as atividades que suportam o desenvolvimento de software livre, do ponto de
vista do trabalho cooperativo suportado por computador, possvel identificar um desafio
comum a todos os projetos: a necessidade da criao e manuteno de um ambiente
sociotcnico onde os participantes possam, de forma cooperativa, construir solues para os
problemas de interesse mtuo.
As prticas do desenvolvimento de software livre so importantes para a pesquisa em CSCW
por dois motivos principais. Primeiro porque o desenvolvimento de software tradicionalmente
um processo de coordenao intensiva que tem atrado pesquisadores de CSCW (KRAUT,
1995; BUTTON, 1996) e segundo porque o processo de desenvolvimento de software livre
efetuado por participantes geograficamente dispersos, com a ajuda de tecnologias colaborativas
como o email, conversao on-line, World Wide Web e sistemas de controle de verso e de
gerenciamento de configurao, tecnologias que, por sua vez, tm sido um aspecto central nas
pesquisas de CSCW.
O conceito de cooperao mais complexo que o de interao e de colaborao, pois alm de pressupor ambos
requer relaes de respeito mtuo e no hierrquicas entre os envolvidos, uma postura de tolerncia e convivncia
com as diferenas e um processo de negociao constante. Percebemos que a diferena fundamental entre os
conceitos de colaborao e cooperao reside no fato de que para haver colaborao o indivduo deve interagir com
o outro existindo ajuda - mtua ou unilateral. Para existir cooperao deve haver interao, colaborao, mas
tambm objetivos comuns, atividades e aes conjuntas e coordenadas. (MAADA; TIJIBOY, 1998).
Pequeno belo;
Faa cada programa perfazer bem apenas uma tarefa apenas;
Construa um prottipo assim que possvel;
Escolha portabilidade sobre eficincia;
Armazene dados numricos em arquivos texto;
Faa reuso do software para sua vantagem;
Use scripts shell para aumentar portabilidade e reuso;
Evite interfaces restritivas com o usurio;
Faa cada programa ser um filtro de dados para que possa ser usado em conjunto com outros.
2 Havia um grande compartilhamento de software entre os participantes dos grupos de usurios, como o SHARE
(para usurios de sistemas IBM) e o DECUS (para usurios de sistemas DEC).
3 http://www.fsf.org/
4 http://www.gnu.org/
Outra caracterstica do modelo Bazar, importante para a qualidade do objeto produzido, ter
uma grande base de usurios com acesso ao cdigo fonte, pois segundo Raymond (1999) Se
exposto a um nmero suficiente de olhos, todos os bugs so superficiais, pois a depurao de
erros uma atividade paralelizvel e ser resolvida mais rapidamente quanto maior for a base de
usurios participantes.
O tamanho e a agilidade de um projeto de software livre, no so as nicas qualidades que o
distinguem de um modelo Catedral. Outra importante diferena est em sua organizao
interna, particularmente na ausncia de uma coordenao global sob uma autoridade central e
pela inexistncia de um planejamento de projeto do tipo Top-Down. Alis, em software livre
normalmente a estratgia vem depois do desenvolvimento e a ao antes do planejamento
(TAURION, 2004).
A partir de 1988 o software livre se tornou notcia cada vez mais freqente na imprensa,
quando a Netscape abriu o cdigo do seu principal produto, o Communicator e tambm quando
empresas de grande porte como IBM e Oracle comearam dar suporte ao Linux e ao Apache.
Esse ano tambm ficou marcado como o ano que a Microsoft reconheceu, pela primeira vez, o
Linux como competidor importante (OSI, 1988).
Muitas vezes o termo software livre (free software) se confunde com software aberto (open
source). Isso passou a acontecer principalmente aps a criao da Open Source Initiative (OSI5),
em 1988. Diferentemente da FSF, que suporta somente o uso de suas prprias licenas, a OSI
no tem licenas prprias, mas certifica todas as dezenas licenas existentes no mercado
(inclusive as da FSF) dentro de seus prprios parmetros de software aberto. A OSI uma
entidade conciliadora, que garante s empresas que praticam o modelo comercial de
desenvolvimento de software, uma porta de entrada no movimento de software aberto sem
necessariamente adotar as licenas da FSF, representando assim uma espcie de alternativa
intermediria. Desta forma, todo software livre , por definio, aberto, porm nem todo
software aberto livre.
http://www.opensource.org/
6
7
http://sourceforge.net/
http://www.ostg.com/
Maduro: H muito pouco ou nenhum desenvolvimento no cdigo, uma vez que o software
preenche todos os seus objetivos corretamente. Mudanas sero aplicadas com extremo
cuidado. Pode permanecer nesta fase por vrios anos, at que se torne obsoleto ou
substitudo por outro melhor. Ainda assim o cdigo permanecer indefinidamente
disponvel para servir a objetivos educacionais;
Inativo: Projeto interrompido por falta de manuteno, movimentao de arquivos ou
abandono por parte de seus lderes (projeto rfo).
Um estudo demogrfico realizado por Boston (2002) com uma populao de lderes e
desenvolvedores principais de projetos registrados no Sourceforge, revelou que entre os
entrevistados:
72,6% disseram que, quando esto programando, perdem a noo do tempo por estarem
motivados, sendo o tempo de sono considerado a principal contrapartida resultante da
participao em um projeto de software livre seguida de perto pela vida social;
44,9% so motivados a trabalhar no projeto pelo desafio intelectual que representa;
Apenas 11,1% revelaram como motivao principal desbancar o software proprietrio;
70% dos participantes so voluntrios e no so financeiramente recompensados (direta
ou indiretamente) pelo seu trabalho no projeto;
O tempo mdio de trabalho gasto nos projetos foi de 14,9 horas por semana;
48,1% revelou que o maior benefcio pessoal o aumento do conhecimento;.
83% se identificaram com a comunidade hacker;
70,2 % dos participantes esto entre 22 e 38 anos, com a mdia em torno de 30 anos;
A populao provm de dezenas de pases, e a maior parte vem EUA, Alemanha e
Reino Unido;
45,4 % dos participantes so programadores profissionais e a mdia de experincia de
11 anos;
A maioria afirmou esperar do lder do projeto no s a realizao de tarefas prticas
(criao da base de cdigo original e contribuies constantes), mas uma boa viso de
longo prazo, iniciativa para dilogo, e disposio para integrar contribuies.
2.4.1 Comunicao
A maioria dos projetos de software livre virtual, com participantes espalhados ao redor do
mundo e, mesmo quando a maioria das pessoas de um projeto est em um nico pas, as
dificuldades de agendar reunies com presena fsica so considerveis, porm quando os
participantes se encontram fisicamente, estas reunies so to importantes quanto qualquer
outra tecnologia colaborativa (LANCASHIRE, 2001).
A Internet um elemento indispensvel na criao e desenvolvimento de projetos de software
livre. Como os projetos de software livre tiveram sua origem e disseminao em paralelo com
origem e disseminao da prpria Internet, as principais tecnologias colaborativas utilizadas
passam pelas ferramentas disponveis nessa rede. Sobre esse aspecto Yamauchi (2000) oferece
uma viso geral dos mecanismos de comunicao usados em projetos de software livre e afirma
que, apesar da tendncia acadmica da pesquisa em CSCW apontar para a produo de
ferramentas complexas para suportar trabalho cooperativo desta natureza, os projetos de
software livre sobrevivem e comprovam a eficcia do uso de ferramentas e meios de
comunicao simples e disponveis h muito tempo na Internet, como o email, as listas de
distribuio, os newsgroups, os chats e os sites repositrios de contedo.
Os canais de comunicao baseados na Internet so relativamente baratos (quando
comparadas s ligaes telefnicas internacionais, reunies com presena fsica e
videoconferncia por satlites) e aqueles com caractersticas assncronas so importantes para
minimizar o problema das fronteiras geogrficas e dos fusos horrios, especialmente na
coordenao de projetos de maior porte, que aliados capacidade de alcance mundial da
Internet faz com que os projetos de software livre atraiam muito mais participantes do que
conseguiriam se fossem grupos locais ou geograficamente limitados.
http://www.bitkeeper.com/
http://subversion.tigris.org/
10 http://www.cs.purdue.edu/homes/trinkle/RCS/
11 http://ximbiot.com/cvs/wiki/
9
uma integrao no mesmo arquivo foi feita pelo primeiro participante). Neste momento, ao
atualizar a cpia local a ferramenta ir informar que houve alteraes provindas do
repositrio no mesmo trecho de cdigo alterado localmente. Estes trechos do cdigo so
marcados com indicadores que diferenciam a verso do repositrio da verso local. O
participante precisa analisar com cuidado as alteraes e decidir de que forma o cdigo deve
ficar; ele pode resolver o conflito removendo uma das verses, mas freqentemente a opo
correta integrar mudanas de ambas as verses num novo trecho nico.
Verses: Cada arquivo modificado no repositrio recebe uma verso numrica. possvel
criar aliases (apelidos) que abstraiam as verses de um conjunto de arquivos em um
determinado instante do tempo. Com isso, possvel reverter alteraes de arquivos
individuais para verses anteriores, e tambm regenerar uma verso completa do repositrio
em um determinado momento. Do ponto de vista do participante, o CVS permite que se
comparem facilmente as alteraes feitas na sua cpia local com qualquer verso integrada
no repositrio, e torna possvel reverter alteraes integradas no repositrio central para
verses anteriores. Este ltimo recurso normalmente utilizado para remover alteraes
problemticas que tenham causado algum um defeito ou regresso funcional no objeto
produzido.
Branches: Alm das verses alternativas da base de objeto principal, o CVS permite que se
crie uma linha de verses paralelas principal. Resumidamente, estabelecido um branch
(bifurcao) a partir do cdigo principal, chamado trunk (tronco). Alteraes integradas sobre
este branch so isoladas, no refletindo no tronco. possvel criar um nmero arbitrrio de
branches e cada um deles ter um nome simblico, que o participante especifica ao usar a
ferramenta. Eventualmente alteraes de um branch podem ser aplicadas no trunk
principal. Esta operao tem o nome de merge (incorporao). prtica comum, entre os
projetos de software livre, manter branches estveis conforme apresentado a seguir:
Fig. 3 No exemplo acima, o branch estvel foi criado logo aps o lanamento da verso 0.9, e
mantido separado da verso principal (head), recebendo apenas reparos de bugs. Duas novas
verses estveis foram lanadas (1.0.1 e 1.0.2). O desenvolvimento e a adio de
funcionalidades continuam normalmente na verso principal. (REIS, 2001).
Branch Estvel: Onde tendem a ser integradas apenas correes de erros, ainda que esta
regra no seja explcita. Esta verso tratada de forma especial, e usurios tm
expectativas de que entre uma verso e outra do branch estvel no ocorram regresses.
Branch Instvel: Onde so aceitos tanto reparos de erros quanto adies de funcionalidade.
No h uma garantia de que as verses funcionem de forma confivel, especialmente nas
primeiras verses lanadas neste ciclo. Com o passar do tempo, declarada uma
moratria adio de funcionalidades (o chamado feature freeze), e a verso instvel
passa por um perodo de estabilizao. Ao final deste perodo, uma verso considerada
estvel o suficiente batizada de nova verso estvel, e um novo ciclo se inicia.
Alm de manter verses estveis, branches so utilizados para implementar mudanas que
tenham grande impacto sobre a base do objeto. Como visto anteriormente, cada participante
trabalha em relativo isolamento, com sua cpia local. Se no existissem branches, a integrao
de mudanas extensas seria bem difcil, j que por grandes perodos de tempo corre-se o risco
de outro participante ter alterado o mesmo trecho. Utilizando um branch, possvel desenvolver
a alterao paralelamente, e integrar mudanas no trunk principal de forma incremental.
As ferramentas que documentam e controlam os erros encontrados (e suas correes) so
muito importantes para qualidade e a produtividade dos projetos de desenvolvimento distribudo
de software. Cada erro, informado por um usurio participante, registrado em um informe
individual e cada informe possui um ciclo de vida que vai desde a sua criao, no momento em
que informado, at seu fechamento, quando o erro reparado no objeto produzido. Essas
ferramentas, que normalmente tm interface Web ou via email permitem, em geral, um bom
gerenciamento dos erros, com capacidade de localizao, confirmao e deteco de erros
duplicados ou que no se apliquem verso atual do objeto.
A ferramentas de controle de erros mais usada em projetos de software livre atualmente o
Bugzilla12, que nasceu como ferramenta de controle de alteraes do projeto do browser
Mozilla13, no qual usada em todas as etapas do processo de desenvolvimento, desde a
definio de funcionalidades at o projeto, implementao e reviso de alteraes. O Bugzilla
possui, alm do registro de informes de erros, funcionalidades de priorizao de atendimento,
assinalamento de erros aos participantes apropriados, configurao de dependncias entre os
erros, organizao de erros por produto ou componentes e, principalmente, a capacidade de
reviso de cdigo, na qual cada informe pode ser vinculado a uma alterao de cdigo
provisria, que deve ser revisada e aprovada para integrao na base de cdigo principal. Outra
ferramenta comumente utilizada o GNATS14.
2.5 As Inter-relaes
Nenhum dos componentes deste framework conceitual existe de forma isolada e assim como
cada aspecto muda com o tempo, o mesmo acontece com as relaes. A seguir esto listadas as
inter-relaes mais encontradas entre os componentes:
2.5.1 O Uso
O objeto produzido em um projeto de software livre um pedao de software de computador,
que as pessoas iro baixar e usar em um contexto especfico. O uso um tipo de atividade
reflexiva, na qual o usurio cria um modelo de percepo das limitaes e pontos fortes do
software em uso e identifica mudanas e caractersticas que acreditam que o software deveria
ter para atender suas necessidades e preferncias. Quando mais o software estiver relacionado
com cotidiano do usurio, principalmente relacionado ao seu trabalho, mais chances existem
desse usurio querer contribuir com crticas e sugestes para o desenvolvimento do software.
2.5.2 A Facilitao Social
O processo colaborativo emerge dos participantes ao mesmo tempo em que influencia suas
aes. A facilitao social a maneira com que os processos colaborativos encorajam as
pessoas a se envolverem no desenvolvimento e evoluo do projeto. Por exemplo, o processo
colaborativo pode requerer que as pessoas que corrijam erros anexem seus nomes s correes.
Em alguns grupos isso pode ser um grande incentivo correo de erros porque o
reconhecimento pessoal e os elogios motivam as pessoas a contribuir cada vez mais. Em outro
exemplo, se um lder que precisa aprovar todas as mudanas nunca aceita as sugestes da
12
http://www.bugzilla.org
http://www.mozilla.org
14 http://www.gnu.org/software/gnats/gnats.html
13
comunidade, seus participantes percebero que suas contribuies no esto recebendo o devido
reconhecimento e podero abandonar o projeto. Em suma, a facilitao social se refere s
reaes dos participantes ao contexto social do projeto.
2.5.3 A Facilitao Tcnica
O processo colaborativo est intimamente relacionado com as tecnologias colaborativas
empregadas. Algumas vezes as limitaes da tecnologia influenciam no processo colaborativo
em si. Por exemplo, as equipes que dependem da comunicao por email, muitas vezes tm
dificuldade de encontrar mensagens importantes devido ao volume e a inerente falta de estrutura
dos sistemas de correio eletrnico. Para compensar essa deficincia, o processo colaborativo
pode especificar que quando a palavra ANNOUNCE aparece entre colchetes no incio do
assunto da mensagem, significa que se trata de um anncio importante e que todos devem ler.
Em alguns grupos so criados filtros automticos que varrem as mensagens em busca dos
identificadores de anncios importantes que, uma vez identificados, so imediatamente postados
em uma pgina de anncios no website do grupo. Neste caso uma tecnologia colaborativa foi
adaptada para reforar um processo colaborativo de divulgao de anncios importantes. A
facilitao tcnica se refere s conexes entre os processos colaborativos e as tecnologias que
suportam esses processos.
2.5.4 Gerenciamento das Mudanas
O gerenciamento das mudanas est relacionado ao uso das tecnologias de comunicao,
armazenamento e controle de verses e de erros da distribuio padro. Como os objetos
produzidos devem estar publicamente disponveis e fceis de serem acessados, a tecnologia
colaborativa deve prover uma maneira confivel de se armazenar e disponibilizar esses objetos.
A estrutura dos repositrios da distribuio padro geralmente reflete as mudanas que
ocorreram ao longo do tempo que, junto com os padres de nomenclatura (numerao de
verses) e com as tecnologias de controle de verso e de erros, ajudam no rastreamento das
mudanas no objeto produzido, facilitando a volta para uma verso anterior caso problemas
sejam encontrados aps uma mudana na distribuio padro.
2.5.5 As Contribuies
Contribuio so os processos nos quais os indivduos propem melhorias ou extenses no
projeto atravs de mudanas relacionadas distribuio padro do objeto produzido. A forma
como uma contribuio acontece varia de projeto para projeto, mas certamente envolve todos os
aspectos e componentes do framework. Participantes criam mudanas, que passam por alguns
processos colaborativos onde o grupo decide aceitar, refinar ou rejeitar as contribuies.
Durante esses processos, a tecnologia colaborativa coordena a comunicao e prov o suporte
tcnico para rastrear as mltiplas verses de uma mudana. Se uma contribuio aceita, passa
ento a ser incorporada ao objeto produzido e atualizam-se todas as referncias. Assim, apesar
das contribuies serem atividades desempenhadas por participantes, so fortemente
influenciadas pelo objeto, pela tecnologia e pelo contexto social dos processos colaborativos.
O primeiro release da primeira verso do kernel possua um pouco mais de trs mil linhas de
cdigo, distribudas em 88 arquivos escritos em linguagens C e Assembly. Atualmente o kernel
est no release 6 da verso 2, cujo tamanho ultrapassa a quantidade de dois milhes e meio de
linhas de cdigo, distribudos entre milhares de arquivos. O kernel fica disponvel na Internet16 e
uma viso da sua estrutura atual pode ser vista em um mapa disponvel no website do projeto
Kernel Mapper17
O desenvolvimento do kernel costuma ocorrer em duas sries separadas: uma delas a de
produo, ou estvel, cujo segundo nmero (de release) sempre par: 2.0.x, 2.2.x, 2.4.x, 2.6.x,
etc. A outra srie a de desenvolvimento, que no garantida para ser utilizada em sistemas em
produo, e tem o nmero de release sempre mpar: 2.1.x, 2.3.x, 2.5.x etc. Quando a srie de
desenvolvimento atinge a maturidade, ela muda de numerao e se transforma na nova srie de
produo (feature freeze), e uma nova srie de desenvolvimento tem incio. O terceiro nmero
(x) refere-se ao patch (remendo) de correo em uso na verso.
O desenvolvimento do Linux segue a filosofia preconizada por Raymonds (1999) de Faa
releases o quanto antes e libere-os com freqncia. E oua o que os seus usurios tm a dizer.
O kernel ainda hoje tem em Torvalds seu expoente mximo, que toma as principais decises
e define a filosofia geral do projeto. Entretanto, cada release tem sempre um mantenedor
responsvel, que aprova cada aperfeioamento e garante que no haja verses conflitantes. O
primeiro mantenedor do kernel estvel foi prprio Linus Torvalds, seguido pelo ingls Alan
Cox (verses 2.0 e 2.2), depois pelo brasileiro Marcelo Tosatti (verso 2.4) e hoje pelo ingls
Andrew Morton (na atual verso 2.6). Torvalds e Cox continuam responsveis por supervisionar
as verses do kernel que ainda esto em desenvolvimento.
Em julho de 2003, Torvalds passou, pela primeira vez na vida a trabalhar oficialmente e
integralmente dedicado ao projeto do Linux, como contratado da Open Source Development
Laboratories (OSDL18), uma entidade voltada para a disseminao internacional do Linux. A
OSDL foi fundada no ano 2000, com sedes nos Estados Unidos e Japo, e mantida por
investimentos de cerca de 50 empresas como Cisco, HP, IBM, Intel e Sun. Posteriormente Cox
e Morton tambm passaram a fazer parte do OSDL.
3.2 Comunicao e Percepo
O projeto do desenvolvimento do Linux sempre foi, levando-se em conta o tamanho do
objeto produzido e do nmero de participantes envolvidos, um dos projetos mais minimalistas
em relao infra-estrutura de desenvolvimento.
A lista de distribuio de emails linux-kernel mailing list (LKML) o frum central de
discusso entre os participantes do projeto de desenvolvimento do Linux, incluindo o prprio
15
16
17
18
http://www.pasc.org/
http://www.kernel.org/
http://kernelmapper.osdn.com/
http://www.osdl.org/
Torvalds, que sozinho recebe cerca mais de 200 emails diretos por dia, somente dos
participantes do projeto. A intensidade dessa lista d uma boa idia do que seja o
desenvolvimento no modelo Bazar, pois apenas em uma semana comum de trabalho normal
alcanar um volume superior a 5 MB de mensagens, sejam relacionadas aos diversos
subprojetos em andamento ou a um conjunto de novas idias ou mesmo s velhas questes
recorrentes e suas discusses persistentes, todas pertinentes ao assunto do desenvolvimento do
kernel (KUWABARA, 2000).
O conhecimento, por parte da comunidade, do trabalho produzido pelos participantes fica
registrado no arquivo de crditos que sempre acompanha o kernel. Trata-se de um arquivo de
texto simples onde o participante inclui suas informaes pessoais e principais reas de
contribuio, segundo o seguinte modelo:
Esta estrutura mostra que os lieutenants" representam uma espcie de suporte da cadeia de valor e no uma camada,
pois os participantes podem interagir diretamente com Torvalds. Trata-se de uma estrutura em rede, na qual todos os
participantes tm acesso a todos os ns do sistema. O fluxo da informao tambm abrange toda a rede, uma vez que
toda a comunicao se da atravs da lista de distribuio linux-kernel mailing list (DAFERMOS, 2001).
Quando um novo participante entra na lista LKML, assim como acontece em outras listas na
Internet, sempre convidado a ler a documentao de perguntas e respostas mais freqentes
(LKML FAQ19), que nesse caso, entre suas questes principais, esclarece algumas regras
implcitas que regem o bom funcionamento da lista, a saber:
19
20
http://www.tux.org/lkml/
http://lwn.net/Articles/KernelSummit2006/
http://bugme.osdl.org/
http://janitor.kernelnewbies.org/
23 http://linux.bkbits.net/
24 http://git.or.cz/
22
A biblioteca bsica libc, que contm funes bsicas para o funcionamento do sistema
operacional. Quando uma nova verso dessa biblioteca lanada, algumas distribuies a
adotam imediatamente, enquanto outras, mais conservadoras, aguardam um pouco. Nesse
meio-tempo, alguns programas podem funcionar em algumas distribuies e no em
outras.
A diversidade de distribuies de Linux, que foi providencial na disseminao do sistema em
seus primeiros anos de vida, teve como conseqncia uma falta de padronizao que terminou
por criar problemas para a comunidade Linux. Entre outras questes, durante muito tempo era
difcil obter verses pr-compiladas de aplicativos, exceto se tivessem sido preparadas
especificamente para a distribuio de Linux que o usurio estivesse utilizando, o que exigia um
conhecimento da instalao de programas a partir da compilao de seu cdigo-fonte, o que se
constitua numa grande barreira ao uso e adoo do Linux.
Com a entrada de participantes de maior porte no mercado criado em torno do Linux surgiu a
necessidade de convergncia em torno de um padro, sem restringir a possibilidade de
diferenciao entre as distribuies - mantendo assim a liberdade, sem permitir a fragmentao
do Linux em uma srie de alternativas incompatveis entre si, como ocorreu com o sistema
operacional UNIX. Assim, em 2001, foi criado o Linux Standard Base (LSB25), que visa
desenvolver e promover um conjunto de padres para aumentar a compatibilidade entre as
distribuies de Linux. O LSB dividido em trs componentes principais: a especificao do
sistema, as ferramentas de teste e um exemplo de distribuio para referncia. A especificao
do sistema define a chamada Binary Application Interface (BIA), que o ambiente que toda
aplicao desenvolvida, levando em conta o LSB, dever esperar encontrar em qualquer
distribuio de Linux, incluindo o nome e localizao dos arquivos, verso das bibliotecas, e
diversos outros fatores. Apesar do padro LSB ter sido adotado pelos principais participantes do
mercado Linux, incluindo as principais distribuies, os desenvolvedores de aplicativos e as
empresas de suporte, ainda possvel encontrar aplicaes que somente funcionam em
determinadas distribuies do Linux.
Os esforos de padronizao so coordenados pelo Free Standards Group (FSG26), que alm
de cuidar do LSB, tambm promove outros padres do Linux relacionados
internacionalizao, clusterizao, impresso, etc.
3.3 O Projeto de Documentao do Linux
Visando diminuir a barreira de entrada do uso do Linux atravs da disponibilizao de
informaes para facilitao do uso, surgiu o Linux Documentation Project (LDP27), um projeto
cujo foco est na produo de documentao padronizada do Linux. Existem quatro tipos de
objetos produzidos no LDP:
Guias, que so livros com informao detalhada e aprofundada do sistema, segundo um
referencial variado (guia usurio, do programador, do administrador do sistema, etc.);
HOWTOs, que so como receitas de bolo para execuo de tarefas comuns no uso do
sistema, como a instalao, gerenciamento de caixas postais, habilitao de recursos de
segurana, etc;
Man pages, que so as pginas do manual on-line, que contm informaes a respeito dos
programas, funes e utilitrios de que fazem parte do sistema;
25
http://www.linuxbase.org/
http://www.freestandards.org/
27 http://www.tldp.org/
26
5 Concluso
Este artigo procurou mostrar o modelo de desenvolvimento do software livre atravs da
perspectiva do Trabalho Cooperativo Suportado por Computador. Essa anlise ajudou a revelar
um pouco mais do contexto no qual software livre est inserido e reforar o argumento de que
esse assunto no pode ser explicado somente por uma disciplina ou viso, mas sim atravs de
um conjunto delas.
Atravs da apresentao de um framework conceitual, complementada com um estudo de
caso do desenvolvimento do Linux, foram apresentados os principais elementos e inter-relaes
que existem em um projeto tpico, com participantes, processos, ferramentas e objetos
produzidos em um modelo cooperativo de trabalho.
O estudo mostrou tambm que o fenmeno do software livre, apesar de ainda estar em
formao, vem crescendo bastante nos ltimos anos e que sua expanso (e futuro) dependem da
estabilizao de alguns fatores hoje apresentados como desafios.
28
http://www.osriskmanagement.com/
Referncias
AOKI, A., Hayashi, K., Kishida, K., Nakakoji, K., Nishinaka, Y., Reeves, B., Takashima,
A., & Yamamoto,Y. A case study of the evolution of Jun: an object-oriented open-source
3D multimedia library. In Proceedings of the 23rd international conference on software
engineering (ICSE 01) (pp. 524533). Toronto, Canad, 2001.
BCG, Boston Consulting Group. Hacker Survey release 0.73, 2002. Disponvel em
www.osdn.com/bcg/BCGHACKERSURVEY-0.73.pdf . Visitado em Jan de 2007.
BERLECON, Research. FLOSS. Free/Libre and Open Source Software: Survey and Study.
European Commission, 2002. Disponvel em http://www.infonomics.nl/FLOSS/. Visitado
em Jan de 2007.
BROOKS, F. P. Jr. The Mythical Man-Month. Addison-Wesley. 2 ed. 1995
BROWN, J. S. and Duguid, P. Organizational Learning and Communities-of-Practice:
Toward a Unified View of Working, Learning, and Innovation, Organization Science, 2(1),
1991, 40-57
BUTTON, G., Sharrock, W. Project Work: The Organisation of Collaborative Design and
Development in SoftwareEngineering, Computer Supported Cooperative Work: The Journal
of Collaborative Computing, 5, 1996, 369-386
DAFERMOS, George. Management and Virtual Decentralised Networks: The Linux
Project,
First
Monday,
2001.
Disponvel
em
http://www.firstmonday.dk/issues/issue6_11/dafermos/ . Visitado em Jan de 2007.
DEURZEN, Van. Linux Architectures. 2004.
Disponvel em http://home.hccnet.nl/p.van.deurzen/linuxweb/docs/architectures.htm .
Visitado em Jan de 2007.
EDWARDS, Kasper. Epistemic Communities, Situated Learning and Open Source Software
Development Department of Manufacturing Engineering and Management, Technical
University of Denmark, 2000.
FIELDING, R. T. Shared leadership in the Apache Project. Communications of the ACM,
v. 42, n. 4, p. 4243, abr 1999.
GANCARZ, M. UNIX Philosophy. Prentice-Hall, 1995.
HEXSEL, Roberto, Propostas de Aes de Governo para Incentivar o Uso de Software
Livre, Relatrio Tcnico do Departamento de Informtica da UFPR, 004/2002 , 2002.
KRAUT, R. E. and Streeter, L. Coordination in SoftwareDevelopment, Communications of
the ACM, 38(3),1995, 69-81
KUWABARA, Ko. Linux: A Bazaar at the Edge of Chaos. FirstMonday 5(3), 2000.
Disponvel em http://www.firstmonday.dk/issues/issue5_3/kuwabara/ . Visitado em Jan de
2007.
LANCASHIRE, D. Code, culture, and cash: The fading altruism of open source
development.
FirstMonday,
6(12),
2001.
Disponvel
em
http://firstmonday.org/issues/issue6_12/lancashire/ . Visitado em Jan de 2007.
TUOMI, Ilkka. Evolution of the Linux Credits File: Methodological Challenges and
Reference Data for Open Source Research. FirstMonday, 2002 Disponvel em
http://www.firstmonday.dk/issues/issue9_6/tuomi/ . Visitado em Jan de 2007.
YAMAUCHI, Y., Yokozawa, M., Shinohara, T., Ishida, T. Collaboration with Lean Media:
How Open Source Succeeds. In: Proceedings of CSCW, 2000. ACM Press. p. 329-338.
Anexo 1
Definies de termos relacionados ao software livre (HEXSEL, 2002)
BSD: A licena BSD cobre as distribuies de software da Berkeley SoftwareDistribution,
alm de outros programas. Esta uma licena considerada 'permissiva' porque impe poucas
restries sobre a forma de uso, alteraes e redistribuio do software licenciado. O software
pode ser vendido e no h obrigaes quanto incluso do cdigo fonte, podendo o mesmo
ser includo em software proprietrio. Esta licena garante o crdito aos autores do software,
mas no tenta garantir que trabalhos derivados permanecem como software livre.
Copyleft: A maioria das licenas usadas na publicao de software livre permite que os
programas sejam modificados e redistribudos. Estas prticas so geralmente proibidas pela
legislao internacional de copyright, que tenta justamente impedir que alteraes e cpias
sejam efetuadas sem a autorizao dos autores. As licenas que acompanham software livre
fazem uso da legislao de copyright para impedir utilizao no-autorizada, mas estas
licenas definem clara e explicitamente as condies sob as quais cpias, modificaes e
redistribuies podem ser efetuadas, para garantir as liberdades de modificar e redistribuir o
software assim licenciado. A esta verso de copyright, d-se o nome de copyleft.
Debian: A licena Debian parte do contrato social celebrado entre a Debian e a
comunidade de usurios de software livre, e chamada de Debian Free SoftwareGuidelines
(DFSG). Em essncia, esta licena contm critrios para a distribuio que incluem, alm da
exigncia da publicao do cdigo fonte. Estes critrios so: (a) a redistribuio deve ser
livre; (b) o cdigo fonte deve ser includo e deve poder ser redistribudo; (c) trabalhos
derivados devem poder ser redistribudos sob a mesma licena do original; (d) pode haver
restries quanto redistribuio do cdigo fonte, se o original foi modificado; (e) a licena
no pode discriminar contra qualquer pessoa ou grupo de pessoas, nem quanto a formas de
utilizao do software; (f) os direitos outorgados no podem depender da distribuio onde o
software se encontra; e (g) a licena no pode 'contaminar' outro software.
Freeware: O termo freeware no possui uma definio amplamente aceita mas usado com
programas que permitem a redistribuio mas no a modificao, e seu cdigo fonte no
disponibilizado. Estes programas no so software livre.
GPL: A Licena Pblica Geral GNU (GNU General Public License) a licena que
acompanha os pacotes distribudos pelo Projeto GNU, e mais uma grande variedade de
software, incluindo o kernel do sistema operacional Linux. A formulao da GPL tal que ao
invs de limitar a distribuio do software por ela protegido, ela de fato impede que este
software seja integrado em software proprietrio. A GPL baseada na legislao
internacional de copyright.
Open Source: A licena da Open Source Initiative derivada da Licena Debian, com as
menes Debian removidas.
Shareware: o software disponibilizado com a permisso para que seja redistribudo, mas a
sua utilizao implica no pagamento pela sua licena. Geralmente, o cdigo fonte no
disponibilizado e portanto modificaes so impossveis.
Software Comercial: o software desenvolvido por uma empresa com o objetivo de lucrar
com sua utilizao. Note que 'comercial' e 'proprietrio' no so o mesmo. A maioria do
software comercial proprietrio mas existe software livre que comercial, e existe software
no-livre no-comercial.