Está en la página 1de 11

Software libre y Modalidades de licencias de software

El Software Libre es un asunto de libertad, no de precio. Para entender el concepto, se


debe pensar en libre como en libertad de expresión.

Software Libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir,
estudiar, cambiar y mejorar el software. De modo más preciso, se refiere a cuatro
libertades de los usuarios del software:

 La libertad de usar el programa, con cualquier propósito (libertad 0).


 La libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades
(libertad 1). El acceso al código fuente es una condición previa para esto.
 La libertad de distribuir copias, con lo que puedes ayudar a tu vecino (libertad
2).
 La libertad de mejorar el programa y hacer públicas las mejoras a los demás, de
modo que toda la comunidad se beneficie. (libertad 3). El acceso al código
fuente es un requisito previo para esto.

Un programa es software libre si los usuarios tienen todas estas libertades. Así pues,
deberías tener la libertad de distribuir copias, sea con o sin modificaciones, sea gratis o
cobrando una cantidad por la distribución, a cualquiera y a cualquier lugar. El ser libre
de hacer esto significa (entre otras cosas) que no tienes que pedir o pagar permisos.

También deberías tener la libertad de hacer modificaciones y utilizarlas de manera


privada en tu trabajo u ocio, sin ni siquiera tener que anunciar que dichas
modificaciones existen. Si publicas tus cambios, no tienes por qué avisar a nadie en
particular, ni de ninguna manera en particular.

La libertad para usar un programa significa la libertad para cualquier persona u


organización de usarlo en cualquier tipo de sistema informático, para cualquier clase de
trabajo, y sin tener obligación de comunicárselo al desarrollador o a alguna otra entidad
específica.

La libertad de distribuir copias debe incluir tanto las formas binarias o ejecutables del
programa como su código fuente, sean versiones modificadas o sin modificar (distribuir
programas de modo ejecutable es necesario para que los sistemas operativos libres sean
fáciles de instalar). Está bien si no hay manera de producir un binario o ejecutable de un
programa concreto (ya que algunos lenguajes no tienen esta capacidad), pero debes
tener la libertad de distribuir estos formatos si encontraras o desarrollaras la manera de
crearlos.

Para que las libertades de hacer modificaciones y de publicar versiones mejoradas


tengan sentido, debes tener acceso al código fuente del programa. Por lo tanto, la
posibilidad de acceder al código fuente es una condición necesaria para el software
libre.

Modalidades de licencias de software

La licencia es un contrato a través del cual el titular de los derechos sobre un software
original otorga al co-contratante el derecho de uso del mismo por un tiempo
determinado y a su vez, establece las reglas según las cuales éste (el software) deberá
ser utilizado.

Licencias tipo BSD

La licencia BSD (Berkeley Software Distribution)

La única obligación que exige es la de dar crédito a los autores, mientras que permite
tanto la redistribución binaria, como la de los códigos fuentes, aunque no obliga a
ninguna de las dos en ningún caso. Asimismo, da permiso para realizar modificaciones
y ser integrada con otros programas casi sin restricciones.

La Licencia Pública General de GNU (GNU GPL)

En líneas básicas, la licencia GPL permite la redistribución binaria y la de las fuentes,


aunque, en el caso de que redistribuya de manera binaria, obliga a que también se pueda
acceder a las fuentes. Asimismo, está permitido realizar modificaciones sin
restricciones, aunque sólo se pueda integrar código licenciado bajo GPL con otro código
que se encuentre bajo una licencia idéntica o compatible.

La Licencia Pública General Menor de GNU (GNU LGPL)

La LGPL permite el uso de programas libres con software propietario. El programa en


sí se redistribuye como si estuviera bajo la licencia GPL, pero se permite la integración
con cualquier otro software sin prácticamente limitaciones.

Licencias Copyleft

Es aquella cuyos términos de distribución no permiten a los redistribuidores agregar


ninguna restricción adicional. Quiere decir que cada copia del software, aun modificada,
sigue siendo como era antes.

Licencias Creative Commomns

Ofrece una serie de licencias, cada una con diferentes configuraciones o principios
como el derecho del autor original a dar libertad para citar su obra, reproducirla, crear
obras derivadas, ofrecerlo públicamente y con diferentes restricciones como no permitir
el uso comercial o respetar la autoría original.
El Software Libre es un tipo particular de software respecto del cual podemos decir:
Su respuesta :

Las libertades del software libre se refieren a poder ejecutar, copiar, distribuir, estudiar,
cambiar y mejorar el software

