Si sabes lo suficiente de programación en C++ y en descifrar la compilación en teoria se podria modificar el SO, pero es muy dificil. Lo que te da el hecho de tener un SO de codigo abierto es obtener una infinidad de programas disponibles, que son desarrollados por TODO el mundo incluyendote a ti o a mi.
En general un codigo abierto implica una mejora continua de las caracteristicas del SO porque todo el mundo es el desarrollador; no como symbian y microsoft que tienen un equipo de desarrolladores lo cual los limita bastante.