sábado, 21 de mayo de 2011

VIRUS INFORMATICOS

Virus (informática), programa de ordenador que se reproduce a sí mismo e interfiere con el
hardware de una computadora o con su sistema operativo (el software básico que controla la
computadora). Los virus están diseñados para reproducirse y evitar su detección. Como
cualquier otro programa informático, un virus debe ser ejecutado para que funcione: es decir,
el ordenador debe cargar el virus desde la memoria del ordenador y seguir sus instrucciones.
Estas instrucciones se conocen como carga activa del virus. La carga activa puede trastornar
o modificar archivos de datos, presentar un determinado mensaje o provocar fallos en el
sistema operativo.
Existen otros programas informáticos nocivos similares a los virus, pero que no cumplen
ambos requisitos de reproducirse y eludir su detección. Estos programas se dividen en tres
categorías: caballos de Troya, bombas lógicas y gusanos. Un caballo de Troya aparenta ser
algo interesante e inocuo, por ejemplo un juego, pero cuando se ejecuta puede tener efectos
dañinos. Una bomba lógica libera su carga activa cuando se cumple una condición
determinada, como cuando se alcanza una fecha u hora determinada o cuando se teclea una
combinación de letras. Un gusano se limita a reproducirse, pero puede ocupar memoria de la
computadora y hacer que sus procesos vayan más lentos.

ESPECIES DE VIRUS

Existen seis categorías de virus: parásitos, del sector de arranque inicial, multipartitos,
acompañantes, de vínculo y de fichero de datos. Los virus parásitos infectan ficheros
ejecutables o programas de la computadora. No modifican el contenido del programa
huésped, pero se adhieren al huésped de tal forma que el código del virus se ejecuta en
primer lugar. Estos virus pueden ser de acción directa o residentes. Un virus de acción
directa selecciona uno o más programas para infectar cada vez que se ejecuta. Un virus
residente se oculta en la memoria del ordenador e infecta un programa determinado cuando
se ejecuta dicho programa. Los virus del sector de arranque inicial residen en la primera
parte del disco duro o flexible, conocida como sector de arranque inicial, y sustituyen los
programas que almacenan información sobre el contenido del disco o los programas que
arrancan el ordenador. Estos virus suelen difundirse mediante el intercambio físico de discos
flexibles. Los virus multipartitos combinan las capacidades de los virus parásitos y de sector
de arranque inicial, y pueden infectar tanto ficheros como sectores de arranque inicial.
Los virus acompañantes no modifican los ficheros, sino que crean un nuevo programa con el
mismo nombre que un programa legítimo y engañan al sistema operativo para que lo ejecute.
Los virus de vínculo modifican la forma en que el sistema operativo encuentra los programas,
y lo engañan para que ejecute primero el virus y luego el programa deseado. Un virus de
vínculo puede infectar todo un directorio (sección) de una computadora, y cualquier programa
ejecutable al que se acceda en dicho directorio desencadena el virus. Otros virus infectan
programas que contienen lenguajes de macros potentes (lenguajes de programación que
permiten al usuario crear nuevas características y herramientas) que pueden abrir, manipular
y cerrar ficheros de datos. Estos virus, llamados virus de ficheros de datos, están escritos en
lenguajes de macros y se ejecutan automáticamente cuando se abre el programa legítimo.
Son independientes de la máquina y del sistema operativo.


Clasificación de los virus

La clasificación correcta de los virus siempre resulta variada según a quien se le pregunte.
Podemos agruparlos por la entidad que parasitan (sectores de arranque o archivos
ejecutables), por su grado de dispersión a escala mundial, por su comportamiento, por su
agresividad, por sus técnicas de ataque o por como se oculta, etc. Nuestra clasificación
muestra como actúa cada uno de los diferentes tipos según su comportamiento. En algunos
casos un virus puede incluirse en más de un tipo (un multipartito resulta ser sigiloso).



Caballos de Troya: Los caballos de troya no llegan a ser realmente virus porque no tienen la
capacidad de autoreproducirse. Se esconden dentro del código de archivos ejecutables y no
ejecutables pasando inadvertidos por los controles de muchos antivirus. Posee subrutinas
que permitirán que se ejecute en el momento oportuno. Existen diferentes caballos de troya
que se centrarán en distintos puntos de ataque. Su objetivo será el de robar las contraseñas
que el usuario tenga en sus archivos o las contraseñas para el acceso a redes, incluyendo a
Internet. Después de que el virus obtenga la contraseña que deseaba, la enviará por correo
electrónico a la dirección que tenga registrada como la de la persona que lo envió a realizar
esa tarea. Hoy en día se usan estos métodos para el robo de contraseñas para el acceso a
Internet de usuarios hogareños. Un caballo de troya que infecta la red de una empresa
representa un gran riesgo para la seguridad, ya que está facilitando enormemente el acceso
de los intrusos. Muchos caballos de troya utilizados para espionaje industrial están
programados para autodestruirse una vez que cumplan el objetivo para el que fueron
programados, destruyendo toda la evidencia.


Camaleones: Son una variedad de similar a los Caballos de Troya, pero actúan como otros
programas comerciales, en los que el usuario confía, mientras que en realidad están
haciendo algún tipo de daño. Cuando están correctamente programados, los camaleones
pueden realizar todas las funciones de los programas legítimos a los que sustituyen (actúan
como programas de demostración de productos, los cuales son simulaciones de programas
reales). Un software camaleón podría, por ejemplo, emular un programa de acceso a
sistemas remotos (rlogin, telnet) realizando todas las acciones que ellos realizan, pero como
tarea adicional (y oculta a los usuarios) va almacenando en algún archivo los diferentes
logins y passwords para que posteriormente puedan ser recuperados y utilizados ilegalmente
por el creador del virus camaleón.


