Willkommen! - Bienvenido! - Welcome!

Bitácora digital de Información al cliente de Tux&Cía.
Bitácora Central: Tux & Cía.
Bitácora Técnica (multilingüe): TecniCambalandia
May the source be with you!
Showing posts with label definición. Show all posts
Showing posts with label definición. Show all posts

Sunday, March 28, 2010

Confiabilidad y Disponibilidad

Reliability and Availability Basics
Realtime and embedded systems are now a central part of our lives. Reliable functioning of these systems is of paramount concern to the millions of users that depend on these systems everyday. Unfortunately most embedded systems still fall short of users expectation of reliability.
In this article we will discuss basic techniques for measuring and improving reliability of computer systems. The following topics are discussed:
Failure Characteristics
Hardware Failures
Hardware failures are typically characterized by a bath tub curve. An example curve is shown below. The chance of a hardware failure is high during the initial life of the module. The failure rate during the rated useful life of the product is fairly low. Once the end of the life is reached, failure rate of modules increases again. 
Bath tub curve characterizing hardware failure
Hardware failures during a products life can be attributed to the following causes:
Design failures This class of failures take place due to inherent design flaws in the system. In a well designed system this class of failures should make a very small contribution to the total number of failures.
Infant Mortality This class of failures cause newly manufactured hardware to fail. This type of failures can be attributed to manufacturing problems like poor soldering, leaking capacitor etc. These failures should not be present in systems leaving the factory as these faults will show up in factory system burn in tests.
Random Failures Random failures can occur during the entire life of a hardware module. These failures can lead to system failures. Redundancy is provided to recover from this class of failures.
Wear Out Once a hardware module has reached the end of its useful life, degradation of component characteristics will cause hardware modules to fail. This type of faults can be weeded out by preventive maintenance and routing of hardware.
Software Failures
Software failures can be characterized by keeping track of software defect density in the system. This number can be obtained by keeping track of historical software defect history. Defect density will depend on the following factors:
  • Software process used to develop the design and code (use of peer level design/code reviews, unit testing)
  • Complexity of the software
  • Size of the software
  • Experience of the team developing the software
  • Percentage of code reused from a previous stable project
  • Rigor and depth of testing before product is shipped. 
Defect density is typically measured in number of defects per thousand lines of code (defects/KLOC).

Reliability Parameters
MTBF
Mean Time Between Failures (MTBF), as the name suggests, is the average time between failure of hardware modules. It is the average time a manufacturer estimates before a failure occurs in a hardware module.
MTBF for hardware modules can be obtained from the vendor for off-the-shelf hardware modules. MTBF for inhouse developed hardware modules is calculated by the hardware team developing the board.
MTBF for software can be determined by simply multiplying the defect rate with KLOCs executed per second. 
FITS
FITS is a more intuitive way of representing MTBF. FITS is nothing but the total number of failures of the module in a billion hours (i.e. 1000,000,000 hours). 
Mean Time To Repair (MTTR), is the time taken to repair a failed hardware module. In an operational system, repair generally means replacing the hardware module. Thus hardware MTTR could be viewed as mean time to replace a failed hardware module. It should be a goal of system designers to allow for a high MTTR value and still achieve the system reliability goals. You can see from the table below that a low MTTR requirement means high operational cost for the system.
Estimating the Hardware MTTR
Where are hardware spares kept? How is site manned?  Estimated MTTR
Onsite 24 hours a day 30 minutes
Onsite Operator is on call 24 hours a day 2 hours
Onsite Regular working hours on week days as well as weekends and holidays 14 hours
Onsite Regular working hours on week days only 3 days
Offsite. Shipped by courier when fault condition is encountered. Operator paged by system when a fault is detected. 1 week
Offsite. Maintained in an operator controlled warehouse System is remotely located. Operator needs to be flown in to replace the hardware. 2 week
MTTR for a software module can be computed as the time taken to reboot after a software fault is detected. Thus software MTTR could be viewed as the mean time to reboot after a software fault has been detected. The goal of system designers should be to keep the software MTTR as low as possible. MTTR for software depends on several factors:
 More

