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