| .. SPDX-License-Identifier: GPL-2.0 |
| |
| :Original: :ref:`Documentation/process/researcher-guidelines.rst` |
| :Translator: Avadhut Naik <avadhut.naik@amd.com> |
| |
| Directrices para Investigadores |
| ++++++++++++++++++++++++++++++++ |
| |
| La comunidad del kernel de Linux da la bienvenida a la investigación |
| transparente sobre el kernel de Linux, las actividades involucradas |
| en su producción, otros subproductos de su desarrollo. Linux se |
| beneficia mucho de este tipo de investigación, y la mayoría de los |
| aspectos de Linux son impulsados por investigación en una forma u otra. |
| |
| La comunidad agradece mucho si los investigadores pueden compartir |
| los hallazgos preliminares antes de hacer públicos sus resultados, |
| especialmente si tal investigación involucra seguridad. Involucrarse |
| temprano ayuda a mejorar la calidad de investigación y la capacidad |
| de Linux para mejorar a partir de ella. En cualquier caso, se recomienda |
| compartir copias de acceso abierto de la investigación publicada con |
| la comunidad. |
| |
| Este documento busca clarificar lo que la comunidad del kernel de Linux |
| considera practicas aceptables y no aceptables al llevar a cabo |
| investigación de este tipo. Por lo menos, dicha investigación y |
| actividades afines deben seguir las reglas estándar de ética de la |
| investigación. Para más información sobre la ética de la investigación |
| en general, ética en la tecnología y la investigación de las comunidades |
| de desarrolladores en particular, ver: |
| |
| |
| * `Historia de la Ética en la Investigación <https://www.unlv.edu/research/ORI-HSR/history-ethics>`_ |
| * `Ética de la IEEE <https://www.ieee.org/about/ethics/index.html>`_ |
| * `Perspectivas de Desarrolladores e Investigadores sobre la Ética de los Experimentos en Proyectos de Código Abierto <https://arxiv.org/pdf/2112.13217.pdf>`_ |
| |
| La comunidad del kernel de Linux espera que todos los que interactúan con |
| el proyecto están participando en buena fe para mejorar Linux. La |
| investigación sobre cualquier artefacto disponible públicamente (incluido, |
| pero no limitado a código fuente) producido por la comunidad del kernel |
| de Linux es bienvenida, aunque la investigación sobre los desarrolladores |
| debe ser claramente opcional. |
| |
| La investigación pasiva que se basa completamente en fuentes disponibles |
| públicamente, incluidas las publicaciones en listas de correo públicas y |
| las contribuciones a los repositorios públicos, es claramente permitida. |
| Aunque, como con cualquier investigación, todavía se debe seguir la ética |
| estándar. |
| |
| La investigación activa sobre el comportamiento de los desarrolladores, |
| sin embargo, debe hacerse con el acuerdo explícito y la divulgación |
| completa a los desarrolladores individuales involucrados. No se puede |
| interactuar / experimentar con los desarrolladores sin consentimiento; |
| esto también es ética de investigación estándar. |
| |
| Para ayudar a aclarar: enviar parches a los desarrolladores es interactuar |
| con ellos, pero ya han dado su consentimiento para recibir contribuciones |
| en buena fe. No se ha dado consentimiento para enviar parches intencionalmente |
| defectuosos / vulnerables o contribuir con la información engañosa a las |
| discusiones. Dicha comunicación puede ser perjudicial al desarrollador (por |
| ejemplo, agotar el tiempo, el esfuerzo, y la moral) y perjudicial para el |
| proyecto al erosionar la confianza de toda la comunidad de desarrolladores en |
| el colaborador (y la organización del colaborador en conjunto), socavando |
| los esfuerzos para proporcionar reacciones constructivas a los colaboradores |
| y poniendo a los usuarios finales en riesgo de fallas de software. |
| |
| La participación en el desarrollo de Linux en sí mismo por parte de |
| investigadores, como con cualquiera, es bienvenida y alentada. La |
| investigación del código de Linux es una práctica común, especialmente |
| cuando se trata de desarrollar o ejecutar herramientas de análisis que |
| producen resultados procesables. |
| |
| Cuando se interactúa con la comunidad de desarrolladores, enviar un |
| parche ha sido tradicionalmente la mejor manera para hacer un impacto. |
| Linux ya tiene muchos errores conocidos – lo que es mucho más útil es |
| tener soluciones verificadas. Antes de contribuir, lea cuidadosamente |
| la documentación adecuada. |
| |
| * Documentation/process/development-process.rst |
| * Documentation/process/submitting-patches.rst |
| * Documentation/admin-guide/reporting-issues.rst |
| * Documentation/process/security-bugs.rst |
| |
| Entonces envíe un parche (incluyendo un registro de confirmación con |
| todos los detalles enumerados abajo) y haga un seguimiento de cualquier |
| comentario de otros desarrolladores. |
| |
| * ¿Cuál es el problema específico que se ha encontrado? |
| * ¿Como podría llegar al problema en un sistema en ejecución? |
| * ¿Qué efecto tendría encontrar el problema en el sistema? |
| * ¿Como se encontró el problema? Incluya específicamente detalles sobre |
| cualquier prueba, programas de análisis estáticos o dinámicos, y cualquier |
| otra herramienta o método utilizado para realizar el trabajo. |
| * ¿En qué versión de Linux se encontró el problema? Se prefiere usar la |
| versión más reciente o una rama reciente de linux-next (ver |
| Documentation/process/howto.rst). |
| * ¿Que se cambió para solucionar el problema y por qué se cree es correcto? |
| * ¿Como se probó el cambio para la complicación y el tiempo de ejecución? |
| * ¿Qué confirmación previa corrige este cambio? Esto debería ir en un “Fixes:” |
| etiqueta como se describe en la documentación. |
| * ¿Quién más ha revisado este parche? Esto debería ir con la adecuada “Reviewed-by” |
| etiqueta; Vea abajo. |
| |
| Por ejemplo (en inglés, pues es en las listas):: |
| |
| From: Author <author@email> |
| Subject: [PATCH] drivers/foo_bar: Add missing kfree() |
| |
| The error path in foo_bar driver does not correctly free the allocated |
| struct foo_bar_info. This can happen if the attached foo_bar device |
| rejects the initialization packets sent during foo_bar_probe(). This |
| would result in a 64 byte slab memory leak once per device attach, |
| wasting memory resources over time. |
| |
| This flaw was found using an experimental static analysis tool we are |
| developing, LeakMagic[1], which reported the following warning when |
| analyzing the v5.15 kernel release: |
| |
| path/to/foo_bar.c:187: missing kfree() call? |
| |
| Add the missing kfree() to the error path. No other references to |
| this memory exist outside the probe function, so this is the only |
| place it can be freed. |
| |
| x86_64 and arm64 defconfig builds with CONFIG_FOO_BAR=y using GCC |
| 11.2 show no new warnings, and LeakMagic no longer warns about this |
| code path. As we don't have a FooBar device to test with, no runtime |
| testing was able to be performed. |
| |
| [1] https://url/to/leakmagic/details |
| |
| Reported-by: Researcher <researcher@email> |
| Fixes: aaaabbbbccccdddd ("Introduce support for FooBar") |
| Signed-off-by: Author <author@email> |
| Reviewed-by: Reviewer <reviewer@email> |
| |
| Si usted es un colaborador por primera vez, se recomienda que el parche en |
| si sea examinado por otros en privado antes de ser publicado en listas |
| públicas. (Esto es necesario si se le ha dicho explícitamente que sus parches |
| necesitan una revisión interna más cuidadosa.) Se espera que estas personas |
| tengan su etiqueta “Reviewed-by” incluida en el parche resultante. Encontrar |
| otro desarrollador con conocimiento de las contribuciones a Linux, especialmente |
| dentro de su propia organización, y tener su ayuda con las revisiones antes de |
| enviarlas a las listas de correo publico tiende a mejorar significativamente la |
| calidad de los parches resultantes, y reduce así la carga de otros desarrolladores. |
| |
| Si no se puede encontrar a nadie para revisar internamente los parches y necesita |
| ayuda para encontrar a esa persona, o si tiene alguna otra pregunta relacionada |
| con este documento y las expectativas de la comunidad de desarrolladores, por |
| favor contacte con la lista de correo privada Technical Advisory Board: |
| <tech-board@groups.linuxfoundation.org>. |