You are on page 1of 23

UNIVERSIDAD NACIONAL PEDRO RUIZ

GALLO

FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS

ESCUELA PROFESIONAL DE INGENIERÍA EN


COMPUTACIÓN E INFORMÁTICA

INGENIERÍA DE SOFTWARE
Introducción al Software Libre
Plataforma Linux
PRESENTADO POR
Farro Fiestas Fanny
Gonzáles Llanca Freddy

LAMBAYEQUE, 2019

1
SOFTWARE LIBRE

2
INDEX
1. INTRODUCCION............................................................................................................................... 4
2. OBJETIVO......................................................................................................................................... 5
3. DESARROLLO ................................................................................................................................... 5
3.1. Reseña Histórica ...................................................................................................................... 5
3.2. Definición .............................................................................................................................. 11
3.3. Términos Relacionados ......................................................................................................... 12
3.4. Consecuencias de la libertad del software ............................................................................ 14
3.5. Ventajas y Desventajas: ......................................................................................................... 16
3.5.1 Ventajas: ........................................................................................................................ 16
3.5.2 Desventajas .......................................................................................................................... 17
PLATAFORMA LINUX ................................................................................................................. 18
Introducción a la Plataforma Linux ................................................................................................... 18
Antecedentes .................................................................................................................................... 18
Características ................................................................................................................................... 19
Estructura .......................................................................................................................................... 21
Distribuciones .................................................................................................................................... 22
4. CONCLUSIONES ............................................................................................................................. 23
5. BLIBLIOGRAFÍA .............................................................................................................................. 23
6. ANEXOS ......................................................................................................................................... 23

3
1. INTRODUCCION
¿Qué es el software libre? ¿Qué es y qué implicaciones tiene la licencia de un

programa libre? ¿Cómo se está desarrollando el software libre?¿Qué motiva a los

desarrolladores, especialmente a los que son voluntarios, a involucrarse en

proyectos de software libre? ¿Cómo son estos desarrolladores? ¿Cómo se

coordinan en sus proyectos, y cómo es el software que producen? En resumen,

¿cuál es la panorámica general del software libre? Éste es el tipo de preguntas que

trataremos de responder en este texto. Porque, aunque el software libre está cada

vez más en los medios de comunicación, en las conversaciones de los profesionales

de la informática, e incluso empieza a estar en boca de los ciudadanos en general,

aún es un desconocido para muchos. Y muchas veces los que lo conocen lo hacen

sólo de algunos de sus aspectos, desconociendo completamente otros.

La presente investigación se refiere al tema denominado Software Libre,

presentaremos los aspectos específicos del software libre, centrándonos

fundamentalmente en explicar sus bases para los que se aproximen al tema por

primera vez, y en motivar su importancia. Entre estas bases nos detendremos en

la definición del término (para saber de qué vamos a hablar) , en las consecuencias

principales del uso (y la mera existencia) , las ventajas y desventajas que suelen

suscitarse al momento de utilizar dicho software así como una breve introducción

al S.O. Linux

4
2. OBJETIVO
El objetivo de esta investigación es definir los conceptos generales que
engloban el tema de la Introducción al Software Libre, así como sus
características, aplicación ventajas y desventajas.

3. DESARROLLO
3.1. Reseña Histórica
Aunque todas las historias relacionadas con la informática son
forzosamente breves, la del software libre es una de las más largas entre
ellas. De hecho, podría decirse que el software nació libre y permaneció
así durante su infancia. Sin embargo, con la llegada de la juventud, la
situación cambió completamente. Sólo ahora, al llegar a su madurez, está
en vías de recuperar la libertad. Esto no deja de ser curioso, pues para
gran parte de los profesionales informáticos, el software propietario es el
software en su estado natural. Afortunadamente, la situación es más bien
la contraria, y las semillas del cambio que estamos empezando a entrever
en los últimos años fueron plantadas ya a principios de la década de 1980.

El software libre como concepto no apareció hasta principios de la década


de 1980. Sin embargo, su historia puede trazarse desde bastantes años
antes.

Durante los años 1960 el panorama de la informática estaba dominado por


los grandes ordenadores, instalados fundamentalmente en empresas y
centros gubernamentales. IBM era el principal fabricante, con gran
diferencia sobre sus competidores. En esta época, cuando se adquiría un
ordenador (el hardware), el software venía como un acompañante.
Mientras se pagase el contrato de mantenimiento, se tenía acceso al
catálogo de software que ofrecía el fabricante. Además, no era común la
idea de que los programas fueran algo separado desde un punto de vista
comercial.

En esta época el software se distribuía habitualmente junto con su código


fuente (en muchos casos sólo como código fuente), y en general sin
restricciones prácticas. Los grupos de usuarios como SHARE (usuarios de
sistemas IBM) o DECUS (usuarios de DEC) participaban, y hasta cierto
punto organizaban, estos intercambios. La sección Algorithms de la revista