Availability
Availability of the module is the percentage of time when system is operational. Availability of a hardware/software module can be obtained by the formula given below.
Availability calculation from MTBF and MTTR
Availability is typically specified in nines notation. For example 3-nines availability corresponds to 99.9% availability. A 5-nines availability corresponds to 99.999% availability.
Downtime
Downtime per year is a more intuitive way of understanding the availability. The table below compares the availability and the corresponding downtime.
Availability Downtime
90% (1-nine) 36.5 days/year
99% (2-nines) 3.65 days/year
99.9% (3-nines) 8.76 hours/year
99.99% (4-nines) 52 minutes/year
99.999% (5-nines) 5 minutes/year
99.9999% (6-nines) 31 seconds/year !

Almacenamiento, Protección y Respaldo de Datos

Fuente 
Un archivo informático o fichero es un conjunto de bits almacenado en un dispositivo periférico.
Un archivo es identificado por un nombre y la descripción de la carpeta o directorio que lo contiene. Los archivos informáticos se llaman así porque son los equivalentes digitales de los archivos en tarjetas, papel o microfichas del entorno de oficina tradicional. Los archivos informáticos facilitan una manera de organizar los recursos usados para almacenar permanentemente datos en un sistema informático.
Contenido de los archivos
En lo que concierne al sistema operativo, un archivo es, en la mayoría de los casos, simplemente un flujo unidimensional de bits , que es tratado por el sistema operativo como una única unidad lógica. Un archivo de datos informático normalmente tiene un tamaño, que generalmente se expresa en bytes; en todos los sistemas operativos modernos, el tamaño puede ser cualquier número entero no negativo de bytes hasta un máximo dependiente del sistema. Depende del software que se ejecuta en la computadora el interpretar esta estructura básica como por ejemplo un programa, un texto o una imagen, basándose en su nombre y contenido.
Los datos de un archivo informático normalmente consiste de paquetes más pequeños de datos (a menudo llamados registros o líneas) que son individualmente diferentes pero que comparten algún rasgo en común. Por ejemplo, un archivo de nóminas puede contener datos sobre todos los empleados de una empresa y los detalles de su nómina; cada registro del archivo de nóminas se refiere únicamente a un empleado, y todos los registros tienen la característica común de estar relacionados con las nóminas-esto es muy similar a colocar todos los datos sobre nóminas en un archivador concreto en una oficina que no tenga ninguna computadora. Un archivo de texto puede contener líneas de texto, correspondientes a líneas impresas en una hoja de papel.
La manera en que se agrupan los datos en un archivo depende completamente del tipo de archivo, adecuado a la aplicación que permite generarlo, cambiarlo y leerlo. Esto ha conducido a una plétora de estructuras de archivo más o menos estandarizadas para todos los propósitos imaginables, desde los más simples a los más complejos. La mayoría de los archivos informáticos son usados por programas o aplicaciones. Estos programas crean, modifican y borran archivos para su propio uso bajo demanda. Los programadores que crean los programas deciden qué archivos necesitan, cómo se van a usar, y (a menudo) sus nombres.
En algunos casos, los programas de computadora manipulan los archivos que se hacen visibles al usuario de la computadora. Por ejemplo, en un programa de procesamiento de texto, el usuario manipula archivos-documento a los que él mismo da nombre. El contenido del archivo-documento está organizado de una manera que el programa de procesamiento de texto entiende, pero el usuario elige el nombre y la ubicación del archivo, y proporciona la información (como palabras y texto) que se almacenará en el archivo.
Muchas aplicaciones empaquetan todos sus archivos de datos en un único archivo, usando marcadores internos para discernir los diferentes tipo de información que contienen.
Los archivos de una computadora se pueden crear, mover, modificar, aumentar, reducir y borrar. En la mayoría de los casos, los programas de computadora que se ejecutan en la computadora se encargan de estas operaciones, pero el usuario también puede manipular los archivos si es necesario. Por ejemplo, los archivos de Microsoft Office Word son normalmente creados y modificados por el programa Microsoft Word en respuesta a las órdenes del usuario, pero el usuario también puede mover, renombrar o borrar estos archivos directamente usando un programa gestor de archivos como Windows Explorer (en computadoras con sistema operativo Windows).

