12
¿Qué significa open source o código abierto? La mayoría del software que compras o te descargas de Internet, solo viene en un formato ya compilado y preparado para usar. Cuando hablamos de compilado, nos referimos a que el código del programa informático que creó el diseñador, conocido como código fuente, ha sido pasado por un programa especial llamado compilador, que traduce el código fuente en un formato que el ordenador puede entender. Es extremadamente difícil modificar la versión compilada de la mayoría de las aplicaciones, y casi imposible ver como el diseñador del programa creo las diferentes partes del software. Muchos fabricantes de software comerciales ven esto como una ventaja que previene que otras compañías puedan copiar el código y usarlo en un producto competitivo. También les da un control sobre la calidad y las funciones que se pueden encontrar en un producto en particular. Un software open source, o de código abierto en español, es todo lo contrario de lo que hemos expuesto. El código fuente es incluido con la versión compilada, y la modificación o personalización de este código es algo que se ve con buenos ojos. Los desarrolladores de software que soportan el concepto de open source, creen que permitiendo a cualquiera que esté interesado en modificar el código fuente, la aplicación será más útil y más perfecta a la larga. Para que un software sea considerado como open source por la industria, se necesita seguir algunos criterios: El programa debe ser distribuido de forma gratuita.

Qué Significa Open Source o Código Abierto

Embed Size (px)

DESCRIPTION

open source

Citation preview

Page 1: Qué Significa Open Source o Código Abierto

¿Qué significa open source o código abierto?

La mayoría del software que compras o te descargas de Internet, solo viene en un formato ya compilado y preparado para usar. Cuando hablamos de compilado, nos referimos a que el código del programa informático que creó el diseñador, conocido como código fuente, ha sido pasado por un programa especial llamado compilador, que traduce el código fuente en un formato que el ordenador puede entender.

Es extremadamente difícil modificar la versión compilada de la mayoría de las aplicaciones, y casi imposible ver como el diseñador del programa creo las diferentes partes del software. Muchos fabricantes de software comerciales ven esto como una ventaja que previene que otras compañías puedan copiar el código y usarlo en un producto competitivo. También les da un control sobre la calidad y las funciones que se pueden encontrar en un producto en particular.

Un software open source, o de código abierto en español, es todo lo contrario de lo que hemos expuesto. El código fuente es incluido con la versión compilada, y la modificación o personalización de este código es algo que se ve con buenos ojos. Los desarrolladores de software que soportan el concepto de open source, creen que permitiendo a cualquiera que esté interesado en modificar el código fuente, la aplicación será más útil y más perfecta a la larga.

Para que un software sea considerado como open source por la industria, se necesita seguir algunos criterios:

El programa debe ser distribuido de forma gratuita.

El programa funcional debe venir con su código fuente sin compilar.

Cualquiera tiene permiso para modificar el código fuente.

Las versiones modificadas pueden ser distribuidas.

La licencia no debe requerir la exclusión de otro software o interferir con el funcionamiento de otros programas.

Echemos un vistazo a un ejemplo en de vida real sobre software de código abierto. En 1991, Linus Torvald, un estudiante de la universidad de Helsinki en Finlandia, desarrolló un nuevo sistema operativo basado en Minix, un derivado de Unix. Llamó a este OS Linux. Torvald publicó el sistema

Page 2: Qué Significa Open Source o Código Abierto

operativo Linux bajo GNU o licencia pública general, la cual provee de una buena definición legal de un software de código abierto.

Mucha gente por todo el mundo se descargó Linux y empezó a trabajar con el. Muchos de los usuarios eran programadores ellos mismos y comenzaron a cambiar cosas en el código fuente que Torvald había incluido. Durante los siguientes tres años, Torvald recibió estas versiones modificadas de los otros programadores e incorporó muchos de los cambios en la versión oficial publicando una versión nueva del sistema operativo.