5
Communications of the ACM era otro buen ejemplo de foro de intercambio.
Podría decirse que durante estos primeros años de la informática el
software era libre, al menos en el sentido de que los que tenían acceso a
él podían disponer habitualmente del código fuente, estaban
acostumbrados a compartirlo, a modificarlo y a compartir las
modificaciones. En palabras de Richard Stallman, refiriéndose a la situación
en el Massachusetts Institute of Technology, uno de los lugares con más
penetración de uso y más prestigio en investigación sobre informática en
la época.

El 30 de junio de 1969 IBM anunció que a comienzos de 1970 iba a


empezar a vender parte de su software por separado. Esto supuso que sus
clientes ya no podían obtener, incluido en el precio del hardware, los
programas que necesitaban. El software se comenzó a percibir como algo
con valor intrínseco y, como consecuencia, se hizo cada vez más habitual
restringir escrupulosamente el acceso a los programas, y se limitaron, en
la medida de lo posible (tanto técnica como legalmente), las posibilidades
que tenían los usuarios para compartir, modificar o estudiar el software.
En otras palabras, se

pasó a la situación que aún hoy es la habitual en el mundo del software.


En los años 1970 y primeros de 1980, incluso cuando la tendencia
abrumadoramente mayoritaria era la de explorar el modelo de software
propietario, había iniciativas que mostraban algunas características de lo
que luego se consideraría software libre. Alguna de ellas incluso produjo
software libre, según la definición que usamos hoy día. Entre ellas, caben
destacar Spice y TeX, además del caso mucho más complejo de Unix.

Spice (Simulation Program with Integrated Circuit Emphasis) es un


programa desarrollado en la Universidad de California en Berkeley para
simular las características eléctricas de un circuito integrado. Fue
desarrollado y puesto en el dominio público por su autor, Donald O.
Pederson, en 1973. SPICE era originalmente una herramienta docente, y
como tal se extendió rápidamente a muchas universidades de todo el
mundo, por lo que fue usado por muchos estudiantes de la que por aquel
entonces era una incipiente disciplina de diseño de circuitos integrados.
Estando en el dominio público, SPICE podía redistribuirse, modificarse,

6
estudiarse, etc. Incluso se podía adaptar a unas necesidades concretas y
vender esa versión como producto propietario (lo que se ha hecho durante
su historia docenas de veces por parte de una gran cantidad de empresas).
Con estas características, SPICE tenía todas las papeletas para convertirse
en el estándar de la industria

TeX: Donald Knuth comenzó a desarrollar durante un año sabático, en


1978. TeX es un sistema de tipografía electrónica muy utilizado para la
producción de documentos de calidad. Desde el principio, Knuth utilizó una
licencia que hoy sería considerada como de software libre. Cuando el
sistema se consideró razonablemente estable, en 1985, mantuvo esa
licencia. En esa época, TeX era un de los sistemas más grandes y más
conocidos que podía considerarse software libre. con sus diferentes
versiones. Y efectivamente, eso fue lo que ocurrió. Probablemente éste fue
el primer programa con características de software libre que durante un
tiempo monopolizó un mercado, el de los simuladores de circuitos
integrados, y sin duda pudo hacerlo precisamente por tener estas
características (además de sus innegables cualidades técnicas).

Desarrollo Temprano de Unix

Unix fue uno de los primeros sistemas operativos portables, creado


originalmente por Thompson y Ritchie (entre otros) en los Bell Labs de
AT&T. Su desarrollo ha continuado desde su nacimiento, hacia 1972, hasta
hoy, con innumerables variantes comercializadas por literalmente decenas
de empresas. Durante los años 1973 y 1974, Unix llegó a muchas
universidades y centros de investigación de todo el mundo, con una licencia
que permitía su uso para fines académicos. Aunque había ciertas
restricciones que impedían su distribución libre, entre las organizaciones
que disponían de la licencia el funcionamiento fue muy similar al que se
vio más tarde en muchas comunidades de software libre. Los que tenían
acceso a la fuente de Unix tuvieron un sistema que podían estudiar,
mejorar y ampliar. Juntamente con él apareció una comunidad de
desarrolladores, que pronto empezó a girar en torno al CSRG de la
Universidad de California en Berkeley, y que desarrolló su propia cultura,
que fue muy importante, como veremos más adelante, en la historia del
software libre. Unix fue, hasta cierto punto, un ensayo temprano de lo que

7
se vio con GNU y Linux varios años más tarde. Estaba confinado a una
comunidad mucho más pequeña, y era necesaria la licencia de AT&T, pero
en otros aspectos su desarrollo fue similar (en un mundo mucho menos
comunicado). Con el tiempo, Unix fue también un ejemplo temprano de los
problemas que podían presentar los sistemas propietarios que a primera
vista tenían alguna característica del software libre. Durante el final de la
década de 1970, y sobre todo durante la de 1980, AT&T cambió su política,
y el acceso a nuevas versiones de Unix se convirtió en algo difícil y caro.
La filosofía de los primeros años, que hizo tan popular a Unix entre los
desarrolladores, cambió radicalmente, hasta el punto de que en 1991 AT&T
puso una demanda a la Universidad de Berkeley por publicar el código de
Unix BSD que ellos (el CSRG de Berkeley) habían creado. Pero esa es otra
historia, que retomaremos más adelante.

