4082
Para resolver estas y muchas otras cuestiones se ha presentado "Linux Kernel Development: How Fast is it Going, Who is doing it and Who is Sponsoring it?", un estudio que ha llevado a cabo la Linux Foundation con la sana intención de acercar al común de los mortales detalles poco conocidos del sistema del pingüino. Análisis de www.linux-foundation.org/publications/linuxkerneldevelopment.php
menéame
www.linux-foundation.org/publications/linuxkerneldevelopment.php (Who is sponsoring the work? ) verás que solo el 13% de los cambios que ha recibido Linux en su última versión han sido por gente que colabora de forma altruista.
Y bueno, los desarrolladores de Linux también necesitan comer. Que siempre se dice free!=gratis, que siempre se dice que se puede vivir de desarrollar código libre, pero después, cuando la gente vive de ello se dice "esto ya no es lo que era", como si fuera malo que la gente ganara dinero por trabajar con S.L.
Entre la gente que no cobra, sale tan alto porque supongo que valorarán todos los reportes de bugs.
Desde luego si tienes nivel como para contribuir al kernel no te falta trabajo, puedes aceptar dinero de cualquier empresa que te pague por mejorar el kernel.
#1, Es posible por lo que le explico a #9, si te apuntas a cualquier lista del kernel , veras como antes de aplicar un cambio se hacen un monton de verificaciones, entre otras:
1) Se saca un RFC (request for comments) de la modificacion propuesta.
2) Una vez discutido/aprobado, se añade al repositorio y se empiezan las pruebas
3) Si el mantenedor ve que el parche aportado respeta formatos, y es coherente, etc lo añade
4) Se prueba a ver si compila correctamente y no corrompe otras areas
5) Un monton de gente hace pruebas de esa nueva area
6) Si se dedice que la "novedad" es estable y util...se saca en la proxima release.
(Repito: Los pasos descritos son muy a grosso modo...pero por norma general suele ser asi).
Lo que me preocupa es que hay gente que dice apoyar el software libre y no entiende como funciona. Ni es que el se tenga que trabajar gratis, ni que la gente cobre por trabajar en esto es malo.
Como he explicado varias veces por aqui, yo trabajo con linux embedded sobre plataformas ARM9, y me ha tocado contribuir con codigo (muy basico) varias veces en el kernel, un ejemplo, un chip de PHYTER que teniamos que emplear en un desarrollo no estaba soportado,y nos vimos en la necesidad de modificar el driver actual para añadir soporte a nuestro chip, lo envie, se acepto y ahora forma parte del kernel.
Que he obtenido de esto?
1) Ahora mi chip esta soportado por defecto en el kernel, por tanto si actualizo mi plataforma a un nuevo kernel no tengo que preocuparme por re-parchear (tened en cuenta que si se modifica alguna cosa es posible que afecte al funcionamiento de tu parche y tengas que rehacerlo).
2) Al aportar el codigo, como 3 tios que tenian el mismo problema que yo, lo probaron y me añadieron a su vez un par de correcciones. (Me he ahorrado dolores de cabeza depurando...o peor aun, encontrarme con que saco algo a produccion y tiene un bug inermitente oculto)
Conclusion
¿Me pagan por programar para el kernel? NO, pero me gano la vida gracias al kernel y el hecho de que mi codigo este soportado me ahorra MUUUUUCHO dinero, asique tengo ya un beneficio directo.
¿He trabajado gratis, dando a otros solucionado lo que a mi me ha costado?, aparentemente si, pero la realidad es que si no existiese el kernel como tal, yo no tendria este trabajo y punto.
A ver si empezamos a entender que no todo se resume a sentar a un tio en una mesa y decirle "programa para el kernel" y luego pagarle, casi toda la gente que hace cosas en el kernel lo hace profesionalmente para su propio beneficio que termina siendo (por el caracter abierto del codigo) un beneficio para la comunidad.
¿Alguien de menéame ha hecho aportaciones de código para el kernel?
PD: Qué casualidad #12 te has adelantado.
Como comento en #12, yo he añadido codigo, y estoy MUUUUUY lejos de ser un guru de la programacion, es mas creo que soy bastante mediocre.
Hay drivers sencillitos que se pueden modificar de forma facil, añadir soporte a nuevas "placas" (boards), es muy sencillo si mas o menos sabes como va, etc...el soporte para nuevos dispositivos i2c es bastante simple y un monton de cosas mas.
a ver si tomais notas, karmawhores de linux