xref: /linux/Documentation/translations/pt_BR/process/1.Intro.rst (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*a0529bbeSDaniel Castro.. SPDX-License-Identifier: GPL-2.0
2*a0529bbeSDaniel Castro
3*a0529bbeSDaniel CastroIntrodução
4*a0529bbeSDaniel Castro==========
5*a0529bbeSDaniel Castro
6*a0529bbeSDaniel CastroSumário
7*a0529bbeSDaniel Castro-------
8*a0529bbeSDaniel Castro
9*a0529bbeSDaniel CastroO restante desta seção cobre o processo de desenvolvimento do kernel e os
10*a0529bbeSDaniel Castrotipos de frustração que os desenvolvedores e empresas podem encontrar pelo
11*a0529bbeSDaniel Castrocaminho. Existem diversas razões que justificam a recomendação para que seja
12*a0529bbeSDaniel Castrofeito o merge do código do kernel ao kernel principal ("mainline"), como
13*a0529bbeSDaniel Castrodisponibilidade automática aos usuários, suporte da comunidade em diversas
14*a0529bbeSDaniel Castroformas, e a oportunidade de influenciar a direção do desenvolvimento do
15*a0529bbeSDaniel Castrokernel. Contribuições ao kernel Linux obrigatoriamente devem estar disponíveis
16*a0529bbeSDaniel Castrosob uma licença compatível com a GPL.
17*a0529bbeSDaniel Castro
18*a0529bbeSDaniel Castro:ref:`development_process` apresenta o processo de desenvolvimento, o ciclo de
19*a0529bbeSDaniel Castrolançamento, e a mecânica da janela de merge. As várias fases no desenvolvimento
20*a0529bbeSDaniel Castrode patch, revisão, e ciclo de merge são explicadas. Algumas ferramentas e
21*a0529bbeSDaniel Castrolistas de e-mail são discutidas. Desenvolvedores que queiram começar a
22*a0529bbeSDaniel Castrodesenvolver o kernel são encorajados a buscar e corrigir bugs como exercício
23*a0529bbeSDaniel Castroinicial.
24*a0529bbeSDaniel Castro
25*a0529bbeSDaniel Castro:ref:`development_early_stage` cobre os primeiros passos do processo de
26*a0529bbeSDaniel Castrodesenvolvimento, com ênfase no envolvimento da comunidade de desenvolvedores o
27*a0529bbeSDaniel Castromais cedo possível.
28*a0529bbeSDaniel Castro
29*a0529bbeSDaniel Castro:ref:`development_coding` é sobre o processo de codificação; muitas armadilhas
30*a0529bbeSDaniel Castrojá encontradas por outros desenvolvedores são discutidas. Alguns requisitos
31*a0529bbeSDaniel Castropara patches são explicados, e é feita uma introdução para algumas ferramentas
32*a0529bbeSDaniel Castroque podem ajudar a garantir que os patches de kernel estão corretos.
33*a0529bbeSDaniel Castro
34*a0529bbeSDaniel Castro:ref:`development_posting` fala sobre o processo de envio de patches para
35*a0529bbeSDaniel Castrorevisão. Para serem levados em consideração pela comunidade desenvolvedora, os
36*a0529bbeSDaniel Castropatches devem estar devidamente formatados e descritos, assim como devem estar
37*a0529bbeSDaniel Castrono lugar correto. Seguir os conselhos dessa seção pode ajudar na recepção
38*a0529bbeSDaniel Castropositiva do seu trabalho.
39*a0529bbeSDaniel Castro
40*a0529bbeSDaniel Castro:ref:`development_followthrough` cobre o que acontece após o envio dos patches;
41*a0529bbeSDaniel Castroo trabalho ainda está longe de estar concluído. Trabalhar com os revisores é
42*a0529bbeSDaniel Castroparte crucial do processo de desenvolvimento; essa seção oferece dicas de como
43*a0529bbeSDaniel Castroevitar problemas nesse estágio importante. Desenvolvedores são alertados a não
44*a0529bbeSDaniel Castropresumir que o trabalho acabou após o merge do patch no "mainline".
45*a0529bbeSDaniel Castro
46*a0529bbeSDaniel Castro:ref:`development_advancedtopics` introduz dois tópicos mais "avançados":
47*a0529bbeSDaniel Castrogerenciamento de patches com git e revisão de patches por outros.
48*a0529bbeSDaniel Castro
49*a0529bbeSDaniel Castro:ref:`development_conclusion` conclui o documento com indicações de fontes com
50*a0529bbeSDaniel Castromais informações sobre o desenvolvimento do kernel.
51*a0529bbeSDaniel Castro
52*a0529bbeSDaniel CastroSobre este documento
53*a0529bbeSDaniel Castro--------------------
54*a0529bbeSDaniel Castro
55*a0529bbeSDaniel CastroO kernel Linux, com mais de 8 milhões de linhas de código e bem mais de 1000
56*a0529bbeSDaniel Castrocontribuintes a cada lançamento ("release"), é um dos maiores e mais ativos
57*a0529bbeSDaniel Castroprojetos de software livre em existência. Desde seu modesto início em 1991,
58*a0529bbeSDaniel Castroeste kernel evoluiu para se tornar um dos melhores componentes de sistemas
59*a0529bbeSDaniel Castrooperacionais, rodando em pequenos players de música digital, PCs de mesa, os
60*a0529bbeSDaniel Castromaiores supercomputadores em existência, e todos os outros tipos de sistema
61*a0529bbeSDaniel Castroentre eles. É robusto, eficiente, e uma solução escalável para quase toda
62*a0529bbeSDaniel Castrosituação.
63*a0529bbeSDaniel Castro
64*a0529bbeSDaniel CastroO crescimento do Linux trouxe o aumento no número de desenvolvedores (e
65*a0529bbeSDaniel Castroempresas) desejando participar no seu desenvolvimento. Fabricantes de hardware
66*a0529bbeSDaniel Castroquerem garantir que o Linux suporte bem os seus produtos, tornando-os atrativos
67*a0529bbeSDaniel Castropara usuários Linux. Fabricantes de sistemas embarcados, que usam o Linux como
68*a0529bbeSDaniel Castrocomponente em um produto integrado, querem que o Linux seja tão capaz e
69*a0529bbeSDaniel Castroadequado quanto possível para a tarefa em questão. Distribuidores de software
70*a0529bbeSDaniel Castroque baseiam seus produtos em Linux têm claro interesse nas capacidades,
71*a0529bbeSDaniel Castroperformance, e confiabilidade do kernel Linux. É também comum que usuários
72*a0529bbeSDaniel Castrofinais queiram alterar o Linux para atender melhor suas necessidades.
73*a0529bbeSDaniel Castro
74*a0529bbeSDaniel CastroUma das características mais atrativas do Linux é sua facilidade de acesso a
75*a0529bbeSDaniel Castroesses desenvolvedores; qualquer um com as habilidades necessárias pode melhorar
76*a0529bbeSDaniel Castroo Linux e influenciar a direção do seu desenvolvimento. Produtos proprietários
77*a0529bbeSDaniel Castronão conseguem oferecer esse tipo de abertura, que é característico do processo
78*a0529bbeSDaniel Castrode software livre. O kernel é ainda mais acessível que a maioria dos outros
79*a0529bbeSDaniel Castroprojetos de software livre. Um ciclo típico de três meses de desenvolvimento
80*a0529bbeSDaniel Castrodo kernel pode envolver mais de 1000 desenvolvedores trabalhando para mais de
81*a0529bbeSDaniel Castro100 empresas (ou absolutamente nenhuma empresa).
82*a0529bbeSDaniel Castro
83*a0529bbeSDaniel CastroTrabalhar com a comunidade de desenvolvimento do kernel não é uma tarefa árdua.
84*a0529bbeSDaniel CastroContudo, muitos colaboradores potenciais passaram por dificuldades ao tentar
85*a0529bbeSDaniel Castrotrabalhar no kernel. A comunidade evoluiu suas próprias formas de funcionamento
86*a0529bbeSDaniel Castroque permitem operar de forma fluida (e produzir um produto de alta qualidade)
87*a0529bbeSDaniel Castroem um ambiente em que milhares de linhas de código são alteradas todos os dias.
88*a0529bbeSDaniel CastroNão é surpresa que o processo de desenvolvimento do kernel Linux seja muito
89*a0529bbeSDaniel Castrodiferente dos modelos de desenvolvimento proprietários.
90*a0529bbeSDaniel Castro
91*a0529bbeSDaniel CastroO processo de desenvolvimento do kernel pode parecer estranho e intimidador
92*a0529bbeSDaniel Castropara novos desenvolvedores, mas existem bons motivos e uma sólida experiência
93*a0529bbeSDaniel Castropor trás disso. Um desenvolvedor que não entenda os caminhos próprios da
94*a0529bbeSDaniel Castrocomunidade kernel (ou pior, que tente menosprezá-los ou contorná-los) terá uma
95*a0529bbeSDaniel Castroexperiência frustrante pela frente. A comunidade de desenvolvimento ajuda
96*a0529bbeSDaniel Castroaqueles que tentam aprender, mas gasta pouco tempo com aqueles que não escutam
97*a0529bbeSDaniel Castroou não ligam para o processo de desenvolvimento.
98*a0529bbeSDaniel Castro
99*a0529bbeSDaniel CastroEspera-se que aqueles que leiam este documento sejam capazes de evitar essa
100*a0529bbeSDaniel Castroexperiência frustrante. Há muito material aqui, mas o esforço envolvido na sua
101*a0529bbeSDaniel Castroleitura valerá a pena. A comunidade de desenvolvimento sempre necessita de
102*a0529bbeSDaniel Castrodesenvolvedores que ajudem a melhorar o kernel; o texto a seguir deve ajudar
103*a0529bbeSDaniel Castrovocê - ou aqueles trabalhando para você - a se juntar à nossa comunidade.
104*a0529bbeSDaniel Castro
105*a0529bbeSDaniel CastroCréditos
106*a0529bbeSDaniel Castro--------
107*a0529bbeSDaniel Castro
108*a0529bbeSDaniel CastroEsse documento foi escrito por Jonathan Corbet, corbet@lwn.net. Aprimorado
109*a0529bbeSDaniel Castropelos comentários de Johannes Berg, James Berry, Alex Chiang, Roland Dreier,
110*a0529bbeSDaniel CastroRandy Dunlap, Jake Edge, Jiri Kosina, Matt Mackall, Arthur Marsh, Amanda
111*a0529bbeSDaniel CastroMcPherson, Andrew Morton, Andrew Price, Tsugikazu Shibata, e Jochen Voß.
112*a0529bbeSDaniel Castro
113*a0529bbeSDaniel CastroEsse trabalho contou com o apoio da Linux Foundation; agradecimentos especiais
114*a0529bbeSDaniel Castropara Amanda McPherson, que viu o valor desse esforço e fez tudo acontecer.
115*a0529bbeSDaniel Castro
116*a0529bbeSDaniel CastroA importância de levar o código até o "mainline"
117*a0529bbeSDaniel Castro-------------------------------------------------
118*a0529bbeSDaniel Castro
119*a0529bbeSDaniel CastroAlgumas empresas e desenvolvedores ocasionalmente se perguntam por que devem
120*a0529bbeSDaniel Castrose importar em aprender como trabalhar com a comunidade do kernel e ter seu
121*a0529bbeSDaniel Castrocódigo no "mainline" (o kernel mantido por Linus Torvalds e usado como base
122*a0529bbeSDaniel Castropara os distribuidores Linux). No curto prazo, contribuir com o código pode
123*a0529bbeSDaniel Castroparecer um gasto evitável; parece mais fácil apenas manter o seu código à
124*a0529bbeSDaniel Castroparte e oferecer suporte direto aos usuários. A verdade é que manter código
125*a0529bbeSDaniel Castrofora da árvore principal ("out-of-tree") é uma falsa economia.
126*a0529bbeSDaniel Castro
127*a0529bbeSDaniel CastroPara ilustrar os custos do código "out-of-tree", aqui estão alguns aspectos
128*a0529bbeSDaniel Castrorelevantes do processo de desenvolvimento do kernel; a maioria será discutida
129*a0529bbeSDaniel Castrocom mais detalhes adiante neste documento. Considere:
130*a0529bbeSDaniel Castro
131*a0529bbeSDaniel Castro- Código integrado via merge ao "mainline" fica disponível para todos os
132*a0529bbeSDaniel Castro  usuários Linux. Estará automaticamente presente em todas as distribuições
133*a0529bbeSDaniel Castro  que o habilitarem. Não há necessidade de discos de armazenamento, downloads,
134*a0529bbeSDaniel Castro  ou as complicações de dar suporte a múltiplas versões de variadas
135*a0529bbeSDaniel Castro  distribuições; tudo simplesmente funciona, para o desenvolvedor e para o
136*a0529bbeSDaniel Castro  usuário. Incorporação ao "mainline" resolve um grande número de problemas
137*a0529bbeSDaniel Castro  de distribuição e suporte.
138*a0529bbeSDaniel Castro
139*a0529bbeSDaniel Castro- Enquanto desenvolvedores do kernel se esforçam para manter uma interface
140*a0529bbeSDaniel Castro  estável para o espaço do usuário, a API interna está em constante mudança.
141*a0529bbeSDaniel Castro  A ausência de uma interface interna estável é uma escolha deliberada de
142*a0529bbeSDaniel Castro  design; permite que sejam feitas melhorias fundamentais a qualquer tempo e
143*a0529bbeSDaniel Castro  resulta em código de qualidade superior. Uma consequência dessa política é
144*a0529bbeSDaniel Castro  que código "out-of-tree" precisa ser constantemente atualizado para que
145*a0529bbeSDaniel Castro  continue funcionando com novos kernels. Manter código "out-of-tree" requer
146*a0529bbeSDaniel Castro  significativo trabalho apenas para mantê-lo funcionando.
147*a0529bbeSDaniel Castro
148*a0529bbeSDaniel Castro  Por sua vez, código que está no "mainline" não precisa dessa manutenção,
149*a0529bbeSDaniel Castro  resultado de uma regra simples que exige que qualquer desenvolvedor que
150*a0529bbeSDaniel Castro  altere uma API, também conserte qualquer código que deixe de funcionar como
151*a0529bbeSDaniel Castro  resultado da alteração. Código que teve o merge realizado no "mainline" tem
152*a0529bbeSDaniel Castro  custo significativamente menor de manutenção.
153*a0529bbeSDaniel Castro
154*a0529bbeSDaniel Castro- Além disso, código que está no kernel será muitas vezes melhorado por outros
155*a0529bbeSDaniel Castro  desenvolvedores. Resultados surpreendentes podem surgir ao permitir que sua
156*a0529bbeSDaniel Castro  comunidade de usuários e clientes melhore seu produto.
157*a0529bbeSDaniel Castro
158*a0529bbeSDaniel Castro- Código do kernel está sujeito a revisão, tanto antes como depois do merge ao
159*a0529bbeSDaniel Castro  "mainline". Independentemente das habilidades do desenvolvedor original, o
160*a0529bbeSDaniel Castro  processo de revisão invariavelmente encontra maneiras de evoluí-lo. Bugs
161*a0529bbeSDaniel Castro  severos e problemas de segurança são constantemente encontrados durante o
162*a0529bbeSDaniel Castro  processo de revisão. Isso é especialmente válido para código desenvolvido em
163*a0529bbeSDaniel Castro  ambiente isolado; tais códigos se beneficiam fortemente ao serem revistos por
164*a0529bbeSDaniel Castro  outros desenvolvedores. Código "out-of-tree" é código de baixa qualidade.
165*a0529bbeSDaniel Castro
166*a0529bbeSDaniel Castro- Participação no processo de desenvolvimento é a forma pela qual você pode
167*a0529bbeSDaniel Castro  influenciar a direção do desenvolvimento do kernel. Usuários que se queixam
168*a0529bbeSDaniel Castro  externamente são ouvidos, porém desenvolvedores ativos têm maior poder de
169*a0529bbeSDaniel Castro  articulação - e a habilidade de implementar mudanças que façam o kernel
170*a0529bbeSDaniel Castro  funcionar melhor para suas necessidades.
171*a0529bbeSDaniel Castro
172*a0529bbeSDaniel Castro- Quando o código é mantido à parte, sempre existe a possibilidade de que
173*a0529bbeSDaniel Castro  terceiros contribuam para uma implementação diferente de uma funcionalidade
174*a0529bbeSDaniel Castro  parecida. Se isso acontecer, ter seu código integrado via merge se tornará
175*a0529bbeSDaniel Castro  muito mais difícil - ao ponto de ser impossível. Você enfrentará duas
176*a0529bbeSDaniel Castro  alternativas desagradáveis, (1) manter uma funcionalidade "out-of-tree"
177*a0529bbeSDaniel Castro  indefinidamente ou (2) abandonar seu código e migrar seus usuários para a
178*a0529bbeSDaniel Castro  versão na árvore principal ("in-tree").
179*a0529bbeSDaniel Castro
180*a0529bbeSDaniel Castro- Contribuição de código é a ação fundamental que faz todo o processo
181*a0529bbeSDaniel Castro  funcionar. Ao contribuir com seu código você pode adicionar nova
182*a0529bbeSDaniel Castro  funcionalidade ao kernel e proporcionar capacidades e exemplos que podem ser
183*a0529bbeSDaniel Castro  usados por outros desenvolvedores de kernel. Se você desenvolveu código para
184*a0529bbeSDaniel Castro  o Linux (ou está pensando em desenvolver), você claramente tem interesse na
185*a0529bbeSDaniel Castro  continuidade do sucesso dessa plataforma; contribuição de código é uma das
186*a0529bbeSDaniel Castro  melhores maneiras de garantir esse sucesso.
187*a0529bbeSDaniel Castro
188*a0529bbeSDaniel CastroTodos os argumentos acima se aplicam a qualquer código "out-of-tree", incluindo
189*a0529bbeSDaniel Castrocódigo distribuído de maneira proprietária, em formato exclusivamente binário.
190*a0529bbeSDaniel CastroExistem fatores adicionais que devem ser levados em consideração antes de
191*a0529bbeSDaniel Castroqualquer distribuição de código de kernel apenas em binário, incluindo:
192*a0529bbeSDaniel Castro
193*a0529bbeSDaniel Castro- As questões legais da distribuição de kernel proprietário são, no melhor dos
194*a0529bbeSDaniel Castro  casos, confusas; muitos detentores de direitos autorais do kernel acreditam
195*a0529bbeSDaniel Castro  que a maioria dos módulos binários são produtos derivados do kernel e que,
196*a0529bbeSDaniel Castro  como resultado, sua distribuição é uma violação da Licença Pública Geral GNU
197*a0529bbeSDaniel Castro  ("GNU General Public License"), que será tratada com mais profundidade abaixo.
198*a0529bbeSDaniel Castro  Este autor não é um advogado, e nada neste documento pode ser considerado
199*a0529bbeSDaniel Castro  aconselhamento jurídico. O verdadeiro status de módulos privados ("closed
200*a0529bbeSDaniel Castro  source") só pode ser determinado judicialmente. Independentemente disso, a
201*a0529bbeSDaniel Castro  incerteza que cerca esses módulos existe.
202*a0529bbeSDaniel Castro
203*a0529bbeSDaniel Castro- Os módulos binários aumentam consideravelmente a dificuldade de depuração de
204*a0529bbeSDaniel Castro  problemas do kernel ("debugging"), a ponto de a maioria dos desenvolvedores
205*a0529bbeSDaniel Castro  de kernel sequer tentar. Portanto, a distribuição de módulos exclusivamente
206*a0529bbeSDaniel Castro  binários tornará mais difícil que os seus usuários recebam suporte.
207*a0529bbeSDaniel Castro
208*a0529bbeSDaniel Castro- O suporte também é mais difícil para distribuidores de módulos exclusivamente
209*a0529bbeSDaniel Castro  binários, que precisam fornecer uma versão do módulo para cada distribuição e
210*a0529bbeSDaniel Castro  cada versão do kernel que desejam suportar. Dezenas de versões de um único
211*a0529bbeSDaniel Castro  módulo podem ser necessárias para fornecer uma cobertura razoavelmente
212*a0529bbeSDaniel Castro  abrangente, e seus usuários terão que atualizar seu módulo separadamente
213*a0529bbeSDaniel Castro  sempre que atualizarem seu kernel.
214*a0529bbeSDaniel Castro
215*a0529bbeSDaniel Castro- Tudo o que foi dito acima sobre revisão de código se aplica em dobro ao
216*a0529bbeSDaniel Castro  código fechado. Como esse código não está disponível, ele não pode ter sido
217*a0529bbeSDaniel Castro  revisado pela comunidade e, sem dúvida, terá sérios problemas.
218*a0529bbeSDaniel Castro
219*a0529bbeSDaniel CastroOs fabricantes de sistemas embarcados, em particular, podem ser tentados a
220*a0529bbeSDaniel Castroignorar grande parte do que foi dito nesta seção, acreditando que estão
221*a0529bbeSDaniel Castrolançando um produto autossuficiente que usa uma versão congelada do kernel e
222*a0529bbeSDaniel Castronão requer mais desenvolvimento após o lançamento. Esse argumento ignora o
223*a0529bbeSDaniel Castrovalor de uma revisão de código abrangente e o valor de permitir que seus
224*a0529bbeSDaniel Castrousuários adicionem recursos ao seu produto. Mas esses produtos também têm uma
225*a0529bbeSDaniel Castrovida comercial limitada, após a qual uma nova versão deve ser lançada. Nesse
226*a0529bbeSDaniel Castroponto, os fornecedores cujo código está no "mainline" e bem mantido estarão em
227*a0529bbeSDaniel Castrouma posição muito melhor para preparar o novo produto para o mercado
228*a0529bbeSDaniel Castrorapidamente.
229*a0529bbeSDaniel Castro
230*a0529bbeSDaniel CastroLicenciamento
231*a0529bbeSDaniel Castro-------------
232*a0529bbeSDaniel Castro
233*a0529bbeSDaniel CastroCódigo é submetido ao kernel do Linux sob diversas licenças, mas todo ele deve
234*a0529bbeSDaniel Castroser compatível com a versão 2 da Licença Pública Geral GNU (GPLv2), que é a
235*a0529bbeSDaniel Castrolicença que cobre a distribuição do kernel como um todo. Na prática, isso
236*a0529bbeSDaniel Castrosignifica que todas as contribuições de código são cobertas pela GPLv2 (com,
237*a0529bbeSDaniel Castroopcionalmente, uma linguagem que permita a distribuição sob versões posteriores
238*a0529bbeSDaniel Castroda GPL) ou pela licença BSD de três cláusulas. Quaisquer contribuições que não
239*a0529bbeSDaniel Castrosejam cobertas por uma licença compatível não serão aceitas no kernel.
240*a0529bbeSDaniel Castro
241*a0529bbeSDaniel CastroA cessão de direitos autorais não é exigida (nem solicitada) para o código
242*a0529bbeSDaniel Castrocontribuído para o kernel. Todo o código incorporado ao kernel principal mantém
243*a0529bbeSDaniel Castrosua titularidade original; como resultado, o kernel agora tem milhares de
244*a0529bbeSDaniel Castroproprietários.
245*a0529bbeSDaniel Castro
246*a0529bbeSDaniel CastroUma implicação dessa estrutura de propriedade é que qualquer tentativa de
247*a0529bbeSDaniel Castroalterar o licenciamento do kernel está fadada ao fracasso quase certo. Existem
248*a0529bbeSDaniel Castropoucos cenários práticos em que o acordo de todos os detentores de direitos
249*a0529bbeSDaniel Castroautorais poderia ser obtido (ou seu código removido do kernel). Portanto, em
250*a0529bbeSDaniel Castroparticular, não há perspectiva de migração para a versão 3 da GPL em um futuro
251*a0529bbeSDaniel Castropróximo.
252*a0529bbeSDaniel Castro
253*a0529bbeSDaniel CastroÉ imprescindível que todo o código contribuído para o kernel seja legitimamente
254*a0529bbeSDaniel Castrosoftware livre. Por esse motivo, código de contribuidores sem identidade
255*a0529bbeSDaniel Castroconhecida ou contribuidores anônimos não será aceito. Todos os contribuidores
256*a0529bbeSDaniel Castrosão obrigados a "assinar" seu código, declarando que ele pode ser distribuído
257*a0529bbeSDaniel Castrocom o kernel sob a GPL. Código que não tenha sido licenciado como software
258*a0529bbeSDaniel Castrolivre por seu proprietário, ou que apresente risco de criar problemas
259*a0529bbeSDaniel Castrorelacionados a direitos autorais para o kernel (como código derivado de
260*a0529bbeSDaniel Castroesforços de engenharia reversa sem as devidas salvaguardas) não pode ser
261*a0529bbeSDaniel Castrocontribuído.
262*a0529bbeSDaniel Castro
263*a0529bbeSDaniel CastroQuestões sobre direitos autorais são comuns em listas de discussão de
264*a0529bbeSDaniel Castrodesenvolvimento Linux. Normalmente, essas perguntas recebem muitas respostas,
265*a0529bbeSDaniel Castromas é importante lembrar que as pessoas que respondem a essas perguntas não são
266*a0529bbeSDaniel Castroadvogados e não podem fornecer aconselhamento jurídico. Se você tiver dúvidas
267*a0529bbeSDaniel Castrojurídicas relacionadas ao código-fonte do Linux, não há substituto para
268*a0529bbeSDaniel Castroconversar com um advogado especializado nessa área. Confiar em respostas
269*a0529bbeSDaniel Castroobtidas em listas de discussão técnicas é arriscado.
270