Unidad 3


SERVIDORES CON SOFTWARE LIBRE.

 

3.1 INTRODUCCIÓN

Como individuo, el software libre me da la opción de decidir libremente si lo quiero utilizar o bien escoger una opción propietaria. Si escojo la primera tendré muchas ventajas, pero si decido la segunda opción pagaré las consecuencias de una decisión que tomé libre y soberanamente, conociendo de antemano que existían otras opciones. No fuí obligado a escoger la opción propietaria, ejercí mis derechos. 

Como gobierno, yo tengo la obligación de escoger la opción que sea mejor para el país. Hace unos años, el software libre no era viable, pero ahora es una realidad. Como gobierno tengo la libertad de escoger entre dos opciones. Yo soy gobierno y voy a tomar las decisiones que no dañen a la sociedad civil ni a las instituciones. El software libre da libertad al gobierno para tomar decisiones conscientes y soberanas. Con el software propietario, sabemos que existen graves riesgos en la seguridad nacional, en el bienestar social y en la educación. Con el software libre, además de evitarse los riesgos anteriores, tenemos la oportunidad de trascender tecnológicamente y sobre todo, de tomar libre y soberanamente las decisiones. 

La realidad en la que se encuentran envueltas las diferentes personas, empresas, entidades gubernamentales e instituciones es sumamente compleja y restringida. Afortunadamente ha surgido una alternativa que permite la existencia de nuevos esquemas de desarrollo cultural y técnico basado en un nuevo modelo abierto y libre.

El esquema que explicaremos a continuación no solo pretende abarcar aspectos técnicos, sino que también puede ser implementado en cualquier actividad cotidiana. El espíritu que orienta esto es la "colaboración" y la "ayuda comunitaria". El ansia de continuo aprendizaje y ante todo la persecusión de ideales que pueden ser concretados.  

El modelo de Software Libre radica en el deseo de ayudar y ser ayudado. Por ejemplo, al escribir una novela, un escritor puede sentirse confundido y necesita ayuda, entonces le deja leer a sus gentes cercanas un capítulo para que le ayuden, en el proceso sus amigos aportan ideas e inclusive le ayudan a corregir su trabajo y es más, si su temática es atractiva le ayudan a escribir un nuevo segmento.  

En el mundo del desarrollo informático pasa algo similar. Una persona escribe un programa para resolver una necesidad específica, la comenta con otros y estos al ver que dicho programa también los beneficia, le ayudan a realizarlo. En el proceso, la propiedad intelectual no se vuelve una lucha de "egos", se transforma en un trabajo de todos y para todos; se generan líderes naturales con autoridad moral sobre el proyecto, pero nunca dueños.  

Un proceso tan diferente es difícil de asimilar. Es complicado asimilar que un puñado de locos quieren regalar el resultado de su esfuerzo, sus horas de vida, su talento en algo para los demás. Imagine por un momento que todos pensáramos enloquecidamente y regaláramos parte de nuestro trabajo. Imagine que ese trabajo se transforma en algo que beneficia a su país, imagine ahora que esa locura le permite a los pequeños empresarios y emprendedores tener herramientas que no tengan restricción de uso; que tengan los códigos fuentes (la esencia del cómo fueron hechos) a la mano; que si ven algún problema, lo corrijan; que al ver que su corrección sirve, lo devuelvan a la comunidad y continúen el ciclo sin fin de esta esquizofrénica aventura...
 

3.1.1. SOFTWARE (LIBRES CARACTERÍSTICAS).

Definamos antes que es un software libre y un software propietario:

El software libre es un programa o secuencia de instrucciones usada por un dispositivo de procesamiento digital de datos para llevar a cabo una tarea específica o resolver un problema determinado, sobre el cual su dueño renuncia a la posibilidad de obtener utilidades por las licencias, patentes, o cualquier forma que adopte su derecho de propiedad sobre él (o sea, el software libre puede estar licenciado, o protegido por una patente autoral), por lo que puede utilizarse o transferirse sin pago alguno al licenciante, o a su creador. Otra característica es que se encuentra disponible el código fuente del software, por lo que puede modificarse el software sin ningún límite, y sin pago a quien lo inventó o lanzó al mercado.

El opuesto del Software libre es el denominado software propietario, aquel que es imposible de utilizar en otro hardware, o terminal modificar, o transferir sin pagar derechos a su inventor o creador.

Para ello, quienes han patentado software libre, lo han hecho permitiendo las actividades recién nombradas. Así nace el Copyleft (el opuesto del Copyright de los derechos autorales), que es básicamente el principio de que cualquier modificación o cambio (“derivative works”), debe quedar disponible para el resto de la comunidad bajo el mismo licenciamiento original. Con ello se fomenta el trabajo colaborativo en el desarrollo de la informática.