Correcto
Software Libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir,
estudiar, cambiar y mejorar el software.
El Software Libre es un tipo particular de software respecto del cual podemos decir:
Su respuesta :

Las libertades del software libre se refieren a poder ejecutar, copiar, distribuir, estudiar,
cambiar y mejorar el software

Correcto
Software Libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir,
estudiar, cambiar y mejorar el software.

 Integración: Existe mucho Software Libre especializado que necesita ser puesto en orden
con sistemas pegamento .
 Adaptación: El Software Libre permite su modificación absoluta, más allá del límite de
fábrica. Esta ventaja permite ofrecer soluciones personalizadas con una inversión bastante
menor.
 Migración: Un estudio de viabilidad de la sustitución de un sistema informático por otro
basado en Software Libre no es sencillo. Qué puede cambiarse y cómo se llevará a cabo son
cuestiones vitales.
 Formación: El Software Libre suele venir acompañado por nuevos productos y plataformas
que resultan desconocidos y demandan formación específica.
 Servicio sobre producto propio: El servicio asociado a un producto es la clave del éxito para
mantener la fidelidad de un cliente. En principio, nadie debería poder ofrecer mejor servicio que
el autor de la aplicación por mucho que este software sea libre y otros tengan acceso a él.
 Servicio sobre producto ajeno: La oportunidad de ofrecer servicio a un producto que no ha
sido desarrollado localmente pero que sí ofrece la oportunidad de estudiarlo a fondo amplía
enormemente el horizonte de negocio.
 Ámbito de servidores y redes: Buena parte del Software Libre ha sido desarrollado
conjuntamente a través de Internet por lo que las comunicaciones y los servicios de red han sido
siempre un factor fundamental en su gestación. El mundo de los servidores y las redes locales
encuentra robustez, flexibilidad y economía en el Software Libre.
 Ámbito de seguridad: El modelo de desarrollo del Software Libre permite que todo el
mundo pueda acceder al código fuente, descubriendo así fallos de seguridad mucho antes que en
otros sistemas. Además, la aplicación de parches de seguridad puede realizarse inmediatamente
por un tercero ya que dispone en todo momento del código fuente del programa afectado,
demostrando así la realidad del escenario «Servicio sobre producto ajeno», entre otros.
 Ámbito de entornos especializados: Sistemas empotrados, PDA's y otros dispositivos
pueden acceder a personalizaciones específicas gracias a la enorme modularidad del Software
Libre y su nulo compromiso con una única plataforma.
 Estándares abiertos: el Software Libre trabaja fundamentalmente con protocolos y
especificaciones abiertas lo que proporciona una mayor flexibilidad para adaptarse a entornos
foráneos y una tranquilidad para el cliente que sabe que nunca quedará enjaulado en una
tecnología propietaria.
 Ámbito de desktop: Desde hace unos años, el Software Libre dentro del apartado de los
sistemas operativos (GNU/Linux, familia BSD, OpenBeos, etc) ha protagonizado un salto de
gigante en la usabilidad en el escritorio. Incorpora programas de instalación/desinstalación de
utilidades, suites ofimáticas completas, herramientas multimedia, navegadores web, juegos, etc.

Frente a la lectura se puede decir:


Su respuesta :
Para los nuevos productos y plataformas del software libre se requiere formación
específica

Correcto
Formación: El Software Libre suele venir acompañado por nuevos productos y
plataformas que resultan desconocidos y demandan formación específica.

Act 3 : Reconocimiento Unidad I


De acuerdo a la lectura sobre la proyección del software libre podemos decir:
Su respuesta :

Aunque el software sea libre, quien ofrece el mejor servicio es el propio autor de la
aplicación
El trabajar con protocolos y especificaciones abiertas hace que los usuarios no queden
enjaulados en una tecnología propietaria

Correcto
Estándares abiertos: el Software Libre trabaja fundamentalmente con protocolos y
especificaciones abiertas lo que proporciona una mayor flexibilidad para adaptarse a
entornos foráneos y una tranquilidad para el cliente que sabe que nunca quedará
enjaulado en una tecnología propietaria.

Kernel
El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo.
Es el encargado de que el software y el hardware del computador puedan trabajar
juntos.

Las funciones más importantes del mismo, aunque no las únicas, son:

 Administración de la memoria para todos los programas y procesos en


ejecución.
 Administración del tiempo de procesador que los programas y procesos en
ejecución utilizan.
 Es el encargado de que podamos acceder a los periféricos/elementos de nuestro
ordenador de una manera cómoda.

Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de
versiones del núcleo:

· Versión de producción: La versión de producción, era la versión estable hasta el


