domingo, 15 de julio de 2007

Software Libre

Software libre (en inglés free software) es el software que, una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente. El software libre suele estar disponible gratuitamente, pero no hay que asociar software libre a software gratuito, o a precio del coste de la distribución a través de otros medios; sin embargo no es obligatorio que sea así y, aunque conserve su carácter de libre, puede ser vendido comercialmente. Análogamente, el software gratis o gratuito (denominado usualmente freeware) incluye en algunas ocasiones el código fuente; sin embargo, este tipo de software no es libre en el mismo sentido que el software libre, al menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.

No debe confundirse "software libre" con software de dominio público. Éste último es aquél por el que no es necesario solicitar ninguna licencia y cuyos derechos de explotación son para toda la humanidad, porque pertenece a todos por igual. Cualquiera puede hacer uso de él, siempre con fines legales y consignando su autoría original. Este software sería aquél cuyo autor lo dona a la humanidad o cuyos derechos de autor han expirado. Si un autor condiciona su uso bajo una licencia, por muy débil que sea, ya no es dominio público. En resumen, el software de dominio público es la pura definición de la libertad de usufructo de una propiedad intelectual que tiene la humanidad porque así lo ha decidido su autor o la ley tras un plazo contado desde la muerte de éste, habitualmente 70 años.

Libertades del Software Libre

De acuerdo con tal definición, el software es "libre" si garantiza las siguientes libertades:

  • "libertad 0", ejecutar el programa con cualquier propósito (privado, educativo, público, comercial, militar, etc.)
  • "libertad 1", estudiar y modificar el programa (para lo cual es necesario poder acceder al código fuente)
  • "libertad 2", copiar el programa de manera que se pueda ayudar al vecino o a cualquiera
  • "libertad 3", Mejorar el programa y publicar las mejoras

Es importante señalar que las libertades 1 y 3 obligan a que se tenga acceso al código fuente. La "libertad 2" hace referencia a la libertad de modificar y redistribuir el software libremente licenciado bajo algún tipo de licencia de software libre que beneficie a la comunidad.

Ciertos teóricos usan este cuarto punto (libertad 3) para justificar parcialmente las limitaciones impuestas por la licencia GNU GPL frente a otras licencias de software libre, sin embargo el sentido original es más libre, abierto y menos restrictivo que el que le otorga la propia GNU GPL.

La licencia GNU GPL posibilita la modificación y redistribución del software, pero únicamente bajo esa misma licencia. Y añade que si se reutiliza en un mismo programa código "A" licenciado bajo licencia GNU GPL y código "B" licenciado bajo otro tipo de licencia libre, el código final "C", independientemente de la cantidad y calidad de cada uno de los códigos "A" y "B", debe estar bajo la licencia GNU GPL.

En la práctica esto hace que las licencias de software libre se dividan en dos grandes grupos, aquellas que pueden ser mezcladas con código licenciado bajo GNU GPL (y que inevitablemente desaparecerán en el proceso, al ser el código resultante licenciado bajo GNU GPL) y las que no lo permiten al incluir mayores u otros requisitos que no contemplan ni admiten la GNU GPL y que por lo tanto no pueden ser enlazadas ni mezcladas con código gobernado por la licencia GNU GPL.

Esta situación de incompatibilidad, que podría ser resuelta en la próxima versión 3.0 de la licencia GNU GPL (en desarrollo), causa en estos momentos graves perjuicios a la comunidad de programadores de software libre, que muchas veces no pueden reutilizar o mezclar códigos de dos licencias distintas, pese a que las libertades teóricamente lo deberían permitir.

En el sitio web de la FSF hay una lista de licencias que cumplen las condiciones impuestas por la GNU GPL y otras que no.

En el sitio web de la OSI está la lista completa de las licencias de software libre actualmente aprobadas y tenidas como tales.

El término software no libre se emplea para referirse al software distribuido bajo una licencia de software más restrictiva que no garantiza estas cuatro libertades. Las leyes de la propiedad intelectual reservan la mayoría de los derechos de modificación, duplicación y redistribución para el dueño del copyright; el software dispuesto bajo una licencia de software libre rescinde específicamente la mayoría de estos derechos reservados.

La definición de software libre no contempla el asunto del precio; un eslogan frecuentemente usado es "libre como en libertad, no como en cerveza gratis" o en inglés "Free as in freedom, not as in free beer" (aludiendo a la ambigüedad del término inglés "free"), y es habitual ver a la venta CDs de software libre como distribuciones Linux. Sin embargo, en esta situación, el comprador del CD tiene el derecho de copiarlo y redistribuirlo. El software gratis pude incluir restricciones que no se adaptan a la definición de software libre —por ejemplo, puede no incluir el código fuente, puede prohibir explícitamente a los distribuidores recibir una compensación a cambio, etc—.