Virus polimorfos o mutantes: Los virus polimorfos poseen la capacidad de encriptar el
cuerpo del virus para que no pueda ser detectado fácilmente por un antivirus. Solo deja
disponibles unas cuantas rutinas que se encargaran de desencriptar el virus para poder
propagarse. Una vez desencriptado el virus intentará alojarse en algún archivo de la
computadora.
En este punto tenemos un virus que presenta otra forma distinta a la primera, su modo
desencriptado, en el que puede infectar y hacer de las suyas libremente. Pero para que el
virus presente su característica de cambio de formas debe poseer algunas rutinas
especiales. Si mantuviera siempre su estructura, esté encriptado o no, cualquier antivirus
podría reconocer ese patrón.
Para eso incluye un generador de códigos al que se conoce como engine o motor de
mutación. Este engine utiliza un generador numérico aleatorio que, combinado con un
algoritmo matemático, modifica la firma del virus. Gracias a este engine de mutación el virus
podrá crear una rutina de desencripción que será diferente cada vez que se ejecute.
Los métodos básicos de detección no pueden dar con este tipo de virus. Muchas veces para
virus polimorfos particulares existen programas que se dedican especialmente a localizarlos
y eliminarlos. Algunos softwares que se pueden baja gratuitamente de Internet se dedican
solamente a erradicar los últimos virus que han aparecido y que también son los más
peligrosos.No los fabrican empresas comerciales sino grupos de hackers que quieren
protegerse de otros grupos opuestos. En este ambiente el presentar este tipo de soluciones
es muchas veces una forma de demostrar quien es superior o quien domina mejor las
técnicas de programación.
Las últimas versiones de los programas antivirus ya cuentan con detectores de este tipo de
virus.


Virus sigiloso o stealth: El virus sigiloso posee un módulo de defensa bastante sofisticado.
Este intentará permanecer oculto tapando todas las modificaciones que haga y observando
cómo el sistema operativo trabaja con los archivos y con el sector de booteo. Subvirtiendo
algunas líneas de código el virus logra apuntar el flujo de ejecución hacia donde se encuentra
la zona que infectada.
Es difícil que un antivirus se de cuenta de estas modificaciones por lo que será imperativo
que el virus se encuentre ejecutándose en memoria en el momento justo en que el antivirus
corre. Los antivirus de hoy en día cuentan con la técnica de verificación de integridad para
detectar los cambios realizados en las entidades ejecutables.


El virus Brain de MS-DOS es un ejemplo de este tipo de virus. Se aloja en el sector de
arranque de los disquetes e intercepta cualquier operación de entrada / salida que se intente
hacer a esa zona. Una vez hecho esto redirigía la operación a otra zona del disquete donde
había copiado previamente el verdadero sector de booteo.
Este tipo de virus también tiene la capacidad de engañar al sistema operativo. Un virus se
adiciona a un archivo y en consecuencia, el tamaño de este aumenta. Está es una clara
señal de que un virus lo infectó. La técnica stealth de ocultamiento de tamaño captura las
interrupciones del sistema operativo que solicitan ver los atributos del archivo y, el virus le
devuelve la información que poseía el archivo antes de ser infectado y no las reales. Algo
similar pasa con la técnica stealth de lectura. Cuando el SO solicita leer una posición del
archivo, el virus devuelve los valores que debería tener ahí y no los que tiene actualmente.
Este tipo de virus es muy fácil de vencer. La mayoría de los programas antivirus estándar los
detectan y eliminan.



Virus lentos: Los virus de tipo lento hacen honor a su nombre infectando solamente los
archivos que el usuario hace ejecutar por el SO, simplemente siguen la corriente y
aprovechan cada una de las cosas que se ejecutan. Por ejemplo, un virus lento únicamente
podrá infectar el sector de arranque de un disquete cuando se use el comando FORMAT o
SYS para escribir algo en dicho sector. De los archivos que pretende infectar realiza una
copia que infecta, dejando al original intacto.
Su eliminación resulta bastante complicada. Cuando el verificador de integridad encuentra
nuevos archivos avisa al usuario, que por lo general no presta demasiada atención y decide
agregarlo al registro del verificador. Así, esa técnica resultaría inútil.

La mayoría de las herramientas creadas para luchar contra este tipo de virus son programas
residentes en memoria que vigilan constantemente la creación de cualquier archivo y validan
cada uno de los pasos que se dan en dicho proceso. Otro método es el que se conoce como
Decoy launching. Se crean varios archivos .EXE y .COM cuyo contenido conoce el antivirus.
Los ejecuta y revisa para ver si se han modificado sin su conocimiento.


Retro-virus o Virus antivirus: Un retro-virus intenta como método de defensa atacar
directamente al programa antivirus incluido en la computadora. Para los programadores de
virus esta no es una información difícil de obtener ya que pueden conseguir cualquier copia
de antivirus que hay en el mercado. Con un poco de tiempo pueden descubrir cuáles son los
puntos débiles del programa y buscar una buena forma de aprovecharse de ello.
Generalmente los retro-virus buscan el archivo de definición de virus y lo eliminan,
imposibilitando al antivirus la identificación de sus enemigos. Suelen hacer lo mismo con el
registro del comprobador de integridad.


Otros retro-virus detectan al programa antivirus en memoria y tratan de ocultarse o inician
una rutina destructiva antes de que el antivirus logre encontrarlos. Algunos incluso modifican
el entorno de tal manera que termina por afectar el funcionamiento del antivirus.
Virus multipartitos: Los virus multipartitos atacan a los sectores de arranque y a los ficheros
ejecutables. Su nombre está dado porque infectan las computadoras de varias formas. No se
limitan a infectar un tipo de archivo ni una zona de la unidad de disco rígido. Cuando se
ejecuta una aplicación infectada con uno de estos virus, éste infecta el sector de arranque.
La próxima vez que arranque la computadora, el virus atacará a cualquier programa que se
ejecute.


Virus voraces: Estos virus alteran el contenido de los archivos de forma indiscriminada.
Generalmente uno de estos virus sustituirá el programa ejecutable por su propio código. Son
muy peligrosos porque se dedican a destruir completamente los datos que puedan encontrar.