momento. Esta versión era el resultado final de las versiones de desarrollo o
experimentales.

Cuando el equipo de desarrollo del núcleo experimental, decidía que tenia un núcleo
estable y con la suficiente calidad, se lanzaba una nueva versión de producción ó
estable. Esta versión era la que se debía utilizar para un uso normal del sistema, ya que
eran las versiones consideradas más estables y libres de fallos en el momento de su
lanzamiento.

 Versión de desarrollo: Esta versión era experimental y era la que utilizaban los
desarrolladores para programar, comprobar y verificar nuevas características,
correcciones, etc. Estos núcleos solían ser inestables y no se debían usar sin
saber lo que se hacia.

Como interpretar los números de las versiones de las series por debajo de la 2.6 :

· Las versiones del núcleo se numeraban con 3 números, 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 había
modificado eran fallos de programación.

· Unos ejemplos nos ayudaran a entenderlo mejor:

ej1 : versión del núcleo 2.4.0: Núcleo de la serie 2 (AA=2), versión de producción 4
(BB=4 par), primera versión de la serie 2.4 (CC=0)
ej2: versión del núcleo 2.4.1: Núcleo de la serie 2, versión 4, en el que se han corregido
errores de programación presentes en la version 2.4.0 (CC=1)
ej3: versión del núcleo 2.5.0: versión 0 del núcleo de desarrollo 2.5.

Con la serie 2.6 del núcleo, el sistema de numeración así como el modelo de desarrollo
han cambiado. Las versiones han pasado a numerarse con 4 dígitos y no existen
versiones de producción y desarrollo.

 Las versiones del núcleo se numeran hoy en día con 4 dígitos, de la siguiente
forma: AA.BB.CC.DD.
AA: Indica la serie/versión principal del núcleo.
BB: Indica la revisión principal del núcleo. Números pares e impares no tienen
ningún significado hoy en día.
CC: Indica nuevas revisiones menores del núcleo. Cambia cuando nuevas
características y drivers son soportados.
DD: Este digito cambia cuando se corrigen fallos de programación o fallos de
seguridad dentro de una revisión.

Hoy en día se suele usar el núcleo distribuido con la distribución que el usuario utiliza.
Son las distribuciones las encargadas de distribuir núcleos estables a sus a usuarios y
estos núcleos se basan en el núcleo ("vanilla") distribuido por Linux Torvalds y el
equipo de programadores del núcleo.
Algunas de las funciones del núcleo o kernel son:
Su respuesta :

Administración del tiempo de procesador que los programas y procesos en ejecución


utilizan.

Correcto
Entre las funciones más importantes del kernel está la administración del tiempo de
procesador que los programas y procesos en ejecución utilizan.

Actualmente el nucleo actualizado se numera con 4 dígitos


Su respuesta :

BB Revisión principal del núcleo

Correcto
BB: Indica la revisión principal del núcleo. Números pares e impares no tienen ningún
significado hoy en día.

Comandos
Un comando (calco del inglés command, «orden, instrucción») es una instrucción o
mandato que el usuario proporciona a un sistema informático, desde la línea de
comandos (como una shell) o desde una llamada de programación. Puede ser interno
(contenido en el propio intérprete) o externo (contenido en un archivo ejecutable).

Suele admitir parámetros (argumentos) de entrada, lo que permite modificar el


comportamiento predeterminado del comando. Suelen indicarse tras una barra "/" (en
sistemas operativos DOS) o un guión simple "-" o doble "--" (en sistemas operativos
Unix).

Línea de comandos

La línea de comandos o consola permite al usuario escribir instrucciones, de tal modo


que, después de pulsar la tecla enter en el teclado, se ejecuten procesos internos del
sistema operativo o se lancen programas externos al mismo. Algunas de estas consolas
son:

 command.com para los sistemas basados en DOS (MS-DOS, PC-DOS, DR-DOS, FreeDos,
etc.).
 cmd.exe para los sistemas basados en Windows NT (Windows NT, 2000, XP, 2003
Server, Vista y 2008 Server).
 Bash, sh, csh , etc. para los sistemas basados en Unix (GNU/Liux, *BSD, Solaris, etc.).
Intérprete de comandos de MS-DOS

Las líneas de órdenes que escribe el usuario no se ejecutan tal como se han escrito, son
modificadas antes de su ejecución. Imaginar por ejemplo la orden: DELETE *.TXT

El encargado de recibir la línea que escribe el usuario, modificarla, ejecutarla o solicitar


su ejecución es el denominado intérprete de órdenes o shell del sistema.