También es importante recalcar algunos puntos importantes para un buen desarrollo del mismo:

·         El software se desarrolla o construye; no se manufactura en el sentido clásico. A pesar de que existen similitudes entre el desarrollo del software y la manufactura del hardware, las dos actividades serian diferentes en lo fundamental. En ambas la alta calidad se alcanza por medio del buen diseño, la fase de manufactura del hardware puede incluir problemas de calidad existentes en el software.  

·        El software no se desgasta. El software es inmune a los males ambientales que desgasten el hardware. Por lo tanto la curva de tasas de fallas para el software debería tener la forma de la “curva idealizada”. Los defectos sin descubrir causan tasas de fallas altas en las primeras etapas de vida de un programa. Sin embargo, los errores se corrigen y la curva se aplana: el software no se desgasta, pero si se deteriora.  

·        A pesar de que la industria tiene una tendencia hacia la construcción por componentes, la mayoría del software aun se construye a la medida. Un componente de software se debe diseñar e implementar de forma que puede utilizarse en muchos programas diferentes.

Características de un buen software  

·         Corrección.
·         Fiabilidad.
·         Eficiencia.
·         Integridad.
·         Facilidad de uso.
·         Facilidad de mantenimiento.
·         Flexibilidad.
·         Facilidad de prueba.
·         Portabilidad.
·         Facilidad de reuso.
·         Interoperabilidad.

3.1.2. HISTORIA Y EVOLUCIÓN.

El Software Libre es el software que se caracteriza por proporcionar en sus licencias el permiso para usarlo en cualquier máquina y en cualquier situación, para modificarlo, mejorarlo o corregirlo y para redistribuirlo libremente. Software libre no es software gratis, sino aquel que cumple con estas condiciones, si bien, no parece posible obtener contraprestación económica por él, como de hecho ocurre, siendo de coste cero la obtención de la práctica totalidad del software libre. Así pues, tenemos un concepto de software opuesto al software propietario con el que no se distribuye el código fuente, impidiendo así su modificación, y en cuyas licencias se indican los términos y las restricciones de uso y distribución, en ocasiones bastantes fuertes.

Lo que diferencia el software libre del software propietario no es el que dispongamos del código fuente del mismo, si bien esta es una condición necesaria para tener las libertades descritas anteriormente, ni el precio, la diferencia está en los términos de la licencia. 

Para comprender el nacimiento de este tipo de software nos tenemos que remontar al año 1979, cuando la Universidad de Berkeley distribuyó código de programas que ha desarrollado para el sistema operativo UNIX bajo una licencia denominada BSD (Berkeley Software Distribution), es la primera aparición en escena de lo que más tarde se denominará software libre. Estos primeros programas distribuidos bajo licencia BSD son utilidades para UNIX y entre ellas se encuentra una implementación de un protocolo de comunicaciones, el TCP/IP.

En 1980 la NSF (National Science Foundation) mejora el protocolo TCP/IP y comienza a utilizarlo para el intercambio de información entre ordenadores de universidades e investigadores de todo el mundo. Esta mejora de TCP/IP era abierta y se distribuía con el código fuente de su implementación, es el nacimiento de la red de Internet.

En 1984 aparece en escena una de las figuras más importante dentro del software libre, Richard Stallman, que lidera en este año un proyecto científico denominado GNU dentro del Instituto Tecnológico de Massachussets. Al año siguiente, aparece la primera versión de un sistema operativo denominado igual que el proyecto lanzado, GNU (Gnu’s not Unix). Este sistema operativo es gratuito y se distribuye junto con su código fuente bajo una licencia denominada Gnu Public License (GPL).

En este mismo año 1985, Richard Stallman crea la Free Software Foundation, y aparece la primera definición formal de Software Libre, proporcionada por la FSF: 

Un software es software libre cuando el usuario del mismo tiene estas cuatro libertades:

·         Libertad 0. Libertad de uso con cualquier propósito.
·         Libertad 1. Libertad de adaptación a sus necesidades.
·         Libertad 2. Libertad para distribuirlo.
·         Libertad 3. Libertad de mejora y libre distribución de estas mejoras.

No se dice explícitamente, pero para tener estas cuatro libertades el usuario debe disponer del código fuente de los programas.

