€• ÏŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒEnglish”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ/process/1.Intro”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Simplified)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/zh_CN/process/1.Intro”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/zh_TW/process/1.Intro”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/it_IT/process/1.Intro”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/ja_JP/process/1.Intro”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/ko_KR/process/1.Intro”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒSpanish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒwarning”“”)”}”(hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”h]”hŒ paragraph”“”)”}”(hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”h]”hX?Si tiene alguna duda sobre la exactitud del contenido de esta traducción, la única referencia válida es la documentación oficial en inglés. Además, por defecto, los enlaces a documentos redirigen a la documentación en inglés, incluso si existe una versión traducida. Consulte el índice para más información.”…””}”(hh©hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸŒ2Documentation/translations/sp_SP/disclaimer-sp.rst”h Khh£ubah}”(h]”h ]”h"]”h$]”h&]”uh1h¡hhhžhhŸh·h NubhŒ field_list”“”)”}”(hhh]”(hŒfield”“”)”}”(hhh]”(hŒ field_name”“”)”}”(hŒOriginal”h]”hŒOriginal”…””}”(hhÊhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhhÅhŸŒP/var/lib/git/docbuild/linux/Documentation/translations/sp_SP/process/1.Intro.rst”h KubhŒ field_body”“”)”}”(hŒ!Documentation/process/1.Intro.rst”h]”h¨)”}”(hhÝh]”hŒ!Documentation/process/1.Intro.rst”…””}”(hhßhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KhhÛubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙhhÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÃhŸhØh KhhÀhžhubhÄ)”}”(hhh]”(hÉ)”}”(hŒ Translator”h]”hŒ Translator”…””}”(hhûhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhhøhŸhØh KubhÚ)”}”(hŒ$Avadhut Naik ”h]”h¨)”}”(hŒ#Avadhut Naik ”h]”(hŒAvadhut Naik <”…””}”(hj hžhhŸNh NubhŒ reference”“”)”}”(hŒavadhut.naik@amd.com”h]”hŒavadhut.naik@amd.com”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:avadhut.naik@amd.com”uh1jhj ubhŒ>”…””}”(hj hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Khj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙhhøubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÃhŸhØh KhhÀhžhubeh}”(h]”h ]”h"]”h$]”h&]”uh1h¾hhhžhhŸhØh KubhŒtarget”“”)”}”(hŒ!.. _sp_development_process_intro:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œsp-development-process-intro”uh1jCh KhhhžhhŸhØubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ Introducción”h]”hŒ Introducción”…””}”(hjXhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjShžhhŸhØh K ubjR)”}”(hhh]”(jW)”}”(hŒResumen ejecutivo”h]”hŒResumen ejecutivo”…””}”(hjihžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjfhžhhŸhØh K ubh¨)”}”(hX.El resto de esta sección cubre el alcance del proceso de desarrollo del kernel y los tipos de frustraciones que los desarrolladores y sus empleadores pueden encontrar allí. Hay muchas razones por las que el código del kernel debe fusionarse con el kernel oficial (“mainlineâ€), incluyendo la disponibilidad automática para los usuarios, el apoyo de la comunidad en muchas formas, y la capacidad de influir en la dirección del desarrollo del kernel. El código contribuido al kernel de Linux debe estar disponible bajo una licencia compatible con GPL.”h]”hX.El resto de esta sección cubre el alcance del proceso de desarrollo del kernel y los tipos de frustraciones que los desarrolladores y sus empleadores pueden encontrar allí. Hay muchas razones por las que el código del kernel debe fusionarse con el kernel oficial (“mainlineâ€), incluyendo la disponibilidad automática para los usuarios, el apoyo de la comunidad en muchas formas, y la capacidad de influir en la dirección del desarrollo del kernel. El código contribuido al kernel de Linux debe estar disponible bajo una licencia compatible con GPL.”…””}”(hjwhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Khjfhžhubh¨)”}”(hXÉ:ref:`sp_development_process` introduce el proceso de desarrollo, el ciclo de lanzamiento del kernel y la mecánica de la "ventana de combinación" (merge window). Se cubren las distintas fases en el desarrollo del parche, la revisión y, el ciclo de fusión. Hay algunas discusiones sobre herramientas y listas de correo. Se anima a los desarrolladores que deseen comenzar con el desarrollo del kernel a encontrar y corregir errores como ejercicio inicial.”h]”(h)”}”(hŒ:ref:`sp_development_process`”h]”hŒinline”“”)”}”(hj‹h]”hŒsp_development_process”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jhj‰ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ"translations/sp_SP/process/1.Intro”Œ refdomain”jšŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆŒ reftarget”Œsp_development_process”uh1hhŸhØh Khj…ubhX° introduce el proceso de desarrollo, el ciclo de lanzamiento del kernel y la mecánica de la “ventana de combinación†(merge window). Se cubren las distintas fases en el desarrollo del parche, la revisión y, el ciclo de fusión. Hay algunas discusiones sobre herramientas y listas de correo. Se anima a los desarrolladores que deseen comenzar con el desarrollo del kernel a encontrar y corregir errores como ejercicio inicial.”…””}”(hj…hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Khjfhžhubh¨)”}”(hŒ¥:ref:`sp_development_early_stage` cubre la planificación de proyectos en etapas tempranas, con énfasis en involucrar a la comunidad de desarrollo lo antes posible.”h]”(h)”}”(hŒ!:ref:`sp_development_early_stage`”h]”jŽ)”}”(hj¾h]”hŒsp_development_early_stage”…””}”(hjÀhžhhŸNh Nubah}”(h]”h ]”(j™Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jhj¼ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j¦Œ refdomain”jÊŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj¬Œsp_development_early_stage”uh1hhŸhØh Khj¸ubhŒ„ cubre la planificación de proyectos en etapas tempranas, con énfasis en involucrar a la comunidad de desarrollo lo antes posible.”…””}”(hj¸hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Khjfhžhubh¨)”}”(hX7:ref:`sp_development_coding` trata sobre el proceso de codificación. Se discuten varios escollos encontrados por otros desarrolladores. Se cubren algunos requisitos para los parches, y hay una introducción a algunas de las herramientas que pueden ayudar a garantizar que los parches del kernel sean correctos.”h]”(h)”}”(hŒ:ref:`sp_development_coding`”h]”jŽ)”}”(hjìh]”hŒsp_development_coding”…””}”(hjîhžhhŸNh Nubah}”(h]”h ]”(j™Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jhjêubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j¦Œ refdomain”jøŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj¬Œsp_development_coding”uh1hhŸhØh K#hjæubhX trata sobre el proceso de codificación. Se discuten varios escollos encontrados por otros desarrolladores. Se cubren algunos requisitos para los parches, y hay una introducción a algunas de las herramientas que pueden ayudar a garantizar que los parches del kernel sean correctos.”…””}”(hjæhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K#hjfhžhubh¨)”}”(hXe:ref:`sp_development_posting` trata sobre el proceso de enviar parches para su revisión. Para ser tomados en serio por la comunidad de desarrollo, los parches deben estar correctamente formateados y descritos, y deben enviarse al lugar correcto. Seguir los consejos de esta sección debería ayudar a garantizar la mejor recepción posible para su trabajo.”h]”(h)”}”(hŒ:ref:`sp_development_posting`”h]”jŽ)”}”(hjh]”hŒsp_development_posting”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”(j™Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j¦Œ refdomain”j&Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj¬Œsp_development_posting”uh1hhŸhØh K)hjubhXH trata sobre el proceso de enviar parches para su revisión. Para ser tomados en serio por la comunidad de desarrollo, los parches deben estar correctamente formateados y descritos, y deben enviarse al lugar correcto. Seguir los consejos de esta sección debería ayudar a garantizar la mejor recepción posible para su trabajo.”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K)hjfhžhubh¨)”}”(hX£:ref:`sp_development_followthrough` cubre lo que sucede después de publicar parches; el trabajo está lejos de terminar en ese momento. Trabajar con revisores es una parte crucial del proceso de desarrollo; esta sección ofrece varios consejos sobre cómo evitar problemas en esta importante etapa. Se advierte a los desarrolladores que no asuman que el trabajo está terminado cuando un parche se fusiona en mainline.”h]”(h)”}”(hŒ#:ref:`sp_development_followthrough`”h]”jŽ)”}”(hjHh]”hŒsp_development_followthrough”…””}”(hjJhžhhŸNh Nubah}”(h]”h ]”(j™Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jhjFubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j¦Œ refdomain”jTŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj¬Œsp_development_followthrough”uh1hhŸhØh K/hjBubhX€ cubre lo que sucede después de publicar parches; el trabajo está lejos de terminar en ese momento. Trabajar con revisores es una parte crucial del proceso de desarrollo; esta sección ofrece varios consejos sobre cómo evitar problemas en esta importante etapa. Se advierte a los desarrolladores que no asuman que el trabajo está terminado cuando un parche se fusiona en mainline.”…””}”(hjBhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K/hjfhžhubh¨)”}”(hŒ¥:ref:`sp_development_advancedtopics` introduce un par de temas “avanzadosâ€: la administración de parches con git y la revisión de parches publicados por otros.”h]”(h)”}”(hŒ$:ref:`sp_development_advancedtopics`”h]”jŽ)”}”(hjvh]”hŒsp_development_advancedtopics”…””}”(hjxhžhhŸNh Nubah}”(h]”h ]”(j™Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jhjtubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j¦Œ refdomain”j‚Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj¬Œsp_development_advancedtopics”uh1hhŸhØh K6hjpubhŒ introduce un par de temas “avanzadosâ€: la administración de parches con git y la revisión de parches publicados por otros.”…””}”(hjphžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K6hjfhžhubh¨)”}”(hŒ:ref:`sp_development_conclusion` concluye el documento con punteros a las fuentes para obtener más información sobre el desarrollo del kernel.”h]”(h)”}”(hŒ :ref:`sp_development_conclusion`”h]”jŽ)”}”(hj¤h]”hŒsp_development_conclusion”…””}”(hj¦hžhhŸNh Nubah}”(h]”h ]”(j™Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jhj¢ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j¦Œ refdomain”j°Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj¬Œsp_development_conclusion”uh1hhŸhØh K:hjžubhŒp concluye el documento con punteros a las fuentes para obtener más información sobre el desarrollo del kernel.”…””}”(hjžhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K:hjfhžhubeh}”(h]”Œresumen-ejecutivo”ah ]”h"]”Œresumen ejecutivo”ah$]”h&]”uh1jQhjShžhhŸhØh K ubjR)”}”(hhh]”(jW)”}”(hŒDe qué trata este documento”h]”hŒDe qué trata este documento”…””}”(hj×hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjÔhžhhŸhØh K>ubh¨)”}”(hX5El kernel de Linux, con más de 8 millones de líneas de código y más de 1000 colaboradores en cada versión, en uno de los proyectos de software libre más grandes y activos que existen. Desde sus humildes comienzos en 1991, este kernel ha evolucionado hasta convertirse en el mejor componente del sistema operativo que se ejecuta en reproductores de música digital de bolsillo, PC de escritorio, las supercomputadoras más grandes que existen y todo tipo de sistemas intermedios. Es una solución robusta, eficiente, y escalable para casi cualquier situación.”h]”hX5El kernel de Linux, con más de 8 millones de líneas de código y más de 1000 colaboradores en cada versión, en uno de los proyectos de software libre más grandes y activos que existen. Desde sus humildes comienzos en 1991, este kernel ha evolucionado hasta convertirse en el mejor componente del sistema operativo que se ejecuta en reproductores de música digital de bolsillo, PC de escritorio, las supercomputadoras más grandes que existen y todo tipo de sistemas intermedios. Es una solución robusta, eficiente, y escalable para casi cualquier situación.”…””}”(hjåhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K@hjÔhžhubh¨)”}”(hXCon el crecimiento de Linux, ha llegado un aumento en el número de desarrolladores (y empresas) que desean participar en su desarrollo. Los vendedores de hardware quieren asegurarse de que Linux sea compatible con sus productos, lo que hace que esos productos sean atractivos para los usuarios de Linux. Los vendedores de sistemas embebidos, que utilizan Linux como componente de un producto integrado, quieren que Linux sea lo más capaz y adecuado posible para tarea en cuestión. Los distribuidores y otros vendedores de software que basan sus productos en Linux tienen un claro interés en las capacidades, el rendimiento, y la fiabilidad del kernel de Linux. Y los usuarios finales, también, a menudo desearán cambiar Linux para que se adapte mejor a sus necesidades.”h]”hXCon el crecimiento de Linux, ha llegado un aumento en el número de desarrolladores (y empresas) que desean participar en su desarrollo. Los vendedores de hardware quieren asegurarse de que Linux sea compatible con sus productos, lo que hace que esos productos sean atractivos para los usuarios de Linux. Los vendedores de sistemas embebidos, que utilizan Linux como componente de un producto integrado, quieren que Linux sea lo más capaz y adecuado posible para tarea en cuestión. Los distribuidores y otros vendedores de software que basan sus productos en Linux tienen un claro interés en las capacidades, el rendimiento, y la fiabilidad del kernel de Linux. Y los usuarios finales, también, a menudo desearán cambiar Linux para que se adapte mejor a sus necesidades.”…””}”(hjóhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KIhjÔhžhubh¨)”}”(hX}Una de las características más convincentes de Linux es que es accesible a estos desarrolladores; cualquier persona con las habilidades necesarias puede mejorar Linux e influir en la dirección de su desarrollo. Los productos propietarios no pueden ofrecer este tipo de apertura, que es una característica del proceso de software libre. Pero, en todo caso, el kernel es aún más libre que la mayoría de los otros proyectos de software libre. Un ciclo típico de desarrollo de kernel de tres meses puede involucrar a más de 1000 desarrolladores que trabajan para más de 100 empresas diferentes (o sin pertenecer a ninguna empresa).”h]”hX}Una de las características más convincentes de Linux es que es accesible a estos desarrolladores; cualquier persona con las habilidades necesarias puede mejorar Linux e influir en la dirección de su desarrollo. Los productos propietarios no pueden ofrecer este tipo de apertura, que es una característica del proceso de software libre. Pero, en todo caso, el kernel es aún más libre que la mayoría de los otros proyectos de software libre. Un ciclo típico de desarrollo de kernel de tres meses puede involucrar a más de 1000 desarrolladores que trabajan para más de 100 empresas diferentes (o sin pertenecer a ninguna empresa).”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KUhjÔhžhubh¨)”}”(hXPTrabajar con la comunidad de desarrollo del kernel no es especialmente difícil. Pero, a pesar de eso, muchos colaboradores potenciales han experimentado dificultades al tratar de hacer el trabajo del kernel. La comunidad del kernel ha desarrollado sus propias formas distintivas de operar, lo que le permite funcionar de manera fluida (y producir un producto de alta calidad) en un entorno donde miles de líneas de código se cambian todos los días. Por lo tanto, no es sorprendente que el proceso de desarrollo del kernel de Linux difiera mucho de los métodos de desarrollo propietarios.”h]”hXPTrabajar con la comunidad de desarrollo del kernel no es especialmente difícil. Pero, a pesar de eso, muchos colaboradores potenciales han experimentado dificultades al tratar de hacer el trabajo del kernel. La comunidad del kernel ha desarrollado sus propias formas distintivas de operar, lo que le permite funcionar de manera fluida (y producir un producto de alta calidad) en un entorno donde miles de líneas de código se cambian todos los días. Por lo tanto, no es sorprendente que el proceso de desarrollo del kernel de Linux difiera mucho de los métodos de desarrollo propietarios.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K_hjÔhžhubh¨)”}”(hXEl proceso de desarrollo del kernel puede parecer extraño e intimidante para los nuevos desarrolladores, pero hay buenas razones y una sólida experiencia detrás de él. Un desarrollador que no entienda las formas de la comunidad del kernel (o, peor aún, que intente burlarse o eludirlas) tendrá una experiencia frustrante por delante. La comunidad de desarrollo, si bien es servicial para aquellos que están tratando de aprender, tiene poco tiempo para aquellos que no escuchan o que no se preocupan por el proceso de desarrollo.”h]”hXEl proceso de desarrollo del kernel puede parecer extraño e intimidante para los nuevos desarrolladores, pero hay buenas razones y una sólida experiencia detrás de él. Un desarrollador que no entienda las formas de la comunidad del kernel (o, peor aún, que intente burlarse o eludirlas) tendrá una experiencia frustrante por delante. La comunidad de desarrollo, si bien es servicial para aquellos que están tratando de aprender, tiene poco tiempo para aquellos que no escuchan o que no se preocupan por el proceso de desarrollo.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KihjÔhžhubh¨)”}”(hXxSe espera que quienes lean este documento puedan evitar esa experiencia frustrante. Hay mucho material aquí, pero el esfuerzo que implica leerlo será recompensado en poco tiempo. La comunidad de desarrollo siempre necesita desarrolladores que ayudan a mejorar el kernel; el siguiente texto debería ayudarle – o a quienes trabajan para usted, a unirse a nuestra comunidad.”h]”hXxSe espera que quienes lean este documento puedan evitar esa experiencia frustrante. Hay mucho material aquí, pero el esfuerzo que implica leerlo será recompensado en poco tiempo. La comunidad de desarrollo siempre necesita desarrolladores que ayudan a mejorar el kernel; el siguiente texto debería ayudarle – o a quienes trabajan para usted, a unirse a nuestra comunidad.”…””}”(hj+hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KrhjÔhžhubeh}”(h]”Œde-que-trata-este-documento”ah ]”h"]”Œde qué trata este documento”ah$]”h&]”uh1jQhjShžhhŸhØh K>ubjR)”}”(hhh]”(jW)”}”(hŒ Créditos”h]”hŒ Créditos”…””}”(hjDhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjAhžhhŸhØh Kzubh¨)”}”(hXÖEste documento fue escrito por Jonathan Corbet, corbet@lwn.net. Ha sido mejorado por los comentarios de Johannes Berg, James Berry, Alex Chiang, Roland Dreier, Randy Dunlap, Jake Edge, Jiri Kosina, Matt Mackall, Arthur Marsh, Amanda McPherson, Andrew Morton, Andrew Price, Tsugikazu Shibata y Jochen Voß. Este trabajo fue respaldado por la Fundación Linux; gracias especialmente a Amanda McPherson, quien reconoció el valor de este esfuerzo e hizo que todo sucediera.”h]”(hŒ0Este documento fue escrito por Jonathan Corbet, ”…””}”(hjRhžhhŸNh Nubj)”}”(hŒcorbet@lwn.net”h]”hŒcorbet@lwn.net”…””}”(hjZhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:corbet@lwn.net”uh1jhjRubhX˜. Ha sido mejorado por los comentarios de Johannes Berg, James Berry, Alex Chiang, Roland Dreier, Randy Dunlap, Jake Edge, Jiri Kosina, Matt Mackall, Arthur Marsh, Amanda McPherson, Andrew Morton, Andrew Price, Tsugikazu Shibata y Jochen Voß. Este trabajo fue respaldado por la Fundación Linux; gracias especialmente a Amanda McPherson, quien reconoció el valor de este esfuerzo e hizo que todo sucediera.”…””}”(hjRhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K|hjAhžhubeh}”(h]”Œcreditos”ah ]”h"]”Œ créditos”ah$]”h&]”uh1jQhjShžhhŸhØh KzubjR)”}”(hhh]”(jW)”}”(hŒ1Importancia de integrar el código en el mainline”h]”hŒ1Importancia de integrar el código en el mainline”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhj|hžhhŸhØh K†ubh¨)”}”(hXMAlgunas empresas y desarrolladores ocasionalmente se preguntan por qué deberían molestarse en aprender cómo trabajar con la comunidad del kernel y obtener su código en el kernel mainline (el “mainline†es el kernel mantenido por Linus Torvalds y utilizado como base por los distribuidores de Linux. A corto plazo, contribuir con código puede parecer un gasto evitable; parece más fácil mantener el código separado y dar soporte a los usuarios directamente. La verdad del asunto es que mantener el código separado (“fuera del árbolâ€) es pan para hoy y hambre para mañana.”h]”hXMAlgunas empresas y desarrolladores ocasionalmente se preguntan por qué deberían molestarse en aprender cómo trabajar con la comunidad del kernel y obtener su código en el kernel mainline (el “mainline†es el kernel mantenido por Linus Torvalds y utilizado como base por los distribuidores de Linux. A corto plazo, contribuir con código puede parecer un gasto evitable; parece más fácil mantener el código separado y dar soporte a los usuarios directamente. La verdad del asunto es que mantener el código separado (“fuera del árbolâ€) es pan para hoy y hambre para mañana.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kˆhj|hžhubh¨)”}”(hŒåPara ilustrar los costos del código fuera-del-árbol, aquí hay algunos aspectos relevantes del proceso de desarrollo del kernel. La mayoría de estos se discutirán con mayor detalle más adelante en este documento. Considerar:”h]”hŒåPara ilustrar los costos del código fuera-del-árbol, aquí hay algunos aspectos relevantes del proceso de desarrollo del kernel. La mayoría de estos se discutirán con mayor detalle más adelante en este documento. Considerar:”…””}”(hj›hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K’hj|hžhubhŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hXãEl código que se ha fusionado con el kernel mainline está disponible para todos los usuarios de Linux. Estará presente automáticamente en todas las distribuciones que lo habiliten. No hay necesidad de discos de controladores, descargas, o las molestias de admitir múltiples versiones de múltiples distribuciones; todo simplemente funciona, para el desarrollador y para el usuario. La incorporación al mainline resuelve un gran número de problemas de distribución y soporte. ”h]”h¨)”}”(hXâEl código que se ha fusionado con el kernel mainline está disponible para todos los usuarios de Linux. Estará presente automáticamente en todas las distribuciones que lo habiliten. No hay necesidad de discos de controladores, descargas, o las molestias de admitir múltiples versiones de múltiples distribuciones; todo simplemente funciona, para el desarrollador y para el usuario. La incorporación al mainline resuelve un gran número de problemas de distribución y soporte.”h]”hXâEl código que se ha fusionado con el kernel mainline está disponible para todos los usuarios de Linux. Estará presente automáticamente en todas las distribuciones que lo habiliten. No hay necesidad de discos de controladores, descargas, o las molestias de admitir múltiples versiones de múltiples distribuciones; todo simplemente funciona, para el desarrollador y para el usuario. La incorporación al mainline resuelve un gran número de problemas de distribución y soporte.”…””}”(hj´hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K—hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj«hžhhŸhØh Nubj¯)”}”(hXèMientras los desarrolladores del kernel se esfuerzan por mantener una interfaz estable para el espacio de usuario, la API interna de kernel está en constante cambio. La falta de una interfaz interna estable es una decisión deliberada de diseño; permite realizar mejoras fundamentales en cualquier momento y da como resultado un código de mayor calidad. Pero uno resultado de esa política es que cualquier código fuera-del-árbol requiere un mantenimiento constante si va a funcionar con los nuevos kernels. Mantener el código fuera-del-árbol requiere una cantidad significativa de trabajo sólo para que ese código siga funcionando. En su lugar, el código en el mainline no requiere este trabajo como resultado de una regla simple que requiere que cualquier desarrollador que realice un cambio en la API también corrija cualquier código que se rompa como resultado de ese cambio. Así que, el código fusionado en el mainline tiene costos de mantenimiento significativamente más bajos. ”h]”(h¨)”}”(hXMientras los desarrolladores del kernel se esfuerzan por mantener una interfaz estable para el espacio de usuario, la API interna de kernel está en constante cambio. La falta de una interfaz interna estable es una decisión deliberada de diseño; permite realizar mejoras fundamentales en cualquier momento y da como resultado un código de mayor calidad. Pero uno resultado de esa política es que cualquier código fuera-del-árbol requiere un mantenimiento constante si va a funcionar con los nuevos kernels. Mantener el código fuera-del-árbol requiere una cantidad significativa de trabajo sólo para que ese código siga funcionando.”h]”hXMientras los desarrolladores del kernel se esfuerzan por mantener una interfaz estable para el espacio de usuario, la API interna de kernel está en constante cambio. La falta de una interfaz interna estable es una decisión deliberada de diseño; permite realizar mejoras fundamentales en cualquier momento y da como resultado un código de mayor calidad. Pero uno resultado de esa política es que cualquier código fuera-del-árbol requiere un mantenimiento constante si va a funcionar con los nuevos kernels. Mantener el código fuera-del-árbol requiere una cantidad significativa de trabajo sólo para que ese código siga funcionando.”…””}”(hjÌhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KŸhjÈubh¨)”}”(hXdEn su lugar, el código en el mainline no requiere este trabajo como resultado de una regla simple que requiere que cualquier desarrollador que realice un cambio en la API también corrija cualquier código que se rompa como resultado de ese cambio. Así que, el código fusionado en el mainline tiene costos de mantenimiento significativamente más bajos.”h]”hXdEn su lugar, el código en el mainline no requiere este trabajo como resultado de una regla simple que requiere que cualquier desarrollador que realice un cambio en la API también corrija cualquier código que se rompa como resultado de ese cambio. Así que, el código fusionado en el mainline tiene costos de mantenimiento significativamente más bajos.”…””}”(hjÚhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KªhjÈubeh}”(h]”h ]”h"]”h$]”h&]”uh1j®hj«hžhhŸhØh Nubj¯)”}”(hŒÞMás allá de eso, el código que está en el kernel a menudo será mejorado por otros desarrolladores. Resultados sorprendentes pueden provenir de capacitar a su comunidad de usuarios y clientes para mejorar su producto. ”h]”h¨)”}”(hŒÝMás allá de eso, el código que está en el kernel a menudo será mejorado por otros desarrolladores. Resultados sorprendentes pueden provenir de capacitar a su comunidad de usuarios y clientes para mejorar su producto.”h]”hŒÝMás allá de eso, el código que está en el kernel a menudo será mejorado por otros desarrolladores. Resultados sorprendentes pueden provenir de capacitar a su comunidad de usuarios y clientes para mejorar su producto.”…””}”(hjòhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K°hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj«hžhhŸhØh Nubj¯)”}”(hX=El código del kernel se somete a revisión, tanto antes como después de fusionarse con el mainline. No importa cuán fuertes sean las habilidades del desarrollador original, este proceso de revisión invariablemente encuentra formas en las que se puede mejorar el código. A menudo la revisión encuentra errores graves y problemas de seguridad. Esto es especialmente cierto para el código que se ha desarrollado en un entorno cerrado; dicho código se beneficia fuertemente de la revisión por desarrolladores externos. El código fuera-del-árbol es de menor calidad. ”h]”h¨)”}”(hX<El código del kernel se somete a revisión, tanto antes como después de fusionarse con el mainline. No importa cuán fuertes sean las habilidades del desarrollador original, este proceso de revisión invariablemente encuentra formas en las que se puede mejorar el código. A menudo la revisión encuentra errores graves y problemas de seguridad. Esto es especialmente cierto para el código que se ha desarrollado en un entorno cerrado; dicho código se beneficia fuertemente de la revisión por desarrolladores externos. El código fuera-del-árbol es de menor calidad.”h]”hX<El código del kernel se somete a revisión, tanto antes como después de fusionarse con el mainline. No importa cuán fuertes sean las habilidades del desarrollador original, este proceso de revisión invariablemente encuentra formas en las que se puede mejorar el código. A menudo la revisión encuentra errores graves y problemas de seguridad. Esto es especialmente cierto para el código que se ha desarrollado en un entorno cerrado; dicho código se beneficia fuertemente de la revisión por desarrolladores externos. El código fuera-del-árbol es de menor calidad.”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kµhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj«hžhhŸhØh Nubj¯)”}”(hXNLa participación en el proceso de desarrollo es su manera de influir en la dirección del desarrollo del kernel. Los usuarios que se quejan desde el sofa son escuchados, pero los desarrolladores activos tienen una voz más fuerte – y la capacidad de implementar cambios que hacen que el kernel funcione mejor para sus necesidades. ”h]”h¨)”}”(hXMLa participación en el proceso de desarrollo es su manera de influir en la dirección del desarrollo del kernel. Los usuarios que se quejan desde el sofa son escuchados, pero los desarrolladores activos tienen una voz más fuerte – y la capacidad de implementar cambios que hacen que el kernel funcione mejor para sus necesidades.”h]”hXMLa participación en el proceso de desarrollo es su manera de influir en la dirección del desarrollo del kernel. Los usuarios que se quejan desde el sofa son escuchados, pero los desarrolladores activos tienen una voz más fuerte – y la capacidad de implementar cambios que hacen que el kernel funcione mejor para sus necesidades.”…””}”(hj"hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh K¿hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj«hžhhŸhØh Nubj¯)”}”(hXôCuando el código se mantiene por separado, siempre existe la posibilidad de que un tercero contribuya a una implementación diferente de una característica similar. Si eso sucede, conseguir que su código fusionado será mucho más difícil – hasta el punto de la imposibilidad. Entonces se enfrentará a las desagradables alternativas de (1) mantener una característica no estándar fuera del árbol indefinidamente, o (2) abandonar su código y migrar sus usuarios a la versión en el árbol. ”h]”h¨)”}”(hXóCuando el código se mantiene por separado, siempre existe la posibilidad de que un tercero contribuya a una implementación diferente de una característica similar. Si eso sucede, conseguir que su código fusionado será mucho más difícil – hasta el punto de la imposibilidad. Entonces se enfrentará a las desagradables alternativas de (1) mantener una característica no estándar fuera del árbol indefinidamente, o (2) abandonar su código y migrar sus usuarios a la versión en el árbol.”h]”hXóCuando el código se mantiene por separado, siempre existe la posibilidad de que un tercero contribuya a una implementación diferente de una característica similar. Si eso sucede, conseguir que su código fusionado será mucho más difícil – hasta el punto de la imposibilidad. Entonces se enfrentará a las desagradables alternativas de (1) mantener una característica no estándar fuera del árbol indefinidamente, o (2) abandonar su código y migrar sus usuarios a la versión en el árbol.”…””}”(hj:hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KÅhj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj«hžhhŸhØh Nubj¯)”}”(hXìLa contribución del código es la acción fundamental que hace que todo el proceso funcione. Al contribuir con su código, puede agregar nuevas funcionalidades al kernel y proporcionar capacidades y ejemplos que son útiles para otros desarrolladores del kernel. Si ha desarrollado código para Linux (o está pensando en hacerlo), claramente tiene un interés en el éxito continuo de esta plataforma; contribuir con código es una de las mejores maneras de ayudar a garantizar ese éxito. ”h]”h¨)”}”(hXëLa contribución del código es la acción fundamental que hace que todo el proceso funcione. Al contribuir con su código, puede agregar nuevas funcionalidades al kernel y proporcionar capacidades y ejemplos que son útiles para otros desarrolladores del kernel. Si ha desarrollado código para Linux (o está pensando en hacerlo), claramente tiene un interés en el éxito continuo de esta plataforma; contribuir con código es una de las mejores maneras de ayudar a garantizar ese éxito.”h]”hXëLa contribución del código es la acción fundamental que hace que todo el proceso funcione. Al contribuir con su código, puede agregar nuevas funcionalidades al kernel y proporcionar capacidades y ejemplos que son útiles para otros desarrolladores del kernel. Si ha desarrollado código para Linux (o está pensando en hacerlo), claramente tiene un interés en el éxito continuo de esta plataforma; contribuir con código es una de las mejores maneras de ayudar a garantizar ese éxito.”…””}”(hjRhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KÍhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj«hžhhŸhØh Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j©hŸhØh K—hj|hžhubh¨)”}”(hX_Todo el razonamiento anterior se aplica a cualquier código de kernel fuera-del-árbol, incluido el código que se distribuye en forma propietaria y únicamente en binario. Sin embargo, hay factores adicionales que deben tenerse en cuenta antes de considerar cualquier tipo de distribución de código de kernel únicamente en binario. Estos incluyen:”h]”hX_Todo el razonamiento anterior se aplica a cualquier código de kernel fuera-del-árbol, incluido el código que se distribuye en forma propietaria y únicamente en binario. Sin embargo, hay factores adicionales que deben tenerse en cuenta antes de considerar cualquier tipo de distribución de código de kernel únicamente en binario. Estos incluyen:”…””}”(hjnhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KÕhj|hžhubjª)”}”(hhh]”(j¯)”}”(hX§Las cuestiones legales en torno a la distribución de módulos propietarios del kernel son, en el mejor de los casos, confusas; bastantes titulares de derechos de autor del kernel creen que la mayoría de los módulos binarios son productos derivados del kernel y que, como resultado, su distribución es una violación de la licencia Pública General de GNU (sobre la que se dirá más adelante). El autor de este texto no es abogado, y nada en este documento puede considerarse asesoramiento legal. Solo los tribunales pueden determinar el verdadero estatus legal de los módulos de código cerrado. Pero la incertidumbre que acecha a esos módulos está ahí a pesar de todo. ”h]”h¨)”}”(hX¦Las cuestiones legales en torno a la distribución de módulos propietarios del kernel son, en el mejor de los casos, confusas; bastantes titulares de derechos de autor del kernel creen que la mayoría de los módulos binarios son productos derivados del kernel y que, como resultado, su distribución es una violación de la licencia Pública General de GNU (sobre la que se dirá más adelante). El autor de este texto no es abogado, y nada en este documento puede considerarse asesoramiento legal. Solo los tribunales pueden determinar el verdadero estatus legal de los módulos de código cerrado. Pero la incertidumbre que acecha a esos módulos está ahí a pesar de todo.”h]”hX¦Las cuestiones legales en torno a la distribución de módulos propietarios del kernel son, en el mejor de los casos, confusas; bastantes titulares de derechos de autor del kernel creen que la mayoría de los módulos binarios son productos derivados del kernel y que, como resultado, su distribución es una violación de la licencia Pública General de GNU (sobre la que se dirá más adelante). El autor de este texto no es abogado, y nada en este documento puede considerarse asesoramiento legal. Solo los tribunales pueden determinar el verdadero estatus legal de los módulos de código cerrado. Pero la incertidumbre que acecha a esos módulos está ahí a pesar de todo.”…””}”(hjƒhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KÛhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj|hžhhŸhØh Nubj¯)”}”(hXKLos módulos binarios aumentan enormemente la dificultad de depurar problemas del kernel, hasta el punto de que la mayoría de los desarrolladores del kernel ni siquiera lo intentarán. Por lo tanto, la distribución de módulos únicamente en binario hará que sea más difícil para sus usuarios obtener soporte de la comunidad. ”h]”h¨)”}”(hXJLos módulos binarios aumentan enormemente la dificultad de depurar problemas del kernel, hasta el punto de que la mayoría de los desarrolladores del kernel ni siquiera lo intentarán. Por lo tanto, la distribución de módulos únicamente en binario hará que sea más difícil para sus usuarios obtener soporte de la comunidad.”h]”hXJLos módulos binarios aumentan enormemente la dificultad de depurar problemas del kernel, hasta el punto de que la mayoría de los desarrolladores del kernel ni siquiera lo intentarán. Por lo tanto, la distribución de módulos únicamente en binario hará que sea más difícil para sus usuarios obtener soporte de la comunidad.”…””}”(hj›hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kæhj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj|hžhhŸhØh Nubj¯)”}”(hX¯El soporte también es más difícil para los distribuidores de módulos únicamente en binario, que deben proporcionar una versión del módulo para cada distribución y cada versión del kernel que deseen apoyar. Podría requerir docenas de compilaciones de un solo módulo para proporcionar una cobertura razonablemente completa, y sus usuarios tendrán que actualizar su módulo por separado cada vez que actualicen su kernel. ”h]”h¨)”}”(hX®El soporte también es más difícil para los distribuidores de módulos únicamente en binario, que deben proporcionar una versión del módulo para cada distribución y cada versión del kernel que deseen apoyar. Podría requerir docenas de compilaciones de un solo módulo para proporcionar una cobertura razonablemente completa, y sus usuarios tendrán que actualizar su módulo por separado cada vez que actualicen su kernel.”h]”hX®El soporte también es más difícil para los distribuidores de módulos únicamente en binario, que deben proporcionar una versión del módulo para cada distribución y cada versión del kernel que deseen apoyar. Podría requerir docenas de compilaciones de un solo módulo para proporcionar una cobertura razonablemente completa, y sus usuarios tendrán que actualizar su módulo por separado cada vez que actualicen su kernel.”…””}”(hj³hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kìhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj|hžhhŸhØh Nubj¯)”}”(hŒõTodo lo que se dijo anteriormente sobre la revisión de código se aplica doblemente al código cerrado. Dado que este código no está disponible en absoluto, no puede haber sido revisado por la comunidad y, sin duda, tendrá serios problemas. ”h]”h¨)”}”(hŒôTodo lo que se dijo anteriormente sobre la revisión de código se aplica doblemente al código cerrado. Dado que este código no está disponible en absoluto, no puede haber sido revisado por la comunidad y, sin duda, tendrá serios problemas.”h]”hŒôTodo lo que se dijo anteriormente sobre la revisión de código se aplica doblemente al código cerrado. Dado que este código no está disponible en absoluto, no puede haber sido revisado por la comunidad y, sin duda, tendrá serios problemas.”…””}”(hjËhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh KôhjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj|hžhhŸhØh Nubeh}”(h]”h ]”h"]”h$]”h&]”jljmuh1j©hŸhØh KÛhj|hžhubh¨)”}”(hXçLos fabricantes de sistemas embebidos, en particular, pueden verse tentados a ignorar gran parte de lo que se ha dicho en esta sección creyendo que están enviando un producto autónomo que utiliza una versión de kernel congelada y no requiere más desarrollo después de su lanzamiento. Este argumento desaprovecha el valor de la revisión generalizad del código y el valor de permitir que sus usuarios agreguen capacidades a su producto. Pero estos productos también tienen una vida comercial limitada, después de la cual se debe lanzar una nueva versión. En ese punto, los vendedores cuyo código esté en el mainline y bien mantenido estarán en una posición mucho mejor para preparar el nuevo producto rápidamente para el mercado.”h]”hXçLos fabricantes de sistemas embebidos, en particular, pueden verse tentados a ignorar gran parte de lo que se ha dicho en esta sección creyendo que están enviando un producto autónomo que utiliza una versión de kernel congelada y no requiere más desarrollo después de su lanzamiento. Este argumento desaprovecha el valor de la revisión generalizad del código y el valor de permitir que sus usuarios agreguen capacidades a su producto. Pero estos productos también tienen una vida comercial limitada, después de la cual se debe lanzar una nueva versión. En ese punto, los vendedores cuyo código esté en el mainline y bien mantenido estarán en una posición mucho mejor para preparar el nuevo producto rápidamente para el mercado.”…””}”(hjåhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Kùhj|hžhubeh}”(h]”Œ0importancia-de-integrar-el-codigo-en-el-mainline”ah ]”h"]”Œ1importancia de integrar el código en el mainline”ah$]”h&]”uh1jQhjShžhhŸhØh K†ubjR)”}”(hhh]”(jW)”}”(hŒ Licencias”h]”hŒ Licencias”…””}”(hjþhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjûhžhhŸhØh Mubh¨)”}”(hX7El código se contribuye al kernel de Linux bajo varias licencias, pero todo el código debe ser compatible con la versión 2 de la Licencia Pública General de GNU (GPLv2), que cubre la distribución del kernel. En la práctica, esto significa que todas las contribuciones de código están cubiertas ya sea por la GPLv2 (con, opcionalmente, un lenguaje que permite la distribución en versiones posteriores de la GPL) o por la licencia BSD de tres cláusulas. Cualquier contribución que no esté cubierta por una licencia compatible no será aceptada en el kernel.”h]”hX7El código se contribuye al kernel de Linux bajo varias licencias, pero todo el código debe ser compatible con la versión 2 de la Licencia Pública General de GNU (GPLv2), que cubre la distribución del kernel. En la práctica, esto significa que todas las contribuciones de código están cubiertas ya sea por la GPLv2 (con, opcionalmente, un lenguaje que permite la distribución en versiones posteriores de la GPL) o por la licencia BSD de tres cláusulas. Cualquier contribución que no esté cubierta por una licencia compatible no será aceptada en el kernel.”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mhjûhžhubh¨)”}”(hŒðNo se requieren (ni se solicitan) cesiones de derechos de autor para el código aportado al kernel. Todo el código fusionado en el kernel mainline conserva su propiedad original; como resultado, el kernel ahora tiene miles de propietarios.”h]”hŒðNo se requieren (ni se solicitan) cesiones de derechos de autor para el código aportado al kernel. Todo el código fusionado en el kernel mainline conserva su propiedad original; como resultado, el kernel ahora tiene miles de propietarios.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mhjûhžhubh¨)”}”(hXžUna implicación de esta estructura de propiedad es que cualquier intento de cambiar la licencia del kernel está condenado a un fracaso casi seguro. Hay pocos escenarios prácticos en los que se pueda obtener el acuerdo de todos los titulares de derechos de autor (o eliminar su código del kernel). Así que, en particular, no hay perspectivas de una migración a la versión 3 de la GPL en un futuro previsible.”h]”hXžUna implicación de esta estructura de propiedad es que cualquier intento de cambiar la licencia del kernel está condenado a un fracaso casi seguro. Hay pocos escenarios prácticos en los que se pueda obtener el acuerdo de todos los titulares de derechos de autor (o eliminar su código del kernel). Así que, en particular, no hay perspectivas de una migración a la versión 3 de la GPL en un futuro previsible.”…””}”(hj(hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mhjûhžhubh¨)”}”(hXkEs imperativo que todo el código aportado al kernel sea legítimamente software libre. Por esa razón, no se aceptará código de colaboradores anónimos (o seudónimos). Todos los colaboradores están obligados a “firmar†su código, indicando que el código puede ser distribuido con el kernel bajo la GPL. El código que no ha sido licenciado como software libre por su propietario, o que corre el riesgo de crear problemas relacionadas con los derechos de autor para el kernel (como el código que se deriva de esfuerzos de ingeniería inversa que carecen de las garantías adecuadas) no puede ser contribuido.”h]”hXkEs imperativo que todo el código aportado al kernel sea legítimamente software libre. Por esa razón, no se aceptará código de colaboradores anónimos (o seudónimos). Todos los colaboradores están obligados a “firmar†su código, indicando que el código puede ser distribuido con el kernel bajo la GPL. El código que no ha sido licenciado como software libre por su propietario, o que corre el riesgo de crear problemas relacionadas con los derechos de autor para el kernel (como el código que se deriva de esfuerzos de ingeniería inversa que carecen de las garantías adecuadas) no puede ser contribuido.”…””}”(hj6hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh Mhjûhžhubh¨)”}”(hX0Las preguntas sobre cuestiones relacionadas con los derechos de autor son comunes en las listas de correo de desarrollo de Linux. Normalmente, estas preguntas no recibirán escasez de respuestas, pero se debe tener en cuenta que las personas que responden a esas preguntas no son abogados y no pueden proporcionar consejo legal. Si tiene preguntas legales relacionadas con el código fuente de Linux, no hay sustituto para hablar con un abogado que entienda este campo. Confiar en las respuestas obtenidas en listas técnicas de correo es un asunto arriesgado.”h]”hX0Las preguntas sobre cuestiones relacionadas con los derechos de autor son comunes en las listas de correo de desarrollo de Linux. Normalmente, estas preguntas no recibirán escasez de respuestas, pero se debe tener en cuenta que las personas que responden a esas preguntas no son abogados y no pueden proporcionar consejo legal. Si tiene preguntas legales relacionadas con el código fuente de Linux, no hay sustituto para hablar con un abogado que entienda este campo. Confiar en las respuestas obtenidas en listas técnicas de correo es un asunto arriesgado.”…””}”(hjDhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h§hŸhØh M'hjûhžhubeh}”(h]”Œ licencias”ah ]”h"]”Œ licencias”ah$]”h&]”uh1jQhjShžhhŸhØh Mubeh}”(h]”(Œ introduccion”jPeh ]”h"]”(Œ introducción”Œsp_development_process_intro”eh$]”h&]”uh1jQhhhžhhŸhØh K Œexpect_referenced_by_name”}”j`jEsŒexpect_referenced_by_id”}”jPjEsubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hØuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(jVNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jŠŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hØŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”jP]”jEasŒnameids”}”(j`jPj_j\jÑjÎj>j;jyjvjøjõjWjTuŒ nametypes”}”(j`ˆj_‰jщj>‰jy‰jø‰jW‰uh}”(jPjSj\jSjÎjfj;jÔjvjAjõj|jTjûuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)”}”(hhh]”h¨)”}”(hhh]”hŒBHyperlink target "sp-development-process-intro" is not referenced.”…””}”hjôsbah}”(h]”h ]”h"]”h$]”h&]”uh1h§hjñubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hØŒline”Kuh1jïubaŒ transformer”NŒ include_log”]”Œ4Documentation/translations/sp_SP/process/1.Intro.rst”(NNNNt”†”aŒ decoration”Nhžhub.