El intérprete de órdenes es un programa de estructura repetitiva, cuyas funciones


principales son las siguientes:

1. Muestra el prompt del sistema.


2. Expande los caracteres genéricos tales como el asterisco o la interrogación.
3. Realiza los redireccionamientos.
4. Si es un comando interno, lo ejecuta.
5. Si es un comando externo, lo busca en un conjunto de directorios y si lo encuentra
solicita su ejecución al sistema operativo.
6. En caso contrario indica que no puede ejecutar dicha orden.

Los comandos del sistema se dividen en internos y externos.

Ordenes internas

Las órdenes internas son instrucciones que se encuentran programadas directamente en


el propio intérprete de órdenes. Desde el punto de vista práctico no existe demasiada
importancia entre las órdenes internas y las externas (en una primera aproximación al
tema aunque en realidad son imprescindibles para el buen funcionamiento del mismo)

Ejemplo:

       ver

Esta orden muestra la versión del sistema operativo con el que estamos trabajando.

Comandos externos

Las órdenes externas son órdenes que no sabe ejecutar el intérprete y que para su
ejecución hay que localizarlas en el disco. Son sencillamente programas, es decir, son
ejecutables que se encuentran en uno de los discos del computador.

Para su localización, el intérprete los busca en una serie de directorios, en concreto


aquellos que están indicados en la varible PATH.

Ejemplo:

     ./ejecutame
Comandos DOS - LINUX

Muchos comandos Linux son comunes a MS-DOS, y otros, son muy parecidos.
Estos comandos suelen tener varias opciones. Para saber mas de cada comando, en la
shell teclea man ls (por ejemplo para leer sobre el comando ls).

Comandos parecidos

Propósito del MS-DOS LINUX Ejemplo en Linux


comando
cp estearchivo.txt /home/
Copia archivos copy cp
estedirectorio
mv estearchivo.txt /home/
Mueve archivos move mv
estedirectorio
Lista archivos dir ls ls / ls -al
Limpia la pantalla cls clear clear
Cierra la shell exit exit exit
Muestra o configura la
date date date
fecha
rm estearchivo.txt / rm -fc
Borra archivos del rm
directorio
Muestra caracteres en
echo echo echo este mensage
pantalla
Edita archivos con un
edit pico (a) pico estearchivo.txt
simple editor
Compara el contenido
fc diff diff archivo1 archivo2
de archivos
Busca texto dentro de grep esta palabra o frase
find grep
un archivo archivo.txt
format a:
mke2fs o /sbin/mke2fs /dev/fd0 ( /dev/fd0 es el
Formatea un diskette (si el disquette
mformat (b) equivalente Linux de " a: \> ")
esta en A: )
Muestra ayuda sobre
command /? man (c) man comando
un comando
Crea un directorio mkdir mkdir mkdir directorio
Pagina un archivo more less (d) less estearchivo.txt
mv estearchivo.txt
Renombra un archivo ren mv
aestearchivo.txt (e)
Muestra la localizacion
de un archivo en el chdir pwd pwd
sistema
Cambia de directorio
cd pathname cd pathname cd /directorio/directorio
con path absoluto
Cambia de directorio
cd .. cd .. cd ..
con path relativo
Muestra la hora time date date
Muestra la memoria y
mem free free
su uso actual
Notas:
(a) Pico es un sencillo editor de texto; otros editores a utilizar lugar de pico son: emacs y vi .
(b) Formatea un disquette en formato DO.
(c) Tambien se puede usar info para algunos comandos.
(d) Tambien se puede utilizar otro paginador, llamado more, para recorrer un archivo pantalla a pantalla.

(e) El comando mv tiene dos propositos, porque puede mover un archivo , y cambiarle el nombre dentro
del mismo directorio, "moviendo" el archivo al mismo directorio con un nuevo nombre, como en este
ejemplo.

Los comandos o instrucciones son:


Su respuesta :

Comando es una instrucción o mandato que el usuario proporciona a un sistema


informático

Correcto

Un comando (calco del inglés command, «orden, instrucción») es una instrucción o


mandato que el usuario proporciona a un sistema informático, desde la línea de
comandos (como una shell) o desde una llamada de programación

DOS y Linux tienen comandos comunes. Marque la función correcta de los siguientes
comandos.
Su respuesta :

cls Limpia pantalla

Correcto

cls Limpia contenido de la pantalla

ESTORES DE PAQUETES
Cada distribución Linux usa un sistema de paquetes diferente, pero sea cual sea el tipo
de paquete que usa, el usuario normal se encontrará con el mismo problema en todas,
las dependencias. Para facilitar al usuario la solución de este problema existen los
gestores de paquetes, que se encargarán de comprobar e intentar solucionar
automáticamente los problemas de dependencias entre los distintos paquetes instalados
en el sistema.