Una preocupación bastante habitual de usuarios que quieren usar software de código abierto, es la falta de garantías y soporte técnico. Al animar la licencia del software a realizar cambios, es casi imposible dar un soporte específico. Por este motivo, algunas distribuciones de Linux, como Red Hat, decidieron cobrar un mínimo por su sistema operativo a cambio de un soporte constante y fiable. Sin embargo, existen foros y sitios Web donde ofrecen soporte e incluso los mismos usuarios se ayudan entre si, dando solución a la mayoría de los problemas.

Otros ejemplos de open source en programas muy populares aparte de Linux, son Mozilla, referido al mundo de los buscadores Web, Apache para servidores Web, el lenguaje de scripting PERL, o el formato de gráImportancia de los Sistemas Operativos Open Source

Desde que en 1991 Linus Torvalds subió al servidor de FTP de la Universidad de Helsinki la versión 0.01 de Linux, con tan solo 10.000 líneas de código, el impulso que han venido tomando los sistemas operativos Open Source ha sido cada vez mayor. Esto es debido a que con el pasar del tiempo han sido más y más grandes las empresas que han mostrado su respaldo a este tipo de software, ejemplo de ello son Dell e IBM. Por esta razón GNU/Linux continua siendo uno de los sistemas operativos más utilizados en todo el mundo. Es enorme la cantidad de servidores Web, de correo u otros tipos que se mantienen funcionando gracias a distribuciones Linux.

Importancia de los Sistemas Operativos Open Source

PUBLICIDAD

Quien hace pocos años tuviera poca o ninguna esperanza en los sistemas operativos que no contaban con el apoyo de entidades comerciales, como es el caso de Microsoft con Windows o Apple con su Mac OS X, es seguro que a día de hoy ha cambiado de opinión viendo que estos sistemas ofrecen las mismas (o incluso más) utilidades y herramientas que el software privativo, de manera libre y gratuita. Gracias a esto el número de usuarios que utilizan sistemas de este tipo se incrementa de manera asombrosa.

Page 3: Qué Significa Open Source o Código Abierto

La comunidad mundial de internet es la que permite que estos sistemas sobrevivan y evolucionen de la manera en que lo hacen. Son miles los individuos que sin interés alguno participan activamente en el desarrollo de aplicaciones, herramientas, librerías/bibliotecas (de código) y documentación, invirtiendo muchas horas y esfuerzo. Aunado a ello están las empresas que apuestan por un sistema libre, aportando recursos en inversión, ya que esta es la única manera de poder competir con los sistemas operativos comerciales.

Otro de los motores que impulsa un la actualidad a los sistemas operativos Open Source es el hecho de que cientos de entidades gubernamentales trabajan en importantes proyectos bajo el modelo GNU/Linux. En gran cantidad de oportunidades son las Universidades de todo el mundo quienes lo emplean para el desarrollo comercial e investigaciones.

Por último, pero no menos importante, se encuentra la seguridad, y es que es difícil pensar que con tanta gente trabajando en el desarrollo del mismo sistema este pueda tener un grado aceptable de seguridad. Pero lo cierto es que siendo un sistema libre, todos pueden tener acceso al código y ante un problema, cualquiera puede proponer una solución inmediata. Es bien sabido que todos los sistemas comerciales o libres presentan problemas de seguridad, la gran diferencia es que el Open Source no los oculta, porque esta manera de actuar le garantiza resolverlos de una forma rápida y a la vista de todos.

Actualmente el Open Source parece estar ganando la batalla en el terreno de los dispositivos móviles como los Smartphone o las Tabletas. Android (que se basa en Linux) es, hoy por hoy, el sistema más popular entre los usuarios de esta clase de tecnología, razón por la cual han entrado competidores como Firefox OS, Ubuntu touch, CyanogenMod (una versión modificada de Android) y Sailfish OS, un nuevo sistema que está disponible con los Smartphone Jolla.ficos PNG. Todos están basados en código abierto y son conocidos mundialmente.