Protección de archivos
Muchos sistemas informáticos modernos proporcionan métodos para proteger los archivos frente a daños accidentales o intencionados. Las computadoras que permiten varios usuarios implementan permisos sobre archivos para controlar quién puede o no modificar, borrar o crear archivos y carpetas. A un usuario dado se le puede conceder solamente permiso para modificar un archivo o carpeta, pero no para borrarlo; o a un usuario se le puede conceder permiso para crear archivos o carpetas, pero no para borrarlos. Los permisos también se pueden usar para permitir que solamente ciertos usuarios vean el contenido de un archivo o carpeta. Los permisos protegen de la manipulación no autorizada o destrucción de la información de los archivos, y mantienen la información privada confidencial impidiendo que los usuarios no autorizados vean ciertos archivos.
Otro mecanismo de protección implementado en muchas computadoras es una marca de sólo lectura. Cuando esta marca está activada en un archivo (lo que puede ser realizado por un programa de computadora o por un usuario humano), el archivo puede ser examinado, pero no puede ser modificado. Esta marca es útil para información crítica que no debe ser modificada o borrada, como archivos especiales que son usados solamente por partes internas del sistema informático. Algunos sistemas incluyen también una marca oculta para hacer que ciertos archivos sean invisibles; esta marca la usa el sistema informático para ocultar archivos de sistema esenciales que los usuarios nunca deben modificar.
Protección legal de datos de archivos
La protección de datos personales y velar por la privacidad de la información es un tema de suma importancia a nivel de empresas y de países. El mal uso de información personal puede constituir un delito.
Algunos países han creado organismos que se encargan del tema y de legislar respecto del acceso, uso y confidencialidad de los datos.
Almacenamiento de archivos
En términos físicos, la mayoría de los archivos informáticos se almacenan en discos rígidos -discos magnéticos que pueden registrar datos y por lo tanto, información a lo largo de su vida útil . 
Los discos rígidos permiten acceso en menor tiempo a los archivos informáticos, al contrario de las cintas magnéticas, discos compactos grabables, unidades Zip que se usaban para realizar copias de seguridad.
En la actualidad se está generalizando el uso de discos de estado sólido en nettops y  y otros tipos de dispositivos con mucha capacidad de almacenamiento que tienen la ventaja de ser pequeños y portátiles como memorias flash.
Respaldo de archivos
Cuando los archivos informáticos contienen información que es extremadamente importante, se usa un proceso de respaldo (backup) para protegerse de desastres que podrían destruir los archivos. Hacer copias de respaldo de archivos significa simplemente hacer copias de los archivos en una ubicación separada de modo que se puedan restaurar si le pasara algo a la computadora, o si fueran borrados accidentalmente.
Hay muchas maneras de hacer copias de respaldo de archivos. La mayoría de los sistemas informáticos proporcionan utilidades para ayudar en el proceso de respaldo, que puede llegar a consumir mucho tiempo si hay muchos archivos a salvaguardar. Copiar los archivos a otro disco rígido en la misma computadora protege contra el fallo de un disco, pero si es necesario protegerse contra el fallo o destrucción de la computadora entera, entonces de deben hacer copias de los archivos en otro medio que puede sacarse de la computadora y almacenarse en una ubicación distante y segura.

El DATO

El Dato es una representación simbólica (numérica, alfabética, algorítmica etc.), un atributo o una característica de una entidad. El dato no tiene valor semántico (sentido) en sí mismo, pero si recibe un tratamiento (procesamiento) apropiado, se puede utilizar en la realización de cálculos o toma de decisiones. Es de empleo muy común en el ámbito informático y, en general, prácticamente en cualquier disciplina científica.
En programación, un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo.
En Estructura de datos, es la parte minima de la información.
Un dato por sí mismo no constituye información, es el procesado de los datos lo que nos proporciona información.Véase también: Archivo informático

Thursday, October 30, 2008

Seguridad Informática (Definiciones)