Existen gestores de paquetes específicos para cada distribución, cada uno cumple su
cometido básico, para que el instalar o desinstalar una aplicación no sea un problema,
donde en el mejor de los casos necesitemos lápiz y papel para ir anotando las diferentes
librerías que un paquete necesita para funcionar correctamente, ni el orden en que
instalar los paquetes, sobre todo, lo mejor es que podemos tener todo nuestro sistema
actualizado sin problemas con un solo comando.

Existen varios programas para la gestión de RPMs (Red Hat Package Manager), entre
los que se encuentran.

rpm: este comando es el básico para la gestión de RPMs y es en el que se basan las
demás utilidades. La sintaxis es muy sencilla:

rpm -i archivo.rpm para instalarlos.

rpm -U archivo.rpm para actualizarlos, y

rpm -e paquete para eliminarlos (ojo, los paquetes se eliminan por su nombre, no por el
nombre de archivo, en general el nombre del paquete es el mismo que el del archivo sin
la extensión .rpm)

rpm -qa para ver un listado de todos los paquetes instalados.

rpm -qlip archivo.rpm para ver información y el listado de archivos de un paquete .

Mas información en man rpm y rpm sin parámetros.

purp : es un intento de facilitar el uso de rpm, con menús e información gráfica.


Necesita la librería ncurses-4.2 o superior. Funciona en modo consola por lo que no
hace falta tener las X instaladas para usarlo.

Se puede arrancar como purp sin parámetros, para gestionar solo los paquetes instalados
en el sistema o purp /directorio_de_rpms para gestionar los paquetes instalados mas los
disponibles en el directorio que se le pasa como parámetro (ideal para examinar CDs
llenos de RPMs).

glint : es un frontend gráfico para rpm desarrollado por Red Hat, necesita tener
instaladas y configuradas las X. Recomendado para los que no tienen purp y no se
aclaran con las opciones de rpm.

grpm : Simple GNOME RPM Tool. Otro frontend para rpm, este de mejor calidad que
el glint pero requiere tener instalado GNOME.

La mayoría de los programas necesitan de otros componentes software para funcionar,


en su mayoría son librerías necesarias para el programa, pero también pueden ser otros
programas, documentación, la existencia de algún directorio, los errores de
dependencias lejos de ser un problema son una gran ventaja, pues evita estar instalando
software que luego no funciona y que no se sabe por que.

A veces ocurre que el gestor de RPMs da como error de dependencias un paquete que
sabemos seguro que tenemos instalado. Esto puede deberse a varias cosas: a que
realmente no lo hemos instalado correctamente, a que tenemos una versión diferente a la
que necesitamos o que hayamos instalado el programa usando otro método (el gestor es
incapaz de saber que paquetes hemos instalado en el sistema si no lo hemos usado a el
para hacerlo).

Si estamos seguros de cumplir los requisitos y que el programa funcionara aunque el


gestor crea que no, la orden es:
rpm -i --nodeps archivo.rpm esto se salta el chekeo de dependencias,

Si aun así no quiere instalarse podemos usar la orden: rpm -i --nodeps --force
archivo.rpm,

Aunque en este caso lo mas seguro es que el programa acabe por no funcionar.

RPMs en Debian/Slackware: Debian tiene herramientas para la gestión de RPMs por lo


que no hay problemas en usarlos. De todas maneras, si no tenemos esas herramientas
instaladas o usamos Slackware podemos usar el programa alien para convertir el
formato del paquete. alien es una utilidad que convierte RPM/DEB/TGZ a
RPM/DEB/TGZ, y puede hacer todas las transformaciones posibles. De todas maneras
este sistema debe usarse con cuidado, pueden aparecer problemas de dependencias y de
incompatibilidades entre paquetes de diferentes distribuciones.
Para facilitar al usuario la solución al problema de cada distribución existen.?
Su respuesta :

Los gestores de paquetes sirven para resolver dependencias entre las diferentes
versiones de Linux
Para cada una de las distribuciones existe un gestor de paquetes específicos

Correcto
Existen gestores de paquetes específicos para cada distribución, cada uno cumple su
cometido básico, para que el instalar o desinstalar una aplicación no sea un problema.

Según la lectura al ejecutar comandos rpm


Su respuesta :

rpm -i archivo.rpm se utiliza para instalar paquetes

Correcto
rpm -i archivo.rpm para instalarlos.

También podría gustarte