Cita:
Iniciado por MaxExtreme (...) Vamos a ver, Mono es una copia íntegra de todo el framework .NET, que tiene como objetivo permitir que aplicaciones .NET, en teoría sólo de Windows, se ejecuten en otros sistemas operativos.
No exactamente.
MONO es una
reimplementación, lo que significa que sus autores crearon una implementación nueva
sin copiar ni una línea del código original de .NET (que, de hecho, no está disponible).
¿Y cómo lo hicieron? Pues simplemente siguiendo las especificaciones de .NET, ya que es un estandar ECMA, lo que significa que cualquiera puede crear implementaciones para cualquier sistema operativo. Y un estándar no puede volverse "cerrado" de un día para otro.
Los posibles problemas para MONO pueden venir si Microsoft decide demandarlos por infringir patentes de alguna de las partes de la implementación. Si eso se comprueba, simplemente habrá que eliminar esa parte de MONO y reescribirla desde 0. Mala cosa, pero el resto de la implementación no tiene por qué sufrir.
Más peligroso que eso sería si Microsoft empezara a agregarle nuevas "funcionalidades" no-estándar a .NET y después protegiera esas funcionalidades bajo alguna patente (algo parecido a lo que hizo con las tecnologías para Internet Explorer, que no funcionaban en optro navegador). En ese caso, los programas que las utilicen seguramente no podrán funcionar en otra plataforma.
Hay un video en donde Miguel de Icaza explica todo lo anterior mucho mejor que yo. Cuando encuentre en link, lo posteo.