Catedral, Bazar e Software Livre
Filipe Ferraz Salgado, Rodolpho Iemini Atoji
MAC339 – Informação, Comunicação e a Sociedade do
Conhecimento
Sumário
Sumário
1
1 Catedral x bazar
1.1 Definição e caracterı́sticas . . . . . . . . . . . . . . . . . . . .
1.2 Ser ou não ser bazar . . . . . . . . . . . . . . . . . . . . . . .
2
2
4
2 Um
2.1
2.2
2.3
2.4
2.5
2.6
projeto no modelo bazar
Ter um projeto inicial executável e testável . . . . . . .
Lı́deres com boa comunicação e relacionamento . . . .
Liberar versões rápido e freqüentemente . . . . . . . .
Entrada permitida de novos participantes: quanto mais,
Considerar usuários como co-desenvolvedores . . . . . .
Linus Torvalds: inteligente, porém preguiçoso . . . . .
3 Linux como sistema complexo
3.1 Sistema complexo adaptativo . .
3.2 Linux como sistema complexo . .
3.3 Quando a Lei de Brooks não vale
3.4 Auto-organização . . . . . . . . .
3.5 Memética e evolução . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
melhor
. . . .
. . . .
6
7
7
8
9
10
10
.
.
.
.
.
11
11
12
13
14
14
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Conclusão
15
Referências
16
1
1 CATEDRAL X BAZAR
2
Introdução
O software livre vem ganhando popularidade nos últimos anos. Grande parte
dessa popularidade se deve à internet, que permite uma distribuição em larga
escala dos softwares produzidos segundo esse modelo.
No entanto, a internet não apenas permitiu a popularização do software
livre como também forneceu ferramentas que permitiram um imenso avanço
do mesmo. A rede permite que qualquer interessado conectado à rede possa
se tornar um contribuinte para um projeto.
Levando-se em conta as enormes proporções da rede, fica claro que um
modelo de desenvolvimento de software tradicional poderia se tornar inviável.
Esse modelo tradicional, hierárquico e centralizado é o que foi chamado de
catedral por Eric Raymond. Já o modelo de desenvolvimento adotado pelos
projetos de software livre o autor denomina de bazar, onde qualquer um é
bem-vindo a qualquer momento e o projeto não se desenvolve em torno de
uma coordenação central.
Como grande representante do software livre está o Linux, cujo desenvolvimento foi impulsionado especialmente pela popularização da internet.
Serão então abordados aspectos de desenvolvimento do mesmo, apoiandose nas teorias de The Cathedral And The Bazaar de Eric Raymond, sistemas
complexos descritos por Ko Kuwabara em Linux: A Bazaar at the Edge of
the Chaos e a peer-production descrita por Yochai Benkler em The Wealth
of Networks.
1
Catedral x bazar
Software livre, atualmente, é um assunto conhecido ou do qual todos pelo
menos já ouviram falar a respeito.
De acordo com um estudo [Des08] feito nos EUA, o número de projetos
com código aberto dobra a cada ano. Isso reflete o amplo conhecimento e
aceitação da sociedade sobre o assunto, mesmo entre aqueles que não são desenvolvedores, já que, caso esses não aceitassem, não haveria tanto incentivo
para o contı́nuo crescimento.
A seguir, serão apresentadas as diferenças entre os sistemas de produção
do software proprietário e o livre.
1.1
Definição e caracterı́sticas
Para explicar a diferença entre eles, temos que analisar a metodologia de
desenvolvimento de cada modelo.
1 CATEDRAL X BAZAR
3
No caso do software proprietário, temos o que Raymond chamou de modelo catedral [Ray98] e que Kuwabara [Kuw00] resume como sendo um
estilo “caracterizado por um planejamento central orientado de cima para
baixo e implementado por equipes especializadas seguindo um cronograma
estruturado” 1 . Ou seja, o modo clássico de desenvolvimento da maioria
das empresas atuais, com hierarquia e metas bem-definidas, onde os gerentes determinam o que os programadores irão fazer. Nesse método apenas as
pessoas designadas àquele projeto podem alterar o programa.
Já o método utilizado no desenvolvimento do software livre, ficou conhecido como bazar, que nada mais é do que a produção distribuı́da (peer
production) discutida por Benkler [Ben06], na qual a produção depende da
ação individual espontânea e descentralizada. Esse método proporciona aos
seus colaboradores uma maior liberdade, uma vez que participam do projeto
porque querem, e maior prazer, já que acabam fazendo aquilo que têm mais
interesse dentro do projeto. Dentro dessa metodologia o código-fonte dos
programas é aberto para que os vários participantes possam ter acesso a ele
a fim de alterá-lo e corrigi-lo.
A tabela 1 mostra algumas caracterı́sticas dos modelos explicitando suas
diferenças:
Catedral
Centralizado
Hierárquico
Número restrito de pessoas
Desenvolvimento top-down
Código fechado
Bazar
Descentralizado
Não-hierárquico
Quanto mais pessoas, melhor
Desenvolvimento bottom-up
Código aberto
Tabela 1: Diferenças entre catedral e bazar
Observamos as diferenças expostas na tabela 1, pode-se exemplificar alguns casos reais de softwares produzidos por meio dessas metodologias de
desenvolvimento.
No caso catedral um exemplo tı́pico, comumente citado, é o Microsoft
Windows. Sistema operacional produzido dentro dos rigores do modelo catedral, seguindo uma estrutura hierárquica rı́gida e centralizada. O código
é subdividido entre os programadores de modo que cada grupo fique responsável por uma parte do sistema.
Por outro lado, temos o Linux, cujo kernel é principal exemplo do modelo
bazar. Suas caracterı́sticas serão abordadas durante o texto.
1
“[...] characterized by centralized planning enforced from the top and implemented by
specialized project teams around structured schedules”
1 CATEDRAL X BAZAR
4
Fora do escopo de softwares, tem-se os exemplos da Wikipedia e da Enciclopédia Britannica, que representam os modelos bazar e catedral, respectivamente.
A Wikipedia foi fundada em 2001 e é uma enciclopédia livre construı́da a
partir da colaboração espontânea de diversas pessoas ao redor do mundo. A
credibilidade dessa enciclopédia virtual tem aumentado com tempo e hoje já
pode ser comparada à Enciclopédia Britannica, que é referência para muitos
quando se trata enciclopédia acadêmica.
Exemplo de desenvolvimento no estilo catedral, a Enciclopédia Britannica
teve sua primeira impressão em 1768, quando foi publicada em três fascı́culos,
um a cada ano. Em 1790 sua impressão foi pirateada nos EUA, o que acabou
sendo benéfico, já que hoje em dia a produção é feita lá, apesar de manter
o inglês britânico. Mesmo tendo milhares de contribuintes para os verbetes e artigos, a enciclopédia possui uma estrutura hierárquica de produção
internamente [EBb]. Além disso, a sua edição não é aberta à sociedade, fatos fazem com que ela se encaixe no modelo catedral. Atualmente, além da
versão impressa, também possui uma versão digital [EBa].
1.2
Ser ou não ser bazar
Freqüentemente dúvidas em relação ao método bazar são levantadas, como
por exemplo quando a metodologia deve ser aplicada ou se softwares produzidos dessa maneira descentralizada são confiáveis ou não.
Se forem analisadas as possı́veis vantagens do modelo de código aberto em
relação ao de código fechado, veremos que no primeiro não é necessário ter
o controle dos recursos utilizados durante o processo de produção. Cada indivı́duo possui o seu próprio recurso e é responsável por ele. Sendo assim, não
há ninguém responsável pela organização dos desenvolvedores a não serem
os próprios programadores, que colaboram espontaneamente. Isso leva a crer
que há uma espécie de automotivação, já que sem precisar do incentivo de
qualquer pessoa, centenas ou milhares de indivı́duos começam a contribuir.
E são justamente esses voluntários que garantem a correção dos erros dos
projetos, por isso que quanto mais pessoas, melhor. Isso mantém o caráter
descentralizado dos projetos abertos [Ray98].
Entretanto, Kuwabara ressalta que várias caracterı́sticas atribuı́das por
Raymond ao bazar, tais como “flexibilidade, desenvolvimento em paralelo,
revisão distribuı́da, ciclos de retorno” 2 , não necessitam que o código seja
aberto. Mais do que isso, algumas empresas do tipo catedral possuem tais
caracterı́sticas.
2
“ flexibility, parallel development, peer review, feedback loops”
1 CATEDRAL X BAZAR
5
Contudo, não há como negar o crescimento do desenvolvimento e da utilização dos softwares livres. Além do estudo mostrado inicialmente, sobre a
evolução do desenvolvimento, existem também dados que evidenciam a utilização desses programas. Benkler diz que “cerca de 70% dos softwares de
webservers, em particular os essenciais para comércio eletrônico, executam
no servidor livre Apache” 3 . Comenta ainda que empresas como IBM, HP e
agências militares estão adotando o software livre para construı́rem melhores equipamentos, venderem melhores serviços ou porque permite que eles
desempenhem melhor o papel deles.
David A. Wheeler, em seu artigo Why Open Source Software / Free Software (OSS/FS, FLOSS, or FOSS)? Look at the Numbers! [Whe08], apresenta uma série de dados e referências que confirmam a predominância, ou
pelo menos o crescimento, da comunidade livre. Entre eles está o gráfico 1
que confirma o que foi dito por Benkler sobre o Apache Web server.
Figura 1: Market Share for Active Web Servers, June 2000 - April 2007
O gráfico mostra os sites ativos, ou seja, aqueles que realmente desenvolveram um site e não que simplesmente compraram o domı́nio, mas não
utilizam. O estudo foi feito pela Netcraft em abril de 2007 e mostra que a
3
“[...] about 70 percent of Web server software, in particular for critical e-commerce
sites, runs on the Apache Web server-free software”
2 UM PROJETO NO MODELO BAZAR
6
Apache tinha 58.50% do mercado de servidores web enquanto que a Microsoft, que aparece em segundo lugar, tinha 34.44%.
2
Um projeto no modelo bazar
“Linus Torvalds’s style of development release early and often, delegate everything you can, be open to the point of promiscuity came as a surprise. No quiet, reverent cathedral-building
here rather, the Linux community seemed to resemble a great babbling bazaar of differing agendas and approaches (aptly symbolized
by the Linux archive sites, who’d take submissions from anyone)
out of which a coherent and stable system could seemingly emerge
only by a succession of miracles.”
Raymond, Eric – The Cathedral and the Bazaar [Ray98]
Benkler define o modelo como “baseado em contribuições voluntárias e
ubı́quas de compartilhamento recursivo, com melhorias incrementais de pessoas amplamente dispersadas para um projeto onde alguns contribuem bastante, enquanto outras o fazem pouco” 4 .
O autor completa ainda mostrando que o senso comum nos diz que tal
modelo dificilmente daria certo: “baseado em nossas suposições usuais em
relação a projetos voluntários e processos produtivos descentralizados que não
possuem coordenadores, este era pra ser um modelo que não teria sucesso.
Mas teve.” 5 .
Raymond enumera algumas caracterı́sticas do modelo bazar de desenvolvimento:
• Ter um projeto inicial executável e testável;
• Lı́deres com boa comunicação e relacionamento;
• Liberar versões rápido e freqüentemente;
• Entrada permitida de novos participantes: quanto mais melhor;
• Considerar usuários como co-desenvolvedores.
4
“based on voluntary contributions and ubiquitous, recursive sharing; on small incremental improvements to a project by widely dispersed people, some of whom contributed a
lot, others a little.”
5
“Based on our usual assumptions about volunteer projects and decentralized production
processes that have no managers, this was a model that could not succeed. But it did.”
2 UM PROJETO NO MODELO BAZAR
2.1
7
Ter um projeto inicial executável e testável
O ponto de partida da maioria dos projetos de software livre provêm de
necessidades pessoais dos programadores.
Apesar de projetos do modelo bazar não seguirem uma hierarquia rı́gida
e um planejamento bem-definido, Raymond afirma que antes de o projeto
efetivamente começar da maneira distribuı́da, é necessário ter um protótipo
do mesmo, minimamente usável.
Este paradigma de desenvolvimento em geral não se restringe ao inı́cio
do projeto, sendo aplicado ao longo do mesmo, sempre quando se deseja
adicionar um novo recurso, por exemplo.
Em se tratando software livre, o kernel do Linux aparece como um dos
exemplos que mais desafiou os engenheiros e estudiosos da computação devido
a sua complexidade, sua grandiosidade e seu método inovador de desenvolvimento.
Inicialmente, Linus Torvalds estava interessado apenas em uma propriedade do Unix, a task-switching. Ela permite que o sistema operacional
alterne entre tarefas simultâneas, caracterı́stica básica para sistemas multitarefa. Então, utilizando o Minix, um clone do Unix, ele começou a desenvolver as primeiras versões daquilo que seria o Linux. De tempos em tempos,
ele colocava na lista de discussão do Minix as alterações que havia realizado,
pedindo retorno das pessoas com sugestões daquilo que elas gostariam de ter
no sistema operacional. Mais do que isso, chamava as pessoas para ajudá-lo
a desenvolver o novo projeto [Kuw00].
Em pouco tempo surgiram interessados em contribuir e estender o novo
projeto, o que foi feito a partir dessa versão inicial, praticamente sem recursos. Atualmente há inclusive a colaboração de empresas como a Red Hat,
Novell, IBM e Intel.
2.2
Lı́deres com boa comunicação e relacionamento
Ter boa comunicação e relacionamento é o que Raymond chama de caracterı́stica óbvia em se tratando de liderança de projetos de software livre.
Esse tipo de caracterı́stica é o que atrai pessoas, desperta o interesse das
mesmas pelo que se está fazendo e por conseqüência as satisfaz.
Segundo Raymond, não é mera coincidência que Linus seja “um cara legal
que acabe conquistando as pessoas e fazendo-as querer ajudá-lo” 6 .
Linus não tinha real noção do projeto que iria desenvolver. Mesmo assim, acabou inventando um modelo de desenvolvimento que surpreendeu o
6
“It is not a coincidence that Linus is a nice guy who makes people like him and want
to help him”.
2 UM PROJETO NO MODELO BAZAR
Empresa
Red Hat
Novell
IBM
Intel
Linux Foundation
SGI
MIPS Technology
Oracle
Montavista
Linutronix
8
Contribuição
11,2%
8,9%
8,3%
4,1%
3,5%
2,0%
1,6%
1,3%
1,2%
1,0%
Tabela 2: Porcentagem de contribuições no kernel do Linux, feitas por empresas [GKH08]
mundo e que Raymond acredita ser ainda mais inteligente do que a própria
construção do Linux.
2.3
Liberar versões rápido e freqüentemente
Bugs em quaisquer projetos de software são algo recorrente.
Em projetos desenvolvidos pelo modelo catedral, é normal que ao ser
detectado um bug, haja um grande intervalo até a divulgação de uma nova
versão que corrija o mesmo. Este é um dos fatores causadores de frustração
entre os usuários, que se vêem obrigados a usar um programa defeituoso até
que uma nova versão seja lançada, e muitas vezes não correspondem às suas
expectativas.
No modelo bazar, novas versões tornam-se disponı́veis o quanto antes,
ficando suscetı́veis ao retorno imediato dos usuários em relação à correção
esperada ou mesmo em relação a novos problemas gerados pela correção
lançada.
O kernel do Linux chega a ter atualizações diárias, principalmente em
relação a falhas de segurança. Uma vez que se descobre uma vulnerabilidade
no kernel, a base do sistema operacional, a mesma é corrigida o quanto antes
e disponibilizada, evitando assim que toda a base de usuários seja afetada
pela falha.
2 UM PROJETO NO MODELO BAZAR
9
Versão do kernel Lançamento Dias de desenvolvimento
2.6.11
02/03/2005
69
2.6.12
15/07/2005
108
2.6.13
28/08/2005
73
2.6.14
27/10/2005
61
2.6.15
02/01/2006
68
2.6.16
19/03/2006
77
2.6.17
17/06/2006
91
2.6.18
19/09/2006
95
2.6.19
29/11/2006
72
2.6.20
04/02/2007
68
2.6.21
21/04/2007
81
2.6.22
08/07/2007
75
2.6.23
09/10/2007
94
2.6.24
24/01/2008
108
Tabela 3: Freqüência de liberação de versões do kernel 2.6 do Linux [GKH08]
2.4
Entrada permitida de novos participantes: quanto
mais, melhor
Em projetos do tipo catedral, cada participante costuma ser alocado a uma
função especı́fica, sendo responsável por um limitado número de tarefas.
O problema que afeta esse tipo de organização é enunciado pela Lei de
Brooks: “Incluir mais programadores a um projeto atrasado, torna-o mais
atrasado” 7 .
A razão para isso é que a comunicação entre os componentes do grupo
nesse tipo de organização acaba sendo do tipo onde todo mundo deve falar
com todo mundo. Já no caso de projetos do tipo bazar, é mais comum
que hajam pequenos grupos focados em determinadas tarefas, sendo que os
grupos entre si interagem muito pouco.
Isso permite que novos participantes sejam bem-vindos a todo momento,
uma vez que adicionar um participante a um determinado grupo não tem um
impacto significativo no andamento de todo o projeto.
O kernel do Linux é construı́do por meio de tarefas altamente especı́ficas.
Alguns grupos ficam responsáveis pelo sistema de arquivos, outros por gerenciamento de processos, rede e etc. Inicialmente o kernel era o que se chamava
“monolı́tico”, ou seja, composto de uma única peça. As versões mais recentes, no entanto, são “modularizadas”, o que significa que o kernel é composto
7
“Adding more programmers to a late project make it later”
2 UM PROJETO NO MODELO BAZAR
10
por diversas componentes de software.
Ao contrário do que se poderia supor, esta alteração não foi feita por
uma opção de engenharia de software, mas sim de modo a fazer com que o
trabalho em grupo fluı́sse ainda melhor. Com o kernel separado em módulos,
as contribuições individuais afetam ainda menos o funcionamento de todo o
kernel.
2.5
Considerar usuários como co-desenvolvedores
A participação dos usuários no processo de desenvolvimento de software no
modelo bazar é fundamental para garantir a qualidade do mesmo. Raymond
diz que “dados observadores o suficiente, todos os bugs são superficiais” 8 . É
o que o autor denomina de “Lei de Linus”.
Usuários são parte fundamental do processo de desenvolvimento na medida em que encontram bugs e os relatam. Não necessariamente são capazes
de os resolver, mas os relatando, alguém da equipe de desenvolvedores pode
ser capaz de os compreender e assim providenciar a resolução.
2.6
Linus Torvalds: inteligente, porém preguiçoso
Linus nunca quis escrever um kernel. Provavelmente nem mesmo inventar
uma nova maneira de se desenvolver software, mas segundo ele mesmo: “Sou
basicamente uma pessoa muito preguiçosa que gosta de ser creditado por
coisas que outras pessoas fazem” 9 [Ray98].
E foi assim que ele conseguiu estimular tantas pessoas a contribuı́rem
com seu projeto: liberou o código para que as elas pudessem usar, alterar
e distribuir a vontade. Dessa maneira, elas não se viam obrigadas a fazer
alguma coisa. Faziam por vários motivos, entre eles por vontade de ver
aquela funcionalidade na próxima versão.
Com isso, os erros eram corrigidos rapidamente, pois se Torvalds liberasse
uma versão com algum bug, alguém dentre as centenas de co-desenvolvedores
acharia aquela parte do kernel interessante e acabaria corrigindo. Ou seja,
utilizando a técnica de liberar cedo e sempre, ele aproveitava o interesse dos
outros para corrigir e melhor implementar algumas áreas.
Por meio de publicações sobre as alterações e novas versões nas listas
de discussões, ele consegue motivar novos colaboradores a participarem do
projeto. Essa participação cresceu a tal ponto que hoje em dia os patches
8
9
do”
“[...] given enough eyeballs, all bugs are shallow”
“I’m basically a very lazy person who likes to get credit for things other people actually
3 LINUX COMO SISTEMA COMPLEXO
11
Figura 2: Padrão de motivação para contribuir [Kuw00]
enviados pela comunidade são tantos que ele pode se dar ao luxo de escolher
qual a implementação que mais lhe agrada para colocar na próxima versão.
A figura 2 mostra o padrão de motivação para participação no desenvolvimento do kernel, segundo Kuwabara. Segundo o autor, “a eficiência
do grupo significa que o sucesso do projeto atrai novos desenvolvedores ao
projeto ao passo que membros antigos continuam a contribuir. Os novos
desenvolvedores contribuem por estarem interessados no sistema operacional
em si, mas também para afirmar os valores do compartilhamento e liberdade
intelectual, que são confirmados em cada desenvolvedor por sua reputação.
A comunidade então entra num ciclo de retorno positivo” 10 .
3
Linux como sistema complexo
Nesta seção serão abordadas as caracterı́sticas de desenvolvimento no sistema
bazar, sob o ponto de vista de sistemas complexos.
3.1
Sistema complexo adaptativo
Essa nova ciência procura revelar alguns aspectos dos sistemas complexos.
Tais sistemas nada mais são que diversos agentes interagindo entre si e fazendo com que o ambiente sofra mudanças. Dentro da complexidade, esse
processo que começa com interações locais e se expande para todo o sistema
é conhecido como bottom-up.
10
“Group efficacy means that the success of the project signals new hackers to join the
project and old members to continue contributing. The hackers contribute because they are
interested in the operating system for what it is, but they continue to contribute because
the Linux project also affirms the value of intellectual freedom and the norm of sharing,
which are reinforced in each individual by peer reputation. The community is gradually
locked into a recycling pattern of positive feedback”.
3 LINUX COMO SISTEMA COMPLEXO
12
O caráter adaptativo vem do fato de que, após ter sofrido modificações,
o ambiente acaba influenciando as próximas decisões de alguns agentes, que
se baseiam nas novas informações locais para realizarem suas novas ações, já
que não possuem informação global do sistema.
Duas caracterı́sticas principais desses sistemas são a capacidade de pequenas alterações locais interferirem no sistema como um todo e a possibilidade
de, através do processo bottom up descrito acima, se produzir algo novo que
nenhum dos agentes possui individualmente.
3.2
Linux como sistema complexo
No Linux podem-se observar ao menos dois nı́veis de interação local: nı́vel
de código-fonte do kernel e nı́vel de usuários ou usuário/desenvolvedores.
No nı́vel do kernel é onde melhor pode-se observar a caracterı́stica da
propagação de efeito das alterações locais. O kernel é a principal parte do
sistema operacional, e dele dependem todos os softwares sob os quais são
executados, seja direta ou indiretamente.
O código do kernel trata de procedimentos bastante especı́ficos, que variam desde aceitar entrada de dados pelo teclado, gerenciar o compartilhamento de tempo de uso do processador pelos programas e outras tarefas
especı́ficas de controle de hardware da máquina.
Uma alteração no kernel, portanto, tem um impacto global no sistema,
e costuma ser mais significativo se este impacto for negativo. Uma falha
de programação, por exemplo, pode impedir que o processo de compilação
do kernel não seja concluı́do. Esta falha pode ser causada pela inserção de
código de apenas uma pessoa. Em se tratando de um sistema cuja construção
é feita por milhares de contribuintes ao redor do mundo, pode-se perceber o
poder de propagação de uma alteração local.
Porém, este é um problema facilmente detectável e de fácil resolução. Os
piores problemas são aqueles ocultos, que só são revelados em uma execução
particular do software. Uma falha que fizesse o sistema de arquivos ser corrompido, por exemplo, atingiria não só os desenvolvedores do kernel como
qualquer usuário do sistema.
O outro nı́vel de interação local é o dos usuários. A comunidade de
usuários Linux é bastante superior, numericamente, ao número de desenvolvedores do sistema. Entre os usuários uma parte importante da interação
está no que se refere ao suporte do software. A comunidade Linux é conhecida pela grande troca de informações, em especial em fóruns e listas de
discussão na internet. Quando um usuário surge com um problema, há grandes chances de um usuário na comunidade conseguir solucionar, o que faz
com que isso deixe de ser um problema para toda a comunidade.
3 LINUX COMO SISTEMA COMPLEXO
13
Figura 3: Mudanças por hora no kernel do Linux [GKH08]
3.3
Quando a Lei de Brooks não vale
Na seção 2.4 foi citada a Lei de Brooks, segundo Raymond [Ray98], sendo
ela a razão pela qual muitos projetos regidos pelo sistema catedral acabam
tendo problemas no decorrer do desenvolvimento, especialmente quando o
sistema torna-se maior e mais complexo.
No caso do kernel do Linux, a interação entre o nı́vel de desenvolvimento
e o nı́vel de usuário ocorre numa magnitude menor, que é o que evita o
colapso do sistema, pois não há uma necessidade de comunicação entre todos
os envolvidos. Até mesmo no desenvolvimento interno do kernel, conforme
descrito na seção 2.4, não há essa necessidade, facilitado ainda mais pela
caracterı́stica de modularização do software.
A interação entre esses dois nı́veis costuma ocorrer na solução de problemas que realmente exigem intervenção na programação do kernel. Um
usuário ao perceber um problema o mesmo à comunidade. Um usuário mais
experiente, provavelmente com o perfil de desenvolvedor, saberá formular este
problema de uma forma mais técnica, de modo que a solução do problema
para os desenvolvedores do kernel torne-se mais evidente.
Desta maneira é que ocorrem as interações entre os nı́veis e usuário
e desenvolvimento, não ocorrendo necessária e diretamente entre qualquer
3 LINUX COMO SISTEMA COMPLEXO
14
usuário e todos os desenvolvedores. Muitas vezes, um usuário sequer tem
a consciência sobre a presença do kernel no sistema, ficando a detecção do
problema a cargo de alguma pessoa mais especializada da comunidade, o que
evidentemente minimiza a comunicação desnecessária estre esses dois nı́veis.
3.4
Auto-organização
Outro aspecto dos sistemas complexos é a auto-organização.
No sistema bazar de desenvolvimento, e no Linux não é diferente, os participantes escolhem aquilo com o que desejam contribuir, sem serem designados
para isso por uma coordenação central.
Esse tipo de caracterı́stica, segundo Kuwabara, é o que permite a alocação
eficiente de recursos: “no projeto Linux, cada desenvolvedor é livre para para
trabalhar em qualquer projeto de sua escolha de acordo com suas habilidades,
experiência e interesse” 11 .
3.5
Memética e evolução
Um meme consiste de uma idéia ou comportamento que pode passar de uma
pessoa a outra por meio de aprendizagem ou imitação. Richard Dawkins,
criador do termo em seu livro The Selfish Gene, utiliza a teoria evolucionista
para explicar a propagação de idéias e o fenômeno cultural. 12 .
O processo de desenvolvimento do kernel do Linux pode ser visto sob um
ponto de vista memético, segundo Kuwabara. Apesar de o kernel ter sido
escrito a partir do zero, muitas de suas idéias foram inspiradas em sistemas
Unix da época.
Outras caracterı́sticas que justificam esse ponto de vista seriam por exemplo as inúmeras contribuições na forma de patches (“remendos”) ao kernel. É
pressuposto que as submissões de patches devam ser corretas, livres de bugs
e que devem funcionar bem para o propósito o qual foram designados.
Outros patches, seguindo os que já foram submetidos procuram seguir
essas mesmas idéias, e também apoiam-se nos resultados de outros patches
fazendo-se assim a evolução no kernel do Linux. Segundo Kuwabara, o kernel
pode ser considerado um memeplex (complexo de memes).
11
“In comparison, in the Linux project, each developer is free to work on any particular
project of his choice as his skills, experience, and interest best dictate.”
12
http://en.wikipedia.org/wiki/Meme
4 CONCLUSÃO
4
15
Conclusão
A peer-production não chega a ser novidade, uma vez que ela sempre existiu,
porém em menor escala. Com as facilidades providas pela internet, este tipo
de produção foi amplamente impulsionado.
Se não fosse o avanço e a popularização das redes, muito provavelmente
projetos como o Linux não teriam passado de um projeto amador, desenvolvido a poucas mãos. É até improvável que o desenvolvimento do mesmo
tivesse tido a caracterı́stica do bazar, o que certamente não lhe traria o grau
de desenvolvimento que possui hoje.
A peer-production, impulsionada pelo poder das redes de comunicação,
portanto, cada vez mais deixa de ser vista como atividade amadora. Como
justificativa, tem-se a crescente aceitação desse tipo de produção, inclusive
mercadológica, que faz pleno uso dos resultados da mesma, bem como tem
feito também suas contribuições.
REFERÊNCIAS
16
Referências
[Ben06]
Yochai Benkler. The wealth of networks: How social production
transforms markets and freedom.
http://www.benkler.org/, 2006.
[Des08]
Amit Deshpande. Open source projects double every 14 months!
http://www.amit-deshpande.com/2008/04/
open-source-projects-double-every-14.html, April 2008.
[EBa]
Inc. Encyclopedia Britannica. Encyclopedia - britannica online
encyclopedia.
http://www.britannica.com/.
[EBb]
Inc. Encyclopedia Britannica. History of encyclopedia britannica
and britannica online.
http://corporate.britannica.com/company_info.html.
[GKH08] Amanda McPherson Greg Kroah-Hartman, Jonathan Corbet.
How fast it is going, who is doing it, what they are doing, and
who is sponsoring it.
http://www.linuxfoundation.org/publications/
linuxkerneldevelopment.php, April 2008.
[Kuw00] Ko Kuwabara. Linux: A bazaar at the edge of chaos.
http://www.firstmonday.org/issues/issue5_3/kuwabara/
index.html, 2000.
[Ray98]
Eric. S. Raymond. The cathedral and the bazaar.
http://www.catb.org/~esr/writings/cathedral-bazaar/,
August 1998.
[Whe08] David A. Wheeler. Why open source software / free software
(oss/fs, floss, or foss)? look at the numbers!
http://www.dwheeler.com/oss_fs_why.html, April 2008.
Download

MAC339 - Catedral, Bazar e Software Livre