Para evitar la confusión, algunas personas utilizan los términos "libre" (Libre software) y "gratis" (Gratis software) para evitar la ambigüedad de la palabra inglesa "free". Sin embargo, estos términos alternativos son usados únicamente dentro del movimiento del software libre, aunque están extendiéndose lentamente hacia el resto del mundo. Otros defienden el uso del término open source software (software de código abierto, también llamado de fuentes abiertas). La principal diferencia entre los términos "open source" y "free software" es que éste último tiene en cuenta los aspectos éticos y filosóficos de la libertad, mientras que el "open source" se basa únicamente en los aspectos técnicos.

En un intento por aunar los mencionados términos que se refieren a conceptos semejantes, se está extendiendo el uso de la palabra "FLOSS" con el significado de "Free - Libre - Open Source Software" e, indirectamente, también a la comunidad que lo produce y apoya.

Codigo Fuente

El código fuente puede definirse como:

  • Un conjunto de líneas que conforman un bloque de texto, escrito según las reglas sintácticas de algún lenguaje de programación destinado a ser legible por humanos.
  • Un Programa en su forma original, tal y como fue escrito por el programador, no es ejecutable directamente por el computador, debe convertirse en lenguaje de maquina mediante compiladores, ensambladores o intérpretes.


Normalmente está destinado a ser traducido a otro código, llamado código objeto, ya sea lenguaje máquina nativo para ser ejecutado por una computadora o bytecode para ser ejecutado por un intérprete.

Este proceso se denomina compilación y permite la realización de programas.

El proceso de formateado del código fuente para ayudar a su legibilidad se denomina estilo de programación.

Etapas

Etapas en la compilación:

A diferencia del código objeto, el código fuente es texto simple, capaz de ser leído por cualquier editor de textos. En él están escritos los pasos que deberá realizar la computadora. Tener el código fuente es vital si se necesita modificar el programa.

El término de código fuente también se usa para el código de otros lenguajes, como los de marcado de textos, como el HTML, que posteriormente son interpretados por un programa especializado, en este caso el navegador web, para su lectura.

Linux vs Windows

¿Qué Pueden Leer los Servidores Linux?

Todos los archivos comerciales: FLASH™, Shockwave™, FrontPage™, imágenes (PNG, GIFF, JPG), DHTML, XHTML, así como todos los lenguajes y aplicaciones tales como HTML, PHP, MySQL, etc. Existen módulos que permiten que un servidor Linux lea lenguajes no nativos de dicho sistema con lo cual también pueden leer ASP y otros.

¿Qué ventajas tiene Linux sobre Windows?

Es más seguro

  • Ya que la gran mayoría de los ataques de hackers son dirigidos a servidores Windows al igual que los virus los cuales se enfocan principalmente a servidores con éste sistema operativo.
  • La plataforma Linux es más robusta lo cual hace más difícil que algún intruso pueda violar el sistema de seguridad de Linux.

Es más rápido

  • Al tener una plataforma más estable, ésto favorece el desempeño de aplicaciones de todo tipo tales como: bases de datos, aplicaciones XML, multimedia, etc.
  • La eficiencia de su código fuente hace que la velocidad de las aplicaciones Linux sean superiores a las que corren sobre Windows lo cual se traduce en velocidad de su página.

Es más económico

  • Ya que requieren menor mantenimiento. En servidores windows es más costoso debido a que es necesaria una frecuente atención y monitoreo contra ataques de virus, hackers y errores de código, instalación y actualización de parches y service packs.
  • El software Linux así como también un sin número de aplicaciones son de código abierto (gratuitos).
  • No requieren supervisión tan estrecha ni pagos de pólizas de mantenimiento necesarias para obtener los Service Packs.

¿Qué ventajas tiene Windows sobre Linux?
Es más fácil

  • Al ser de mayor facilidad de uso Windows en este momento continúa siendo el sistema operativo más comercial lo cual se refleja en la disponibilidad de aplicaciones, facilidad de mantenimiento así como soporte en el desarrollo de nuevas aplicaciones, puntos que pueden ser cruciales en la elección de servidores que corren aplicaciones web.

Aplicaciones desarrolladas en menor tiempo

  • Fruto de la inversión realizada por Microsoft y aunado a una comunidad de programadores cada vez más grande se ha logrado facilitar el desarrollo de aplicaciones y sistemas que corran sobre servidores Windows lo cual se ve reflejado en tiempos de desarrollo menores.
  • La curva de aprendizaje en el sistema Windows es mucho menor.
  • Ofrecemos una gran variedad de planes de hospedaje Linux y Windows así como también la posibilidad que usted diseñe un plan a la medida de sus necesidades, ¡Solicítelo sin costo adicional! Compruebe que la velocidad y calidad no necesariamente están peleadas con el precio.