í, lo se, Chrome OS no es open source pero está basado en Chromium OS, proyecto que sí lo es. Chrome OS es el sistema operativo de los Chromebook, el portátil de Google. Avanzando poco a poco, la venta de estos ordenadores aumentó un 79% en el 2014, principalmente en el sector de la educación. No es de extrañar, pues es un producto bastante asequible para las escuelas y en mi opinión, una gran opción también para estudiantes que quieren llevase el PC a clase, ya sea para tomar apuntes o para hacer otros trabajos.

Están trabajando en traer herramientas como Photoshop e incluso aplicaciones de Android, si siguen así van a conseguir hacer de los Chromebook una plataforma muy interesante.

Page 4: Qué Significa Open Source o Código Abierto

Open Source (en español Código Abierto) es el término con el cual se conoce al software distribuido y

desarrollado libremente. Se utilizó por primera vez en 1998 por usuarios de la comunidad del software

libre, tratando de utilizarlo como reemplazo del ambiguo nombre original en inglés del software libre

(Free Software). El código abierto tiene un punto de vista más orientado a los beneficios prácticos de

compartir el código que a las cuestiones morales y/o filosóficas las cuales destacan en el llamado

software libre.

En los sistemas operativos existen infinidad de aplicaciones con estas caracteristicas. El objetivo es

contar con un sistema integro y completo, que ofrezca el mismo potencial de un sistema comercial, y

normalmente proporciona un numero mayor de herramientas, aplicaciones y software en general, mayor

que los sistemas operativos comerciales.

Open Source

La idea detrás de Open Source es que cuando los programadores en internet pueden modificar y

redistribuir el código fuente de un programa, éste evoluciona, se desarrolla y mejora. Esto se debe a que

los usuarios logran adaptarlo a sus necesidades, corrigen sus errores a una increible velocidad, mayor a

la aplicada en el desarrollo de software convencional o cerrado, dando como resultado el desarrollo de

un mejor software.

La filosofía del Open Source centra su atención en la premisa de que al compartir el código, el programa

resultante tiende a ser de calidad superior al software propietario, es una visión meramente técnica. Por

otro lado, el Software Libre funciona bajo un ideal: el software propietario, al no poder compartirse, es

antiético dado que prohibir compartir entre seres humanos va en contra de las leyes naturales.

Open Software Initiative

El movimiento Open Source (Open Source Initiative)[1] tiene un decálogo[2] que debe cumplir un código

para poder llamarse "Open Source":

Libre redistribución: el software debe poder ser regalado o vendido libremente.

Código fuente: el código fuente debe estar incluido u obtenerse libremente.

Trabajos derivados: la redistribución de modificaciones debe estar permitida.

Integridad del código fuente del autor: las licencias pueden requerir que las modificaciones sean

redistribuidas sólo como parches.

Sin discriminación de personas o grupos: nadie puede dejarse fuera.

Page 5: Qué Significa Open Source o Código Abierto

Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser excluidos.

Distribución de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa.

La licencia no debe ser específica de un producto: el programa no puede licenciarse solo como

parte de una distribución mayor.

La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software

que sea distribuido con el software abierto deba también ser de código abierto.

La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de la licencia por

medio de un acceso por clic de ratón o de otra forma específica del medio de soporte del software.

Free Software v/s Open Source

Tanto Open Source como Free Software son movimientos sociales, preocupados sobre lo que

puedes o debes poder hacer (derechos) con los programas (software). Tienen diferencias filosóficas

pero pocas diferencias practicas.

Free Software tiene una visión moral, “el software debería ser libre”, Open Source tiene una visión

practica, “el software es mejor si su código es abierto“.

Free Software se refiere a Software Libre (no software gratis) y está basado en fundamentos

morales. Las libertades a la que apunta son a que puedas utilizar un programa pero también puedas

copiarlo, distribuirlo, estudiarlo o modificarlo sin restricción. En su visión, limitar estas libertades es

inmoral.

Open Source se refiere al acceso al código del software, el distribuir el código fuente del software

promueve, según los defensores del open source, software de mejor calidad, más confiable, seguro

y creativo, el cual evoluciona de forma más rápida y orientado a satisfacer las necesidades de sus

usuarios.

