Sistemas operativos de código abierto

De Departamento de Informatica
Saltar a: navegación, buscar

Un sistema operativo de código abierto se refiere a grandes rasgos a aquel en el que el código fuente se encuentra disponible para la consulta por parte de cualquier usuario.

Contenido

Concepto

Logotipo de Open Source

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.
  • 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
  • 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).
  • 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.

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

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.

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

Versiones anteriores a la 2.6

Las versiones del núcleo se numeraban con 3 numeros, de la siguiente forma: AA.BB.CC

  • AA: Indicaba la serie/versión principal del núcleo. Solo han existido la 1 y 2. Este número cambiaba cuando la manera de funcionamiento del kernel había sufrido un cambio muy importante.
  • BB: Indicaba si la versión era de desarrollo ó de producción. Un número impar, significaba que era de desarrollo, uno par, que era de producción.
  • CC: Indicaba nuevas revisiones dentro de una versión, en las que lo único que se habia modificado eran fallos de programación.

Ejemplo:

  • versión del núcleo 2.4.0: Núcleo de la serie 2, versión de producción 4, primera versión de la serie 2.4
  • versión del núcleo 2.5.0: versión 0 del núcleo de desarrollo 2.5.

Versión 2.6 y posteriores

Con la versión 2.6 del núcleo, el sistema de numeración así como el modelo de desarrollo han cambiado.Ya no existen versiones de produccion y desarrollo.

Las versiones del núcleo se numeran hoy en dia con 4 digitos, de la siguiente forma: AA.BB.CC.DD.

  • AA: Indica la serie/versión principal del núcleo.
  • BB: Indica la revision principal del núcleo. Numeros pares e impares no tienen ningun significado hoy en dia.
  • CC: Indica nuevas revisiones menores del núcleo. Cambia cuando nuevas caracteristicas y drivers som soportados.
  • DD: Este digito cambia cuando se corrigen fallos de programación o fallos de seguridad dentro de una revisión.

¿Dónde conseguir uno?

El núcleo denominado "vanilla" (sin alteraciones y suministrado por Linus Torvalds) se puede bajar de un gran número de servidores en internet pero el sitio oficial es [7]. En este enlace tienes la lista internacional oficial de servidores espejos, de donde es posible bajarse cualquier versión del núcleo.[6]

Tema investigación

Ejemplos detallados de sistemas operativos con microkernel

Referencias

  1. [1]. Open Source Initiative
  2. [2]The Open Source Definition
  3. [3] Free Software Fundation.
  4. [4]. DistroWatch. Indice de todos los sistemas operativos linux, estadísticas de uso, caracteristicas, capturas de pantalla de versiones actuales.
  5. [5]. What is Linux?
  6. [6]Lista Internacional Oficial de Servidores Espejos para descargar cualquier versión del kernel.
Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas