123b8d08eSCarlos Bilbao.. include:: ./disclaimer-sp.rst
223b8d08eSCarlos Bilbao
323b8d08eSCarlos Bilbao:Original: :ref:`Documentation/process/howto.rst <process_howto>`
423b8d08eSCarlos Bilbao:Translator: Carlos Bilbao <carlos.bilbao@amd.com>
523b8d08eSCarlos Bilbao
623b8d08eSCarlos Bilbao.. _sp_process_howto:
723b8d08eSCarlos Bilbao
823b8d08eSCarlos BilbaoCómo participar en el desarrollo del kernel de Linux
923b8d08eSCarlos Bilbao====================================================
1023b8d08eSCarlos Bilbao
1123b8d08eSCarlos BilbaoEste documento es el principal punto de partida. Contiene instrucciones
1223b8d08eSCarlos Bilbaosobre cómo convertirse en desarrollador del kernel de Linux y explica cómo
1323b8d08eSCarlos Bilbaotrabajar con el y en su desarrollo. El documento no tratará ningún aspecto
1423b8d08eSCarlos Bilbaotécnico relacionado con la programación del kernel, pero le ayudará
1523b8d08eSCarlos Bilbaoguiándole por el camino correcto.
1623b8d08eSCarlos Bilbao
1723b8d08eSCarlos BilbaoSi algo en este documento quedara obsoleto, envíe parches al maintainer de
1823b8d08eSCarlos Bilbaoeste archivo, que se encuentra en la parte superior del documento.
1923b8d08eSCarlos Bilbao
2023b8d08eSCarlos BilbaoIntroducción
2123b8d08eSCarlos Bilbao------------
2223b8d08eSCarlos Bilbao¿De modo que quiere descubrir como convertirse en un/a desarrollador/a del
2323b8d08eSCarlos Bilbaokernel de Linux? Tal vez su jefe le haya dicho, "Escriba un driver de
2423b8d08eSCarlos BilbaoLinux para este dispositivo." El objetivo de este documento en enseñarle
2523b8d08eSCarlos Bilbaotodo cuanto necesita para conseguir esto, describiendo el proceso por el
2623b8d08eSCarlos Bilbaoque debe pasar, y con indicaciones de como trabajar con la comunidad.
2723b8d08eSCarlos BilbaoTambién trata de explicar las razones por las cuales la comunidad trabaja
2823b8d08eSCarlos Bilbaode la forma en que lo hace.
2923b8d08eSCarlos Bilbao
3023b8d08eSCarlos BilbaoEl kernel esta principalmente escrito en C, con algunas partes que son
3123b8d08eSCarlos Bilbaodependientes de la arquitectura en ensamblador. Un buen conocimiento de C
3223b8d08eSCarlos Bilbaoes necesario para desarrollar en el kernel. Lenguaje ensamblador (en
3323b8d08eSCarlos Bilbaocualquier arquitectura) no es necesario excepto que planee realizar
3423b8d08eSCarlos Bilbaodesarrollo de bajo nivel para dicha arquitectura. Aunque no es un perfecto
3523b8d08eSCarlos Bilbaosustituto para una educación sólida en C y/o años de experiencia, los
3623b8d08eSCarlos Bilbaosiguientes libros sirven, como mínimo, como referencia:
3723b8d08eSCarlos Bilbao
3823b8d08eSCarlos Bilbao- "The C Programming Language" de Kernighan e Ritchie [Prentice Hall]
3923b8d08eSCarlos Bilbao- "Practical C Programming" de Steve Oualline [O'Reilly]
4023b8d08eSCarlos Bilbao- "C:  A Reference Manual" de Harbison and Steele [Prentice Hall]
4123b8d08eSCarlos Bilbao
4223b8d08eSCarlos BilbaoEl kernel está escrito usando GNU C y la cadena de herramientas GNU. Si
4323b8d08eSCarlos Bilbaobien se adhiere al estándar ISO C89, utiliza una serie de extensiones que
4423b8d08eSCarlos Bilbaono aparecen en dicho estándar. El kernel usa un C independiente de entorno,
4523b8d08eSCarlos Bilbaosin depender de la biblioteca C estándar, por lo que algunas partes del
4623b8d08eSCarlos Bilbaoestándar C no son compatibles. Divisiones de long long arbitrarios o
4723b8d08eSCarlos Bilbaode coma flotante no son permitidas. En ocasiones, puede ser difícil de
4823b8d08eSCarlos Bilbaoentender las suposiciones que el kernel hace respecto a la cadena de
4923b8d08eSCarlos Bilbaoherramientas y las extensiones que usa, y desafortunadamente no hay
5023b8d08eSCarlos Bilbaoreferencia definitiva para estas. Consulte las páginas de información de
5123b8d08eSCarlos Bilbaogcc (`info gcc`) para obtener información al respecto.
5223b8d08eSCarlos Bilbao
5323b8d08eSCarlos BilbaoRecuerde que está tratando de aprender a trabajar con una comunidad de
5423b8d08eSCarlos Bilbaodesarrollo existente. Es un grupo diverso de personas, con altos estándares
5523b8d08eSCarlos Bilbaode código, estilo y procedimiento. Estas normas han sido creadas a lo
5623b8d08eSCarlos Bilbaolargo del tiempo en función de lo que se ha encontrado que funciona mejor
5723b8d08eSCarlos Bilbaopara un equipo tan grande y geográficamente disperso. Trate de aprender
5823b8d08eSCarlos Bilbaotanto como le sea posible acerca de estos estándares antes de tiempo, ya
5923b8d08eSCarlos Bilbaoque están bien documentados; no espere que la gente se adapte a usted o a
6023b8d08eSCarlos Bilbaola forma de hacer las cosas en su empresa.
6123b8d08eSCarlos Bilbao
6223b8d08eSCarlos BilbaoCuestiones legales
6323b8d08eSCarlos Bilbao------------------
6423b8d08eSCarlos BilbaoEl código fuente del kernel de Linux se publica bajo licencia GPL. Por
6523b8d08eSCarlos Bilbaofavor, revise el archivo COPYING, presente en la carpeta principal del
6623b8d08eSCarlos Bilbaocódigo fuente, para detalles de la licencia. Si tiene alguna otra pregunta
6723b8d08eSCarlos Bilbaosobre licencias, contacte a un abogado, no pregunte en listas de discusión
6823b8d08eSCarlos Bilbaodel kernel de Linux. La gente en estas listas no son abogadas, y no debe
6923b8d08eSCarlos Bilbaoconfiar en sus opiniones en materia legal.
7023b8d08eSCarlos Bilbao
7123b8d08eSCarlos BilbaoPara preguntas y respuestas más frecuentes sobre la licencia GPL, consulte:
7223b8d08eSCarlos Bilbao
7323b8d08eSCarlos Bilbao	https://www.gnu.org/licenses/gpl-faq.html
7423b8d08eSCarlos Bilbao
7523b8d08eSCarlos BilbaoDocumentación
7623b8d08eSCarlos Bilbao--------------
7723b8d08eSCarlos BilbaoEl código fuente del kernel de Linux tiene una gran variedad de documentos
7823b8d08eSCarlos Bilbaoque son increíblemente valiosos para aprender a interactuar con la
7923b8d08eSCarlos Bilbaocomunidad del kernel. Cuando se agregan nuevas funciones al kernel, se
8023b8d08eSCarlos Bilbaorecomienda que se incluyan nuevos archivos de documentación que expliquen
8123b8d08eSCarlos Bilbaocómo usar la función. Cuando un cambio en el kernel hace que la interfaz
8223b8d08eSCarlos Bilbaoque el kernel expone espacio de usuario cambie, se recomienda que envíe la
8323b8d08eSCarlos Bilbaoinformación o un parche en las páginas del manual que expliquen el cambio
8423b8d08eSCarlos Bilbaoa mtk.manpages@gmail.com, y CC la lista linux-api@vger.kernel.org.
8523b8d08eSCarlos Bilbao
8623b8d08eSCarlos BilbaoEsta es la lista de archivos que están en el código fuente del kernel y son
8723b8d08eSCarlos Bilbaode obligada lectura:
8823b8d08eSCarlos Bilbao
8923b8d08eSCarlos Bilbao  :ref:`Documentation/admin-guide/README.rst <readme>`
9023b8d08eSCarlos Bilbao    Este archivo ofrece una breve descripción del kernel de Linux y
9123b8d08eSCarlos Bilbao    describe lo que es necesario hacer para configurar y compilar el
9223b8d08eSCarlos Bilbao    kernel. Quienes sean nuevos en el kernel deben comenzar aquí.
9323b8d08eSCarlos Bilbao
9423b8d08eSCarlos Bilbao  :ref:`Documentation/process/changes.rst <changes>`
9523b8d08eSCarlos Bilbao    Este archivo proporciona una lista de los niveles mínimos de varios
9623b8d08eSCarlos Bilbao    paquetes que son necesarios para construir y ejecutar el kernel
9723b8d08eSCarlos Bilbao    exitosamente.
9823b8d08eSCarlos Bilbao
9923b8d08eSCarlos Bilbao  :ref:`Documentation/process/coding-style.rst <codingstyle>`
10023b8d08eSCarlos Bilbao    Esto describe el estilo de código del kernel de Linux y algunas de los
10123b8d08eSCarlos Bilbao    razones detrás de esto. Se espera que todo el código nuevo siga las
10223b8d08eSCarlos Bilbao    directrices de este documento. La mayoría de los maintainers solo
10323b8d08eSCarlos Bilbao    aceptarán parches si se siguen estas reglas, y muchas personas solo
10423b8d08eSCarlos Bilbao    revisan el código si tiene el estilo adecuado.
10523b8d08eSCarlos Bilbao
10623b8d08eSCarlos Bilbao  :ref:`Documentation/process/submitting-patches.rst <submittingpatches>`
10723b8d08eSCarlos Bilbao    Este archivo describe en gran detalle cómo crear con éxito y enviar un
10823b8d08eSCarlos Bilbao    parche, que incluye (pero no se limita a):
10923b8d08eSCarlos Bilbao
11023b8d08eSCarlos Bilbao       - Contenidos del correo electrónico (email)
11123b8d08eSCarlos Bilbao       - Formato del email
11223b8d08eSCarlos Bilbao       - A quien se debe enviar
11323b8d08eSCarlos Bilbao
11423b8d08eSCarlos Bilbao    Seguir estas reglas no garantiza el éxito (ya que todos los parches son
11523b8d08eSCarlos Bilbao    sujetos a escrutinio de contenido y estilo), pero en caso de no seguir
11623b8d08eSCarlos Bilbao    dichas reglas, el fracaso es prácticamente garantizado.
11723b8d08eSCarlos Bilbao    Otras excelentes descripciones de cómo crear parches correctamente son:
11823b8d08eSCarlos Bilbao
11923b8d08eSCarlos Bilbao	"The Perfect Patch"
12023b8d08eSCarlos Bilbao		https://www.ozlabs.org/~akpm/stuff/tpp.txt
12123b8d08eSCarlos Bilbao
12223b8d08eSCarlos Bilbao	"Linux kernel patch submission format"
12323b8d08eSCarlos Bilbao		https://web.archive.org/web/20180829112450/http://linux.yyz.us/patch-format.html
12423b8d08eSCarlos Bilbao
12523b8d08eSCarlos Bilbao  :ref:`Documentation/process/stable-api-nonsense.rst <stable_api_nonsense>`
12623b8d08eSCarlos Bilbao    Este archivo describe la lógica detrás de la decisión consciente de
12723b8d08eSCarlos Bilbao    no tener una API estable dentro del kernel, incluidas cosas como:
12823b8d08eSCarlos Bilbao
12923b8d08eSCarlos Bilbao      - Capas intermedias del subsistema (por compatibilidad?)
13023b8d08eSCarlos Bilbao      - Portabilidad de drivers entre sistemas operativos
13123b8d08eSCarlos Bilbao      - Mitigar el cambio rápido dentro del árbol de fuentes del kernel (o
13223b8d08eSCarlos Bilbao        prevenir cambios rápidos)
13323b8d08eSCarlos Bilbao
13423b8d08eSCarlos Bilbao     Este documento es crucial para comprender la filosofía del desarrollo
13523b8d08eSCarlos Bilbao     de Linux y es muy importante para las personas que se mudan a Linux
13623b8d08eSCarlos Bilbao     tras desarrollar otros sistemas operativos.
13723b8d08eSCarlos Bilbao
138*44ac5abaSVegard Nossum  :ref:`Documentation/process/security-bugs.rst <securitybugs>`
13923b8d08eSCarlos Bilbao    Si cree que ha encontrado un problema de seguridad en el kernel de
14023b8d08eSCarlos Bilbao    Linux, siga los pasos de este documento para ayudar a notificar a los
14123b8d08eSCarlos Bilbao    desarrolladores del kernel y ayudar a resolver el problema.
14223b8d08eSCarlos Bilbao
14323b8d08eSCarlos Bilbao  :ref:`Documentation/process/management-style.rst <managementstyle>`
14423b8d08eSCarlos Bilbao    Este documento describe cómo operan los maintainers del kernel de Linux
14523b8d08eSCarlos Bilbao    y los valores compartidos detrás de sus metodologías. Esta es una
14623b8d08eSCarlos Bilbao    lectura importante para cualquier persona nueva en el desarrollo del
14723b8d08eSCarlos Bilbao    kernel (o cualquier persona que simplemente sienta curiosidad por
14823b8d08eSCarlos Bilbao    el campo IT), ya que clarifica muchos conceptos erróneos y confusiones
14923b8d08eSCarlos Bilbao    comunes sobre el comportamiento único de los maintainers del kernel.
15023b8d08eSCarlos Bilbao
15123b8d08eSCarlos Bilbao  :ref:`Documentation/process/stable-kernel-rules.rst <stable_kernel_rules>`
15223b8d08eSCarlos Bilbao    Este archivo describe las reglas sobre cómo se suceden las versiones
15323b8d08eSCarlos Bilbao    del kernel estable, y qué hacer si desea obtener un cambio en una de
15423b8d08eSCarlos Bilbao    estas publicaciones.
15523b8d08eSCarlos Bilbao
15623b8d08eSCarlos Bilbao  :ref:`Documentation/process/kernel-docs.rst <kernel_docs>`
15723b8d08eSCarlos Bilbao    Una lista de documentación externa relativa al desarrollo del kernel.
15823b8d08eSCarlos Bilbao    Por favor consulte esta lista si no encuentra lo que están buscando
15923b8d08eSCarlos Bilbao    dentro de la documentación del kernel.
16023b8d08eSCarlos Bilbao
16123b8d08eSCarlos Bilbao  :ref:`Documentation/process/applying-patches.rst <applying_patches>`
16223b8d08eSCarlos Bilbao    Una buena introducción que describe exactamente qué es un parche y cómo
16323b8d08eSCarlos Bilbao    aplicarlo a las diferentes ramas de desarrollo del kernel.
16423b8d08eSCarlos Bilbao
16523b8d08eSCarlos BilbaoEl kernel también tiene una gran cantidad de documentos que pueden ser
16623b8d08eSCarlos Bilbaogenerados automáticamente desde el propio código fuente o desde
16723b8d08eSCarlos BilbaoReStructuredText markups (ReST), como este. Esto incluye un descripción
16823b8d08eSCarlos Bilbaocompleta de la API en el kernel y reglas sobre cómo manejar cerrojos
16923b8d08eSCarlos Bilbao(locking) correctamente.
17023b8d08eSCarlos Bilbao
17123b8d08eSCarlos BilbaoTodos estos documentos se pueden generar como PDF o HTML ejecutando::
17223b8d08eSCarlos Bilbao
17323b8d08eSCarlos Bilbao	make pdfdocs
17423b8d08eSCarlos Bilbao	make htmldocs
17523b8d08eSCarlos Bilbao
17623b8d08eSCarlos Bilbaorespectivamente desde el directorio fuente principal del kernel.
17723b8d08eSCarlos Bilbao
17823b8d08eSCarlos BilbaoLos documentos que utilizan el markup ReST se generarán en
17923b8d08eSCarlos BilbaoDocumentation/output. También se pueden generar en formatos LaTeX y ePub
18023b8d08eSCarlos Bilbaocon::
18123b8d08eSCarlos Bilbao
18223b8d08eSCarlos Bilbao	make latexdocs
18323b8d08eSCarlos Bilbao	make epubdocs
18423b8d08eSCarlos Bilbao
18523b8d08eSCarlos BilbaoConvertirse en un/a desarrollador/a de kernel
18623b8d08eSCarlos Bilbao---------------------------------------------
18723b8d08eSCarlos Bilbao
18823b8d08eSCarlos BilbaoSi no sabe nada sobre el desarrollo del kernel de Linux, debería consultar
18923b8d08eSCarlos Bilbaoel proyecto Linux KernelNewbies:
19023b8d08eSCarlos Bilbao
19123b8d08eSCarlos Bilbao	https://kernelnewbies.org
19223b8d08eSCarlos Bilbao
19323b8d08eSCarlos BilbaoConsiste en una útil lista de correo donde puede preguntar casi cualquier
19423b8d08eSCarlos Bilbaotipo de pregunta básica de desarrollo del kernel (asegúrese de buscar en
19523b8d08eSCarlos Bilbaolos archivos primero, antes de preguntar algo que ya ha sido respondido en
19623b8d08eSCarlos Bilbaoel pasado.) También tiene un canal IRC que puede usar para hacer preguntas
19723b8d08eSCarlos Bilbaoen tiempo real, y una gran cantidad de documentación útil para ir
19823b8d08eSCarlos Bilbaoaprendiendo sobre el desarrollo del kernel de Linux.
19923b8d08eSCarlos Bilbao
20023b8d08eSCarlos BilbaoEl sitio web tiene información básica sobre la organización del código,
20123b8d08eSCarlos Bilbaosubsistemas, y proyectos actuales (tanto dentro como fuera del árbol).
20223b8d08eSCarlos BilbaoTambién describe alguna información logística básica, como cómo compilar
20323b8d08eSCarlos Bilbaoun kernel y aplicar un parche.
20423b8d08eSCarlos Bilbao
20523b8d08eSCarlos BilbaoSi no sabe por dónde quiere empezar, pero quieres buscar alguna tarea que
20623b8d08eSCarlos Bilbaocomenzar a hacer para unirse a la comunidad de desarrollo del kernel,
20723b8d08eSCarlos Bilbaoacuda al proyecto Linux Kernel Janitor:
20823b8d08eSCarlos Bilbao
20923b8d08eSCarlos Bilbao	https://kernelnewbies.org/KernelJanitors
21023b8d08eSCarlos Bilbao
21123b8d08eSCarlos BilbaoEs un gran lugar para comenzar. Describe una lista de problemas
21223b8d08eSCarlos Bilbaorelativamente simples que deben limpiarse y corregirse dentro del código
21323b8d08eSCarlos Bilbaofuente del kernel de Linux árbol de fuentes. Trabajando con los
21423b8d08eSCarlos Bilbaodesarrolladores a cargo de este proyecto, aprenderá los conceptos básicos
21523b8d08eSCarlos Bilbaopara incluir su parche en el árbol del kernel de Linux, y posiblemente
21623b8d08eSCarlos Bilbaodescubrir en la dirección en que trabajar a continuación, si no tiene ya
21723b8d08eSCarlos Bilbaouna idea.
21823b8d08eSCarlos Bilbao
21923b8d08eSCarlos BilbaoAntes de realizar cualquier modificación real al código del kernel de
22023b8d08eSCarlos BilbaoLinux, es imperativo entender cómo funciona el código en cuestión. Para
22123b8d08eSCarlos Bilbaoeste propósito, nada es mejor que leerlo directamente (lo más complicado
22223b8d08eSCarlos Bilbaoestá bien comentado), tal vez incluso con la ayuda de herramientas
22323b8d08eSCarlos Bilbaoespecializadas. Una de esas herramientas que se recomienda especialmente
22423b8d08eSCarlos Bilbaoes el proyecto Linux Cross-Reference, que es capaz de presentar el código
22523b8d08eSCarlos Bilbaofuente en un formato de página web indexada y autorreferencial. Una
22623b8d08eSCarlos Bilbaoexcelente puesta al día del repositorio del código del kernel se puede
22723b8d08eSCarlos Bilbaoencontrar en:
22823b8d08eSCarlos Bilbao
22923b8d08eSCarlos Bilbao	https://elixir.bootlin.com/
23023b8d08eSCarlos Bilbao
23123b8d08eSCarlos BilbaoEl proceso de desarrollo
23223b8d08eSCarlos Bilbao------------------------
23323b8d08eSCarlos Bilbao
23423b8d08eSCarlos BilbaoEl proceso de desarrollo del kernel de Linux consiste actualmente de
23523b8d08eSCarlos Bilbaodiferentes "branches" (ramas) con muchos distintos subsistemas específicos
23623b8d08eSCarlos Bilbaoa cada una de ellas. Las diferentes ramas son:
23723b8d08eSCarlos Bilbao
23823b8d08eSCarlos Bilbao  - El código principal de Linus (mainline tree)
23923b8d08eSCarlos Bilbao  - Varios árboles estables con múltiples major numbers
24023b8d08eSCarlos Bilbao  - Subsistemas específicos
24123b8d08eSCarlos Bilbao  - linux-next, para integración y testing
24223b8d08eSCarlos Bilbao
24323b8d08eSCarlos BilbaoMainline tree (Árbol principal)
24423b8d08eSCarlos Bilbao~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24523b8d08eSCarlos Bilbao
24623b8d08eSCarlos BilbaoEl mainline tree es mantenido por Linus Torvalds, y puede encontrarse en
24723b8d08eSCarlos Bilbaohttps://kernel.org o en su repo.  El proceso de desarrollo es el siguiente:
24823b8d08eSCarlos Bilbao
24923b8d08eSCarlos Bilbao  - Tan pronto como se lanza un nuevo kernel, se abre una ventana de dos
25023b8d08eSCarlos Bilbao    semanas, durante este período de tiempo, los maintainers pueden enviar
25123b8d08eSCarlos Bilbao    grandes modificaciones a Linus, por lo general los parches que ya se
25223b8d08eSCarlos Bilbao    han incluido en el linux-next durante unas semanas. La forma preferida
25323b8d08eSCarlos Bilbao    de enviar grandes cambios es usando git (la herramienta de
25423b8d08eSCarlos Bilbao    administración de código fuente del kernel, más información al respecto
25523b8d08eSCarlos Bilbao    en https://git-scm.com/), pero los parches simples también son validos.
25623b8d08eSCarlos Bilbao  - Después de dos semanas, se lanza un kernel -rc1 y la atención se centra
25723b8d08eSCarlos Bilbao    en hacer el kernel nuevo lo más estable ("solido") posible. La mayoría
25823b8d08eSCarlos Bilbao    de los parches en este punto deben arreglar una regresión. Los errores
25923b8d08eSCarlos Bilbao    que siempre han existido no son regresiones, por lo tanto, solo envíe
26023b8d08eSCarlos Bilbao    este tipo de correcciones si son importantes. Tenga en cuenta que se
26123b8d08eSCarlos Bilbao    podría aceptar un controlador (o sistema de archivos) completamente
26223b8d08eSCarlos Bilbao    nuevo después de -rc1 porque no hay riesgo de causar regresiones con
26323b8d08eSCarlos Bilbao    tal cambio, siempre y cuando el cambio sea autónomo y no afecte áreas
26423b8d08eSCarlos Bilbao    fuera del código que se está agregando. git se puede usar para enviar
26523b8d08eSCarlos Bilbao    parches a Linus después de que se lance -rc1, pero los parches también
26623b8d08eSCarlos Bilbao    deben ser enviado a una lista de correo pública para su revisión.
26723b8d08eSCarlos Bilbao  - Se lanza un nuevo -rc cada vez que Linus considera que el árbol git
26823b8d08eSCarlos Bilbao    actual esta en un estado razonablemente sano y adecuado para la prueba.
26923b8d08eSCarlos Bilbao    La meta es lanzar un nuevo kernel -rc cada semana.
27023b8d08eSCarlos Bilbao  - El proceso continúa hasta que el kernel se considera "listo", y esto
27123b8d08eSCarlos Bilbao    puede durar alrededor de 6 semanas.
27223b8d08eSCarlos Bilbao
27323b8d08eSCarlos BilbaoVale la pena mencionar lo que Andrew Morton escribió en las listas de
27423b8d08eSCarlos Bilbaocorreo del kernel de Linux, sobre lanzamientos del kernel (traducido):
27523b8d08eSCarlos Bilbao
27623b8d08eSCarlos Bilbao	*"Nadie sabe cuándo se publicara un nuevo kernel, pues esto sucede
27723b8d08eSCarlos Bilbao	según el estado de los bugs, no de una cronología preconcebida."*
27823b8d08eSCarlos Bilbao
27923b8d08eSCarlos BilbaoVarios árboles estables con múltiples major numbers
28023b8d08eSCarlos Bilbao~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28123b8d08eSCarlos Bilbao
28223b8d08eSCarlos BilbaoLos kernels con versiones de 3 partes son kernels estables. Estos contienen
28323b8d08eSCarlos Bilbaocorrecciones relativamente pequeñas y críticas para problemas de seguridad
28423b8d08eSCarlos Bilbaoo importantes regresiones descubiertas para una publicación de código.
28523b8d08eSCarlos BilbaoCada lanzamiento en una gran serie estable incrementa la tercera parte de
28623b8d08eSCarlos Bilbaola versión número, manteniendo las dos primeras partes iguales.
28723b8d08eSCarlos Bilbao
28823b8d08eSCarlos BilbaoEsta es la rama recomendada para los usuarios que quieren la versión
28923b8d08eSCarlos Bilbaoestable más reciente del kernel, y no están interesados en ayudar a probar
29023b8d08eSCarlos Bilbaoversiones en desarrollo/experimentales.
29123b8d08eSCarlos Bilbao
29223b8d08eSCarlos BilbaoLos árboles estables son mantenidos por el equipo "estable"
29323b8d08eSCarlos Bilbao<stable@vger.kernel.org>, y se liberan (publican) según lo dicten las
29423b8d08eSCarlos Bilbaonecesidades. El período de liberación normal es de aproximadamente dos
29523b8d08eSCarlos Bilbaosemanas, pero puede ser más largo si no hay problemas apremiantes. Un
29623b8d08eSCarlos Bilbaoproblema relacionado con la seguridad, en cambio, puede causar un
29723b8d08eSCarlos Bilbaolanzamiento casi instantáneamente.
29823b8d08eSCarlos Bilbao
29923b8d08eSCarlos BilbaoEl archivo :ref:`Documentación/proceso/stable-kernel-rules.rst <stable_kernel_rules>`
30023b8d08eSCarlos Bilbaoen el árbol del kernel documenta qué tipos de cambios son aceptables para
30123b8d08eSCarlos Bilbaoel árbol estable y cómo funciona el proceso de lanzamiento.
30223b8d08eSCarlos Bilbao
30323b8d08eSCarlos BilbaoSubsistemas específicos
30423b8d08eSCarlos Bilbao~~~~~~~~~~~~~~~~~~~~~~~~
30523b8d08eSCarlos BilbaoLos maintainers de los diversos subsistemas del kernel --- y también muchos
30623b8d08eSCarlos Bilbaodesarrolladores de subsistemas del kernel --- exponen su estado actual de
30723b8d08eSCarlos Bilbaodesarrollo en repositorios fuente. De esta manera, otros pueden ver lo que
30823b8d08eSCarlos Bilbaoestá sucediendo en las diferentes áreas del kernel. En áreas donde el
30923b8d08eSCarlos Bilbaodesarrollo es rápido, se le puede pedir a un desarrollador que base sus
31023b8d08eSCarlos Bilbaoenvíos en tal árbol del subsistema del kernel, para evitar conflictos entre
31123b8d08eSCarlos Bilbaoeste y otros trabajos ya en curso.
31223b8d08eSCarlos Bilbao
31323b8d08eSCarlos BilbaoLa mayoría de estos repositorios son árboles git, pero también hay otros
31423b8d08eSCarlos BilbaoSCM en uso, o colas de parches que se publican como series quilt. Las
31523b8d08eSCarlos Bilbaodirecciones de estos repositorios de subsistemas se enumeran en el archivo
31623b8d08eSCarlos BilbaoMAINTAINERS. Muchos de estos se pueden ver en https://git.kernel.org/.
31723b8d08eSCarlos Bilbao
31823b8d08eSCarlos BilbaoAntes de que un parche propuesto se incluya con dicho árbol de subsistemas,
31923b8d08eSCarlos Bilbaoes sujeto a revisión, que ocurre principalmente en las listas de correo
32023b8d08eSCarlos Bilbao(ver la sección respectiva a continuación). Para varios subsistemas del
32123b8d08eSCarlos Bilbaokernel, esta revisión se rastrea con la herramienta patchwork. Patchwork
32223b8d08eSCarlos Bilbaoofrece una interfaz web que muestra publicaciones de parches, cualquier
32323b8d08eSCarlos Bilbaocomentario sobre un parche o revisiones a él, y los maintainers pueden
32423b8d08eSCarlos Bilbaomarcar los parches como en revisión, aceptado, o rechazado. La mayoría de
32523b8d08eSCarlos Bilbaoestos sitios de trabajo de parches se enumeran en
32623b8d08eSCarlos Bilbao
32723b8d08eSCarlos Bilbaohttps://patchwork.kernel.org/.
32823b8d08eSCarlos Bilbao
32923b8d08eSCarlos Bilbaolinux-next, para integración y testing
33023b8d08eSCarlos Bilbao~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33123b8d08eSCarlos Bilbao
33223b8d08eSCarlos BilbaoAntes de que las actualizaciones de los árboles de subsistemas se combinen
33323b8d08eSCarlos Bilbaocon el árbol principal, necesitan probar su integración. Para ello, existe
33423b8d08eSCarlos Bilbaoun repositorio especial de pruebas en el que se encuentran casi todos los
33523b8d08eSCarlos Bilbaoárboles de subsistema, actualizado casi a diario:
33623b8d08eSCarlos Bilbao
33723b8d08eSCarlos Bilbao	https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git
33823b8d08eSCarlos Bilbao
33923b8d08eSCarlos BilbaoDe esta manera, linux-next ofrece una perspectiva resumida de lo que se
34023b8d08eSCarlos Bilbaoespera que entre en el kernel principal en el próximo período de "merge"
34123b8d08eSCarlos Bilbao(fusión de código). Los testers aventureros son bienvenidos a probar
34223b8d08eSCarlos Bilbaolinux-next en ejecución.
34323b8d08eSCarlos Bilbao
34423b8d08eSCarlos BilbaoReportar bugs
34523b8d08eSCarlos Bilbao-------------
34623b8d08eSCarlos Bilbao
34723b8d08eSCarlos BilbaoEl archivo 'Documentación/admin-guide/reporting-issues.rst' en el
34823b8d08eSCarlos Bilbaodirectorio principal del kernel describe cómo informar un posible bug del
34923b8d08eSCarlos Bilbaokernel y detalles sobre qué tipo de información necesitan los
35023b8d08eSCarlos Bilbaodesarrolladores del kernel para ayudar a rastrear la fuente del problema.
35123b8d08eSCarlos Bilbao
35223b8d08eSCarlos BilbaoGestión de informes de bugs
35323b8d08eSCarlos Bilbao------------------------------
35423b8d08eSCarlos Bilbao
35523b8d08eSCarlos BilbaoUna de las mejores formas de poner en práctica sus habilidades de hacking
35623b8d08eSCarlos Bilbaoes arreglando errores reportados por otras personas. No solo ayudará a
35723b8d08eSCarlos Bilbaohacer el kernel más estable, también aprenderá a solucionar problemas del
35823b8d08eSCarlos Bilbaomundo real y mejora sus habilidades, y otros desarrolladores se darán
35923b8d08eSCarlos Bilbaocuenta de tu presencia. La corrección de errores es una de las mejores
36023b8d08eSCarlos Bilbaoformas de ganar méritos entre desarrolladores, porque no a muchas personas
36123b8d08eSCarlos Bilbaoles gusta perder el tiempo arreglando los errores de otras personas.
36223b8d08eSCarlos Bilbao
36323b8d08eSCarlos BilbaoPara trabajar en informes de errores ya reportados, busque un subsistema
36423b8d08eSCarlos Bilbaoque le interese. Verifique el archivo MAINTAINERS donde se informan los
36523b8d08eSCarlos Bilbaoerrores de ese subsistema; con frecuencia será una lista de correo, rara
36623b8d08eSCarlos Bilbaovez un rastreador de errores (bugtracker). Busque en los archivos de dicho
36723b8d08eSCarlos Bilbaolugar para informes recientes y ayude donde lo crea conveniente. También es
36823b8d08eSCarlos Bilbaoposible que desee revisar https://bugzilla.kernel.org para informes de
36923b8d08eSCarlos Bilbaoerrores; solo un puñado de subsistemas del kernel lo emplean activamente
37023b8d08eSCarlos Bilbaopara informar o rastrear; sin embargo, todos los errores para todo el kernel
37123b8d08eSCarlos Bilbaose archivan allí.
37223b8d08eSCarlos Bilbao
37323b8d08eSCarlos BilbaoListas de correo
37423b8d08eSCarlos Bilbao-----------------
37523b8d08eSCarlos Bilbao
37623b8d08eSCarlos BilbaoComo se explica en algunos de los documentos anteriores, la mayoría de
37723b8d08eSCarlos Bilbaodesarrolladores del kernel participan en la lista de correo del kernel de
37823b8d08eSCarlos BilbaoLinux. Detalles sobre cómo para suscribirse y darse de baja de la lista se
37923b8d08eSCarlos Bilbaopueden encontrar en:
38023b8d08eSCarlos Bilbao
38123b8d08eSCarlos Bilbao	http://vger.kernel.org/vger-lists.html#linux-kernel
38223b8d08eSCarlos Bilbao
38323b8d08eSCarlos BilbaoExisten archivos de la lista de correo en la web en muchos lugares
38423b8d08eSCarlos Bilbaodistintos. Utilice un motor de búsqueda para encontrar estos archivos. Por
38523b8d08eSCarlos Bilbaoejemplo:
38623b8d08eSCarlos Bilbao
38723b8d08eSCarlos Bilbao	http://dir.gmane.org/gmane.linux.kernel
38823b8d08eSCarlos Bilbao
38923b8d08eSCarlos BilbaoEs muy recomendable que busque en los archivos sobre el tema que desea
39023b8d08eSCarlos Bilbaotratar, antes de publicarlo en la lista. Un montón de cosas ya discutidas
39123b8d08eSCarlos Bilbaoen detalle solo se registran en los archivos de la lista de correo.
39223b8d08eSCarlos Bilbao
39323b8d08eSCarlos BilbaoLa mayoría de los subsistemas individuales del kernel también tienen sus
39423b8d08eSCarlos Bilbaopropias lista de correo donde hacen sus esfuerzos de desarrollo. Revise el
39523b8d08eSCarlos Bilbaoarchivo MAINTAINERS para obtener referencias de lo que estas listas para
39623b8d08eSCarlos Bilbaolos diferentes grupos.
39723b8d08eSCarlos Bilbao
39823b8d08eSCarlos BilbaoMuchas de las listas están alojadas en kernel.org. La información sobre
39923b8d08eSCarlos Bilbaoestas puede ser encontrada en:
40023b8d08eSCarlos Bilbao
40123b8d08eSCarlos Bilbao	http://vger.kernel.org/vger-lists.html
40223b8d08eSCarlos Bilbao
40323b8d08eSCarlos BilbaoRecuerde mantener buenos hábitos de comportamiento al usar las listas.
40423b8d08eSCarlos BilbaoAunque un poco cursi, la siguiente URL tiene algunas pautas simples para
40523b8d08eSCarlos Bilbaointeractuar con la lista (o cualquier lista):
40623b8d08eSCarlos Bilbao
40723b8d08eSCarlos Bilbao	http://www.albion.com/netiquette/
40823b8d08eSCarlos Bilbao
40923b8d08eSCarlos BilbaoSi varias personas responden a su correo, el CC (lista de destinatarios)
41023b8d08eSCarlos Bilbaopuede hacerse bastante grande. No elimine a nadie de la lista CC: sin una
41123b8d08eSCarlos Bilbaobuena razón, o no responda solo a la dirección de la lista. Acostúmbrese
41223b8d08eSCarlos Bilbaoa recibir correos dos veces, una del remitente y otra de la lista, y no
41323b8d08eSCarlos Bilbaointente ajustar esto agregando encabezados de correo astutos, a la gente no
41423b8d08eSCarlos Bilbaole gustará.
41523b8d08eSCarlos Bilbao
41623b8d08eSCarlos BilbaoRecuerde mantener intacto el contexto y la atribución de sus respuestas,
41723b8d08eSCarlos Bilbaomantenga las líneas "El hacker John Kernel escribió ...:" en la parte
41823b8d08eSCarlos Bilbaosuperior de su respuesta, y agregue sus declaraciones entre las secciones
41923b8d08eSCarlos Bilbaoindividuales citadas en lugar de escribiendo en la parte superior del
42023b8d08eSCarlos Bilbaocorreo electrónico.
42123b8d08eSCarlos Bilbao
42223b8d08eSCarlos BilbaoSi incluye parches en su correo, asegúrese de que sean texto legible sin
42323b8d08eSCarlos Bilbaoformato como se indica en :ref:`Documentation/process/submitting-patches.rst <submittingpatches>`.
42423b8d08eSCarlos BilbaoLos desarrolladores del kernel no quieren lidiar con archivos adjuntos o
42523b8d08eSCarlos Bilbaoparches comprimidos; y pueden querer comentar líneas individuales de su
42623b8d08eSCarlos Bilbaoparche, que funciona sólo de esa manera. Asegúrese de emplear un programa
42723b8d08eSCarlos Bilbaode correo que no altere los espacios ni los tabuladores. Una buena primera
42823b8d08eSCarlos Bilbaoprueba es enviarse el correo a usted mismo, e intentar aplicar su
42923b8d08eSCarlos Bilbaopropio parche. Si eso no funciona, arregle su programa de correo o
43023b8d08eSCarlos Bilbaoreemplace hasta que funcione.
43123b8d08eSCarlos Bilbao
43223b8d08eSCarlos BilbaoSobretodo, recuerde de ser respetuoso con otros subscriptores.
43323b8d08eSCarlos Bilbao
43423b8d08eSCarlos BilbaoColaborando con la comunidad
43523b8d08eSCarlos Bilbao----------------------------
43623b8d08eSCarlos Bilbao
43723b8d08eSCarlos BilbaoEl objetivo de la comunidad del kernel es proporcionar el mejor kernel
43823b8d08eSCarlos Bilbaoposible. Cuando envíe un parche para su aceptación, se revisará en sus
43923b8d08eSCarlos Bilbaoméritos técnicos solamente. Entonces, ¿qué deberías ser?
44023b8d08eSCarlos Bilbao
44123b8d08eSCarlos Bilbao  - críticas
44223b8d08eSCarlos Bilbao  - comentarios
44323b8d08eSCarlos Bilbao  - peticiones de cambios
44423b8d08eSCarlos Bilbao  - peticiones de justificaciones
44523b8d08eSCarlos Bilbao  - silencio
44623b8d08eSCarlos Bilbao
44723b8d08eSCarlos BilbaoRecuerde, esto es parte de introducir su parche en el kernel. Tiene que ser
44823b8d08eSCarlos Bilbaocapaz de recibir críticas y comentarios sobre sus parches, evaluar
44923b8d08eSCarlos Bilbaoa nivel técnico y re-elaborar sus parches o proporcionar razonamiento claro
45023b8d08eSCarlos Bilbaoy conciso de por qué no se deben hacer tales cambios. Si no hay respuestas
45123b8d08eSCarlos Bilbaoa su publicación, espere unos días e intente de nuevo, a veces las cosas se
45223b8d08eSCarlos Bilbaopierden dado el gran volumen.
45323b8d08eSCarlos Bilbao
45423b8d08eSCarlos Bilbao¿Qué no debería hacer?
45523b8d08eSCarlos Bilbao
45623b8d08eSCarlos Bilbao  - esperar que su parche se acepte sin preguntas
45723b8d08eSCarlos Bilbao  - actuar de forma defensiva
45823b8d08eSCarlos Bilbao  - ignorar comentarios
45923b8d08eSCarlos Bilbao  - enviar el parche de nuevo, sin haber aplicados los cambios pertinentes
46023b8d08eSCarlos Bilbao
46123b8d08eSCarlos BilbaoEn una comunidad que busca la mejor solución técnica posible, siempre habrá
46223b8d08eSCarlos Bilbaodiferentes opiniones sobre lo beneficioso que es un parche. Tiene que ser
46323b8d08eSCarlos Bilbaocooperativo y estar dispuesto a adaptar su idea para que encaje dentro
46423b8d08eSCarlos Bilbaodel kernel, o al menos esté dispuesto a demostrar que su idea vale la pena.
46523b8d08eSCarlos BilbaoRecuerde, estar equivocado es aceptable siempre y cuando estés dispuesto a
46623b8d08eSCarlos Bilbaotrabajar hacia una solución que sea correcta.
46723b8d08eSCarlos Bilbao
46823b8d08eSCarlos BilbaoEs normal que las respuestas a su primer parche sean simplemente una lista
46923b8d08eSCarlos Bilbaode una docena de cosas que debe corregir. Esto **no** implica que su
47023b8d08eSCarlos Bilbaoparche no será aceptado, y **no** es personal. Simplemente corrija todos
47123b8d08eSCarlos Bilbaolos problemas planteados en su parche, y envié otra vez.
47223b8d08eSCarlos Bilbao
47323b8d08eSCarlos BilbaoDiferencias entre la comunidad kernel y las estructuras corporativas
47423b8d08eSCarlos Bilbao--------------------------------------------------------------------
47523b8d08eSCarlos Bilbao
47623b8d08eSCarlos BilbaoLa comunidad del kernel funciona de manera diferente a la mayoría de los
47723b8d08eSCarlos Bilbaoentornos de desarrollo tradicionales en empresas. Aquí hay una lista de
47823b8d08eSCarlos Bilbaocosas que puede intentar hacer para evitar problemas:
47923b8d08eSCarlos Bilbao
48023b8d08eSCarlos Bilbao  Cosas buenas que decir respecto a los cambios propuestos:
48123b8d08eSCarlos Bilbao
48223b8d08eSCarlos Bilbao    - "Esto arregla múltiples problemas."
48323b8d08eSCarlos Bilbao    - "Esto elimina 2000 lineas de código."
48423b8d08eSCarlos Bilbao    - "Aquí hay un parche que explica lo que intento describir."
48523b8d08eSCarlos Bilbao    - "Lo he testeado en 5 arquitecturas distintas..."
48623b8d08eSCarlos Bilbao    - "Aquí hay una serie de parches menores que..."
48723b8d08eSCarlos Bilbao    - "Esto mejora el rendimiento en maquinas típicas..."
48823b8d08eSCarlos Bilbao
48923b8d08eSCarlos Bilbao  Cosas negativas que debe evitar decir:
49023b8d08eSCarlos Bilbao
49123b8d08eSCarlos Bilbao    - "Lo hicimos así en AIX/ptx/Solaris, de modo que debe ser bueno..."
49223b8d08eSCarlos Bilbao    - "Llevo haciendo esto 20 años, de modo que..."
49323b8d08eSCarlos Bilbao    - "Esto lo necesita mi empresa para ganar dinero"
49423b8d08eSCarlos Bilbao    - "Esto es para la linea de nuestros productos Enterprise"
49523b8d08eSCarlos Bilbao    - "Aquí esta el documento de 1000 paginas describiendo mi idea"
49623b8d08eSCarlos Bilbao    - "Llevo 6 meses trabajando en esto..."
49723b8d08eSCarlos Bilbao    - "Aquí esta un parche de 5000 lineas que..."
49823b8d08eSCarlos Bilbao    - "He rescrito todo el desastre actual, y aquí esta..."
49923b8d08eSCarlos Bilbao    - "Tengo un deadline, y este parche debe aplicarse ahora."
50023b8d08eSCarlos Bilbao
50123b8d08eSCarlos BilbaoOtra forma en que la comunidad del kernel es diferente a la mayoría de los
50223b8d08eSCarlos Bilbaoentornos de trabajo tradicionales en ingeniería de software, es la
50323b8d08eSCarlos Bilbaonaturaleza sin rostro de interacción. Una de las ventajas de utilizar el
50423b8d08eSCarlos Bilbaocorreo electrónico y el IRC como formas principales de comunicación es la
50523b8d08eSCarlos Bilbaono discriminación por motivos de género o raza. El entorno de trabajo del
50623b8d08eSCarlos Bilbaokernel de Linux acepta a mujeres y minorías porque todo lo que eres es una
50723b8d08eSCarlos Bilbaodirección de correo electrónico. El aspecto internacional también ayuda a
50823b8d08eSCarlos Bilbaonivelar el campo de juego porque no puede adivinar el género basado en
50923b8d08eSCarlos Bilbaoel nombre de una persona. Un hombre puede llamarse Andrea y una mujer puede
51023b8d08eSCarlos Bilbaollamarse Pat. La mayoría de las mujeres que han trabajado en el kernel de
51123b8d08eSCarlos BilbaoLinux y han expresado una opinión han tenido experiencias positivas.
51223b8d08eSCarlos Bilbao
51323b8d08eSCarlos BilbaoLa barrera del idioma puede causar problemas a algunas personas que no se
51423b8d08eSCarlos Bilbaosientes cómodas con el inglés. Un buen dominio del idioma puede ser
51523b8d08eSCarlos Bilbaonecesario para transmitir ideas correctamente en las listas de correo, por
51623b8d08eSCarlos Bilbaolo que le recomendamos que revise sus correos electrónicos para asegurarse
51723b8d08eSCarlos Bilbaode que tengan sentido en inglés antes de enviarlos.
51823b8d08eSCarlos Bilbao
51923b8d08eSCarlos BilbaoDivida sus cambios
52023b8d08eSCarlos Bilbao---------------------
52123b8d08eSCarlos Bilbao
52223b8d08eSCarlos BilbaoLa comunidad del kernel de Linux no acepta con gusto grandes fragmentos de
52323b8d08eSCarlos Bilbaocódigo, sobretodo a la vez. Los cambios deben introducirse correctamente,
52423b8d08eSCarlos Bilbaodiscutidos y divididos en pequeñas porciones individuales. Esto es casi
52523b8d08eSCarlos Bilbaoexactamente lo contrario de lo que las empresas están acostumbradas a hacer.
52623b8d08eSCarlos BilbaoSu propuesta también debe introducirse muy temprano en el proceso de
52723b8d08eSCarlos Bilbaodesarrollo, de modo que pueda recibir comentarios sobre lo que está
52823b8d08eSCarlos Bilbaohaciendo. También deje que la comunidad sienta que está trabajando con
52923b8d08eSCarlos Bilbaoellos, y no simplemente usándolos como un vertedero para su función. Sin
53023b8d08eSCarlos Bilbaoembargo, no envíe 50 correos electrónicos a una vez a una lista de correo,
53123b8d08eSCarlos Bilbaosu serie de parches debe casi siempre ser más pequeña que eso.
53223b8d08eSCarlos Bilbao
53323b8d08eSCarlos BilbaoLas razones para dividir las cosas son las siguientes:
53423b8d08eSCarlos Bilbao
53523b8d08eSCarlos Bilbao1) Los cambios pequeños aumentan la probabilidad de que sus parches sean
53623b8d08eSCarlos Bilbao   aplicados, ya que no requieren mucho tiempo o esfuerzo para verificar su
53723b8d08eSCarlos Bilbao   exactitud. Un parche de 5 líneas puede ser aplicado por un maintainer
53823b8d08eSCarlos Bilbao   con apenas una segunda mirada. Sin embargo, un parche de 500 líneas
53923b8d08eSCarlos Bilbao   puede tardar horas en ser revisado en términos de corrección (el tiempo
54023b8d08eSCarlos Bilbao   que toma es exponencialmente proporcional al tamaño del parche, o algo
54123b8d08eSCarlos Bilbao   así).
54223b8d08eSCarlos Bilbao
54323b8d08eSCarlos Bilbao   Los parches pequeños también facilitan la depuración cuando algo falla.
54423b8d08eSCarlos Bilbao   Es mucho más fácil retirar los parches uno por uno que diseccionar un
54523b8d08eSCarlos Bilbao   parche muy grande después de haber sido aplicado (y roto alguna cosa).
54623b8d08eSCarlos Bilbao
54723b8d08eSCarlos Bilbao2) Es importante no solo enviar pequeños parches, sino también reescribir
54823b8d08eSCarlos Bilbao   y simplificar (o simplemente reordenar) los parches antes de enviarlos.
54923b8d08eSCarlos Bilbao
55023b8d08eSCarlos BilbaoEsta es una analogía del desarrollador del kernel Al Viro (traducida):
55123b8d08eSCarlos Bilbao
55223b8d08eSCarlos Bilbao	*"Piense en un maestro que califica la tarea de un estudiante de
55323b8d08eSCarlos Bilbao	matemáticas. El maestro no quiere ver los intentos y errores del
55423b8d08eSCarlos Bilbao	estudiante antes de que se les ocurriera la solución. Quiere ver la
55523b8d08eSCarlos Bilbao	respuesta más limpia y elegante. Un buen estudiante lo sabe, y nunca
55623b8d08eSCarlos Bilbao	presentaría su trabajo intermedio antes de tener la solución final.*
55723b8d08eSCarlos Bilbao
55823b8d08eSCarlos Bilbao	*Lo mismo ocurre con el desarrollo del kernel. Los maintainers y
55923b8d08eSCarlos Bilbao	revisores no quieren ver el proceso de pensamiento detrás de la solución
56023b8d08eSCarlos Bilbao	al problema que se está resolviendo. Quieren ver un solución simple y
56123b8d08eSCarlos Bilbao	elegante."*
56223b8d08eSCarlos Bilbao
56323b8d08eSCarlos BilbaoPuede resultar un reto mantener el equilibrio entre presentar una solución
56423b8d08eSCarlos Bilbaoelegante y trabajar junto a la comunidad, discutiendo su trabajo inacabado.
56523b8d08eSCarlos BilbaoPor lo tanto, es bueno comenzar temprano en el proceso para obtener
56623b8d08eSCarlos Bilbao"feedback" y mejorar su trabajo, pero también mantenga sus cambios en
56723b8d08eSCarlos Bilbaopequeños trozos que pueden ser aceptados, incluso cuando toda su labor no
56823b8d08eSCarlos Bilbaoestá listo para inclusión en un momento dado.
56923b8d08eSCarlos Bilbao
57023b8d08eSCarlos BilbaoTambién tenga en cuenta que no es aceptable enviar parches para su
57123b8d08eSCarlos Bilbaoinclusión que están sin terminar y serán "arreglados más tarde".
57223b8d08eSCarlos Bilbao
57323b8d08eSCarlos BilbaoJustifique sus cambios
57423b8d08eSCarlos Bilbao----------------------
57523b8d08eSCarlos Bilbao
57623b8d08eSCarlos BilbaoAdemás de dividir sus parches, es muy importante que deje a la comunidad de
57723b8d08eSCarlos BilbaoLinux sabe por qué deberían agregar este cambio. Nuevas características
57823b8d08eSCarlos Bilbaodebe justificarse como necesarias y útiles.
57923b8d08eSCarlos Bilbao
58023b8d08eSCarlos BilbaoDocumente sus cambios
58123b8d08eSCarlos Bilbao---------------------
58223b8d08eSCarlos Bilbao
58323b8d08eSCarlos BilbaoCuando envíe sus parches, preste especial atención a lo que dice en el
58423b8d08eSCarlos Bilbaotexto de su correo electrónico. Esta información se convertirá en el
58523b8d08eSCarlos BilbaoChangeLog del parche, y se conservará para que todos la vean, todo el
58623b8d08eSCarlos Bilbaotiempo. Debe describir el parche por completo y contener:
58723b8d08eSCarlos Bilbao
58823b8d08eSCarlos Bilbao  - por qué los cambios son necesarios
58923b8d08eSCarlos Bilbao  - el diseño general de su propuesta
59023b8d08eSCarlos Bilbao  - detalles de implementación
59123b8d08eSCarlos Bilbao  - resultados de sus experimentos
59223b8d08eSCarlos Bilbao
59323b8d08eSCarlos BilbaoPara obtener más detalles sobre cómo debería quedar todo esto, consulte la
59423b8d08eSCarlos Bilbaosección ChangeLog del documento:
59523b8d08eSCarlos Bilbao
59623b8d08eSCarlos Bilbao  "The Perfect Patch"
59723b8d08eSCarlos Bilbao      https://www.ozlabs.org/~akpm/stuff/tpp.txt
59823b8d08eSCarlos Bilbao
59923b8d08eSCarlos BilbaoTodas estas cuestiones son a veces son muy difíciles de conseguir. Puede
60023b8d08eSCarlos Bilbaollevar años perfeccionar estas prácticas (si es que lo hace). Es un proceso
60123b8d08eSCarlos Bilbaocontinuo de mejora que requiere mucha paciencia y determinación. Pero no se
60223b8d08eSCarlos Bilbaorinda, es posible. Muchos lo han hecho antes, y cada uno tuvo que comenzar
60323b8d08eSCarlos Bilbaoexactamente donde está usted ahora.
60423b8d08eSCarlos Bilbao
60523b8d08eSCarlos Bilbao----------
60623b8d08eSCarlos Bilbao
60723b8d08eSCarlos BilbaoGracias a Paolo Ciarrocchi que permitió que la sección "Development Process"
60823b8d08eSCarlos Bilbaose basara en el texto que había escrito (https://lwn.net/Articles/94386/),
60923b8d08eSCarlos Bilbaoy a Randy Dunlap y Gerrit Huizenga por algunas de la lista de cosas que
61023b8d08eSCarlos Bilbaodebes y no debes decir. También gracias a Pat Mochel, Hanna Linder, Randy
61123b8d08eSCarlos BilbaoDunlap, Kay Sievers, Vojtech Pavlik, Jan Kara, Josh Boyer, Kees Cook,
61223b8d08eSCarlos BilbaoAndrew Morton, Andi Kleen, Vadim Lobanov, Jesper Juhl, Adrian Bunk,
61323b8d08eSCarlos BilbaoKeri Harris, Frans Pop, David A. Wheeler, Junio Hamano, Michael Kerrisk y
61423b8d08eSCarlos BilbaoAlex Shepard por su revisión, comentarios y contribuciones. Sin su ayuda,
61523b8d08eSCarlos Bilbaoeste documento no hubiera sido posible.
61623b8d08eSCarlos Bilbao
61723b8d08eSCarlos BilbaoMaintainer: Greg Kroah-Hartman <greg@kroah.com>
618