Bombas de tiempo: Son virus convencionales y pueden tener una o más de las
características de los demás tipos de virus pero la diferencia está dada por el trigger de su
módulo de ataque que se disparará en una fecha determinada. No siempre pretenden crear
un daño específico. Por lo general muestran mensajes en la pantalla en alguna fecha que
representa un evento importante para el programador. El virus Michel Angelo sí causa un
daño grande eliminando toda la información de la tabla de particiones el día 6 de marzo.


Conejo: Cuando los ordenadores de tipo medio estaban extendidos especialmente en
ambientes universitarios, funcionaban como multiusuario, múltiples usuarios se conectaban
simultáneamente a ellos mediante terminales con un nivel de prioridad. El ordenador
ejecutaba los programas de cada usuario dependiendo de su prioridad y tiempo de espera. Si
se estaba ejecutando un programa y llegaba otro de prioridad superior, atendía al recién
llegado y al acabar continuaba con lo que hacia con anterioridad. Como por regla general, los
estudiantes tenían prioridad mínima, a alguno de ellos se le ocurrió la idea de crear este
virus. 
El programa se colocaba en la cola de espera y cuando llegaba su turno se ejecutaba
haciendo una copia de sí mismo, agregándola también en la cola de espera. Los procesos a
ser ejecutados iban multiplicándose hasta consumir toda la memoria de la computadora
central interrumpiendo todos los procesamientos.


Macro-virus: Los macro-virus representan una de las amenazas más importantes para una
red. Actualmente son los virus que más se están extendiendo a través de Internet.
Representan una amenaza tanto para las redes informáticas como para los ordenadores
independientes. Su máximo peligro está en que son completamente independientes del
sistema operativo o de la plataforma. Es más, ni siquiera son programas ejecutables.
Los macro-virus son pequeños programas escritos en el lenguaje propio (conocido como
lenguaje script o macro-lenguaje) propio de un programa. Así nos podemos encontrar con
macro-virus para editores de texto, hojas de cálculo y utilidades especializadas en la
manipulación de imágenes.


lunes, 18 de abril de 2011

REDES E INTERNET

Redes, ConceptoInternet:
Las redes están formadas por conexiones entre grupos de computadoras y dispositivos asociados que permiten a los usuarios la transferencia electrónica de información. La red de área local, representada en la parte izquierda, es un ejemplo de la configuración utilizada en muchas oficinas y empresas. Las diferentes computadoras se denominan estaciones de trabajo y se comunican entre sí a través de un cable o línea telefónica conectada a los servidores. Éstos son computadoras como las estaciones de trabajo, pero poseen funciones administrativas y están dedicados en exclusiva a supervisar y controlar el acceso de las estaciones de trabajo a la red y a los recursos compartidos (como las impresoras). La línea roja representa una conexión principal entre servidores de red; la línea azul muestra las conexiones locales. Un módem (modulador/demodulador) permite a las computadoras transferir información a través de las líneas telefónicas normales. El módem convierte las señales digitales a analógicas y viceversa, y permite la comunicación entre computadoras muy distantes entre sí. Las redes informáticas se han vuelto cada vez más importantes en el desarrollo de la tecnología de computadoras. Las redes son grupos de computadoras interconectados mediante sistemas de comunicación. La red pública Internet es un ejemplo de red informática planetaria. Las redes permiten que las computadoras conectadas intercambien rápidamente información y, en algunos casos, compartan una carga de trabajo, con lo que muchas computadoras pueden cooperar en la realización de una tarea. Se están desarrollando nuevas tecnologías de equipo físico y soporte lógico que acelerarán los dos procesos mencionados.
Internet, interconexión de redes informáticas que permite a las computadoras conectadas comunicarse directamente. El término suele referirse a una interconexión en particular, de carácter planetario y abierto al público, que conecta redes informáticas de organismos oficiales, educativos y empresariales. También existen sistemas de redes más pequeños llamados intranet, generalmente para el uso de una única organización.
La tecnología de Internet es una precursora de la llamada 'superautopista de la información', un objetivo teórico de las comunicaciones informáticas que permitiría proporcionar a colegios, bibliotecas, empresas y hogares acceso universal a una información de calidad que eduque, informe y entretenga. A principios de 1996 estaban conectadas a Internet más de 25 millones de computadoras en más de 180 países, y la cifra sigue en aumento.
Internet es un conjunto de redes locales conectadas entre sí a través de un ordenador especial por cada red, conocido como gateway. Las interconexiones entre gateways se efectúan a través de diversas vías de comunicación, entre las que figuran líneas telefónicas, fibras ópticas y enlaces por radio. Pueden añadirse redes adicionales conectando nuevas puertas. La información que debe enviarse a una máquina remota se etiqueta con ladirección computerizada de dicha máquina.
Los distintos tipos de servicio proporcionados por Internet utilizan diferentes formatos de dirección (Dirección de Internet). Uno de los formatos se conoce como decimal con puntos, por ejemplo 123.45.67.89. Otro formato describe el nombre del ordenador de destino y otras informaciones para el encaminamiento, por ejemplo 'mayor.dia.fi.upm.es'. Las redes situadas fuera de Estados Unidos utilizan sufijos que indican el país, por ejemplo (.es) para España o (.ar) para Argentina. Dentro de Estados Unidos, el sufijo anterior especifica el tipo de organización a que pertenece la red informática en cuestión, que por ejemplo puede ser una institución educativa (.edu), un centro militar (.mil), una oficina del Gobierno (.gov) o una organización sin ánimo de lucro (.org).
Una vez direccionada, la información sale de su red de origen a través de la puerta. De allí es encaminada de puerta en puerta hasta que llega a la red local que contiene la máquina de destino. Internet no tiene un control central, es decir, ningún ordenador individual que dirija el flujo de información. Esto diferencia a Internet y a los sistemas de redes semejantes de otros tipos de servicios informáticos de red como CompuServe, America Online oMicrosoft Network.

TOMADO DE MONOGRAFIAS.COM