[Traducción libre del artículo de Wikipedia]
Seguridad Informática
es una rama aplicada a ordenadores de la tecnología conocida como Seguridad de la Información.
Su objetivo varía y puede incluir protección de información contra robo o corrupción o la preservación de disponibilidad (o integridad de los datos) como definida en una política de seguridad, que impone requerimientos en los ordenadores que son diferentes de la mayoría de los requerimientos de seguridad de otros campos o tecnologías, porque a menudo toma la forma de restricciones de fuerza mayor en lo que los ordenadores se supone que no deben ser usados.
Estos requerimientos hacen de la Seguridad Informática un desafío muy particular porque es muy difícil lograr que programas de ordenadores (sistema operativo sobre todo) hagan (correctamente!) todo lo que (y tal como) ha sido diseñado.
Además, requerimientos "negativos" son decepcionantemente complicados de satisfacer y requieren exhaustivos tests para verificar qué no es practicable para la mayoría de programas informáticos.
Seguridad informática prove una estrategia técnica para convertir "requerimientos negativos" en reglas implementables positivas.
Por esta razón esta rama importante de la seguridad es más técnica y basada en teorías matemáticas que otros campos de la Informática.
Típicos modelos para mejorar la seguridad en ordenadores puede incluir lo siguiente:

  • Limitación del acceso físico a los equipos sólo a aquellos que no comprometan la seguridad.
  • Mecanismos de hardware que imponen reglas en el software. Y a la vez, eviten dependencia de programas para lograr esa seguridad
  • Mecanismos del sistema operativo que imponga reglas de programación para evitar confiar per se en programas informáticos.
  • Estrateg¡as de programación que hagan software dependiente y resista subversiones

1.Sistemas Operativos seguros
Un uso del término seguridad informática se refiere a la tecnología para implementar un sistema operativo seguro. Mucha de esta tecnología fue basada en ciencia desarrollada en los años (19)80'. Un ejempplo de una política en Seguridad Informática fue el modelo Bell-LaPadula, cuya estrategia está basada en un acoplaje de características de un microprocesador especial, muchas veces involucrando la unidad administradora de memoria, en un kernel (núcleo) especial de sistema operativo correctamente implementado.
La metodología del diseño para producir estos sistemas seguros es preciso, determinístico y lógico.
Sistemas diseñados con esa metodología presenta el "state of the art" de seguridad informática, aunque productos con esta seguridad no son ampliamente conocidos. Son usados para proteger información de seguridad nacional, secretos militares y los datos de instituciones financieras internacionales.
Estas pocos sistemas operativos han sido certificados con el más alto nivel (Orange Book A-1) para operar sobre el rango "Top Secret" a "no clasificado" (incluye Honeywell SCOMP, USAF SACDIN, NSA Blacker y Boeing MLS LAN)
Hay diferentes grados de fortaleza en seguridad definida por COMPUSEC. El Criterio Común cuantifica niveles de seguridad de productos en términos de dos componentes:

  • Seguridad en funcionalidad y
  • nivel de confidencialidad (como los niveles EAL),

y estos son especificados en un perfil de protección para requerimientos y un Blanco de Seguridad para descripción de productos. Ninguno de estos sistemas operativos de propósito general con ultra-alta confidencialidad han sido producidos o certificados durante décadas.

2.Arquitectura de Seguridad
Definida como los artefactos de diseño que describen como los controles de seguridad (contramedidas de seguridad) son posicionadas y cómo ellos relacionan la totalidad de la arquitectura de la tecnología de información. Estos controles sirven al propósito de mantener los atributos de calidad del sistema, entre ellos confidencialidad, integridad, disponibilidad, accountability y confiabilidad.
En palabras simples, es el plan que muestra donde deben ser puestas las medidas de seguridad.
Si el plan describe una solución específica, pues se debe hacer un análisis de riesgos.
Si el plan describe un diseño genérico de alto nivel (arquitectura de referencia) entonces el plan debe ser basado en un análisis de amenazas.

3.Securidad por Diseño
Las tecnologías de la seguridad informática están basadas en lógica.
No hay noción de un estándar universal de lo que es un comportamiento seguro.
"Seguridad" es un concepto que es único para cada situación.
Seguridad es extraña (no intrínseca, no esencial) a la función de una aplicación de ordenadores, antes que subservil o auxiliar a ésta, por lo tanto seguridad necesariamente impone restricciones al comportamiento de la aplicación.
Hay muchas opciones a la seguridad in computación, a veces una combinación de opciones es válida:
  1. Confía todo el software avalado en una política de seguridad , pero el software no es confiable (ésto es computer insecurity).
  2. Confía todo el software avalado en una política de seguridad y el software es validado como confiable (e.g. por tediosos análisis branch and path).
  3. No confies en software alguno, pero aplica una política de seguridad con mecanismos que no son confiables (nuevamente, ésto es computer insecurity).
  4. No confies en software alguno, pero aplica una política de seguridad con mecanismos confiables.
