O documento discute a história do software livre e de código aberto, desde suas origens com Richard Stallman e o projeto GNU até o desenvolvimento do Linux. Apresenta os principais conceitos como copyleft, Free Software Foundation e modelo de desenvolvimento colaborativo do Linux. Discutem textos relacionados à genealogia do virtual, o artífice e o modelo de desenvolvimento de código aberto "Catedral e Bazar".
1. Práticas sociais, tecnologia e
conhecimento: mediações
Seminário apresentado na Disciplina
CBD5389 - Sociedade, Informação e Conhecimento
Docentes Responsáveis: Drs. Giulia Crippa e Marco Antônio de Almeida
Programa de Pós Graduação em Ciência da Informação
Escola de Comunicação e Artes
Universidade de São Paulo.
1 de Junho de 2012
2. Agenda
1. The challenge of Stallman’s life Origem do Software Livre
2. Hackers
3. Developing GNU
4. Copyleft and the GNU GPL
5. The Free Software Foundation
6. Free Software Support
7. Donated Computers
8. Linux and GNU/Linux
9. Open Source
10. Free x Open
11. Do C ao GIT, um caminho livre, aberto e colaborativo!
12. Abordagem ao Texto: A genealogia do virtual - Comunicação, cultura e
tecnologia do imaginário
13. Abordagem ao Texto: O Artífice
14. Abordagem ao Texto: a Catedral e o Bazar
4. The challenge of Stallman’s life
These machines run us. Code runs these
machines.
What control should we have over this
code? What understanding?
What power?
5. Hackers
The use of “hacker” to mean “ security breaker” is a confusion on the part of the mass media.
We hackers refuse to recognize that meaning, and continue using the word to mean, “ Someone who loves to program
and enjoys being clever about it.”
hacking means exploring the limits of what is possible, in a spirit of
“
playful cleverness”
The idea that the proprietary software that says you are not allowed to share or change software is
antisocial, that it is unethical, that it is simply wrong.
based on dividing the public and
But what else could we say about a system
keeping users helpless?
free to modify
Computer users should be programs to fit their needs, and free to share software, because
helping other people is the basis of society .
6. Developing GNU
“As an operating system developer, I had the right skills for this job.
So even though I could not take success for granted, I realized that I was elected to do
the job.
I chose to make the system compatible with Unix so that it would be
portable, and so that Unix users could easily switch to it.
The name GNU was chosen following a hacker tradition, as a recursive acronym for
“GNU Is Not Unix.”
Later I heard these words, attributed to Hillel:
If I am not for myself, who will be for me? If I am only
‘
for myself, what am I? If not now, when?’”
7. Copyleft and the GNU GPL
“The goal of GNU was to give users freedom, not just to be popular.
So we needed to use distribution terms that would prevent GNU software from
being turned into proprietary software.
Copyleft uses copyright law, but flips it over to serve the opposite of its usual purpose:
instead of a means of privatizing software, it becomes a means of keeping
software free.
The central idea of copyleft is thatwe give everyone permission to
run the program, copy the program, modify the program, and distribute modified
versions but not permission to add restrictions of their own.”
8. The Free Software Foundation
“I began work on GNU Emacs in September 1984, and in early 1985 it was beginning
to be usable.
People began wanting to use GNU Emacs how to distribute it?
I could have said, “Find a friend who is on the net and who will make a copy for you.”
Or I could tell them, “Mail me a tape and a SASE (Self Addressed Stamped Envelope), and I will
mail it back with Emacs on it.”
I had no job and I was looking for ways to make money
But
from free software.
9. The Free Software Foundation
“So I announced that I would mail a tape to whoever
wanted one, for a fee of $150.
In this way, I started a free software distribution
business, the precursor of the companies that today
distribute entire Linux-based GNU systems.
1985 we created the Free Software Foundation.”
10. Free Software Support
“The free software philosophy rejects a specific widespread business practice,
but it is not against business.
When businesses respect the users’ freedom, we wish them success.
This included teaching, for subjects such as how to program GNU Emacs and how
to customize GCC, and software development, mostly porting GCC to new
platforms
The principal goal of GNU was to be free software.
social
Even if GNU had no technical advantage over Unix, it would have a
advantage, allowing users to cooperate, and an ethical
advantage, respecting the user’s freedom.”
11. Donated Computers
As the GNU project’s reputation grew, people began offering to donate machines running Unix to
the project.
These were very useful, because the easiest way to develop components of GNU was to do it on a Unix
system, and replace the components of that system one by one.
But they raised an ethical issue: whether it was right for us to have a copy of Unix at all.
Unix was (and is) proprietary software, and the GNU project’s philosophy said that we should
not use proprietary software.
But, applying the same reasoning that leads to the conclusion that violence in self
defense is justified, I concluded that it was legitimate to use a proprietary package
free replacement
when that was crucial for developing a that would help others
stop using the proprietary package .
12. Linux and GNU/Linux
The GNU Hurd is not ready for production use. Fortunately, another
kernel is available.
In 1991, Linus Torvalds developed a Unix-compatible kernel and called it
Linux.
Around 1992, combining Linux with the not-quite complete GNU
resulted in a complete free operating
system
system (combining them was a substantial job in itself, of course.) .
It is due to Linux that we can actually run a version of the GNU system today.
We call this system version GNU/Linux, to express its composition as a
combination of the GNU system with Linux as the
kernel.
13. Free Software Definition
“Free software” is a matter of liberty, not price.
To understand the concept, you should think of “free” as in “free
speech,” not as in “free beer.”
• Freedom 0: The freedom to run the program, for any purpose.
• Freedom 1: The freedom to study how the program works, and
adapt it to your needs. (Access to the source code is a precondition
for this.)
• Freedom 2: The freedom to redistribute copies so you can help
your neighbor.
• Freedom 3: The freedom to improve the program, and release your
improvements to the public, so that the whole community
benefits. (Access to the source code is a precondition for this.)
A program is free software if users have all of these freedoms.”
14. “Open Source”
Teaching new users about freedom became
more difficult in 1998, when a part of the
community decided to stop using the term
“free software” and say “open source
software” instead.
15. Free x Open
“Open source is a development methodology;
free software is a social movement.”
For the Open Source movement, non-free
software is a suboptimal solution.
For the Free Software movement, non-free
software is a social problem and free software
is the solution.
16. What’s in a Name?
Names convey meanings; our choice of names determines the meaning of
what we say.
If you call our operating system “Linux,” that conveys a mistaken idea of the
system’s origin, history, and purpose.
If you call it “GNU/Linux,” that conveys (though not in detail) an accurate idea.
But does this matter for our community?
Is it important whether people know the system’s origin, history,
and purpose?
Yes, because people who forget history are
often condemned to repeat it.
17. Why Software Should Not Have
Owners
Digital information technology contributes to
the world by making it easier to copy and
modify information.
Computers promise to make this easier for all
of us.
Digital technology is more flexible than the
printing press: when information has digital
form, you can easily copy it to share it with
others.
18. Do C ao GIT, um caminho livre!
1967 - Dennis M. Ritchie entrou para o Bell Labs (atual AT&T)
1972 – Dennis M. Ritchie junto com Ken Thompson começaram a criar o UNIX
1972 – Dennis M. Ritchie criou a Linguagem C, baseada em alterações da Linguagem B criada
por Thompson
1984 - Stalmann começa a desenvolver o GNU, escrito em Linguagem C
1987 - Andrew S. Tanenbaum criou o MINIX, um mini UNIX que ele utilizava para dar aulas e
explicar os conceitos de seu livro “Operating Systems Design and Implementation”
1991 - Linus Torvalds anunciou a primeira versão "oficial" do núcleo Linux, um novo Sistema
Operacional
1995 - Yukihiro Matsumoto criou a linguagem Ruby (que foi escrita utilizando a linguagem C)
2004 - David Hansson desenvolveu o framework Rails e abriu para domiínio publico
2005 – Linus inicia o desenvolvimento do GIT em 6 de abril de 2005
2005 – O primeiro “merge” de multiplos branches foi realizado em 18 de abril de 2005
2005 – A versão 2.6.12 do kernel do Linux já estava sendo gerenciada pelo GIT, em 16 de
junho de 2005
2008 - Tom Preston-Werner, Chris Wanstrath e PJ Hyett criam o serviço GitHub que utiliza o
sistema GIT e o Framework Ruby on Rails para criar uma “rede social” de compartilhamento
de código.
Um intervalo de pelo menos 41 anos!
19. Abordagem ao Texto: A genealogia do
virtual - Comunicação, cultura e tecnologia
do imaginário
20. “Quem não dá sentido às esperanças libertárias
suscitadas pelas diferenças da internet só pode
ser alguém descontente com a vitalidade das
inúmeras associações horizontais, alguém que
quer impedir que os outros falem e se
agrupem aleatoriamente, simplesmente
porque essa festa caótica retira dele o lugar
de poder confortável, aquele que não parece
ser de poder: o intelectual só quer que a “boa”
ordem exista e só fala em nosso nome por que
sabe da verdade e do bem comum.”
21. “Sonho com uma nova era de curiosidade.
Temos os meios técnicos para tanto; o desejo está aí;
as coisas a serem conhecidas são infinitas;
existem as pessoas que podem se
empregar nesta tarefa.”
Foucault Richard Stalmann Linus Torvalds
22. “a rede [hoje] aparece como exemplo do que é aberto,
impede o
rompe hierarquias, transgride fronteiras,
segredo e pode ser produzido e
apropriado por qualquer um.”
*2,767,257 27,578 projects
* 2.708 Code 994,439 bugs,
repositories Commits 1,913,233 translations
196,501 answers
Dados coletados em 13/05/2012
24. A arte pela arte
“O carpinteiro, a técnica de
laboratório e o maestro são artífices
porque se dedicam à arte pela arte.”
25. A arte pela arte
“O artífice representa uma condição
humana especial: a do engajamento”.
26. A arte pela arte
“As recompensas emocionais
oferecidas pela habilidade artesanal
na consecução desse tipo de perícia
são de dois tipos: as pessoas se ligam
a realidade tangível e podem
orgulhar-se de seu trabalho.”
27. Modelo Catedral e Bazar
“Eric Raymond distingue dois tipos de
softwares livres: o modelo ‘catedral’ no qual
um grupo fechado de programadores
desenvolve o código para em seguida
disponibilizá-lo para qualquer interessado, e o
modelo ‘bazar’ do qual qualquer um pode
participar através da Internet, produzindo
códigos.”
29. Qualidade e correção por ‘pares’
“diante de tantos pares de olhos, qualquer bug é
moleza;”
“Quem pensaria mesmo há cinco anos atrás que
um sistema operacional de classe mundial
poderia surgir como que por mágica pelo tempo
livre de milhares de colaboradores espalhados por
todo o planeta, conectado somente pelos tênues
cordões da Internet? Certamente não eu.”
30. Qualidade e correção por ‘pares’
“Eu acreditava que os softwares mais
importantes (sistemas operacionais e
ferramentas realmente grandes como
Emacs) necessitavam ser construídos como
as catedrais, habilmente criados com
cuidado por mágicos ou pequenos grupos
de magos trabalhando em esplêndido
isolamento.”
31. Qualidade e correção por ‘pares’
“O estilo de Linus Torvalds de desenvolvimento -
libere cedo e frequentemente, delegue tudo que
você possa, esteja aberto ao ponto da
promiscuidade - veio como uma surpresa”.
32. Qualidade e correção por ‘pares’
“Outra força da tradição do Unix, uma que o Linux
tem levado a um alegre extremo, é que muitos
usuários são desenvolvedores também.
E porque o código fonte está disponível, eles
podem ser desenvolvedores eficazes.”
33. Qualidade e correção por ‘pares’
“eu penso que a engenhosidade do Linus e a maior parte
do que desenvolveu não foram a construção do kernel do
Linux em si, mas sim a sua invenção do modelo de
desenvolvimento do Linux.”
Quando eu expressei esta opinião na sua presença uma
vez, ele sorriu e calmamente repetiu algo que
frequentemente diz:
"Sou basicamente uma pessoa muito preguiçosa que gosta
de ganhar crédito por coisas que outras pessoas realmente
fazem.”
34. Qualidade e correção por ‘pares’
“Realmente, minha mais bem sucedida
codificação foi uma colaboração do tipo do Linux
por email com três outras pessoas, somente uma
das eu conheci pessoalmente até hoje.”
35. Qualidade e correção por ‘pares’
“Embora uma Internet barata fosse uma condição
necessária para que o modelo do Linux evoluísse,
eu penso que não foi uma condição por si só
suficiente.”
36. Qualidade e correção por ‘pares’
Outro fator vital foi o desenvolvimento de um
estilo de liderança e conjunto de formalidades
cooperativas que permitiria aos
desenvolvedores atrair co-desenvolvedores e
obter o máximo suporte do ambiente.”
37. Qualidade e correção por ‘pares’
Mas o que é este estilo de liderança e estas
formalidades?
Eles não podem estar baseados em relações de
poder, e mesmo que pudessem, a liderança por
coerção não produziria os resultados que nós
vemos.”
38. Qualidade e correção por ‘pares’
“A ‘função empreendedora’ que os
desenvolvedores do Linux estão maximizando
não é economia clássica, mas é a intangível
satisfação do seu próprio ego e reputação entre
outros desenvolvedores.”
39. Os Mediadores
Como o texto “A genealogia do virtual - Comunicação, cultura e tecnologia
do imaginário” aborda com afinco sobre o papel do mediador, a pergunta
que quero deixar é:
Será que realmente precisamos desses mediadores
‘formais’?
Claro que não podemos generalizar, mas é (eu creio) claro também que não
é estritamente necessário. Ao menos não da forma como temos visto eles
atuando.
Vídeos:
• http://youtu.be/Br7_pqZY60Q
• http://youtu.be/jgTLlbvQLUE
• http://youtu.be/UQ06D_Lf7Co
• http://youtu.be/33OT3kcU6jY
• http://youtu.be/Lk6at41OuFE
• http://youtu.be/VER0tbAJA1w
• http://youtu.be/qJzVT6qbUc0
40. Referências
• VAZ, Paulo. Mediação e Tecnologia. In: MARTINS, F.M.; SILVA, J.M.. A genealogia do virtual -
Comunicação, cultura e tecnologia do imaginário. Porto Alegre: Sulina, 2004. Disponível em:
http://revistaseletronicas.pucrs.br/ojs/index.php/revistafamecos/article/viewFile/3137/2408.
• SENNET, Richard. O Artífice. Editora Record, São Paulo, 2009, 360p.
• LESSIG, Lawrence. Free Software, Free Society: Selected Essays of Richard M. Stallman. Disponível
em http://www.gnu.org/philosophy/fsfs/rms-essays.pdf
• PC World. User Hacks GitHub to Showcase Vulnerability After Rails Developers Dismiss His
Report. Disponível em
http://www.pcworld.com/businesscenter/article/251259/user_hacks_github_to_showcase_vulnerabilit
y_after_rails_developers_dismiss_his_report.html
• RITCHIE, Dennis M. Dennis M. Ritchi Bio. Disponível em http://cm.bell-
labs.com/cm/cs/who/dmr/bigbio1st.html
• Wired. Linus Torvalds Invented Git, But He Pulls No Patches With GitHub. Disponível em:
http://www.wired.com/wiredenterprise/2012/05/torvalds_github/
• GIT. Git History. Disponível em: https://git.wiki.kernel.org/index.php/GitHistory
• RAYMOND, Eric Steven. A Catedral e o Bazar. Disponível em:
http://www.dominiopublico.gov.br/pesquisa/DetalheObraForm.do?select_action=&co_obra=8679