HISTORIA DE LINUX

Historia de LINUX y UNIX:
LINUX nació como un producto de Linus Torvalds, inspirado en el MINIX, el sistema operativo desarrollado por Andrew S. Tanenbaum en su obra "Sistemas Operativos: Diseño e Implementación". Libro en el cual, tras un estudio general sobre los servicios que debe proporcionar un sistema operativo y algunas formas de proporcionar éstos, introduce su propia implementación del UNIX en forma de código fuente en lenguaje C yensamblador, además de las instrucciones necesarias para poder instalar y mejorar el mismo.
La primera versión de LINUX, enumerada como 0.01 contenía solo los rudimentos del núcleo y funcionaba sobre una máquina con el MINIX instalado, esto es, para compilar y  con LINUX era necesario tener instalado el MINIX de Tanembaum.
El 5 de Octubre de 1991, Linus anunció su primera versión 'oficial', la 0.02 con esta versión ya se podía ejecutar el bash (GNU Bourne Shell) y el gcc (GNU C compiler).
Después de la versión 0.03, Linus cambió este número por 0.10 y tras las aportaciones de un grupo inicial de usuarios se incrementó de nuevo la denominación a 0.95, reflejando la clara voluntad de poder anunciar en breve una versión 'oficial' (con la denominación 1.0).
En Diciembre de 1993 el núcleo estaba en su versión 0.99 pH I. En la actualidad la última versión estable es al 2.0.30 aunque existe ya la versión de desarrollo 2.1.
La enumeración de las versiones de LINUX implica a tre números separados por puntos, el primero de ellos es la versión del sistema operativo es el que distingue unas versiones de otras cuando las diferencias son importantes. El segundo número indica el nivel en que se encuentra dicha versión. Si es un número impar quiere decir que es una versión de desarrollo con lo cual se nos avisa de que ciertos componentes del núcleo están en fase de prueba, si es par se considera una versión estable. El último número identifica el número de revisión para dicha versión del sistema operativo, suele ser debido a la corrección de pequeños problemas o al añadir algunos detalles que anteriormente no se contemplaba con lo cual no implica un cambio muy grande en el núcleo. Como ejemplo sirva la versión de LINUX con la que ha sido desarrollado este trabajo, la última estable hasta hace poco tiempo, su número es 1.2.13, esto es, la versión 1 en su nivel 2 (estable) y la revisión número 13 de la misma en éste caso fue la última.
Hay que señalar que LINUX no sería lo que es sin la aportación de la Free Software Foundation y todo el software desarrollado bajo el soporte de esta asociación así como la distribución del UNIX de Berkley (BSD), tanto en programas transportados como en programas diseñados para este que forman parte de algunas distribuciones del LINUX.



HISTORIA DEL COMPUTADOR

Historia del Computador:
En 1670 el filósofo y matemático alemán Gottfried Wilhelm Leibniz perfeccionó esta máquina e inventó una que también podía multiplicar.
El inventor francés Joseph Marie Jacquard, al diseñar un telar automático, utilizó delgadas placas de madera perforadas para controlar el tejido utilizado en los diseños complejos. Durante la década de 1880 el estadístico estadounidense Herman Hollerith concibió la idea de utilizar tarjetas perforadas, similares a las placas de Jacquard, para procesar datos. Hollerith consiguió compilar la información estadística destinada al censo depoblación de 1890 de Estados Unidos mediante la utilización de un sistema que hacía pasar tarjetas perforadas sobre contactos eléctricos.
También en el siglo XIX el matemático e inventor británico Charles Babbage elaboró los principios de la computadora digital moderna. Inventó una serie de máquinas, como la máquina diferencial, diseñadas para solucionar problemas matemáticos complejos. Muchos historiadores consideran a Babbage y a su socia, la matemática británica Augusta Ada Byron (1815-1852), hija del  inglés Lord Byron, como a los verdaderos inventores de la computadora digital moderna. La tecnología de aquella época no era capaz de trasladar a la práctica sus acertados conceptos; pero una de sus invenciones, la máquina analítica, ya tenía muchas de las características de un ordenador moderno. Incluía una corriente, o flujo de entrada en forma de paquete de tarjetas perforadas, una memoria para guardar los datos, un procesador para las operaciones matemáticas y una  para hacer permanente el registro.
Los ordenadores analógicos comenzaron a construirse a principios del siglo XX. Los primeros modelos realizaban los cálculos mediante ejes y engranajes giratorios. Con estas máquinas se evaluaban las aproximaciones numéricas de ecuaciones demasiado difíciles como para poder ser resueltas mediante otros métodos. Durante las dos guerras mundiales se utilizaron sistemas informáticos analógicos, primero mecánicos y más tarde eléctricos, para predecir la trayectoria de los torpedos en los submarinos y para el  a distancia de las bombas en la aviación.
Durante la II Guerra Mundial (1939-1945), un equipo de científicos y matemáticos que trabajaban en Bletchley Park, al  de Londres, crearon lo que se consideró el primer ordenador digital totalmente electrónico: el Colossus. Hacia diciembre de 1943 el Colossus, que incorporaba 1.500 válvulaso tubos de vacío, era ya operativo. Fue utilizado por el equipo dirigido por Alan Turing para descodificar los mensajes de radio cifrados de los alemanes. En 1939 y con independencia de este proyecto, John Atanasoff y Clifford Berry ya habían construido un prototipo de máquina electrónica en el Iowa State College (EEUU). Este prototipo y las investigaciones posteriores se realizaron en el anonimato, y más tarde quedaron eclipsadas por el desarrollo del Calculador e integrador numérico electrónico (en  ENIAC, Electronic Numerical Integrator and Computer) en 1946. El ENIAC, que según se demostró se basaba en gran medida en el ordenador Atanasoff-Berry (en inglés ABC, Atanasoff-Berry Computer), obtuvo una patente que caducó en 1973, varias décadas más tarde.
El ENIAC contenía 18.000 válvulas de vacío y tenía una velocidad de varios cientos de multiplicaciones por minuto, pero su programa estaba conectado al procesador y debía ser modificado manualmente. Se construyó un sucesor del ENIAC con un almacenamiento de programa que estaba basado en los conceptos del matemático húngaro-estadounidense John von Neumann. Las instrucciones se almacenaban dentro de una llamada memoria, lo que liberaba al ordenador de las limitaciones de velocidad del lector de cinta de papel durante la ejecución y permitía resolver problemas sin necesidad de volver a conectarse al ordenador.
A finales de la década de 1950 el uso del transistor en los ordenadores marcó el advenimiento de elementos lógicos más pequeños, rápidos y versátiles de lo que permitían las máquinas con válvulas. Como los transistores utilizan mucha menos energía y tienen una vida útil más prolongada, a su desarrollo se debió el nacimiento de máquinas más perfeccionadas, que fueron llamadas ordenadores o computadoras de segunda generación. Los componentes se hicieron más pequeños, así como los espacios entre ellos, por lo que la fabricación del sistema resultaba más barata.
A finales de la década de 1960 apareció el circuito integrado (CI), que posibilitó la fabricación de varios transistores en un único sustrato de silicio en el que los cables de interconexión iban soldados. El circuito integrado permitió una posterior reducción del precio, el tamaño y los porcentajes de error. El microprocesador se convirtió en una realidad a mediados de la década de 1970, con la introducción del circuito de integración a gran escala (LSI, acrónimo de Large Scale Integrated) y, más tarde, con el circuito de integración a  escala (VLSI, acrónimo de Very Large Scale Integrated), con varios miles de transistores interconectados soldados sobre un único sustrato de silicio.