Muchos sistemas han resultado unintencionalmente de la opción 1.
Desde que la opción 2 es cara y no determinista, su uso es muy limitado.
Propuestas 1 y 3 tienden a fallar.
La propuesta 4 es a menudo basada en mecanismos de hardware y evita abstracciones y una multiplicidad de grados de libertad, es más prácticable.
cCombinaciones de propuestas 2 y 4 son a menudo usadas en una arquitectura de capas con capas delgadas de 2 y capas gruesas de 4.
Hay miríadas de estrategias y técnicas usadas para diseñar sistemas de seguridad. Hay pocas estrategias efectivas para aumentar seguridad acorde al diseño, si las hay.

4.Código seguro
Ver "Secure Coding in C and C++"

5.Capacidades vs. Access Control Lists
En sistemas informáticos, los dos medios fundamentales de lograr separación de privilegios son access control lists (ACLs) [listas de control de acceso] y capacidades.
La semántica de ACLs ha sido probada de ser insegura en muchas situaciones (e.g., Confused deputy problem).
También se ha demostrado que la promesa de ACLs de dar accceso a un objeto a una sola persona no puede ser jamás garantizado en la práctica.
Ambos problemas son resueltos por capacidades. Esto no significa que hayan defectos en todos los sistemas basados en listas de control de acceso, pero solamente ue los diseñadores de cieretas utilidades deben tomar responsabilidades para asegurar que ellos no introducen defectos.
Desafortunadamente, por razones históricas, capacidades han sido a menudo restringidas a sistemas operativos de investigación y los sistemas operativos comerciales aún usan listas para control de acceso.
Una razón para la falta de adopción de capacidades pueda ser que las ACL aparentaban ofrecer un 'arreglo rápido' para la seguridad sin rediseño pervasivo del sistema operativo y hardware.

Los más seguros ordenadores son aquellos no conectados al Internet y escudados de toda interferencia. En el mundo real, la mayor seguridad no es un agregado, sino viene con el sistema operativo, como el OS/400 de IBM. Éste nunca aparece en listas de vulnerabilidades por razones claras. Años pasan entre un problema de vulnerabilidad y el próximo.
Un buen ejemplo de un sistema seguro es EROS. Vea además el artículo sobre sistemas operativos seguros.
TrustedBSD es un ejemplo de un proyecto open source con el fin, entre otras cosas, de incorporar la funcionalidad de capacidades en el sistema operativo FreeBSD.

Aplicaciones
Seguridad informática es crítica en casi toda industria manejada por tecnonología que opera con equipos informáticos. Los problemas de sistemas basados en ordenadores y la solución de sus innumerables vulnerabilidades corresponden la principal tarea de mantener una industria operacional.

Rayos, fluctuaciones de voltaje, impulsos transientes, caída de voltaje, fundido de fusibles (cortocircuitos o sobrecarga) y muchos otras fallas del suministro de energía eléctrica desconectan instantáneamente todo el equipo informático, ya que éste es totalmente dependiente de la energía eléctrica dentro de los parámetros de calidad de suministro de energía.

Otras fallas accidentales e intencionales han causado significantes interrupciones de seguros sistemas críticos a lo largo de las últimas décadas y demostrado que la calidad de suministro de energía eléctrica está en interdependencia con comunicaciones confiables y una falla pone en peligro toda seguridad informática.

Por eso toda empresa de nivel mundial en Tecnologías de Información y Comunicación tienen todo su parque informático protegido con sistemas independientes de energía con baterías, centrales energéticas alternativas, fuera de la protección básica con UPS (Uninterruptible Power System) [Sistema autárquico de suministro de energía]. Ver las soluciones de American Power Conversion

Monday, September 15, 2008

Decálogo del Código Abierto