Richard Stallman, fundador de GNU y la Free Software Fundation

Page 6: Qué Significa Open Source o Código Abierto

Como ejemplo, un defensor del Free Software frente a Windows diría algo como “Este software es

inmoral, ya que no tengo derecho a ver lo que hace en mi computador” y un defensor del Open

Source diría “Este software es de mala calidad ya que pocas personas han participado de su

desarrollo y depende de una sola empresa (Microsoft) para evolucionar”

Ni Free Software ni Open Source tienen problemas con que la gente venda software, la venta eso si

no es una licencia de software sino que se vende el servicio de entregar el software (muchas veces

se vende empaquetado, con manuales, instalado u otro valor agregado).

Tanto para Free Software como para Open Source, si vendes un software hecho por ti o por otros,

no puedes restringir al comprador para que no pueda revenderlo o regalarlo y debes entregar el

código fuente y permitir sus modificaciones, para ser llamado Free Software u Open Source.

Las licencias de Software son el contrato entre dos personas (generalmente proveedor y usuario)

que describen y limitan los derechos y deberes sobre el uso del software.

Free Software Foundation [3], fundación que inició y lidera, hasta hoy, el movimiento Free Software,

fue creada en 1984 por Richard Stallman. Un gran aporte de Stallman fue la creación de la licencia

GPL (GNU General Public License) la cual asegura que cualquier software (licenciado bajo esa

licencia) proteja los derechos que permiten copiarlo, distribuirlo, estudiarlo o modificarlo sin

restricción, claro que cualquier modificación o software resultante deberá a su vez ser licenciado

bajo GPL.

La mascota del proyecto GNU es la cabeza de un ñu.

Los software licenciados bajo GPL se pueden vender, pero no evitar que el comprador los revenda

o regale. El negocio son los servicios (como consultoría, adaptación, soporte o entrenamiento) y no

la venta del producto.

Open Source nace a fines de los noventa por un grupo de participantes del movimiento Free

Software quienes ya no se sentían identificados con la radicalidad del movimiento y tenían

preocupaciones más practicas sobre la calidad de los software y sobre la construcción de nuevos

modelos de negocio para sostenerlo. Este grupo estaba formado entre otros por Linus Torvalds

(creador de Linux), Eric Raymond (autor del libro The Cathedral and the Bazaar) y Bruce Perens

(autor del termino Open Source).

Page 7: Qué Significa Open Source o Código Abierto

La licencia GPL (de la Free Software Foundation) cumple con las condiciones para llamarse Open

Source por lo cual el software licenciado con esa licencia es Open Source.

Los software en si no son ni Free Software ni Open Source, las licencias de los software son las que

pueden ser reconocidas por ambos movimientos como válidas para sus fines. De hecho la mayoría

de las licencias aceptadas por uno de los movimientos es aceptada por el otro.

Free Software opina que nunca deberías usar o crear software licenciado con una licencia que limite

los derechos antes mencionados.

Open Source opina que puedes ocupar software Open Source y no Open Source cuando quieras.

Ejemplos

Sistemas Operativos Open Source:

Ubuntu, Fedora, Mint, openSUSE, Debian, PCLinuxOS, Mandriva entre otros.[4]

Android de google, desarrollados para smartphones y tablets.

Linux

El pingüino Tux, mascota de Linux.

Linux es un Sistema Operativo que se desarrolló a partir del kernel creado por Linus Torvalds y que

incluye un gran número de programas y bibliotecas que hacen posible su utilización. Estos programas y

blibliotecas son posibles gracias al proyecto GNU. Linux se distribuye bajo licencia GNU General Public

License, por lo tanto el código fuente es accesible por cualquier persona.

Historia breve

Cuando Linus Torvalds se encontraba estudiando en la Universidad de Helsinki, usaba un sistema

operativo llamado “Minix”, el cual es una versión de UNIX, así Linux y otras personas enviaban

solicitudes para la corrección de errores o nuevas características a su autor Andrew Tanenbaum, pero