miércoles, 30 de marzo de 2011

SOFTWARE LIBRE

Resumen:
Software Libre: Definiciones preliminares. Clasificaciones del software. Libertades Básicas. Que es y que no es Software Libre. Ventajas y Desventajas. Decisiones que afecta. Maneras de obtener software libre. Leyes y entidades relacionadas. Importancia del estudio del Software Libre. Conclusion.
Definiciones preliminares
Software:
  1. Es el conjunto de programas, procedimientos y documentos relacionados con el sistema hardware.
  2. Es la herramienta de que se vale el usuario para obtener el resultado esperado de un procesamiento de datos.
Programa: es un conjunto de instrucciones lógicas que tienen la finalidad de llevar a cabo una tarea especifica
Programa de computación:
  1. Es un conjunto de instrucciones detalladas que le dirán a la computadora que hacer, paso a paso.
  2. Es una expresión de un conjunto de instrucciones en cualquier lenguaje, apto para lograr que una computadora realice un trabajo.
Código Fuente: también denominado programa fuente
  1. Es un texto escrito en un lenguaje de programación para crear el programa. Es la forma del programa legible por el programador.
  2. Es un texto que describe lo que hace el programa, y que una vez pasado por un proceso llamado compilación (traducción de lenguaje fuente a lenguaje maquina) genera el código ejecutable, el programa que usamos.
  3. Es el conjunto completo de instrucciones y archivos originales y de soporte, creados y/o modificados por el programador, destinado a producir el programa ejecutable a partir de ellos.
Licencia:
  1. Es la forma en que un autor permite el uso de su creación por otras personas, de la manera que el cree aceptable.
  2. Es el instrumento que regula las maneras en que el usuario puede utilizar el software.
Copyright: es el derecho legal de un autor que obtiene por el resultado creativo de un trabajo original. Es una forma de protección garantizada por la ley.
Usuario: es aquella persona que emplea el software
Clasificaciones del software
1) De acuerdo a su costo:
  1. De costo cero: también conocido como software gratis o gratuito. Es aquel software cuyo costo de adquisición es nulo, es decir, no hace efectuar un desembolso de dinero para poder usarlo.
  2. De costo a cero: también se conoce como software "comercial o de pago". Es el software desarrollado por una entidad que tiene la intención de hacer dinero con su uso.
2) De acuerdo a la de su código fuente:
  1. De código fuente abierto: también llamado "de fuente abierta" u "open source". Es aquel software que permite tener acceso a su código fuente a través de cualquier medio (ya sea acompañado con el programa ejecutable, a través de Internet, a través del abono de una suma de dinero, etc.)
  2. De código fuente cerrado: también llamado "software cerrado". Es el software que no tiene disponible su código fuente disponible por ningún medio, ni siquiera pagando. Generalmente tiene esta característica cuando su creador desea proteger su propiedad intelectual.
3) De acuerdo a su protección:
  1. De dominio publico: es el software que no esta protegido por ningún de licencia. Cualquiera puede tomarlo y luego de modificarlo, hacerlo propio.
  2. Protegido por licencias: es el tipo de software protegido con una licencia de uso. Dentro de este grupo tenemos:
b.1) Protegido con copyright: es decir, con derechos de autor (o de copia). El usuario no puede adquirirlo para usarlo y luego vender copias (salvo con la autorización de su creador).
b.2) Protegido con copyleft: es aquel 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.
4) De acuerdo a su "legalidad":
  1. Legal: es aquel software que se posee o circula sin contravenir ninguna norma. Por ejemplo, si tengo un software con su respectiva licencia original y con su certificado de autenticidad, o si lo tengo instalado en una sola computadora (porque la licencia solo me permite hacer eso).
  2. Ilegal: es el software que se posee o circula violando una norma determinada. Por ejemplo: tengo licencia para usarlo en una sola computadora pero lo instalo en mas de una, no tengo la licencia pero lo puedo utilizar mediante artificios (cracks, patchs, loaders, key generators, números de serie duplicados, etc)