La filosofía del Open Source orienta su atención en la premisa de que al compartir el código, el programa resultante tiende a ser de calidad superior al software propietario, es una visión técnica.
Por otro lado, el Software Libre funciona bajo un ideal: el software propietario, al no poder compartirse, es antiético dado que prohibir compartir entre seres humanos va en contra de las leyes naturales.

El movimiento Open Source tiene un decálogo que debe cumplir un código para poder llamarse "Open Source" (es de hacer notar que estas 10 premisas son completamente equivalentes con las 4 libertades o principios del Software Libre), éstas son:

  1. Libre redistribución: el software debe poder ser regalado o vendido libremente.
  2. Código fuente: el código fuente debe estar incluido u obtenerse libremente.
  3. Trabajos derivados: la redistribución de modificaciones debe estar permitida.
  4. Integridad del código fuente del autor: las licencias pueden requerir que las modificaciones sean redistribuidas sólo como parches.
  5. Sin discriminación de personas o grupos: nadie puede dejarse fuera.
  6. Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser excluidos.
  7. Distribución de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa.
  8. La licencia no debe ser específica de un producto: el programa no puede licenciarse solo como parte de una distribución mayor.
  9. La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software que sea distribuido con el software abierto deba también ser de código abierto.
  10. La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de la licencia por medio de un acceso por clic de ratón o de otra forma específica del medio de soporte del software.

Sunday, September 14, 2008

Software Libre

Doble click sobre la imagen para ampliarla
Mapa conceptual del software libreSoftware libre (en inglés free software) es la denominación del software que brinda libertad a los usuarios sobre su producto adquirido y por tanto, una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente. Según la Free Software Foundation, el 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:
  1. La libertad de usar el programa, con cualquier propósito;
  2. de estudiar el funcionamiento del programa, y adaptarlo a las necesidades;
  3. de distribuir copias, con lo que puede ayudar a otros;
  4. de mejorar el programa y hacer públicas las mejoras, de modo que toda la comunidad se beneficie
    (para la segunda y última libertad mencionadas, el acceso al código fuente es un requisito previo).
El software libre suele estar disponible gratuitamente, o al precio de coste de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por ende no hay que asociar software libre a "software gratuito" (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente ("software comercial"). Análogamente, el "software gratis" o "gratuito" incluye en algunas ocasiones el código fuente; no obstante, este tipo de software no es libre en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.

Tampoco debe confundirse software libre con "software de dominio público". Éste último es aquél que no requiere de licencia, pues sus derechos de explotación son para toda la humanidad, porque pertenece a todos por igual. Cualquiera puede hacer uso de él, siempre con fines legales y consignando su autoría original. Este software sería aquél cuyo autor lo dona a la humanidad o cuyos derechos de autor han expirado, tras un plazo contado desde la muerte de éste, habitualmente 70 años. Si un autor condiciona su uso bajo una licencia, por muy débil que sea, ya no es dominio público.

Libertades del software libre
De acuerdo con tal definición, el software es "libre" si garantiza las siguientes libertades:
Libertad 0 Libertad 1 Libertad 2 Libertad 3
Ejecutar el programa con cualquier propósito (privado, educativo, público, comercial, militar, etc.) Estudiar y modificar el programa (para lo cual es necesario poder acceder al código fuente) Copiar el programa de manera que se pueda ayudar al vecino o a cualquiera Mejorar el programa y publicar las mejoras
Es importante señalar que las libertades 1 y 3 obligan a que se tenga acceso al código fuente.
La "libertad 2" hace referencia a la libertad de modificar y redistribuir el software libremente licenciado bajo algún tipo de licencia de software libre que beneficie a la comunidad.
Ciertos teórtos teóricos usan este cuarto punto (libertad 3) para justificar parcialmente las limitaciones impuestas por la licencia GNU GPL frente a otras licencias de software libre (ver Licencias GPL).
Sin embargo el sentido original es más libre, abierto y menos restrictivo que el que le otorga la propia situación de incompatibilidad, que podría ser resuelta en la próxima versión 3.0 de la licencia GNU GPL, causa en estos momentos graves perjuicios a la comunidad de programadores de software libre, que muchas veces no pueden reutilizar o mezclar códigos de dos licencias distintas, pese a que las libertades teóricamente lo deberían permitir.