El comienzo: BSD, GNU


Todos los escenarios descritos hasta ahora son, o bien iniciativas
individuales, o bien no cumplen los requisitos del software libre. En
cualquier caso, hasta principios de la década de 1980 no aparecieron, de
forma organizada y consciente, los primeros proyectos para la creación de
sistemas compuestos de software libre, y lo que probablemente es más
importante: los fundamentos éticos, legales y hasta económicos, que luego
se continuarían desarrollando hasta el día de hoy. De esta época procede
también el propio término software libre.

Richard Stallman, GNU, FSF: Nace el movimiento del software libre

A principios de 1984, Richard Stallman, en aquella época empleado en el


AI Lab del MIT, abandonó su trabajo para comenzar el proyecto GNU.
Stallman se consideraba un hacker de los que gozaban compartiendo sus
inquietudes tecnológicas y su código. Veía con desagrado cómo su negativa
a firmar acuerdos de exclusividad y no compartición le estaban
convirtiendo en un extraño en su propio mundo, y cómo el uso de software
propietario en su entorno le dejaba impotente antes situaciones que antes
podía solventar fácilmente. Su idea al abandonar el MIT era construir un
sistema de software completo, de propósito general, pero completamente
libre. El sistema (y el proyecto que se encargaría de hacerlo realidad) se
llamó GNU (acrónimo recursivo, GNU's Not Unix). Aunque desde el

8
principio el proyecto GNU incluyó en su sistema software ya disponible
(como Tex, o más adelante, el sistema X Window), había mucho que
construir. Richard Stallman comenzó por escribir un compilador de C (GCC)
y un editor (Emacs), ambos aún en uso (y muy populares) hoy día. Desde
el principio del proyecto GNU, Richard Stallman estaba preocupado por las
libertades que tendrían los usuarios de su software. Estaba interesado en
que no sólo los que recibieran los programas directamente del proyecto
GNU, sino cualquiera que lo recibiera después de cualquier número de
redistribuciones y (quizás) modificaciones, siguiera disfrutando de los
mismos derechos (modificación, redistribución, etc.). Para ello, escribió la
licencia GPL, probablemente la primera licencia de software diseñada
específicamente para garantizar que un programa fuera libre en este
sentido. Al mecanismo genérico que utilizan las licencias tipo GPL para
conseguir estas garantías, Richard Stallman lo llamó copyleft, que hoy día
es el nombre de una gran familia de licencias de software libre. Richard
Stallman también fundó la Free Software Foundation (FSF con el fin de
conseguir fondos para el desarrollo y la protección del software libre, y
sentó los fundamentos éticos del software libre, con documentos como The
GNU Manifesto y Why Software Should Not Have Owners. Desde el punto
de vista técnico, el proyecto GNU fue concebido como un trabajo muy
estructurado y con metas muy claras. El método habitual estaba basado
en grupos relativamente pequeños de personas (habitualmente
voluntarios) que desarrollaban alguna de las herramientas que luego
encajarían perfectamente en el rompecabezas completo (el sistema GNU).
El modularidad de UNIX, en la que se inspiraba el desarrollo, encajaba
perfectamente en esta idea. El método de trabajo generalmente implicaba
el uso de Internet, pero ante la escasa implantación de aquellos días, la
Free Software Foundation también vendía cintas en las que grababa las
aplicaciones, siendo probablemente uno de las primeras organizaciones en
beneficiarse económicamente (aunque de manera bastante limitada) de la
creación de software libre. A principios de la década de 1990, unos seis
años después de su nacimiento, el proyecto GNU estaba muy cerca de
tener un sistema completo similar a Unix. Aun así, hasta ese momento
todavía no había producido una de las piezas fundamentales: el kernel del
sistema (el núcleo del sistema operativo que se relaciona con el hardware

9
y permite que todo funcione). Sin embargo, el software de GNU era muy
popular entre los usuarios de las distintas variantes de Unix, por aquella
época el sistema operativo más usado en las empresas. Además, el
proyecto GNU había conseguido ser relativamente conocido entre los
profesionales informáticos, y muy especialmente entre los que trabajaban
en universidades. En esa época, sus productos ya gozaban de una
merecida reputación de estabilidad y calidad.

El CSRG de Berkeley

El CSRG (Computer Science Research Group) de la Universidad de


California en Berkeley fue, desde 1973, uno de los centros donde más se
desarrolló todo lo relacionado con Unix durante los años 1979 y 1980. No
sólo se portaron aplicaciones y se construyeron otras nuevas para su
funcionamiento sobre Unix, sino que se hicieron importantes mejoras al
kernel, y se le añadió mucha funcionalidad.

Los comienzos del Internet

Casi desde su nacimiento, a principios de la década de 1970, Internet tuvo


mucha relación con el software libre. Por un lado, desde sus comienzos, la
comunidad de desarrolladores que la construyeron tuvieron claros varios
principios que luego se harían clásicos en el mundo del software libre. Por
ejemplo, la importancia de dar posibilidades a los usuarios para que
ayuden a depurar los errores, o la compartición del código de las
implementaciones. La importancia de BSD Unix en su desarrollo (al
proporcionar durante los años 1980 la implementación más popular de los
protocolos TCP/IP) hizo que muchas costumbres y formas de
funcionamiento pasasen fácilmente de una comunidad (la de
desarrolladores alrededor del CSRG) a otra (los que estaban construyendo
NSFNet, y luego simplemente Internet), y viceversa. Muchas de las
aplicaciones básicas en el desarrollo de Internet, como Sendmail (servidor
de correo) o Bind (implementación del servicio de nombres) fueron libres,
y en gran medida fruto de esta colaboración entre comunidades. Por
último, la comunidad del software libre, durante el final de los años 1980
y la década de 1990, fue una de las primeras en explorar hasta el fondo
las nuevas posibilidades que permitía Internet para la colaboración entre

10
grupos geográficamente dispersos. Esta exploración fue la que hizo
posible, en gran medida, la propia existencia de la comunidad BSD, la FSF
o el desarrollo de GNU/Linux.

3.2. Definición
Así pues, el término software libre (o programas libres) se refiere a
libertad, tal como fue concebido por Richard Stallman en su definición. En
concreto se refiere a cuatro libertades:

1. Libertad para ejecutar el programa en cualquier sitio, con cualquier


propósito y para siempre.

2. Libertad para estudiarlo y adaptarlo a nuestras necesidades. Esto exige


el acceso al código fuente.

3. Libertad de redistribución, de modo que se nos permita colaborar con


vecinos y amigos.

4. Libertad para mejorar el programa y publicar las mejoras. También


exige el código fuente.

Estas libertades se pueden garantizar de acuerdo con la legalidad vigente


por medio de una licencia. En ella se plasman las libertades, pero también
restricciones compatibles con ellas, como dar crédito a los autores
originales si redistribuimos. Incluso puede obligarnos a que los programas
ajenos mejorados por nosotros también sean libres, promoviendo así la
creación de más software libre.

Así pues no estamos hablando de software gratuito, y el software libre se


puede vender si se desea. Pero debido a la tercera libertad, cualquiera
puede redistribuirlo sin pedir dinero a cambio ni permiso a nadie, lo que
hace prácticamente imposible obtener dinero por distribuirlo, salvo la
pequeña cantidad que se pueda cargar por grabarlo en un soporte físico y
enviarlo, algo raramente demandado excepto para grandes volúmenes,
como es el caso de las distribuciones.

11
3.3. Términos Relacionados
Equivalente a software libre es el término Open Source Software
(‘programas de fuente abierto’), promovido por Eric Raymond y la
Open Source Initiative. Filosóficamente, el término es muy distinto, ya que
hace énfasis en la disponibilidad de código fuente, no en la libertad, pero
su definición es prácticamente la misma que la de Debian. Este nombre es
más políticamente aséptico y recalca un aspecto técnico que puede dar
lugar a ventajas técnicas, como mejores modelos de desarrollo y negocio,
mayor seguridad, etc. Fuertemente criticado por Richard Stallman y la Free
Software Foundation, ha encontrado mucho más eco en la literatura
comercial y en las estrategias de las empresas que de una manera u otra
apoyan el modelo.

Así como la ética del Software Libre se define en cuatro puntos, la Open
Source Iniciative tiene diez requisitos a cumplir por parte de un proyecto
o las licencias bajo las que se publica para que pueda ser definido como de
código abierto:

Libre redistribución: La licencia del software no debe impedir que este


sea regalado o vendido libremente como parte de una distribución mayor
que contenga programas de diferentes fuentes. Tampoco debe exigir un
pago por hacerlo.

Código fuente: A la hora de publicar un programa tiene que incluirse su


código fuente íntegro o permitir acceder libremente a él.

Trabajos derivados: Las licencias deben permitir modificaciones y


trabajos derivados, y debe permitir que estos se distribuyan bajo los
mismos términos que el software original.

Integridad del código fuente del autor: Se puede impedir la


distribución de modificaciones únicamente si se permite la distribución de
tales como parches. También se puede requerir que trabajos derivados
cambien de nombre o número de versión.

Sin discriminación de personas o grupos: No se puede discriminar a


ninguna persona o grupo a la hora de acceder a un programa o su código.

12
Sin discriminación de áreas de iniciativa: Tampoco le se puede
restringir su acceso a ninguna iniciativa. Las empresas o grupos de
investigación tienen tanto derecho como el resto a utilizar el software.

Distribución de la licencia: Los derechos asociados en las licencias de


los programas deben aplicarse a todos a los que lo redistribuyan sin
necesidad de pedir una licencia adicional.

La licencia no debe ser específica de un producto: Un programa no


puede licenciarse únicamente como parte de un software mayor. Podrá ser
extraído y utilizado libremente y con todos los derechos en otras
soluciones.

La licencia no debe restringir otro software: El hecho de que un


proyecto sea de código abierto no puede obligar a que los programas en
los que se incluye sean también de código abierto.

La licencia debe ser tecnológicamente neutral: Ninguna disposición


de la licencia puede basarse en la tecnología o un estilo de interfaz, con lo
que, por ejemplo, no se debe requerir su aceptación mediante gestos
explícitos como clicks de ratón.

Otros términos relacionados de alguna manera con el software libre son:

Freeware: Programas gratuitos. Normalmente se ceden en binario y con


derechos de redistribución. Sin embargo, a veces sólo se pueden obtener
de un sitio oficial, normalmente para promocionar otros programas o
servicios, como es el caso de los kits de Java gratuitos que proporciona
Sun Microsystems.

Shareware: No es siquiera software gratis, sino un método de


distribución, ya que los programas, generalmente sin fuentes, se pueden
copiar libremente, pero no usar continuadamente sin pagarlos. La
exigencia de pago puede estar incentivada por funcionalidad limitada o
mensajes molestos, o una simple apelación a la moral del usuario, además
de que las estipulaciones legales de la licencia podrían utilizarse en contra
del infractor.

Charityware, Careware: Generalmente shareware, pero cuyo pago se


exige para una organización caritativa patrocinada. En muchos casos, el

13
pago no se exige, pero se solicita una contribución voluntaria. Algún
software libre, como vim solicita contribuciones voluntarias de este tipo.

Copyleft: Un caso particular de software libre cuya licencia obliga a que


las modificaciones que se distribuyan sean también libres.

3.4. Consecuencias de la libertad del software


El usuario final, ya sea individual o empresa, puede encontrar verdadera
competencia en un mercado con tendencia al monopolio. En particular, no
depende necesariamente del soporte del fabricante del software, ya que
puede haber múltiples empresas, quizá pequeñas, que disponiendo del
código fuente y de conocimientos, puedan hacer negocio manteniendo
determinados programas libres.

Ya no se depende tanto de la fiabilidad del fabricante para intentar deducir


la calidad de un producto, sino que la guía nos dará la aceptación de la
comunidad y la disponibilidad de los códigos fuentes. Nos olvidamos
además de las cajas negras, en las que hay que confiar porque sí, y de las
estrategias de los fabricantes, que pueden decidir unilateralmente dejar de
mantener un producto. La evaluación de productos antes de adoptarlos es
ahora mucho más sencilla, ya que basta con instalar los productos
alternativos en nuestro entorno real y probar, mientras que para el
software propietario hay que fiarse de informes externos o negociar
pruebas con los proveedores, lo cual no es siempre posible.

Dada la libertad de modificar el programa para uso propio, el usuario puede


personalizarlo o adaptarlo a sus necesidades, corrigiendo errores si los
tuviera. El proceso de corrección de errores descubiertos por los usuarios
en software propietario suele ser extremadamente penoso, si no imposible,
ya que si conseguimos que se repare, muchas veces se hará en la versión
siguiente, que podría tardar años en salir, y a veces además habrá que
adquirirla de nuevo. Sin embargo, lo podemos hacer nosotros si estamos
cualificados o contratar el servicio fuera. También podemos, directamente
o contratando servicios, integrar el programa con otro, o auditar su calidad
(por ejemplo, la seguridad). El control pasa, en gran medida, del proveedor
al usuario.

14
Para la Administración Pública: La Administración pública es un gran
usuario de características especiales, ya que tiene obligaciones especiales
con el ciudadano, ya sea proporcionándole servicios accesibles, neutrales
respecto a los fabricantes, ya garantizando la integridad, utilidad,
privacidad y seguridad de sus datos a largo plazo. Todo ello la obliga a ser
más respetuosa con los estándares que las empresas privadas y a
mantener los datos en formatos abiertos y manipulados con software que
no dependa de estrategia de empresas, generalmente extranjeras,
certificado como seguro por auditoría interna. La adecuación a estándares
es una característica notable del software libre que no es tan respetada
por el software propietario, ávido en muchos casos notables de crear
mercados cautivos.

Asimismo, la Administración tiene una cierta función de escaparate y guía


de la industria que la hace tener un gran impacto, que debería dirigirse a
la creación de un tejido tecnológico generador de riqueza nacional. Ésta
puede crearse fomentando empresas, cuyo negocio sea en parte el
desarrollo de nuevo software libre para la administración, o el
mantenimiento, adaptación o auditoría del software existente.

Para el desarrollador: Para el desarrollador y productor de software, la


libertad cambia mucho las reglas del juego. Con él le es más fácil competir
siendo pequeño y adquirir tecnología punta. Puede aprovecharse del
trabajo de los demás, compitiendo incluso con otro producto modificando
su propio código, si bien también el competidor copiado se aprovechará de
nuestro código (si es copyleft). Bien llevado, un proyecto puede conseguir
la colaboración gratuita de mucha gente, del que el iniciado será la
referencia. Asimismo, la distribución es barata y global. No obstante, como
dijimos, el problema que tiene este desarrollador es la manera de obtener
los recursos económicos si el trabajo no es de encargo.

Para el Integrador: Para el integrador el software libre es el paraíso. No


más cajas negras que intentar encajar, a menudo con ingeniería inversa.
Puede limar asperezas e integrar trozos de programas para conseguir el
producto integrado necesario, disponiendo de un acervo ingente de
software libre de donde extraer las piezas.

15
Para el que proporciona mantenimiento y servicios: Disponer del
código fuente lo cambia todo, situándonos casi en las mismas condiciones
que el productor. Y no son las mismas porque hace falta un conocimiento
profundo del programa que sólo el desarrollador posee, por lo que es
conveniente que el mantenedor participe en los proyectos que se dedica a
mantener. El valor añadido de los servicios es mucho más apreciado, ya
que el coste del programa es bajo. Éste es actualmente el negocio más
claro con software libre y con el que es posible un mayor grado de
competencia.

3.5. Ventajas y Desventajas:


3.5.1 Ventajas:
1. Libre Uso. Cualquier persona puede disponer del software libre bajo
las condiciones de la licencia.
2. Bajo Costo. Es gratuito
3. Existe Libertad de Conocimiento y trabajo cooperativo entre sus
usuarios lo que permite una mayor innovación tecnológica.
4. Rápida corrección de errores facilitado por el trabajo comunitario a
través de Internet y de su libre acceso al código fuente.
5. Total independencia de un proveedor. El usuario puede administrar
libremente su crecimiento y operación con total autonomía.
6. Independencia de las condiciones del mercado. A salvo de cambios
drásticos por parte del proveedor o modificaciones que realice por las
condiciones del mercado o baja rentabilidad.
7. Contribuye a la formación de profesionales y el desarrollo de la industria
local, generando conocimiento y trabajo)
8. Facilidad para personalizar el software de acuerdo a las necesidades del
usuario.
9. Posibilidad de traducir el mismo a cualquier idioma, inclusive a una
lengua regional o indígena.
10. Independencia tecnológica de los Estados con respecto a grandes grupos
económicos.
11. Fácil acceso por parte del sector educativo público y privado.
12. Mayor seguridad y privacidad de los datos. Disminuye los riesgos de
filtración, aumenta la imposibilidad de acceso y manipulación de los datos
críticos del Estado.
13. Asegura la durabilidad de la información y su migración, gracias al
acceso al código fuente.
14. Disminuye los riesgos de "puertas traseras" que introduzcan códigos
maliciosos o de espionaje.

16
15. El conocimiento de códigos fuente permite la rápida solución a
funcionamientos erróneos.
16. Elimina el sistema operativo monousuario. Ya que permite el uso y
trabajo de varios usuarios al mismo tiempo.
17. Elimina el derecho exclusivo de la innovación.
18. Abre la posibilidad del trabajo compartido entre diferentes empresas o
dependencias de gobierno.
19. Elimina la inseguridad ante cierre de compañías de provisión o
discontinuidad del producto.
20. No depende de prácticas monopólicas.
3.5.2 Desventajas
1. Dificultad en el intercambio de archivos (doc. de texto), dan errores o
se pierden datos.
2. Mayor dificultad en la instalación y migración de datos para el usuario
común.
3. Desconocimiento. El usuario común está muy familiarizado con los
soportes de Microsoft, lo que hace elevar el costo de aprendizaje.
4. Ausencia de garantía. El software libre no se hace responsable por los
daños.
5. Para su configuración se requieren conocimientos previos de
funcionamiento del sistema operativo.
6. Por lo general para su implementación se necesitan conocimiento previo
de programación.
7. Se debe monitorear en forma constante la corrección de errores por
Internet.
8. No existe un control de calidad previo.
9. Hay aplicaciones específicas que no se encuentran en el software libre.
10. Baja expansión de su uso en centros educativos.
11. Baja difusión en publicaciones.
12. En ambientes de red todavía hay software propietario con mejores
desempeños.

17
PLATAFORMA LINUX

Introducción a la Plataforma Linux


Linux: El kernel (núcleo en castellano) Linux es, sin duda, la aplicación estrella del
software libre, hasta el punto de que, aun siendo una pequeña parte del sistema,
ha dado nombre a todo él. Es más, se podría incluso afirmar que el propio software
libre se confunde en multitud de ocasiones con Linux, lo que no deja de ser un
gran desacierto, ya que existe software libre que corre sobre sistemas que no se
basan en Linux (de hecho, una de las grandes metas del movimiento y de muchos
proyectos de software libre es que las aplicaciones puedan ejecutarse en multitud
de entornos). Por otro lado, también existen aplicaciones que funcionan en Linux
y que no son software libre (Acrobat Reader, el lector de documentos PDF, también
cuenta con su versión para Linux).

Antecedentes
El sistema Operativo Unix nace a fines de los años 60 en los laboratorios Bell AT
& T. Ken Thompson insatisfecho con el S.O que utilizaba, decide escribir su
propio Sistema Operativo. Inicialmente, lo escribe en lenguaje ensamblador,
pero más adelante lo reescribe en un lenguaje de programación denominado B.

Paralelamente, al entrar en contacto con Unix, Dennis Ritchie junto a Ken


Thompson, traducen Unix al lenguaje C.

Dada la imposibilidad de comercializarlo, At & T decide distribuirlo con fines


altruistas a Universidades, a cambio de un pago simbólico. Esta decisión tuvo dos
consecuencias:

 Rápida extensión y uso en el mundo científico.


 Diversidad de versiones va que no había quién dirigiera su desarrollo y
evolución.

De estas versiones, surge Linux.

Linux es un sistema operativo gratuito y de libre distribución inspirado en el


sistema Unix, inicialmente desarrollado por Linus Torvalds en la Universidad de
Helsinki, en Finlandia. Se inspiraba en Minix, un pequeño UNIX desarrollado por
Andy Tanenbaum. Estaba dirigido a aquellos usuarios de Minix que querían algo
más.

18
Características
Se sabe que un sistema operativo tiene encomendada una serie de funciones
diferentes.

En su papel de gestor del ordenador, el sistema operativo debe gestionar los


recursos del sistema informático (procesadores, memoria, disco), entre los
diferentes procesos (programas en ejecución) que compiten por ellos.

En su papel de mediador, el sistema operativo ofrece al usuario que utiliza el


ordenador una especie de máquina virtual o maquina extendida más fácil de
utilizar que si tuviera que acceder directamente al hardware.

Linux implementa la mayor parte de las características que se encuentran en


otras implementaciones de UNIX, más algunas otra que no son habituales.

Sus principales características son:

 Multitarea:
Dado que el sistema operativo puede atender varias tareas a su vez. A su
vez estas tareas pueden provenir de un único usuario o de varios usuarios.
 Multiusuario:
Donde el S.O puede atender a un único usuario o varios en la misma
máquina, respectivamente.
 De planificación mixta:
La planificación define cómo se reparte el tiempo de CPU entre los diversos
procesos, caso de que en un momento dado varios quieran utilizar el
microprocesador. En este caso, existe una planificación concreta a base de
asignar tiempos en función de prioridades.
Si dos procesos tienen asignada una prioridad, se comparte el tiempo entre
los dos. A los procesos poco activos se les suele dar una prioridad máxima
y aquellos que exigen mucho tiempo de computación, una baja prioridad.
Esto tiene sentido porque un proceso poco activo como un editor de textos
consume muy pocos recursos de CPU, es decir, dentro de un intervalo de
tiempo dado, el tiempo de CPU que va a usar es muy poco ya que desde
que el usuario pulsa una tecla hasta la siguiente, el ordenador ha tenido
tiempo de realiza otras muchísimas tareas. Sin embargo, sería incómodo
para el usuario que desde que pulsa una tecla hasta que aparece el resultado

19
en la pantalla, pasara mucho tiempo; esa es la razón para darle máxima
prioridad. En el otro extremo están los procesos que requieren mucho
tiempo de computación, es decir mucho tiempo de acceso a la CPU, como
una inversión de matrices, una integral numérica, etc. Con el objeto de no
saturar la máquina con estos cálculos, y debido a que habitualmente no
existe una restricción temporal para acabar los cálculos, se le asigna una
prioridad baja.
 Con implementaciones de memoria virtual
Es posible hacer uso de espacio de almacenamiento en disco como si fuera
memoria adicional de la que dispone el ordenador, es decir, la memoria
efectiva puede ser mayor que la real. Esto se puede ver más claramente en
un sistema multitarea donde las tareas de gestión son más complicadas. Si
se piensa en un sistema operativo multiusuario y se supone que dos
usuarios quieren imprimir simultáneamente en la misma impresora, el
sistema operativo deberá decidir que uno de los usuarios puede imprimir en
ese momento y que el trabajo del otro usuario quede almacenado en una
cola de impresión para cuando la impresora quede libre.

Otras características son:


 Protección de memoria entre procesos, de manera que uno de ellos no
pueda colgar el sistema.
 Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes
de un programa que están siendo usadas actualmente.
 Política de copia en escritura para la compartición de páginas entre
ejecutables: esto significa que varios procesos pueden usar la misma zona
de memoria para ejecutarse. Cuando alguno intenta escribir en esa
memoria, la página se copia a otro lugar. Esta política de copia en escritura
tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria.
 Memoria virtual usando paginación a disco: una partición o un archivo en el
sistema de archivos, o ambos, con la posibilidad de añadir más áreas de
intercambio sobre la marcha.
 La memoria se gestiona como un recurso unificado para los programas de
usuario y para el caché de disco de tal forma que toda la memoria libre
pueda ser usada para caché y éste puede a su vez ser reducido cuando se
ejecuten grandes programas.

20
 Todo el código fuente está disponible, incluyendo el núcleo completo y todos
los drivers, las herramientas de desarrollo y todos los programas de usuario;
además todo ello se puede distribuir libremente.
 El núcleo no utiliza ni una solo línea del código original del UNIX de AT & T
o de cualquier otra fuente de propiedad comercial. Además, está legalmente
protegido por la Licencia Pública GNU (GLP de sus siglas en inglés).
 El núcleo es usualmente empaquetado con varios ejecutables que
comprende un sistema operativo UNIX Funcional. Estos paquetes de
programas son llamados “Distribuciones” y se vienen en muchos tamaños y
arreglos.

Estructura
Los diversos componentes del sistema operativo pueden verse gráficamente.

 Núcleo o Kernel:
Es el corazón del sistema ya que posee un gran número de funciones de
sistemas que son invisibles para el usuario casual, llamadas system calls.
Se carga al encender la máquina y funciona hasta que ésta es apagada.
Realiza todas las labores propias de un sistema operativo, y ellas son:
 Planificar, coordinar y gestionar la ejecución de los procesos.
Para ello, hace uso de las prioridades asignadas a cada proceso
y utiliza algoritmos específicos para repartir el tiempo entre los
diversos procesos que compiten por él.
 Dar servicios del sistema, como entrada/salida y gestión de
ficheros.

21
 Manejar las operaciones dependientes de hardware, es decir,
realiza las funciones demás bajo nivel de manera que se
oculten al usuario.
 Un Kernel típico puede constar de unas 20.000 líneas de código
de las cuales un 70-80% está escrito en C y el resto depende
de la máquina.

 Shell o Caparazón:
Desde el punto de vista del usuario, actúa como un intérprete de comandos.
Es un programa que siempre está en ejecución, procesa comandos para que
el usuario interactúe con el sistema operativo. El Shell lee las órdenes
suministradas, las decodifica y comunica al núcleo para realizar la acción
especificada.
Se distingue por el prompt %>.
Permite la programación de programas de comandos (o Shell scripts).
Prácticamente, todas las órdenes son programas ejecutables que el Shell
busca en el sistema de ficheros, siguiendo el orden especificado en la
variable global PATH. Existen varios tipos de shells, según la versión
utilizada:
 Bourne Shell (System V, Xenix).
 C shell (Berkeley).
 Korn Shell (Ambos).

El Shell puede constar, en total, de unas 200.000 líneas de código en C.

Distribuciones
Una Distribución es un agrupamiento del núcleo del sistema operativo Linux y otra serie de
aplicaciones de uso general o no tan general. En principio las empresas que
desarrollan las distribuciones de Linux están en su derecho al cobrar una cierta
cantidad por el software que ofrecen, aunque en la mayor parte de las ocasiones
se pueden conseguir estas distribuciones desde internet, de revistas o de amigos,
siendo todas estas formas gratuitas y legales.

22
Las Distribuciones más conocidas son: RedHat, Debian, Slackware, SuSe y Corel
Linux, todas ellas incluyen el software más reciente compiladores de C/C++,
editores de texto, juegos, programas para el acceso a Internet, así como el entorno
gráfico de Linux: X Window.

4. CONCLUSIONES
 El uso del Software libre nos permite el control total de este, permitiéndonos
adecuarlo a las necesidades tanto usuario, como empresa con la finalidad
de sacarle el máximo provecho

 El software libre es una de las mejores alternativas para cambiar el enfoque


empresarial del Software en nuestro País

 El software libre, nos deprende del grillete digital del Software propietario.
Teniendo el control y seguridad de nuestros datos.

 Como programadores el uso de Software libre nos permite generar un


software nuevo y propio a partir de uno ya creado, con fines lucrativos, pero
sin perder la facultar de ser software libre.

5. BLIBLIOGRAFÍA
 Alonzo Fulchi, Luis (2011). El movimiento del Software Libre en Uruguay (Monografía de
Grado). Universidad de la República, Uruguay.
 Gonzales Barahona, Jesús María et al.Copyleft. Manual de uso. 2006.Traficantes de sueños.

6. ANEXOS

23