5) De acuerdo a su "filosofía":
  1. Propietario: es aquel software que refleja el hecho de que su propiedad absoluta permanece en manos de quien tiene sus derechos y no del usuario, quien únicamente puede utilizarlo bajo ciertas condiciones. Su uso, redistribución y/o modificación están prohibidos o restringidos de modo tal que no es posible llevarlos a cabo. Es decir, este tipo de software le da al usuario derechos limitados sobre su funcionamiento, cuyo alcance establece el autor o quien posea ese derecho. Por ejemplo, ese derecho puede ser el de ejecutar el programa "tal como es" en una determinada computadora.
  2. Libre: es el tipo de software que le da al usuario la libertad de usarlo, estudiarlo, modificarlo, mejorarlo, adaptarlo y redistribuirlo, con la única restricción de no agregar ninguna restricción adicional al software modificado, mejorado, adaptado o redistribuido. Vale aclarar que debe permitir el acceso al código fuente, debido a que ello es una condición imprescindible para ejercer las libertades de estudiarlo, modificarlo, mejorarlo y adaptarlo.
Definición de Software Libre
El Software Libre es un tipo particular de software que le permite al usuario el ejercicio de cuatro libertades básicas:
  1. Ejecutarlo con cualquier propósito
  2. Estudiar como funciona y adaptarlo a sus necesidades
  3. Distribuir copias
  4. Mejorarlo, y liberar esas mejoras al publico
Con la única restricción del copyleft (o sea, cualquiera que redistribuya el software, con o sin , debe dar las mismas libertades que antes), y con el requisito de permitir el acceso al código fuente (imprescindible para ejercer las libertades 1 y 3)
Ubicación del Software Libre en las distintas clasificaciones
  1. De acuerdo al costo de adquisición: el Software Libre puede ser de las dos clases, es decir, de costo cero o de costo mayor que cero. Lo que lo diferencia del Software Propietario es que su costo es del numero de computadoras que se poseen. Por ejemplo, en el caso del Sistema Operativo Microsoft Windows 3.1/95/98/Me/NT/2000/XP por cada computadora en que lo instale debo pagar una licencia. En cambio, si utilizo en Sistema Operativo GNU/Linux (en cualquiera de sus distribuciones, como Red Hat, Mandrake, Debian, Ututo) debo pagar una sola licencia (no obstante, algunas licencias no tienes costo).
  2. De acuerdo a la apertura del código fuente: el Software Libre siempre es "open source", es decir, de código fuente abierto, ya que dijimos que el acceso al código fuente es necesario para el ejercicio de las libertades 1 y 3 arriba descriptas. El ser "open source" implica una serie de ventajas que serán descriptas en la sección "Ventajas del Software Libre".
  3. De acuerdo a su protección: el Software Libre siempre esta protegido con licencias, y mas específicamente, con licencias de copyleft. ¿Por que no de dominio publico? Porque de ese modo cualquiera puede adueñarse de el, por ejemplo, adquiere un Software Libre, lo modifica, lo compila y lo distribuye con código cerrado. ¿Por que no con Copyright? Porque de esa manera alguien le puede agregar alguna restricción, por lo tanto no va a seguir siendo Software Libre.
  4. De acuerdo a su legalidad: el Software Libre siempre es legal, porque al usarlo, estudiarlo, modificarlo, adaptarlo y/o mejorarlo no estoy violando ninguna norma, ya que de por si este tipo de software me permite hacerlo, con la única salvedad de no poder agregarle ninguna restricción adicional cuando lo transfiera a otra persona.
Explicación de las libertades básicas del Software Libre
Libertad Cero: "usar el programa con cualquier propósito". Es decir, el ejercicio de esta libertad implica que lo podemos utilizar con cualquier fin, ya sea educativo, cultural, comercial, político, social, etc. Esta libertad deriva de que hay ciertas licencias que restringen el uso del software a un determinado propósito, o que prohíben su uso para determinadas actividades.
Libertad Uno: "Estudiar como funciona el programa, y adaptarlo a sus necesidades". Significa que podemos estudiar su funcionamiento (al tener acceso al código fuente) lo que nos va a permitir, entre otras cosas: descubrir funciones ocultas, averiguar como realiza determinada tarea, descubrir que otras posibilidades tiene, que es lo que le falta para hacer algo, etc. El adaptar el programa a mis necesidades implica que puedo suprimirle partes que no me interesan, agregarle partes que considero importantes, copiarle una parte que realiza una tarea y adicionarla a otro programa, etc.
Libertad Dos: "Distribuir copias". Quiere decir que soy libre de redistribuir el programa, ya sea gratis o con algún costo, ya sea por email, FTP o en CD, ya sea a una persona o a varias, ya sea a un vecino o a una persona que vive en otro país, etc.
Libertad Tres: "Mejorar el programa, y liberar las mejoras al publico". Tengo la libertad de hacer mejor el programa, o sea que puedo: hacer los requerimientos de hardware para funcionar, que tenga prestaciones, que ocupe menos espacio, que tenga menos errores, etc. El poder liberar las mejoras al publico quiere decir que si yo le realizo una mejora que permita un requerimiento de hardware, o que haga que ocupe menos espacio, soy libre de poder redistribuir ese programa mejorado, o simplemente proponer la mejora en un lugar publico (un foro de noticias, una lista de correo, un sitio Web, un FTP, un canal de Chat).
Qué no es Software Libre
  1. Software regalado: o de costo cero, pero sin el código fuente. Es el que normalmente viene en los CD’s de revistas de computación o que se consigue en sitios freeware.
  2. Software con el código fuente: esto quiere expresar que el software se provee con su código fuente, pero no necesariamente brinda las libertades del Software Libre. Ventajas del Software Libre
    1. Escrutinio Publico: Al ser muchos las personas que tienen acceso al código fuente, eso lleva a un proceso de corrección de errores muy dinámico, no hace falta esperar que el proveedor del software saque una nueva versión.
    2. Independencia del proveedor:
  3. Software de dominio publico: este tipo de software no tienen licencias de uso, por lo tanto corre el peligro de dejar de serlo si alguien lo utiliza con el fin de apropiárselo.

  1. Al disponer del código fuente, cualquier persona puede continuar ofreciendo soporte, desarrollo u otro tipo de servicios para el software.
  2. No estamos supeditados a las condiciones del mercado de nuestro proveedor, es decir que si este se va del mercado porque no le conviene y discontinua el soporte, nosotros podemos contratar a otra persona.
  1. de la Lengua:

  1. Traducción: cualquier persona capacitada puede traducir y adaptar un software libre a cualquier lengua.
  2. Corrección ortográfica y gramatical: una vez traducido el software libre puede presentar errores de este tipo, los cuales pueden ser subsanados con mayor rapidez por una persona capacitada.
  1. Mayor seguridad y privacidad:

  1. Los sistemas de almacenamiento y recuperación de la información son públicos. Cualquier persona puede ver y entender como se almacenan los datos en un determinado formato o sistema.
  2. Existe una mayor dificultad para introducir código malicioso como ser: espía (p/ej. capturador de teclas), de control remoto (p/ej. Troyano), de entrada al sistema (p/ej. puerta trasera), etc.
  1. Garantía de continuidad: el software libre puede seguir siendo usado aun después de que haya desaparecido la persona que lo elaboro, dado que cualquier técnico informatico puede continuar desarrollándolo, mejorándolo o adaptándolo.
  2. Ahorro en costos: en cuanto a este tópico debemos distinguir cuatro grandes costos: de adquisición, de implantación (este a su vez se compone de costos de migración y de instalación), de soporte o mantenimiento, y de interoperabilidad. El software libre principalmente disminuye el costo de adquisición ya que al otorgar la libertad de distribuir copias la puedo ejercer con la compra de una sola licencia y no con tantas como computadoras posea (como sucede en la mayoría de los casos de software propietario). Cabe aclarar que también hay una disminución significativa en el costo de soporte, no ocurriendo lo mismo con los costos de implantación y de interoperatividad.