En 1991, Linus Torvalds, un estudiante sueco de la universidad de Helsinky crea un kernel de sistema operativo denominado Linux, y un año más tarde, fruto de la colaboración con el proyecto GNU, aparece el sistema operativo GNU/Linux, que se denominó Linux, si bien, la mayor parte del código procedía del proyecto GNU de Stallman.

La siguiente fecha importante en la historia del software libre es 1997, cuando Eric Raymond publica el artículo “The Cathedral and the Bazaar”, en el Raymond explica con detalle como una serie de programadores trabajando en colaboración en su tiempo libre (Bazaar) pueden producir software de mayor calidad que los producidos por los talentos contratados por las grandes compañías de software (Cathedral). Las teorías expuestas en este artículo como las de liberar versiones del programa a menudo de forma que los usuarios puedan probar los programas y se obtengan pronto respuestas sobre su funcionamiento y que con un grupo muy amplio de programadores y usuarios, los problemas se identificarán con rapidez y la solución será obvia para alguien, hacen que las grandes compañías (IBM, Netscape, Sun, etc.) se fijen en el fenómeno del software libre y empiecen a colaborar con él. Raymond crea la OpenSource Inciative (OSI) (www.opensource.org). Con la aparición de la OSI aparece también una nueva definición de lo que se conoce como OpenSource (software de fuente abierta), mucho más elaborada, y que está en continua evolución, existiendo ya la versión 1.9 de esta definición. 

No existe una definición única de lo que denominamos software libre, tenemos la de la FSF, la de la OSI, también otras como la de la comunidad de Debian (DFSG). Todas estas definiciones se traducen en licencias de uso que llegan a un mayor o menor compromiso con uno u otro de los dos objetivos contradictorios en los que se basan todas sus licencias:

·         Garantizar a los usuarios una total libertad sobre el software distribuido.
·         Establecer restricciones de forma que se garantice que el software derivado o integrado siga siendo software libre.

Aunque cuando hacemos referencia a Software Libre no distinguimos entre si es Free Software u OpenSource, pero existen pequeñas diferencias entre las definiciones de la FSF, de la OSI y de Debian, derivadas del compromiso acordado entre los dos conceptos expuestos anteriormente, lo que hace que existan licencias aceptadas por uno pero no aceptadas por el otro. Pero estas diferencias son muy pequeñas, y en la práctica se pueden considerar similares los conceptos.

Hoy en día existe una división radical entre los partidarios y los no partidarios del software libre, existiendo posturas totalmente radicalizadas en ambos bandos que hace que los debates, artículos y ponencias acerca de las debilidades y fortalezas en los proyectos de software libre se vean empañados por esta lucha. Eric Raymond ha insistido en que el debate no debe ser si Windows o Linux o Microsoft o Red Hat, Suse, Debian, que el verdadero debate debe ser software de fuente cerrada frente a software de fuente abierta.


3.1.3. ESTRUCTURAS DEL SISTEMA OPERATIVO.

La organización de los sistemas operativos se puede establecer por capas , dependiendo de las funciones que el sistema operativo puede realizar.

Las funciones que puede realizar el sistema son:

·         Ejecución y control de aplicaciones o programas.
·         Gestión, Control y Administración de dispositivos o periféricos.
·         Gestión, Control y Administración de los usuarios.
·         Control de procesos.
·         Control de errores del sistema y programas.
·         Control y Gestión de la seguridad

Las capas en las cuales se puede estructurar básicamente un sistema son las siguientes:

·        Gestión del procesador (Nivel 1) 
Una parte del sistema operativo esta encargada de la gestión de la unidad central de proceso. El sistema operativo se encarga de gestionar la prioridad entre procesos. 

·       Gestión de la memoria (Nivel 2)
Una parte del sistema operativo esta encargada de la gestión y asignación de la memoria a los procesos o aplicaciones, impidiendo que las zonas de memoria ocupadas por aplicaciones no sean ocupadas por otras aplicaciones.
 
·        Gestión de procesos (Nivel 3)
Una parte del sistema operativo esta encargada de la gestión de procesos, iniciando, deteniendo y finalizando los mismos dependiendo del usuario o de las ordenes recibidas por el sistema operativo.  

·        Gestión Entrada/Salida y Almacenamiento (Nivel 4)
Una parte del sistema operativo esta encargada de la gestión de los procesos que establecen acciones con los dispositivos de almacenamiento o dispositivos de entrada y salida.  

·        Gestión de información (Nivel 5)
El sistema operativo gestiona archivos, directorios, atributos de los anteriores y otras características para identificar la información con la que trabaja el sistema operativo.
 

3.2. REQUERIMIENTOS DE INSTALACIÓN

 

3.3.1. MÉTODOS DE INSTALACIÓN.