Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Re:Genial

    (Puntos:0)
    por pobrecito hablador el Lunes, 19 Octubre de 2009, 16:47h (#1180296)

    ¿O el proceso de compilación y enlazado te resulta tan ajeno que te vale decir cualquier cosa?
    Por fortuna no. El proceso de enlazado al que haces referencia consiste en la generación de un índice (varios realmente: en Windows son las tablas LDT y GDT, en Linux/ELF la GOT y PLT, etc.) con las direcciones de cada punto de entrada de la biblioteca que fue referenciado en tu programa.

    Este índice no es parte de la biblioteca sino que es generado por el enlazador y sus entradas fijadas por él o resueltas en tiempo de ejecución por el montador de enlaces (que es tanto como decir por el sistema operativo)

    La compilación, pues, genera un producto independiente: mi programa, que hace uso de las bibliotecas que son, desde el punto de vista del sistema productos independientes. También son productos independientes desde el punto de vista legal, ya que pueden ser licenciadas y distribuidas por separado.

    Puedo escribir otro programa que haga uso de la biblioteca y puedo escribir otra biblioteca que, respetando el "índice", funcione directamente con mi programa. Son igualmente independientes. Desensambla todo el código objeto de un programa y no encontrarás ni una línea que pertenezca a la biblioteca con la que enlace, salvo en el caso de templates, macros e inlines evidentemente.

    Cuando enlazas, el programa final es tu código + el código de la biblioteca.
    Ese es tu error. Ya has visto que el resultado del enlazado no es la unión de ambos y, cuando registras un programa en el registro de la propiedad intelectual, registras el código del programa, no el código de las bibliotecas que use (que además no puedes porque no eres su autor en este caso)

    Si tu código no incluye código de la biblioteca -- en el listado o en el código ensamblado porque la ley dice de cualquier forma -- no es obra derivada de la biblioteca. De la misma manera nadie puede decir que libro es obra derivada por incluir una referencia bibliográfica: debe incluir parte del original de alguna forma, ya sea adaptado, traducido, compendiado, etc. El libro no es una metáfora capciosa porque de hecho los programas de ordenador están equiparados a obras literarias en cuestiones de propiedad intelectual.

    Sobre el resto, he visto que has obviado dar una explicación de por qué, si las licencias de Microsoft prohíben las obras derivadas (en general) es posible distribuir programas GPL para Windows. Si el resultado de la compilación es tu código más el de la biblioteca está claro que se trata de una obra derivada y para su distribución es necesario el permiso del titular de los derechos de autor que, ya de antemano, no te lo concede en su licencia.

    [ Padre ]
  • 1 respuesta por debajo de tu umbral de lectura actual.