Desventajas del software libre
Si observamos la situación actual, es decir la existencia mayoritaria de Software Propietario, tenemos:
  1. Dificultad en el intercambio de archivos: esto se da mayormente en los documentos de texto (generalmente creados con Microsoft Word), ya que si los queremos abrir con un Software Libre (p/ ej. Open Office o LaTeX) nos da error o se pierden datos. Pero esta claro que si Microsoft Word creara sus documentos con un formato abierto (o publico) esto no sucedería.
  2. Mayores costos de implantación e interoperabilidad: dado que el software constituye "algo nuevo", ello supone afrontar un costo de aprendizaje, de instalación, de migración, de interoperabilidad, etc., cuya cuantía puede verse disminuida por: mayor facilidad en las instalaciones y/o en el uso, uso de emuladores (p/ej. Si el usuario utiliza Microsoft Windows, la solución seria instalar alguna distribución de GNU/Linux y luego un emulador de Windows, como Wine, VMWare. Terminal X, Win4Lin). Vale aclarar que el costo de migración esta referido al software, ya que en lo que hace a Hardware generalmente el Software Libre no posee mayores requerimientos que el Software Propietario.
Decisiones que afecta el uso del Software Libre
  1. Libertad de elección:

  1. Respecto al software: se obtiene la independencia del soporte de versiones. Es de publico conocimiento que Microsoft ha dejado de ofrecer soporte de desarrollo a Windows 95 y Windows 98, para dedicarse de lleno a Windows Me, 2000, XP y .NET.
  2. Respecto al Hardware: al tener requisitos de funcionamiento no tan elevados, el usuario no esta atado a la compra de una determinada computadora, o procesador, o disco rígido, o cantidad de memoria RAM, etc. Esa compra que haga el usuario solo depende de la velocidad con la que desee realizar sus tareas, no de si el software va a funcionar o no en esas condiciones.
  3. Respecto al soporte: al tener acceso al código fuente, cualquier persona idónea nos puede ofrecer soporte, no solo nuestro proveedor. En el software Propietario esto no sucede, ya que ninguna persona ajena al proveedor conoce el funcionamiento interno del mismo.
  4. Respecto a la Formación o Capacitación: la puede ofrecer cualquiera, no solo el proveedor.
  1. Protección de la inversión:

  1. En Software: Los desarrollos en software siempre son aprovechables para otros desarrollos, si se licencian de manera "libre". Además, el fomento de la comunidad de usuarios supone un potencial extraordinario en cuanto a la generación de nuevo y mejor software.
  2. En Hardware: no se necesita reemplazar el hardware constantemente, porque no se necesita cambiar el software si este ya no funciona como se quiere.
  3. En Soporte: la experiencia ganada por los técnicos propios puede extenderse a otro tipo de software.
  4. En Formación: como no existen artificios para ocultar información, puede elegirse a otra persona que brinde capacitación con un precio mas accesible.
  1. Relación rendimiento/ Precio:
  1. Costo del Software: el software libre tiene la ventaja de no obligar a pagar una licencia por cada computadora en que se lo instale.

  2. Costo del Hardware: hay cierto Software Propietario que tiene requerimientos excesivos de hardware para funcionar. Es decir, no hay relación razonable entre la tarea que realiza y el hardware que requiere.
  3. Costo de Soporte: su costo es menor porque cualquiera lo puede ofrecer, si bien es cierto que no tenemos una calidad garantizada.
  4. Costo de Formación: su costo es menor, al no estar monopolizada. Aquí cabe el mismo comentario que el realizado con respecto al costo de soporte.
  1. Comunicación e interoperabilidad de sistemas: el Software Libre garantiza el respeto a los estándares en los formatos, protocolos e interfases. En cambio el Software Propietario generalmente los cambia, para obligar al usuario a cambiar de versión. Pero un costo importante en esta parte es el de adaptar los estándares cerrados a estándares abiertos (por ejemplo, XLS a XML, DOC a Tex, etc.)
Maneras de obtener software libre
  1. A través de copias en CD: los que a su vez se pueden conseguir en revistas especializadas, o comprándolos en una casa de computación, o pidiéndoselos a un amigo, pariente, etc.
  2. A través de Internet: a su vez, por medio de FTP, sitios Web, canales de chat, foros de noticias, programas de intercambio de archivos, etc.
  3. A través de una computadora: en este caso, comprando una que venga con Software Libre preinstalado, ya sea de fabrica o por su vendedor.
