162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci:Original: :ref:`Documentation/process/researcher-guidelines.rst`
462306a36Sopenharmony_ci:Translator: Avadhut Naik <avadhut.naik@amd.com>
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciDirectrices para Investigadores
762306a36Sopenharmony_ci++++++++++++++++++++++++++++++++
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciLa comunidad del kernel de Linux da la bienvenida a la investigación
1062306a36Sopenharmony_citransparente sobre el kernel de Linux, las actividades involucradas
1162306a36Sopenharmony_cien su producción, otros subproductos de su desarrollo. Linux se
1262306a36Sopenharmony_cibeneficia mucho de este tipo de investigación, y la mayoría de los
1362306a36Sopenharmony_ciaspectos de Linux son impulsados por investigación en una forma u otra.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciLa comunidad agradece mucho si los investigadores pueden compartir
1662306a36Sopenharmony_cilos hallazgos preliminares antes de hacer públicos sus resultados,
1762306a36Sopenharmony_ciespecialmente si tal investigación involucra seguridad. Involucrarse
1862306a36Sopenharmony_citemprano ayuda a mejorar la calidad de investigación y la capacidad
1962306a36Sopenharmony_cide Linux para mejorar a partir de ella. En cualquier caso, se recomienda
2062306a36Sopenharmony_cicompartir copias de acceso abierto de la investigación publicada con
2162306a36Sopenharmony_cila comunidad.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciEste documento busca clarificar lo que la comunidad del kernel de Linux
2462306a36Sopenharmony_ciconsidera practicas aceptables y no aceptables al llevar a cabo
2562306a36Sopenharmony_ciinvestigación de este tipo. Por lo menos, dicha investigación y
2662306a36Sopenharmony_ciactividades afines deben seguir las reglas estándar de ética de la
2762306a36Sopenharmony_ciinvestigación. Para más información sobre la ética de la investigación
2862306a36Sopenharmony_cien general, ética en la tecnología y la investigación de las comunidades
2962306a36Sopenharmony_cide desarrolladores en particular, ver:
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci* `Historia de la Ética en la Investigación <https://www.unlv.edu/research/ORI-HSR/history-ethics>`_
3362306a36Sopenharmony_ci* `Ética de la IEEE <https://www.ieee.org/about/ethics/index.html>`_
3462306a36Sopenharmony_ci* `Perspectivas de Desarrolladores e Investigadores sobre la Ética de los Experimentos en Proyectos de Código Abierto <https://arxiv.org/pdf/2112.13217.pdf>`_
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciLa comunidad del kernel de Linux espera que todos los que interactúan con
3762306a36Sopenharmony_ciel proyecto están participando en buena fe para mejorar Linux. La
3862306a36Sopenharmony_ciinvestigación sobre cualquier artefacto disponible públicamente (incluido,
3962306a36Sopenharmony_cipero no limitado a código fuente) producido por la comunidad del kernel
4062306a36Sopenharmony_cide Linux es bienvenida, aunque la investigación sobre los desarrolladores
4162306a36Sopenharmony_cidebe ser claramente opcional.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciLa investigación pasiva que se basa completamente en fuentes disponibles
4462306a36Sopenharmony_cipúblicamente, incluidas las publicaciones en listas de correo públicas y
4562306a36Sopenharmony_cilas contribuciones a los repositorios públicos, es claramente permitida.
4662306a36Sopenharmony_ciAunque, como con cualquier investigación, todavía se debe seguir la ética
4762306a36Sopenharmony_ciestándar.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciLa investigación activa sobre el comportamiento de los desarrolladores,
5062306a36Sopenharmony_cisin embargo, debe hacerse con el acuerdo explícito y la divulgación
5162306a36Sopenharmony_cicompleta a los desarrolladores individuales involucrados. No se puede
5262306a36Sopenharmony_ciinteractuar / experimentar con los desarrolladores sin consentimiento;
5362306a36Sopenharmony_ciesto también es ética de investigación estándar.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciPara ayudar a aclarar: enviar parches a los desarrolladores es interactuar
5662306a36Sopenharmony_cicon ellos, pero ya han dado su consentimiento para recibir contribuciones
5762306a36Sopenharmony_cien buena fe. No se ha dado consentimiento para enviar parches intencionalmente
5862306a36Sopenharmony_cidefectuosos / vulnerables o contribuir con la información engañosa a las
5962306a36Sopenharmony_cidiscusiones. Dicha comunicación puede ser perjudicial al desarrollador (por
6062306a36Sopenharmony_ciejemplo, agotar el tiempo, el esfuerzo, y la moral) y perjudicial para el
6162306a36Sopenharmony_ciproyecto al erosionar la confianza de toda la comunidad de desarrolladores en
6262306a36Sopenharmony_ciel colaborador (y la organización del colaborador en conjunto), socavando
6362306a36Sopenharmony_cilos esfuerzos para proporcionar reacciones constructivas a los colaboradores
6462306a36Sopenharmony_ciy poniendo a los usuarios finales en riesgo de fallas de software.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciLa participación en el desarrollo de Linux en sí mismo por parte de
6762306a36Sopenharmony_ciinvestigadores, como con cualquiera, es bienvenida y alentada. La
6862306a36Sopenharmony_ciinvestigación del código de Linux es una práctica común, especialmente
6962306a36Sopenharmony_cicuando se trata de desarrollar o ejecutar herramientas de análisis que
7062306a36Sopenharmony_ciproducen resultados procesables.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciCuando se interactúa con la comunidad de desarrolladores, enviar un
7362306a36Sopenharmony_ciparche ha sido tradicionalmente la mejor manera para hacer un impacto.
7462306a36Sopenharmony_ciLinux ya tiene muchos errores conocidos – lo que es mucho más útil es
7562306a36Sopenharmony_citener soluciones verificadas. Antes de contribuir, lea cuidadosamente
7662306a36Sopenharmony_cila documentación adecuada.
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci* Documentation/process/development-process.rst
7962306a36Sopenharmony_ci* Documentation/process/submitting-patches.rst
8062306a36Sopenharmony_ci* Documentation/admin-guide/reporting-issues.rst
8162306a36Sopenharmony_ci* Documentation/process/security-bugs.rst
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciEntonces envíe un parche (incluyendo un registro de confirmación con
8462306a36Sopenharmony_citodos los detalles enumerados abajo) y haga un seguimiento de cualquier
8562306a36Sopenharmony_cicomentario de otros desarrolladores.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci* ¿Cuál es el problema específico que se ha encontrado?
8862306a36Sopenharmony_ci* ¿Como podría llegar al problema en un sistema en ejecución?
8962306a36Sopenharmony_ci* ¿Qué efecto tendría encontrar el problema en el sistema?
9062306a36Sopenharmony_ci* ¿Como se encontró el problema? Incluya específicamente detalles sobre
9162306a36Sopenharmony_ci  cualquier prueba, programas de análisis estáticos o dinámicos, y cualquier
9262306a36Sopenharmony_ci  otra herramienta o método utilizado para realizar el trabajo.
9362306a36Sopenharmony_ci* ¿En qué versión de Linux se encontró el problema? Se prefiere usar la
9462306a36Sopenharmony_ci  versión más reciente o una rama reciente de linux-next (ver
9562306a36Sopenharmony_ci  Documentation/process/howto.rst).
9662306a36Sopenharmony_ci* ¿Que se cambió para solucionar el problema y por qué se cree es correcto?
9762306a36Sopenharmony_ci* ¿Como se probó el cambio para la complicación y el tiempo de ejecución?
9862306a36Sopenharmony_ci* ¿Qué confirmación previa corrige este cambio? Esto debería ir en un “Fixes:”
9962306a36Sopenharmony_ci  etiqueta como se describe en la documentación.
10062306a36Sopenharmony_ci* ¿Quién más ha revisado este parche? Esto debería ir con la adecuada “Reviewed-by”
10162306a36Sopenharmony_ci  etiqueta; Vea abajo.
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ciPor ejemplo (en inglés, pues es en las listas)::
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci  From: Author <author@email>
10662306a36Sopenharmony_ci  Subject: [PATCH] drivers/foo_bar: Add missing kfree()
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci  The error path in foo_bar driver does not correctly free the allocated
10962306a36Sopenharmony_ci  struct foo_bar_info. This can happen if the attached foo_bar device
11062306a36Sopenharmony_ci  rejects the initialization packets sent during foo_bar_probe(). This
11162306a36Sopenharmony_ci  would result in a 64 byte slab memory leak once per device attach,
11262306a36Sopenharmony_ci  wasting memory resources over time.
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci  This flaw was found using an experimental static analysis tool we are
11562306a36Sopenharmony_ci  developing, LeakMagic[1], which reported the following warning when
11662306a36Sopenharmony_ci  analyzing the v5.15 kernel release:
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci   path/to/foo_bar.c:187: missing kfree() call?
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci  Add the missing kfree() to the error path. No other references to
12162306a36Sopenharmony_ci  this memory exist outside the probe function, so this is the only
12262306a36Sopenharmony_ci  place it can be freed.
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci  x86_64 and arm64 defconfig builds with CONFIG_FOO_BAR=y using GCC
12562306a36Sopenharmony_ci  11.2 show no new warnings, and LeakMagic no longer warns about this
12662306a36Sopenharmony_ci  code path. As we don't have a FooBar device to test with, no runtime
12762306a36Sopenharmony_ci  testing was able to be performed.
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci  [1] https://url/to/leakmagic/details
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci  Reported-by: Researcher <researcher@email>
13262306a36Sopenharmony_ci  Fixes: aaaabbbbccccdddd ("Introduce support for FooBar")
13362306a36Sopenharmony_ci  Signed-off-by: Author <author@email>
13462306a36Sopenharmony_ci  Reviewed-by: Reviewer <reviewer@email>
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ciSi usted es un colaborador por primera vez, se recomienda que el parche en
13762306a36Sopenharmony_cisi sea examinado por otros en privado antes de ser publicado en listas
13862306a36Sopenharmony_cipúblicas. (Esto es necesario si se le ha dicho explícitamente que sus parches
13962306a36Sopenharmony_cinecesitan una revisión interna más cuidadosa.) Se espera que estas personas
14062306a36Sopenharmony_citengan su etiqueta “Reviewed-by” incluida en el parche resultante. Encontrar
14162306a36Sopenharmony_ciotro desarrollador con conocimiento de las contribuciones a Linux, especialmente
14262306a36Sopenharmony_cidentro de su propia organización, y tener su ayuda con las revisiones antes de
14362306a36Sopenharmony_cienviarlas a las listas de correo publico tiende a mejorar significativamente la
14462306a36Sopenharmony_cicalidad de los parches resultantes, y reduce así la carga de otros desarrolladores.
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ciSi no se puede encontrar a nadie para revisar internamente los parches y necesita
14762306a36Sopenharmony_ciayuda para encontrar a esa persona, o si tiene alguna otra pregunta relacionada
14862306a36Sopenharmony_cicon este documento y las expectativas de la comunidad de desarrolladores, por
14962306a36Sopenharmony_cifavor contacte con la lista de correo privada Technical Advisory Board:
15062306a36Sopenharmony_ci<tech-board@lists.linux-foundation.org>.
151