éste pensaba que no eran necesarias, es así como Linus decide crear su propio sistema operativo tal

que tome en cuenta las opiniones y sugerecia de los usuarios.

En la actualidad desarrolladores de todo el mundo colaboran con el desarrollo de Linux, junto con

empresas que cuentan con desarrolladores que ayudan en esta labor, es el caso de empresas

fabricantes de componentes de hardware para poder implementar los controladores para los dispositivos

que fabrican.

Page 8: Qué Significa Open Source o Código Abierto

Linus Torvalds

 

Andrew Tanenbaum

Algunas Características de Linux

Multitarea

Multiusuario

Multiplataforma: entre las que se cuentan Alpha AXP, Sun SPARC, Motorola 68000, PowerPC,

ARM,Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS,

Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa, Analog Devices

Blackfin [5]

Multiprocesador: Soporte para sistemas con mas de un procesador

Proteccion de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema

Consolas virtuales multiples

Compatible con POSIX

BSD UNIX

Beastie, mascota de FreeBSD

Page 9: Qué Significa Open Source o Código Abierto

Es un sistema opeativo derivado de UNIX junto con aportes de la Universidad de California en Berkeley.

En los primeros años de UNIX, se autorizó a algunas universidades como la Universidad de California

en Berkeley a utilizar el código fuente y adaptarlo a sus necesidades, es así como Berkeley lo utilizo

para investigaciones en materias de sistemas operativos. Después, cuando se le retiro el permiso de

uso a la universidad por motivos comerciales, la universidad motivó la creación de un sistema operativo

inspirado en el sistema unix con los aportes que ellos habían realizado, es así como nace BSD(Berkeley

Software Unix).

Características de BSD UNiX

Multiusuario

Multitarea

Multiproceso

Compatible con POSIX

Multiplataforma: amd64, ARM, i386, ia64, MIPS, pc98, ppc, sparc64,xbox

Darwin

Darwin es el sistema que subyase en Mac OS X, la cual lanzó su versión final el año 2001 para

funcionar el computadoras Macintosh.

Integra el micronúcleo Mach y servicios de sistema operativo de tipo Unix basados en BSD 4.4, los

cuales proporcionan estabilidad y mejor rendimiento en comparación con anteriores versiones de Mac

OS.

Es una evolución del sistema operativo NEXSTEP, que se basa en el nucleo Mach 2.5 y BSD 4.3, el

cual fue desarrollado po NeXT en 1989 para correr en ordenadores NeXT, llamados "black boxes xxx".

Fue comprado en diciembre de 1996 por Apple Computer.

Características de Darwin

Darwin proporciona a Mac OS X prestaciones modernas como:

Multiplataforma: PowerPC,x86,ARM

Memoria Protegida.

Multitarea por desalojo o expulsiva.

Gestión avanzada de memoria.

Multiproceso Simétrico

Kernel

El Kernel o núcleo de linux es el corazón de este sistema operativo, es el encargado de software y

hadware puedan trabajar en conjunto.

Entre sus funciones está:

Administrar la memoria para todos los programas y procesos en ejecución.

Administrar el tiempo de procesador que los programas y procesos en ejecucion utilizan.

Se encarga de permitir cómodamente a los periféricos/elementos del ordenador.

Page 10: Qué Significa Open Source o Código Abierto

Antes del desarrollo de la serie 2.6 del núcleo, existían dos versiones de este:

Versión de desarrollo

Versión experimental, utilizada por los desarrolladores para programa, comprobar y verificar nuevas

características y correcciones entre otras. Estos núcleos solían ser inestables y no se debian utilizar sin

saber lo que se hacía.

Versión de Producción

Versión estable hasta el momento: Era el resultado final de las versiones en desarrollo o

experimentales. Cuando el equipo de desarrollo decidía que tenian una version estable y de suficiente

calidad, se lanzaba esta versión de producción, la cual se debía utilizar en el uso normal del sistema, al

ser la versión mas estable y con menos fallos en el momento de su lanzamiento.

Funcionamiento del Kernel de Linux

Interpretación del número de versión