Leyes relacionadas
En el ámbito nacional tenemos:
  1. Ley 11723: es una ley compuesta por 89 artículos, sancionada en 1933 (y todavía vigente), conocida como "Ley de Propiedad Intelectual" o también como "Ley de Propiedad Científica, Literaria y Artística". Esta ley regula todo lo referente a derecho de propiedad de una obra artística, científica o literaria, derechos de coautor, enajenación o cesión de una obra, licencias, etc. Además, establece sanciones tanto pecuniarias (multa) como privativas de la libertad (prisión) a quienes violen sus normas. Su ultima reforma data de Noviembre de 1998, cuando por Ley 25036 se le introdujeron modificaciones referidas al software, para darle fin a las discusiones doctrinarias y jurisprudenciales sobre la cuestión de si el software estaba o no bajo el amparo de esta ley. Ahora establece expresamente en su Art. 1 que "... las obras científicas, literarias y artísticas comprenden los escritos de toda naturaleza y extensión, entre ellos los programas de computación fuente y objeto; las compilaciones de datos o de otros materiales, ..." y en su art. 55 bis que "La explotación de la propiedad intelectual sobre los programas de computación incluirá entre otras formas los contratos de licencia para su uso o reproducción".
  2. Proyecto de ley sobre Software Libre: es un proyecto presentado en Marzo de 2001 por Marcelo Luis Dragan, Diputado Nacional por la provincia de Tierra del Fuego, del Partido Acción por la Republica. Originalmente lleva el nombre de de Utilización de Software Libre por el Estado Nacional", y establece la obligación de usar prioritariamente Software Libre en todas las dependencias de la Administración Publica Nacional, salvo excepciones. Entre los aspectos que motivaron el proyecto, se destacan el económico (por el costo de las licencias y por la libertad de copiar que otorga el Software Libre), el moral (es conocido que en todos los ámbitos de la Administración Publica se utiliza Software Ilegal, ya sea por cuestiones de costos, negligencia, etc., lo cual coloca al Estado como uno de los principales infractores a la Ley 11723), el cultural, el educativo, el de seguridad nacional, etc. Actualmente este proyecto se encuentra en estudio en la comisión de Legislación General y Comunicación.
Entidades relacionadas con el Software
Hay una innumerable cantidad de organizaciones relacionadas con esta temática:
Por el lado del Software Libre: la FSF, la Organización Open Source, la Fundación Vía Libre, etc.
Por el lado del "Software Legal", tenemos dos:
  1. La BSA: "Business Software Alliance" es una organización mundial sin fines de lucro, creada en 1988 por un grupo de empresas fabricantes de software. Tiene tres funciones fundamentales: a) Inculcar a los gobiernos y a los consumidores que pagar por usar en Software redunda en beneficio de la economía, incrementando la productividad de los trabajadores y el numero de puestos en empleo. b) Emprender acciones legales contra aquellos que no cumplan con las leyes de propiedad intelectual y/o que hagan mal uso de las licencias de software. c) Promover legislaciones que protejan los derechos de propiedad intelectual, y conseguir que los gobiernos las ejecuten.
  2. La organización "Software Legal": es una asociación civil sin fines de lucro, creada en 1992 por un grupo de empresas fabricantes de software. Tiene las mismas funciones y características de la BSA.
Importancia de afrontar el estudio del Software Libre
  1. Económica: el costo de las licencias de Software Propietario es bastante importante, y por la situación económica actual, imposible de afrontar de la manera que los fabricantes de Software lo piden.
  2. Legal: el Software Libre es siempre legal, salvo contadas excepciones (p/ej., que compilemos el código fuente y lo vendamos como propietario). Por lo tanto, al utilizar este tipo de software estaremos siempre "por derecha", por lo que no seremos pasibles de multas y/o prisión.
  3. Técnica: es sabido que Microsoft ha dejado de ofrecer soporte de desarrollo para Windows 95 y Windows 98, por lo que si hoy o mañana se descubre un error en ellos, Microsoft no esta obligado a repararlo. Para solucionar esto, tendríamos dos caminos: a) Migrar a otras versiones de Sistema Operativos de Microsoft: esto lleva aparejado una serie de costos, principalmente en licencias, luego costos de implantación, soporte e interoperabilidad, y además implica volver a hacer lo mismo dentro de dos o tres años. b) Utilizar Software Libre
  4. Laboral: la implementación de Software Libre plantea un futuro muy prometedor para aquellas personas que sepan programar, traducir, utilizar un programa, enseñar, etc. Si tenemos que elegir entre pagar una licencia de software a un coloso informático o darle trabajo directamente a una persona, es de esperar que nos volquemos a la segunda alternativa.
Conclusión
Es importante que como estudiantes de Ciencias Económicas vayamos cambiando nuestras costumbres con respecto al Software que utilizamos.
  1. Los que tienen computadora en su casa: instalando alguna distribución de GNU/Linux (tener en cuenta que pueden "convivir" con un Sistema Operativo propietario como Microsoft Windows) o utilizando Software Libre para Windows (como Open Office, LaTeX, Mozilla, FreeAmp, The GIMP, etc.)
  2. Los que trabajan en la Administración Publica: hablando con el Jefe de Sistemas sobre esta "Filosofía del Software Libre" y sobre las posibilidades de implementación, o instalando Software Libre por nuestra cuenta pero con la debida autorización.
  3. Los que trabajan en el estudio de un/a Contador/a: charlando sobre este tema con el/la y sugiriéndole que le pida a su proveedor de software (Tango, Bejerman, Oracle, etc.) que desarrolle sistemas para GNU/Linux u otra plataforma.
  4. Los que trabajan en otra parte o los que no trabajan: hablar con compañeros de trabajo o amigos sobre este tema, compartir experiencias, sugerir trucos, etc.