Download Distribución basada en GNU/LINUX“IXCHEL”
Document related concepts
Transcript
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA TESIS DISTRIBUCIÓN LINUX “IXCHEL” QUE PARA OBTENER EL TÍTULO DE INGENIERO EN COMUNICACIONES Y ELECTRÓNICA PRESENTAN ISAAC ANGEL MOLINA CHÁVEZ JUAN CARLOS CAMACHO VÁZQUEZ ASESORES M.C. GABRIELA SÁNCHEZ MELÉNDEZ M.C. DAVID VÁZQUEZ ÁLVAREZ MÉXICO, D.F., 2016 Contenido Objetivo General .................................................................................................................... VII Objetivo específico ................................................................................................................ VII Justificación........................................................................................................................... VII CAPÍTULO I: MARCO TEÓRICO. ............................................................................................ 9 Introducción. ........................................................................................................................... 9 1.1 ¿Qué es el software libre? ....................................................................................... 9 1.2 El inicio del proyecto GNU. .................................................................................... 12 1.2.1 ¿Un programa es libre para cualquier usuario? ..................................................... 13 1.2.2 El copyleft y la GPL de GNU. ................................................................................. 14 1.2.3 La Fundación del Software Libre (FSF). ................................................................ 15 1.3 Nacimiento de Linux. .............................................................................................. 16 1.3.1 Núcleo. ................................................................................................................... 18 1.4 Lenguajes de programación dentro de GNU/Linux. ............................................... 18 1.5 Distribuciones más importantes de GNU/Linux. ..................................................... 19 1.5.1 Árbol de distribuciones más conocidas de GNU/Linux........................................... 21 1.6 Particiones. .......................................................................................................... 222 1.6.1 Ext4. ..................................................................................................................... 222 1.6.2 Extents. ................................................................................................................ 233 1.6.3 Compatibilidad. ...................................................................................................... 23 1.6.4 Asignación de espacio. .......................................................................................... 24 1.6.5 Journal checksumming. ......................................................................................... 26 1.7 Sistema de archivos. .............................................................................................. 26 1.8 Rutas y nombres de archivos. .............................................................................. 277 pág. 2 1.9 SWAP (Espacio de Intercambio). ........................................................................... 28 1.9.1 Tamaño de swap.................................................................................................... 28 1.10 Kernel ó Núcleo...................................................................................................... 29 1.10.1 Los diferentes tipos de Kernel. ............................................................................... 30 1.10.2 Micro-kernel. .......................................................................................................... 30 1.10.3 Monolítico ............................................................................................................... 31 1.10.4 Hibrido .................................................................................................................... 32 1.11 Repositorio. ............................................................................................................ 33 1.12 Marco legal............................................................................................................. 34 1.12.1 Licencia Pública General (GPL). ............................................................................ 35 1.13 Linux From Scratch (Linux desde cero). ................................................................ 40 1.13.1 Encuesta. ............................................................................................................... 40 CAPÍTULO II: REQUERIMIENTOS......................................................................................... 42 Introducción. ......................................................................................................................... 42 2.1 Requerimientos mínimos de Hardware. ...................................................................... 42 2.2 Elementos virtuales (software) ................................................................................... 43 CAPÍTULO III: METODOLOGÍA DE DISEÑO. ....................................................................... 44 Introducción. ......................................................................................................................... 44 3.1 Encuesta. ................................................................................................................. 45 3.3 Propuesta. ................................................................................................................ 52 3.3.1 Proyecto Ixchel......................................................................................................... 52 3.4 Cómo obtener Ixchel. ............................................................................................... 53 3.4.1 Sitio (www.ixchellinux.ecom). ................................................................................... 54 pág. 3 CAPÍTULO IV: IMPLEMENTACIÓN. ...................................................................................... 55 Introducción. ......................................................................................................................... 55 4.1 Obtención de la distribución Debian 7 de instalación mínima. ............................... 55 4.2 Sistema anfitrión. ................................................................................................... 55 4.3 ¿Por qué Debian? .................................................................................................. 55 4.4 Obtención de la distribución LFS. .......................................................................... 56 4.5 Comprobación de la memoria disponible. .............................................................. 57 4.6 Partición y punto de montaje. ................................................................................. 57 4.7 Partición. ................................................................................................................ 58 4.8 Edición del arranque .............................................................................................. 60 4.10 Configuración de las interfaces de red. .................................................................. 61 4.11 Instalación de programas. ...................................................................................... 62 4.11.1 Instalación del entorno de escritorio cinammon. .................................................... 63 4.12 Selección de opciones de localización. .................................................................. 64 4.12.1 Configuración de la red. ......................................................................................... 64 4.12.2 Configuración usuarios y root................................................................................. 65 4.12.3 Usuario local. ......................................................................................................... 65 4.12.4 Instalar el sistema base. ........................................................................................ 65 4.13 Programas adicionales. .......................................................................................... 66 4.13.1 Configurar aptitude................................................................................................. 66 4.13.2 Gestor de arranque. ............................................................................................... 67 4.14 Terminando la instalación. ..................................................................................... 67 4.14.1 Sistema terminado. ................................................................................................ 68 4.14.2 Añadiendo repositorios en la distribución. .............................................................. 68 pág. 4 4.14.3 La lista añadida al repositorio................................................................................. 69 4.15 Personalizar imágenes ........................................................................................... 70 4.16 Sistema anfitrión terminando.................................................................................. 71 4.16.1 Usando la herramienta LSF para personalizar ...................................................... 71 4.16.2 Creando la imagen ................................................................................................. 72 4.16.3 Requerimientos mínimos de hardware para Ixchel. ............................................... 72 CONCLUSIONES .................................................................................................................... 73 ANEXO .................................................................................................................................... 74 LICENCIA PÚBLICA GENERAL VERSIÓN 3 ...................................................................... 74 GLOSARIO ............................................................................................................................. 95 BIBLIOGRAFÍA ELECTRÓNICA ............................................................................................ 98 pág. 5 Índice de Figuras Figura 1.5.1 Árbol de distribuciones más conocidas de GNU/Linux ........................................ 21 Figura 1.13 Gráfica de encuesta en línea. .............................................................................. 41 Figura 3.1 Pregunta 1. .......................................................................................................... 47 Figura 3.2 Pregunta 2 .......................................................................................................... 47 Figura 3.3 Pregunta 3 ........................................................................................................... 48 Figura 3.4 Pregunta 4 ........................................................................................................... 48 Figura 3.5 Pregunta 5 ........................................................................................................... 49 Figura 3.6 Pregunta 6 ........................................................................................................... 49 Figura 3.7 Pregunta 7 ........................................................................................................... 50 Figura 3.8 Escritorio Cinnamon ............................................................................................ 52 Figura 3.9 Menú del Escritorio .............................................................................................. 53 Figura 3.10 Sito de la Distribución. ......................................................................................... 54 Índice de Tablas 1.5 Tabla de distribuciones ...................................................................................................... 19 1.6 Tabla de comparación entre ext3 y ext4 ............................................................................ 25 3.1 Tabla de Información general ............................................................................................ 46 3.2 Tabla análisis de la encuesta ............................................................................................. 50 4.1 Tabla comparación de distribuciones ................................................................................. 56 4.2 Tabla de particiones ........................................................................................................... 58 pág. 6 Objetivo General Implementar una distribución de GNU/Linux, la cual está orientada al perfil de estudiantes de ICE de ESIME, la distribución busca cubrir las necesidades en cuanto a software y aplicaciones, para algunas de las materias impartidas en dicha carrera. Objetivo específico Distribuir una herramienta, la cual contiene aplicaciones personalizadas y listas para usarse que servirán como apoyo en varias de sus asignaturas, la distribución abarca desde asignaturas de ciencias exactas hasta las ciencias sociales. Justificación Dentro de las universidades de México es muy complicado encontrar software libre, el software libre nos da la libertad de modificar y usar los programas no solo a conveniencia sino también a las múltiples necesidades del estudiante. Otra razón es que cuando nos limitamos a usar los programas clásicos de la paquetería de Windows, nos hacemos dependientes a un programa en específico, y cuando en el ámbito laboral se nos ordena por motivos de proyecto o por políticas de la empresa, usar diferentes paqueterías, cuesta mucho trabajo adaptarse. Aquella época cuando el software libre solo estaba al alcance de los expertos en informática quedó en el pasado, ya que con la evolución de la tecnología a nivel mundial es más accesible para cualquier persona con conocimientos básicos en informática. Después de un par de años en que el primer kernel de Linux fue colocado en un ftp para compartirse con la comunidad de internet, ha sufrido varios cambios y con ello su eminente pág. 7 evolución para adaptarse a la época y requerimientos actuales, debido a que es muy difícil imaginar cómo sería el mundo, si un estudiante de Finlandia no lo hubiera creado. Usamos Linux en nuestra vida diaria sin darnos cuenta, un ejemplo de ello es cuando se contesta una llamada telefónica desde un teléfono celular o cuando se llena el tanque de gasolina de un automóvil, en un ejemplo más personal es cuando se calienta algún alimento en el horno de microondas, ya que varios de los elementos antes mencionados funcionan con alguna derivación o directamente con el sistema. El éxito de GNU/Linux fue cuando se colocó a disposición de cualquier persona para mejorarlo o para adaptarlo según sus necesidades, si éste sistema no se hubiera compartido no tendría el éxito que actualmente tiene y puede que hablando más drásticamente no existiría, pues la mayoría de sus mejoras se debe a la contribución de la comunidad de internet. Ixchel busca iniciar la participación de la comunidad de los alumnos de la carrera de ICE, y de la comunidad de internet. Por lo que se desea ofrecer una herramienta que tenga toda la ―paquetería‖ necesaria para cursar toda o al menos la gran parte de la carrera, de ICE; en usa sola distribución de software libre precargada y lista para usar. pág. 8 CAPÍTULO I: MARCO TEÓRICO. Introducción. Para comprender el proyecto nos sumergiremos un poco en los conceptos y ¿por qué no?, en la historia de aquellos gigantes e idealistas que dieron vida a lo que ahora conocemos como GNU/Linux. 1.1 ¿Qué es el software libre? Es el software que respeta la libertad de los usuarios y la comunidad. En grandes líneas, significa que los usuarios tienen la libertad para ejecutar, copiar, distribuir, estudiar, modificar y mejorar el software. Es decir, el software libre es una cuestión de libertad, no de precio. Para entender el concepto, piense libre como en libre expresión. Se promueve estas libertades porque todos merecen tenerlas; con estas libertades, los usuarios (tanto individualmente como en forma colectiva) controlan el programa y lo que éste hace. Cuando los usuarios no controlan el programa, decimos que dicho programa ―no es libre‖, o que es ―privativo‖. Un programa que no es libre controla a los usuarios, y el programador controla el programa, con lo cual el programa resulta ser un instrumento de poder injusto. Un programa es software libre si los usuarios tienen las cuatro libertades esenciales: La libertad de ejecutar el programa como se desea, con cualquier propósito (libertad 0). pág. 9 La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello. La libertad de redistribuir copias para ayudar a su prójimo (libertad 2). La libertad de distribuir copias de sus versiones modificadas a terceros (libertad 3). Esto le permite ofrecer a toda la comunidad la oportunidad de beneficiarse de las modificaciones. El acceso al código fuente es una condición necesaria para ello. Un programa es software libre si otorga a los usuarios todas estas libertades de manera adecuada. De lo contrario no es libre. Existen diversos esquemas de distribución que no son libres, y si bien podemos distinguirlos en base a cuánto les falta para llegar a ser libres. La libertad para distribuir (libertades 2 y 3) significa que usted tiene la libertad para redistribuir copias con o sin modificaciones, ya sea gratuitamente o cobrando una tarifa por la distribución, a cualquiera en cualquier parte. Ser libre de hacer esto significa, entre otras cosas, que no tiene que pedir ni pagar ningún permiso para hacerlo. También debe tener la libertad de hacer modificaciones y usarlas en privado para su propio trabajo o pasatiempo, sin siquiera mencionar que existen. Si pública sus cambios, no debe estar obligado a notificarlo a nadie en particular, ni de ninguna manera en particular. La libertad de ejecutar el programa significa que cualquier tipo de persona u organización es libre de usarlo en cualquier tipo de sistema de computación, para cualquier tipo de trabajo y finalidad, sin que exista obligación alguna de comunicarlo al programador ni a ninguna otra entidad específica. En esta libertad, lo que importa es el propósito del usuario, no el del programador. pág. 10 Usted como usuario es libre de ejecutar el programa para alcanzar sus propósitos, y si lo distribuye a otra persona, también esa persona será libre de ejecutarlo para lo que necesite; usted no tiene el derecho de imponerle sus propios objetivos a la otra persona. La libertad de ejecutar el programa como se desea significa que al usuario no se le prohíbe o no se le impide hacerlo. No tiene nada que ver con el tipo de funcionalidades que el programa posee ni con el hecho de que el programa sea o no sea útil para lo que se quiere hacer. La libertad de redistribuir copias debe incluir las formas binarias o ejecutables del programa, así como el código fuente, tanto para las versiones modificadas como para las que no lo estén. (Distribuir programas en forma de ejecutables es necesario para que los sistemas operativos libres se puedan instalar fácilmente). Resulta aceptable si no existe un modo de producir un formato binario o ejecutable para un programa específico, dado que algunos lenguajes no incorporan esa característica, pero debe tener la libertad de redistribuir dichos formatos si se encontrara o programara una forma de hacerlo. Para que las libertades 1 y 3 (realizar cambios y publicar las versiones modificadas) tengan sentido, usted debe tener acceso al código fuente del programa. El ―código fuente‖ ofuscado no es código fuente real y no cuenta como código fuente. Hablemos un poco de la historia de GNU/Linux para ello en primera instancia se mencionarán algunos antecedentes de vital importancia. pág. 11 1.2 El inicio del proyecto GNU. En enero de 1984 Richard Stallman renuncio a su empleo en el MIT (Instituto Tecnológico de Massachusetts) y comenzó a escribir software para GNU. Fue necesario abandonar el MIT para que la institución no interfiriera con la distribución de GNU como software libre. De haber continuado como parte del personal, el MIT habría podido reclamar la titularidad sobre la obra e imponer sus propios términos de distribución, o incluso transformarla en un paquete de software privativo. Él no tenía ninguna intención de hacer un trabajo enorme solo para que después resultará inútil para lograr su objetivo: crear una nueva comunidad para compartir software. No obstante, el Profesor Winston, director del laboratorio de inteligencia artificial del MIT, tuvo la amabilidad de invitarlo a que continuase utilizando las instalaciones del laboratorio. Los primeros pasos poco antes de comenzar el Proyecto GNU, se empezó a hablar del Free University Compiler Kit (Kit compilador libre universitario), también conocido como VUCK (la palabra holandesa equivalente a «libre» comienza con una V). Se trataba de un compilador diseñado para manejar múltiples lenguajes, entre ellos C y Pascal, y compatible con ordenadores de objetivos múltiples. Le escribió al autor para pedirle el permiso de utilizarlo en GNU. Este le respondió burlonamente, diciendo que la universidad era free, pero no el compilador. Por lo tanto, decidió que su primer programa para el proyecto GNU sería un compilador multilenguaje y multiplataforma. Para evitar tener que escribir todo el compilador desde cero, obtuvo el código fuente del compilador Pastel, que era multiplataforma y había sido desarrollado en el Lawrence Livermore Lab. El compilador soportaba y estaba escrito en una versión ampliada de Pascal, diseñada para usarse como lenguaje de programación de sistemas. Le agrego una interfaz para C y comenzó a adaptarlo al ordenador Motorola 68000, pero tuvo que abandonar la idea al descubrir que el compilador necesitaba demasiados megabytes de espacio, mientras el sistema Unix 68000 admitía solo 64k. pág. 12 Notó que el compilador Pastel analizaba por completo el fichero de entrada transformándolo en un árbol sintáctico, después convertía todo el árbol en una cadena de «instrucciones» generando luego todo el fichero de salida, sin liberar en ningún momento el espacio ocupado. Así, concluyó que tendría que escribir un nuevo compilador desde cero. Se trata del compilador que se conoce ahora como Emacs. Comenzó a trabajar en Emacs de GNU en septiembre de 1984, y a principios de 1985 ya comenzaba a ser utilizable. Esto le permitió empezar a utilizar sistemas Unix para las tareas de edición. Como nunca le interesó aprender a usar VI ni ED, hasta entonces había editado en otro tipo de máquinas. 1.2.1 ¿Un programa es libre para cualquier usuario? Un programa es software libre cuando sale de las manos del autor, esto no significa necesariamente que seguirá siendo software libre para todos los que posean una copia del mismo. Por ejemplo, el software de dominio público (software que no está sujeto a copyright) es software libre, pero cualquiera puede tomarlo y hacer a partir de él una versión modificada privativa. Lo mismo ocurre con muchos programas libres que están sujetos a copyright pero se distribuyen bajo simples licencias permisivas que autorizan el desarrollo de versiones modificadas privativas. El ejemplo paradigmático de este problema es el sistema de ventanas X. Programado en el MIT y publicado como software libre con una licencia permisiva, fue rápidamente adoptado por varias empresas informáticas que añadieron X a sus sistemas Unix privativos en formato binario únicamente y lo pusieron bajo el mismo acuerdo de no divulgación. Así, estas copias de X pasaron a ser software privativo, tal como lo era Unix. pág. 13 1.2.2 El copyleft y la GPL de GNU. El objetivo de GNU era otorgar libertad a los usuarios, no simplemente alcanzar la popularidad. Para ello se tuvieron que aplicar términos de distribución que impidieran que el software de GNU pudiera ser convertido en software privativo. El método que se empleó se denomina copyleft. El copyleft hace uso de la ley de copyright, pero le da la vuelta de modo que sirva para una finalidad opuesta a la habitual: en lugar de ser un medio para restringir un programa, se transforma en un medio para preservarlo como software libre. La idea central del copyleft es que le otorgamos a todo el mundo el permiso para ejecutar el programa, copiarlo, modificarlo y redistribuir versiones modificadas; pero no le damos permiso para añadirle restricciones por su cuenta. De esta manera, las libertades cruciales que definen el software libre quedan garantizadas para todo aquel que posea una copia; estas libertades se transforman en derechos inalienables. Para que el copyleft sea efectivo, las versiones modificadas también deben ser libres. Esto garantiza que toda obra basada en la nuestra quedará disponible para la comunidad, si se publicara. Cuando los programadores que trabajan como empleados en el campo de la programación se ofrecen como voluntarios para mejorar software de GNU, es el copyleft lo que impide que sus empleadores les digan: No puedes compartir esos cambios porque los queremos usar para crear nuestra versión privativa del programa. pág. 14 La combinación de un programa libre con código que no es libre plantea un problema similar. Inevitablemente, tal combinación no será libre; cualesquiera sean las libertades que le falten a la parte que no es libre, le faltarán también al todo. Permitir tales combinaciones abriría un agujero lo suficientemente grande como para hundir un barco. Por consiguiente, una función crucial del copyleft es tapar ese agujero: cualquier cosa que se añada o se combine con un programa que esté cubierto por el copyleft, debe ser adecuada para que la versión combinada total también sea libre y también esté bajo copyleft. 1.2.3 La Fundación del Software Libre (FSF). A medida que crecía el interés por el uso de Emacs, otras personas se involucraron en el proyecto GNU, había llegado el momento de conseguir fondos. Con ese objetivo, en 1985 se crea la Fundación del Software Libre (FSF), una organización sin ánimo de lucro exenta de impuestos que se dedica al desarrollo de software libre. La FSF también se hizo cargo de la distribución de Emacs, y más adelante comenzó a añadir otros programas libres de GNU (además de otros que no eran de GNU) y a vender manuales. La mayor parte de los ingresos de la FSF provenía de la venta de copias de software libre y otros servicios relacionados: CD-ROM con código fuente, CD-ROM con los binarios, elegantes manuales impresos (todos con la libertad para redistribuirlos y modificarlos) y distribuciones de lujo con toda la colección de software lista para usar en la plataforma preferida del cliente). Hoy en día la FSF continúa con la venta de manuales y otros artículos, pero obtiene la mayor parte de su financiación de las cuotas de los socios. Los empleados de la Free Software Foundation han escrito y se han encargado del mantenimiento de una serie de paquetes de GNU. Dos ejemplos significativos son la biblioteca C y la consola. Todo programa que se ejecuta en un sistema GNU/Linux utiliza la biblioteca C de GNU para comunicarse con Linux, el núcleo; fue programado por Roland McGrath, un miembro del personal de la Free Software Foundation. pág. 15 La consola que se usa en la mayoría de los sistemas GNU/Linux se denomina BASH, acrónimo de Bourne Again SHell, y fue desarrollada por Brian Fox, también empleado de la FSF. La FSF financio el desarrollo de esos programas porque el Proyecto GNU no se limitaba únicamente a proveer herramientas o un entorno de desarrollo. La meta era construir un sistema operativo completo, y necesitaba otros programas para alcanzarla. 1.3 Nacimiento de Linux. En 1991, con 23 años, un estudiante de informática de la Universidad de Helsinki (Finlandia) llamado Linus Torvalds se propone como entretenimiento hacer un sistema operativo que se comporte exactamente igual al sistema operativo UNIX, pero que funcione sobre cualquier ordenador compatible PC. Posteriormente Linus tuvo que poner como requisito mínimo que el ordenador tuviese un procesador i386, ya que los ordenadores con CPU más antiguas no facilitaban el desarrollo de un sistema operativo compatible con UNIX en ambiente gráfico. Un factor decisivo para el desarrollo y aceptación de Linux va a ser la gran expansión de Internet. Internet facilitó el trabajo en equipo de todos los que quisieron colaborar con Linus y fueron aportando todos los programas que vienen con UNIX. Linus no pretendía crear todos los programas que vienen con UNIX. Su objetivo fundamental era crear un núcleo del S.O. que fuera totalmente compatible con el de UNIX y que permitiera ejecutar todos los programas gratuitos compatibles UNIX desarrollados por la Free Software Foundation (fundada por Richard Stallman) que vienen con licencia GNUF.1. Esta licencia impide poner precio a los programas donados a la comunidad científica por sus propietarios (programas libres) y obliga a que si se escriben nuevos programas utilizando código de programas libres, estos sean también libres. pág. 16 Para crear su núcleo, Linus se inspiró en Minix, una versión reducida de UNIX desarrollada por el profesor Andy Tanenbaum para que sus alumnos pudieran conocer y experimentar con el código de un sistema operativo real. Linus escribió un pequeño núcleo que tenía lo necesario para leer y escribir ficheros en un disquette. Estamos a finales de Agosto de 1991 y Linus ya tiene la versión 0.01. Como no era muy agradable de usar y no hacia gran cosa, no lo anunció. Le puso como nombre Linux, que es un acrónimo en inglés de Linus UNIX'' (el UNIX de Linus). El 5 de octubre de 1991, Linus anuncia la primera versión ―oficial‖' de Linux, la 0.02. Esta versión ya podía ejecutar dos herramientas básicas de GNU: el intérprete de órdenes (bash) y el compilador de C (gcc). Linux no tenía aún nada sobre soporte a usuarios, distribuciones, documentación ni nada parecido (aún hoy la comunidad de Linux trata estos asuntos de forma secundaria; lo primero sigue siendo el desarrollo del kernel). Linus siguió trabajando hasta que Linux llegó a ser un producto realmente útil. Dió los fuentes de Linux para que cualquiera pudiese leerlo, modificarlo y mejorarlo. Seguía siendo la versión 0.02 pero ya ejecutaba muchas aplicaciones GNU (bash, gcc, gnu-make, gnu-sed, compress, etc.) Tras la versión 0.03, Linus salto a la versión 0.10, al tiempo que más gente empezaba a participar en su desarrollo. Después de numerosas revisiones, alcanzó la versión 0.95, reflejando la esperanza de tener lista muy pronto una versión estable (generalmente, la versión 1.0 de los programas es la primera teóricamente completa y sin errores). Esto sucedía en marzo de 1992. Año y medio después, en diciembre del 93, nacía Linux 1.0. pág. 17 1.3.1 Núcleo. Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte de multiprocesamiento simétrico. El hecho de que Linux no fuera desarrollado siguiendo el diseño de un micro-núcleo (diseño que, en aquella época, era considerado el más apropiado para un núcleo por muchos teóricos informáticos) fue asunto de una famosa y acalorada discusión entre Linus Torvalds y Andrew. 1.4 Lenguajes de programación dentro de GNU/Linux. Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC (que ha introducido un número de extensiones y cambios al C estándar), junto a unas pequeñas secciones de código escritas con el lenguaje ensamblador. Por el uso de sus extensiones al lenguaje, GCC fue durante mucho tiempo el único compilador capaz de construir correctamente Linux. Sin embargo, Intel afirmó haber modificado su compilador C de forma que permitiera compilarlo correctamente. Asimismo se usan muchos otros lenguajes en alguna forma, básicamente en la conexión con el proceso de construcción del núcleo (el método a través del cual las imágenes arrancables son creadas desde el código fuente). pág. 18 Estos incluyen a Perl, Python y varios lenguajes shell scripting. Algunos drivers también pueden ser escritos en C++, Fortran, u otros lenguajes, pero esto no es aconsejable. El sistema de construcción de Linux oficialmente solo soporta GCC como núcleo y compilador de controlador. 1.5 Distribuciones más importantes de GNU/Linux. A continuación se presenta información sobre las distribuciones más importantes de Linux. 1.5 Tabla de Distribuciones. UBUNTU Distribución basada en Debian, centrada en el usuario final y de mayor facilidad de uso. Muy popular y con mucho soporte en la comunidad. El entorno de escritorio por defecto es GNOME. REDHAT ENTERPRISE Esta es una distribución que tiene muy buena calidad, contenidos y soporte a los usuarios por parte de la empresa que la distribuye. Es necesario el pago de una licencia de soporte. Enfocada a empresas. FEDORA Esta es una distribución patrocinada por RedHat y soportada por la comunidad. Fácil de instalar y buena calidad. DEBIAN Otra distribución con muy buena calidad. El proceso de instalación es quizás un poco más complicado, pero sin mayores problemas. Gran estabilidad antes que últimos avances. OpenSuSE Otra de las grandes. Fácil de instalar. Versión libre de la distribución comercial SuSE. pág. 19 SLACKWARE Esta distribución es de las primeras que existió. Tuvo un periodo en el cual no se actualizo muy a menudo, pero eso es historia. Es raro encontrar usuarios de los que empezaron en el mundo Linux hace tiempo, que no hayan tenido esta distribución instalada en su ordenador en algún momento. GENTOO Esta distribución es una de las únicas que incorporaron un concepto totalmente nuevo en Linux. Es un sistema inspirado en BSD-ports. Se Podrá compilar/optimizar su sistema completamente desde cero. No es recomendable adentrarse en esta distribución sin una buena conexión a internet, un ordenador medianamente potente (si se quiere terminar de compilar en un buen tiempo) y cierta experiencia en sistemas Unix. KUBUNTU Distribución basada en Ubuntu, con lo que esto conlleva y centrada en el usuario final y facilidad de uso. La gran diferencia con Ubuntu es que el entorno de escritorio por defecto es KDE. MANDRIVA Esta distribución fue creada en 1998 con el objetivo de acercar el uso de Linux a todos los usuarios, en un principio se llamó Mandrake Linux. Facilidad de uso para todos los usuarios. Linux Mint Es una distribución del sistema operativo GNU/Linux, basada en la distribución Ubuntu (que a su vez está basada en Debian). CentOS Nació como un derivado gratuito de la distribución comercial Red Hat Enterprise Linux (RHEL) destinada al uso empresarial. Recientemente unió las fuerzas con el propio Red Hat, y sigue siendo una apuesta segura para los que busquen un código de gran calidad. Manjaro Enfocada al usuario menos experimentado. Para eso, ofrece un sistema operativo ya montado y basado en Arch, con un instalador sencillo como el que podemos encontrar en otras distribuciones como Ubuntu. Tiene los entornos de escritorio XFCE y KDE. pág. 20 pág. 21 1.5.1 Árbol de distribuciones más conocidas de GNU/Linux 1.6 Particiones. Es importante explicar los conceptos de particiones para entender las particiones que lleva la distribución, Fdisk es un software que está disponible para varios sistemas operativos, el cual permite dividir en forma lógica un disco duro, siendo denominado este nuevo espacio como partición.Linux necesita al menos una partición, es decir, por su sistema de archivos raíz. Puede usan los archivos de intercambio y / o particiones de intercambio. Casi todas las instalaciones de Linux tienen una segunda partición dedicada como espacio de intercambio. (Swap) esta partición sirve como memoria de intercambio similar a la función de la memoria RAM normal, útil en máquinas con memoria RAM limitada. Otros sistemas Unix basados en Intel suelen utilizar una disposición más elaborada. Sistemas derivados de BSD utilizan una etiqueta de disco como su principal método de identificación de secciones distintas del disco, suelen denominarse slices. Estos slices pueden o no corresponder a las particiones enumeradas en el registro maestro de arranque. (RMB) Una disposición típica para todo el sistema Unix es tener una sola partición asignada, la misma se subdivide después en slices distintos para cada sistema de archivos y la zona de intercambio. Otras particiones fuera de éste dedicado puede ser, legítimamente referenciado en una disklabel- esto es particularmente cierto en los escenarios de arranque dual, donde se desea que el sistema Unix acceda a las particiones usadas por otros sistemas operativos que residen en la misma máquina. 1.6.1 Ext4. Ext4 (fourth extended filesystem o ―cuarto sistema de archivos extendido‖) es un sistema de archivos transaccional (en inglés journaling), anunciado el 10 de octubre de 2006 por Andrew Morton, como una mejora compatible de ext3. pág. 22 1.6.2 Extents. Los extents han sido introducidos para reemplazar al tradicional esquema de bloques usado por los sistemas de archivos ext2/3. Un extent es un conjunto de bloques físicos contiguos, mejorando el rendimiento al trabajar con ficheros de gran tamaño y reduciendo la fragmentación. Un extent simple en ext4 es capaz de mapear hasta 128 MB de espacio contiguo con un tamaño de bloque igual a 4 KB. 1.6.3 Compatibilidad. Cualquier sistema ext3 existente puede ser montado como ext4 sin necesidad de cambios en el formato del disco. También es posible actualizar un sistema de archivos ext3 para conseguir las ventajas del ext4 ejecutando un par de comandos. Esto significa que se puede mejorar el rendimiento, los límites de almacenamiento y las características de sistemas de archivos ext3 sin volver a dar formato y/o reinstalar el sistema operativo. Si se requiere de las ventajas de ext4 en un sistema de producción, se puede actualizar el sistema de archivos. El procedimiento es seguro y no existe riesgo para los datos (aunque siempre es recomendado hacer un respaldo de la información crítica). Ext4 usará la nueva estructura de datos sólo para la información nueva. La estructura antigua será conservada sin modificación y será posible leerla y/o modificarla cuando sea necesario. Esto significa que si se convierte un sistema de archivos a ext4 no se podrá regresar a ext3 de nuevo. El uso de extents está fijado por defecto desde la versión del kernel 2.6.23. Anteriormente, esta opción requería ser activada explícitamente (por ejemplo mount /dev/sda1 /mnt/point -t ext4dev -o extents). pág. 23 1.6.4 Asignación de espacio. El sistema de archivos ext4 permite la reserva de espacio en disco para un fichero. Hasta ahora la metodología consistía en rellenar el fichero en el disco con ceros en el momento de su creación. Esta técnica no es ya necesaria con ext4, ya que un nuevo sistema llamado "preallocate" ha sido añadido al kernel Linux para uso de los sistemas de archivos que permitan esta función. El espacio reservado para estos ficheros quedará garantizado y con mucha probabilidad será contiguo. Esta función tiene útiles aplicaciones en streaming y bases de datos. A continuación se muestra la comparación de ext3 y ext4 en la tabla 1.6. pág. 24 Tabla 1.6 comparación entre ext3 y ext4 pág. 25 1.6.5 Journal checksumming. Ext4 usa checksums en el registro para mejorar la fiabilidad, puesto que el journal es uno de los ficheros más utilizados en el disco. Esta función tiene un efecto colateral beneficioso: permite de forma segura evitar una lectura/escritura de disco durante el proceso de registro en el journal, mejorando el rendimiento ligeramente. La técnica del journal checksumming está inspirada en la investigación de la Universidad de Wisconsin en sistemas de archivos IRON (Sección 6, bajo el nombre "checksums de transacciones"). 1.7 Sistema de archivos. El sistema de archivos o ficheros (en inglés: filesystem) es el componente del sistema operativo encargado de administrar y facilitar el uso de las memorias periféricas, ya sean secundarias o terciarias. Sus principales funciones son la asignación de espacio a los archivos, la administración del espacio libre y del acceso a los datos resguardados. Estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro de una computadora), que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos manejan su propio sistema de archivos. Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud (También denominados clúster). El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. pág. 26 En la práctica, un sistema de archivos también puede ser utilizado para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red (sin la intervención de un dispositivo de almacenamiento). Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo. El acceso seguro a archivos básicos puede estar basado en los esquemas de lista de control. Las listas de control de acceso hace décadas que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales aún funcionan con listas de control de acceso. 1.8 Rutas y nombres de archivos. La estructura de directorios suele ser jerárquica, ramificada o "en árbol", aunque en algún caso podría ser plana. En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis especiales para extensiones de archivos y números de versión. En otros, los nombres de archivos son simplemente cadenas de texto y los metadatos de cada archivo son alojados separadamente. En los sistemas de archivos jerárquicos, usualmente, se declara la ubicación precisa de un archivo con una cadena de texto llamada "ruta" —o path en inglés. La nomenclatura para rutas varía ligeramente de sistema en sistema, pero mantienen por lo general una misma estructura. Una ruta viene dada por una sucesión de nombres de directorios y subdirectorios, ordenados jerárquicamente de izquierda a derecha y separados por algún carácter especial que suele ser una diagonal ('/') o diagonal invertida ('\') y puede terminar en el nombre de un archivo presente en la última rama de directorios especificada. pág. 27 1.9 SWAP (Espacio de Intercambio). En informática, el espacio de intercambio es una zona del disco (un fichero o partición) que se usa para guardar las imágenes de los procesos que no han de mantenerse en memoria física. A este espacio se le suele llamar swap, del inglés "intercambiar". La mayoría de los sistemas operativos modernos poseen un mecanismo llamado memoria virtual, que permite hacer creer a los programas que tienen más memoria que la disponible realmente. Como en realidad no se tiene físicamente toda esa memoria, algunos procesos no podrán ser ubicados en la memoria RAM. En este caso es cuando es útil el espacio de intercambio: el sistema operativo puede buscar un proceso poco activo, y moverlo al área de intercambio (el disco duro) y de esa forma liberar la memoria principal para cargar otros procesos. Mientras no haga falta, el proceso extraído de memoria puede quedarse en el disco, ya que ahí no utiliza memoria física. Cuando sea necesario, el sistema vuelve a hacer un intercambio, pasándolo del disco a memoria RAM. Es un proceso lento (comparado con usar sólo la memoria RAM), pero permite dar la impresión de que hay más memoria disponible. 1.9.1 Tamaño de swap. Ésta es una discusión típica entre los administradores de sistemas, y una duda común que sale durante la instalación de un sistema Linux (o cualquier UNIX). Hay una regla muy conocida que dice que "la swap ha de ser el doble de la memoria RAM instalada", pero esto ya no es válido hoy en día. Esta regla funcionaba bien antes, cuando siempre se compraba menos RAM de la que realmente se necesitaba, porque era muy cara. Tener 3 veces más memoria que la física iba bien para la mayoría de usuarios. pág. 28 Pero en un ordenador nuevo que tenga 1 GB de RAM, no será necesario gastar 2 GB en una partición de swap, porque probablemente no se usará. La regla habitual usada para decidir el tamaño de la swap es "pensar en cuánto querrías tener y en cuánto tienes, y poner como swap la diferencia". Por ejemplo, si un usuario necesita abrir ficheros de hasta 700 MB, pero sólo tiene 256 MB de RAM, entonces lo que le falta (aprox. 500 MB) se ha de poner como swap, como mínimo. Más swap puede ir bien, pero no será muy usada. Si el ordenador ha de soportar mucha carga, la partición ha de ser mínimamente grande; se recomienda algo más de 128 MB. 1.10 Kernel ó Núcleo. Al kernel o núcleo es el nivel más bajo de software fácilmente reemplazable que interactúa con el hardware de la computadora. Se encarga de interconectar todas las aplicaciones que se ejecutan en el ―modo usuario‖ hasta el hardware, y permitiendo a los procesos obtener información de unos a otros utilizando la comunicación entre procesos (IPC). Las funciones más importantes del mismo, aunque no las únicas, son: Administración de la memoria para todos los programas y procesos en ejecución. Administración del tiempo del procesador y procesos en ejecución. Es el encargado de que podamos acceder a los periféricos/elementos de nuestra computadora de una manera cómoda. Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de versiones del núcleo: pág. 29 Versión de producción: La versión de producción, era la versión más estable hasta el momento. Esta versión fue el resultado final de las versiones de desarrollo. Cuando el equipo de desarrollo del núcleo experimental, decidía que tenía un núcleo estable y con la suficiente calidad, se lanzaba una nueva versión de producción o estable. Esta versión era la que se debía utilizar para un uso normal del sistema, ya que eran las versiones consideradas más estables y libres de fallos en el momento de su lanzamiento. Versión de desarrollo: Esta versión experimental, era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos solían ser inestables y no se debían usar sin saber lo que se hacía. 1.10.1 Los diferentes tipos de Kernel. Hay, por supuesto, diferentes maneras de construir un núcleo y consideraciones arquitectónicas, cuando se construye desde cero. En general, la mayoría de los núcleos se dividen en tres tipos: micro-kernel monolítico, e híbrido. Linux es un kernel monolítico, mientras que OS X (XNU) y Windows 7 núcleos usan híbridos. Echemos un rápido recorrido por las tres categorías para que podamos entrar en más detalle. 1.10.2 Micro-kernel. Un micro-kernel adopta el enfoque de sólo administrar lo que tiene: CPU, memoria, y el IPC. Casi todo lo demás en una computadora puede ser visto como un accesorio y se puede manejar en modo de usuario. Los Micro-núcleos tienen una ventaja de la portabilidad, ya que no tiene que preocuparte si cambia la tarjeta de vídeo o incluso el sistema operativo, siempre y cuando el sistema operativo siga tratando de acceder al hardware de la misma manera. pág. 30 Los Micro-núcleos también tienen un tamaño muy pequeño, tanto para la memoria y el espacio de instalación, y tienden a ser más seguros. Pros Portabilidad Ocupa un espacio pequeño al instalar Consume poca memoria Buena Seguridad Contras El hardware es más abstracto a través de controladores El hardware puede reaccionar más lento porque los controladores están en modo usuario Los procesos tienen que esperar en una cola para obtener información Los procesos no pueden tener acceso a otros procesos sin tener que esperar 1.10.3 Monolítico Un núcleo monolítico es un tipo de núcleo o kernel de un sistema operativo. Linux posee una estructura monolítica, igual que los primeros sistemas Unix. Todos los servicios centrales residen dentro de un componente principal llamado kernel. Estos sistemas tienen un núcleo grande y complejo, que engloba todos los servicios del sistema. Está programado de forma no modular, y tiene un rendimiento mayor que un micronúcleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la recompilación del núcleo y el reinicio del sistema para aplicar los nuevos cambios. pág. 31 La interfaz de llamadas al sistema define el tipo y número de servicios del sistema operativo que una aplicación puede solicitar: iniciar o parar trabajos, almacenar y leer datos. El kernel 2.6.0 ofrecía 274 servicios de Linux de 32 bits: en el 3.0 hay 347. Un sistema operativo con núcleo monolítico concentra todas las funcionalidades posibles (planificación, sistema de archivos, redes, controladores de dispositivos, gestión de memoria, etc.) dentro de un gran programa. El mismo puede tener un tamaño considerable, y deberá ser recompilado por completo al añadir una nueva funcionalidad. Los servicios propiamente dichos los proveen los bloques de gestión de E/S, de tareas y de memoria que utilizan una serie de drivers para acceder al hardware. Con una división más granular se introducen los subsistemas del kernel, que se encargan de tareas como la multimedia, las redes o el acceso a los dispositivos PCI o USB. 1.10.4 Hibrido Un núcleo híbrido es un tipo de núcleo de un sistema operativo. Básicamente, es un micronúcleo que tienen algo de código «no esencial» en espacio de núcleo, para que éste se ejecute más rápido de lo que lo haría si estuviera en espacio de usuario. Éste fue un compromiso que muchos desarrolladores de los primeros sistemas operativos, con arquitectura basada en micro-núcleo, adoptaron antes que se mostrará que los micro-núcleos pueden tener también muy buen rendimiento. La mayoría de sistemas operativos modernos pertenecen a esta categoría, siendo el más popular Microsoft Windows. El núcleo de Mac OS X, XNU, también es un micro-núcleo no modificado, debido a la inclusión de código del núcleo de FreeBSD en el núcleo basado en Mach. DragonFlyBSD es el primer sistema BSD que adopta una arquitectura de núcleo híbrido sin basarse en Mach. Se tiende a confundir erróneamente a los núcleos híbridos con los núcleos monolíticos que pueden dinámicamente cargar módulos después del arranque. El concepto de núcleo híbrido pág. 32 se refiere a que el núcleo en cuestión usa mecanismos o conceptos de arquitectura tanto del diseño monolítico como del micro-núcleo, específicamente el paso de mensajes y la migración de código «no esencial» hacia el espacio de usuario (manteniendo a su vez cierto código «no esencial» en el propio núcleo por razones de rendimiento). 1.11 Repositorio. Un repositorio, depósito o archivo es un sitio centralizado donde se almacena y mantiene información digital, habitualmente bases de datos o archivos informáticos. Los datos almacenados en un repositorio pueden distribuirse a través de una red informática, como Internet, o de un medio físico, como un disco compacto. Pueden ser de acceso público o estar protegidos y necesitar de una autentificación previa. Los repositorios más conocidos son los de carácter académico e institucional. Los repositorios suelen contar con sistemas de respaldo y mantenimiento preventivo y correctivo, lo que hace que la información se pueda recuperar en el caso que la máquina quede inutilizable. A esto se lo conoce como preservación digital y requiere un exhaustivo trabajo de control de calidad e integridad para realizarse correctamente. Depositar no debe confundirse con publicar. El depósito en los repositorios es una manera de comunicar públicamente los trabajos de los investigadores, aumentando su difusión: los autores ponen disponibles en acceso abierto una versión de los artículos que han publicado en revistas, tradicionales o de acceso abierto. Para ello, los sistemas de repositorios suelen integrarse e interoperar con otros sistemas y aplicaciones web 3.4. Asimismo, los repositorios cumplen un rol importante en la formación universitaria. Algunas instituciones promueven el uso de sus repositorios como un servicio adicional para el investigador. Otras instituciones poseen mandatos propios que obligan a los autores o pág. 33 investigadores a depositar sus publicaciones (o determinados tipos, como por ej. tesis doctorales) en el repositorio institucional, con fines de visibilidad, impacto y preservación. En algunos países, como por ejemplo Argentina, se han promulgado leyes de acceso abierto que promueven la implementación y uso de los repositorios de instituciones sustentadas con fondos públicos, mientras que otros países están trabajando en la aprobación de leyes similares, como por ejemplo México. 1.12 Marco legal. Las obras incluidas en un repositorio deben cumplir con las leyes vigentes sobre los derechos que los creadores tienen de su obra. Se consideran dos tipos de derechos: morales y patrimoniales. Los derechos morales son permanentes, irrenunciables, inexpropiables y no prescriben. Los derechos patrimoniales o de copyright son económicos, transferibles y de duración limitada en el tiempo. Los derechos patrimoniales, generalmente, son de explotación. Este derecho, suele cederse a terceros mediante la firma de un contrato. La cesión total o parcial de este derecho puede ser de cuatro tipos: reproducción, distribución, comunicación pública y transformación. Las instituciones académicas tienen que articular las condiciones legales de los repositorios contemplando los derechos de explotación, de depósito y de acceso a los contenidos. Estos aspectos pueden estar afectados por las cesiones de derechos de explotación que los investigadores han aceptado en los contratos editoriales. Muchos autores ceden todos los derechos a las editoriales que publican sus trabajos. Esto significa que éste pierde la propiedad de explotación hasta la conclusión del contrato firmado (excepcionalmente el autor podría utilizarlo con fines didácticos o para uso personal). Las consecuencias de esta cesión exclusiva son múltiples y afectan de modo considerable a la pág. 34 publicación, distribución y usos de los trabajos. Hay opciones contractuales alternativas a la cesión exclusiva, como son la cesión parcial (en la que se establecen unos derechos para el autor y otros -como la publicación o la distribución-, para el editor) o la no cesión (en la que el autor retiene el copyright pero otorga al editor el permiso, mediante licencia, para publicar la obra). 1.12.1 Licencia Pública General (GPL). La Licencia Pública General de GNU o más conocida por su nombre en inglés GNU General Public License (o simplemente sus siglas del inglés GNU GPL) es la licencia más ampliamente usada en el mundo del software y garantiza a los usuarios finales (personas, organizaciones, compañías) la libertad de usar, estudiar, compartir (copiar) y modificar el software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios. Esta licencia fue creada originalmente por Richard Stallman fundador de la Free Software Foundation (FSF) para el proyecto GNU. La licencia GPL puede ser usada por cualquiera, ya que su finalidad es proteger los derechos de los usuarios finales (usar, compartir, estudiar y modificar). Esta es la primera licencia copyleft para uso general, lo que significa que los trabajos derivados sólo pueden ser distribuidos bajo los términos de la misma licencia. Bajo esta filosofía, la licencia GPL garantiza a los destinatarios de un programa de computador los derechos y libertades reunidos en definición de software libre y usa copyleft para asegurar que el software está protegido cada vez que el trabajo es distribuido, modificado o ampliado. En la forma de distribución (sólo pueden ser distribuidos bajo los términos de la misma licencia) se diferencian las licencias GPL, de las licencias de software libre permisivas, de las cuales los ejemplos más conocidos son las licencias BSD (BSD licenses).El software bajo licencia GPL puede ser aplicado bajo todos los propósitos, incluidos los propósitos comerciales e incluso como herramienta de creación de software propietario. En uso puramente privativo (o interno), pág. 35 sin ventas ni distribuciones implicadas, el software puede ser modificado sin liberar el código fuente pero, de lo contrario, el código fuente y cualquier cambio realizado en él debe estar disponible para los usuarios, ya que en este caso los derechos del usuario están protegidos por copyleft. De esta forma, las aplicaciones instaladas en sistemas operativos bajo licencia GPL como Linux, no es necesario que estén licenciadas bajo GPL o que estén distribuidas con su código fuente disponible ya que las licencias no dependen de la plataforma. Por ejemplo, si un programa está formado completamente por código original, o si está combinado con software que no cumple los requisitos de copyleft no es necesario que se licencie bajo GPL o que se distribuya con su código fuente disponible. Sólo si un programa utiliza fragmentos de código GPL (y el programa es distribuido) el código fuente en su totalidad debe estar disponible, bajo la misma licencia. La licencia LGPL (GNU Lesser General Public License) fue creada para tener derechos menos restrictivos que GPL, por lo que en este caso en un programa que utiliza fragmentos de código LGPL, no es necesario liberar el código original. Los usuarios o compañías que distribuyen sus trabajos bajo licencias GPL, pueden cobrar o distribuirlas gratuitamente. Esto distingue las licencias GPL de las licencias de software que prohíben su distribución comercial. La FSF argumenta que no se debe restringir la distribución comercial del software (incluyendo la redistribución), ya que la GPL establece explícitamente que las obras cubiertas por esta licencia se pueden vender a cualquier precio. Versión 1 La versión 1 de GNU GPL, fue presentada el 25 de febrero de 1989, impidió lo que eran las dos principales formas con las que los distribuidores de software restringían las libertades definidas por el software libre. El primer problema fue que los distribuidores publicaban únicamente los archivos binarios, funcionales y ejecutables, pero no entendibles o modificables por humanos. Para prevenir esto, la licencia GPLv1 estableció que cualquier proveedor de software libre además de distribuir el archivo binario debía liberar a su vez código fuente entendible y que pudiera ser modificado por el ser humano, bajo la misma licencia (secciones 3a y 3b de la licencia). pág. 36 El segundo problema era que los distribuidores podían añadir restricciones adicionales, ya fuera añadiendo restricciones a la licencia o mediante la combinación del software con otro que tuviera otras restricciones en su distribución. Si esto se hacía, entonces la unión de los dos conjuntos de restricciones sería aplicada al trabajo combinado entonces podrían añadirse restricciones inaceptables. Para prevenir esto, GPLv1 obligaba a que las versiones modificadas en su conjunto, tuvieran que ser distribuidas bajo los términos GPLv1 (secciones 2b y 4 de la licencia). Por lo tanto, el software distribuido bajo GPLv1 puede ser combinado con software bajo términos más permisivos y no con software con licencias más restrictivas, lo que entraría en conflicto con el requisito de que todo software tiene que ser distribuido bajo los términos de la licencia GPLv1. Versión 2 Según Richard Stallman, el mayor cambio en GPLv2 fue la cláusula ―Liberty or Death‖ (Libertad o Muerte), como la llama en la sección 7 del GPLv3. Esta sección dice que si alguien impone restricciones que le prohíben distribuir código GPL de tal forma que influya en las libertades de los usuarios (por ejemplo, si una ley impone que esa persona únicamente pueda distribuir el software en binario), esa persona no puede distribuir software GPL. La esperanza es que esto hará que sea menos tentador para las empresas el recurrir a las amenazas de patentes para exigir una remuneración de los desarrolladores de software libre. En 1990 se hizo evidente que una licencia menos restrictiva sería estratégicamente útil para la librería C y para las librerías de software que esencialmente hacían el trabajo que llevaban a cabo otras librerías comerciales ya existentes. Cuando la versión 2 de GPL fue liberada en junio de 1991, una segunda licencia Library General Public License fue introducida al mismo tiempo y numerada con la versión 2 para denotar que ambas son complementarias. Los números de versiones divergieron en 1999 cuando la versión 2.1 de LGPL fue liberada, esta fue renombrada como GNU Lesser General Public License para reflejar su lugar en esta filosofía. pág. 37 Versión 3 A finales de 2005, la Free Software Foundation (FSF) anunció estar trabajando en la versión 3 de la GPL (GPLv3). El 16 de enero de 2006, el primer borrador de GPLv3 fue publicado, y se inició la consulta pública. La consulta pública se planeó originalmente para durar de nueve a quince meses, pero finalmente se extendió a dieciocho meses, durante los cuales se publicaron cuatro borradores. La GPLv3 oficial fue liberada por la FSF el 29 de junio de 2007. Fue escrita por Richard Stallman con el asesoramiento legal de Eben Moglen y el Software Freedom Law Center. Según Stallman los cambios más importantes se produjeron en el campo de las patentes de software, la compatibilidad de licencias de software libre, la definición de código fuente, y restricciones de hardware respecto a las modificaciones de hardware 9.10. Otros cambios están relacionados con la internacionalización, cómo son manejadas las violaciones de licencias, y cómo los permisos adicionales pueden ser concedidos por el titular de los derechos de autor. También añade disposiciones para quitar al DRM su valor legal, por lo que es posible romper el DRM en el software de licencia GPL sin romper leyes como la DMCA. El proceso de consulta pública fue coordinado por la Free Software Foundation con asistencia de Software Freedom Law Center, Free Software Foundation Europe, y otros grupos de software libre. Los comentarios del público fueron recolectados a través del portal GPLv3.fsf.org. Durante el proceso de consulta pública, 962 comentarios fueron presentados para el primer borrador. Finalmente, al concluir el proceso se alcanzó la cifra de 2,636 comentarios. El tercer borrador fue liberado el 28 de marzo de 2007. Este borrador incluye mecanismos destinados a evitar acuerdos relativos a las patentes, como el controvertido acuerdo entre Microsoft y Novell y restringe las cláusulas anti-tivoización a una definición legal de un "usuario" o "producto de consumo". También elimina la sección de "Limitaciones geográficas", cuyo probable borrado se había anunciado en el lanzamiento de la consulta pública. pág. 38 El cuarto borrador, que fue el último, fue liberado el 31 de mayo de 2007. Introdujo la compatibilidad con las Licencias Apache, clarificó el rol de los contratistas externos, y hace una excepción para evitar los problemas provocados por el acuerdo Microsoft-Novell, estableciendo en el párrafo 6 de la Sección 11 lo siguiente: Usted no puede distribuir un trabajo amparado si usted es una parte de un acuerdo con un tercero que está en el negocio de distribución de software, bajo el cual usted hace el pago a la tercera parte sobre la base de la extensión de la actividad de distribución del trabajo, y en virtud del cual la otorgue, a cualquiera de las partes que recibirían el trabajo amparado, una licencia de patente discriminatoria. El objetivo de esto es hacer ineficaces este tipo de acuerdos. La licencia está orientada a que Microsoft tenga que extender las licencias de patentes para garantizar a los clientes de Novell el uso de GPLv3, lo que es posible únicamente si Microsoft es distribuidor legal del software bajo GPLv3.20 21. Algunos desarrolladores de alto nivel del kernel de Linux, comentaron e hicieron declaraciones públicas a los medios de comunicación sobre sus objeciones a los borradores 1 y 2. Después de algunos conceptos los cuales nos llevan de la mano, para descubrir las entrañas del proyecto, se hace un pequeño paréntesis para definir el alma de la distribución que de no ser por esta herramienta el proyecto carecería de esqueleto. Esta última es la versión de licencia de la distribución Ixchel y es de suma importancia mencionar las dos anteriores, ya que las diferencias entre una versión y otra son muy notorias ya que en la versión 1 no hay tanta libertad de difusión de la paquetería o del propio sistema como tal, y la versión 3 goza de total libertad. pág. 39 1.13 Linux From Scratch (Linux desde cero). Linux From Scratch es un proyecto que le proporciona a una distribución base, esta herramienta ofrece funcionalidades para personalizar y compilar programas desde código fuente. Una distribución sin gestor de paquetes, sin programas y, obviamente, sin ningún entorno gráfico, provee de una terminal desde la cual se pueden compilar los programas de manera manual. 1.13.1 Encuesta. El proyecto necesita un escritorio ligero el cual sea capaz de correr en la mayoría de las computadoras personales, tomando como base lo antes mencionado ―Las computadoras de la ESIME Zacatenco‖. Se solicitó ayuda para la realización de una encuesta online con http://www.debianchile.org/ donde se expuso las necesidad de tener un escritorio que no consumiera muchos recursos, y lanzaron una encuesta a los usuarios de varias distribuciones los cuales tenían experiencia usando GNU/Linux mint. Los resultados de la encuesta fueron los siguientes mostrados por la figura 1.13. pág. 40 Figura 1.13 Grafica de encuesta en línea. Esta encuesta ayudo a elegir el escritorio de GNU/Linux Ixchel ya que no fue la única fuente pero si la más importante, aunado a las pruebas ejecutadas de más de 5 escritorios. Se obtuvieron los siguientes resultados, el escritorio de XFCE cuenta con demasiados bugs (errores), el escritorio KDE es muy gráfico y por ende muy robusto, GNOME es de los más estables pero en la última versión se encontraron varios bugs. CINNAMON es de fácil uso y muy ligero, lo cual se optó por este último escritorio ya que se adapta a los requerimientos que se tienen contemplados. pág. 41 CAPÍTULO II: REQUERIMIENTOS. Introducción. Los requerimientos mínimos son una serie de componentes o valores, para los que está diseñado el software en cuestión y que son, los que debemos disponer en nuestro equipo para un funcionamiento adecuado. Algunos de estos requisitos pueden ser: Velocidad y tipo de procesador. Cantidad de memoria RAM. Tipo de tarjeta gráfica. Espacio libre en disco duro. Tarjeta de sonido. Lector de Cd o de DVD, etc. 2.1 Requerimientos mínimos de Hardware. Uno de los componentes del proyecto es la recopilación de software, por lo que dentro de los requerimientos en primera instancia se menciona una encuesta, la cual se toma como base para incluir el software dentro de la distribución, tomando en cuenta recomendaciones de la comunidad en la red que se menciona en el capítulo 3, para el escritorio. pág. 42 En esta encuesta se justifica las necesidades de los usuarios para tener un sistema personalizado y portable. Una vez mencionados los cimientos del proyecto, se mencionarán los requerimientos técnicos que debe tener la computadora a usar. Requerimientos técnicos: Memoria RAM 4G D.D. 100 G Microprocesador 3Ghz. Usando la computadora para descargar instalar y compilar la distribución para la construcción de la distribución, con los requerimientos mencionados anteriormente. Haciendo hincapié en que se puede trabajar con menor capacidad de recursos, pero el tiempo de la operación aumenta. 2.2 Elementos virtuales (software) son los siguientes: Debian 7 whezy Netbeans Kwrite LibreOffice Remastersys VI Debian 7: Este sistema es el medio, ya que sobre él se construye el sistema. Netbeans: Este IDE (Entorno de desarrollo integrado) compila todos los programas de pág. 43 terceros los cuales son añadidos al repositorio. Kwrite: Editor de texto ligero. LibreOffice: En él se crea la documentación y formato de archivos de texto. Remastersys: Permite crear el leve cd. VI: Editor de textos predeterminado en el sistema operativo GNU/Linux. Los elementos de software mencionados forman parte del código abierto y corren bajo la licencia GPLv3 la cual nos permite usar los programas y modificarlos para el objetivo de nuestra distribución. CAPÍTULO III: METODOLOGÍA DE DISEÑO. Introducción. Indaguemos en los cimientos del proyecto y todos aquellos aspectos que dieron origen a la idea de un sistema operativo portátil y libre. Para poder resolver un problema debemos especificar cuál es, en este caso es una necesidad la cual se quiere cubrir, y sostenido con el conocimiento adquirido a lo largo de estos 8 semestres para cubrirla. La necesidad de tener una plataforma portable y fácil de usar, precargando la mayoría de herramientas de software listas para usarse. Necesidad observada por la experiencia y fundamentada en una encuesta realizada a los estudiantes de la ESIME ZACATENCO. La encuesta consta de menos de diez preguntas y fue aplicada a los alumnos de ESIME Zacatenco de varios semestres y de ambos turnos. pág. 44 3.1 Encuesta. ENCUESTA DIRIGIDA A ESTUDIANTES DE ESIME ZACATENCO, CARRERA INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA. Solicitud de cooperación: Pedimos su colaboración para realizarle la siguiente encuesta, la cual es para fines educativos y se mantendrán protegidos sus datos personales, de antemano agradecemos su tiempo aproximado no máximo de 10min. Para la elaboración. Objetivo: Recolectar información sobre los programas utilizados en la carrera. Instrucciones: Solicitamos su colaboración para el llenado de la siguiente encuesta marcando con una ―X‖ la respuesta de su elección, en preguntas con respuestas de múltiples opciones pueden ser marcadas más de una opción. De antemano muchas gracias por su ayuda. Datos de Identificación Género: Femenino _________ Masculino______ Edad: 18-29 años_____ 30-45 años _____ Más de 45 años ____ Lugar de residencia: _________________________________________ Cuestionario 1. ¿En qué semestre te encuentras? R= 2. ¿Cuántas de tus materias requieren uso de programas electrónicos? R= 3. ¿Qué sistema operativo ocupas? R= pág. 45 4. ¿Tienes laptop? R= 5. ¿Cuáles son los principales programas que ocupas? R= 6. ¿Te sería útil portar tus programas en un dispositivo de almacenamiento (USB)? R= 7. ¿Conoces el software libre? R= INFORMACIÓN GENERAL No. de personas Encuestadas 80 Cuestionarios realizados 80 Respuestas 100% No. de mujeres 2 No. De hombres 78 Tabla 3.1 Información general. pág. 46 1. ¿En qué semestre te encuentras? 7 10 Primero 38 Tercer Cuarto Octavo 25 Figura 3.1 Pregunta 1. 2. ¿Cuántas de tus materias requieren uso de programas o aplicaciones? 2 Primer sem. 6 3 Tercer sem. Cuarto sem. Octavo sem. 3 Figura 3.2 Pregunta 2. pág. 47 3. ¿Qué sistema operativo ocupas? 11 2 Windows Linux IOS Todos lo anteriores 76 Figura 3.3 Pregunta 3. 4. ¿Tienes Laptop? 15 Si No 65 Figura 3.4 Pregunta 4. pág. 48 5. ¿Cuáles son los programas que ocupas? 15 Compiladores 65 Editores de texto 76 IDE´S Graficadores 22 Editores de fórmulas Generadores de funciones 23 21 25 Paqueterías Todas las anteriores 35 Figura 3.5 Pregunta 5. 6. ¿Te sería útil portar tus programas en un dispositivo de almacenamiento (USB)? 5 Si No 75 Figura 3.6 Pregunta 6. pág. 49 7. ¿Conoces el software libre? 10 20 Si No Me interesaría 50 Figura 3.7 Pregunta 7. ANÁLISIS DE LA ENCUESTA No. de pregunta 1 ICE ICA IE ISA 2 Primero Tercero Cuarto Octavo 3 ICE ICA IE ISA Resultado Análisis 61 10 5 4 En este caso se observa que 61 de los encuestados, son de la carrera de ICE, mientras que de ICA son 10, de IE 5 y finalmente ISA con 4. 7 10 25 38 Aquí se puede ver que la mayoría son del octavo semestre, mientras que de tercero y cuarto son casi la misma cantidad 5 y 4 respectivamente y finalmente con menor número de estudiantes son los de primer semestre. 8 6 5 7 Los resultados arrojan que la carrera de ICE requiere de mayor uso de programas, en cuanto a ICA, IE e ISA utilizan casi la misma cantidad 6 5 Y 7 respectivamente. pág. 50 4 Windows Linux 79 1 En esta pregunta, es claro el contraste acerca de qué sistema operativo usan los encuestados, es mayor el uso de Windows y minoría el sistema de Linux 5 Si No 17 3 La mayoría de los estudiantes ya cuentan con Laptop para sus actividades escolares, pero aún hay un porcentaje que no tiene 8 En esta pregunta se observa que se utilizan diferentes programas, los estudiantes encuestados utilizan en su mayoría compiladores e Ides y los de menor uso son Editores de texto, graficadores, generadores de operaciones y editores de fórmulas con y un usuario respectivamente 6 Compilado res Editores de texto IDE´s Graficador es Editores de formulas Generador de Operacion es 7 Si No 8 Si No Me interesaría 2 5 2 1 2 76 4 Esta es la pregunta esencial de nuestro proyecto ya que vemos si su utilidad va ser provechosa para los estudiantes de estas carreras y el resultado es mayoría contestando que si le sería útil portar sus programas en un dispositivo mientras que un menor porcentaje dice que no le sería útil. 76 2 2 En la última pregunta podemos ver que la mayoría no conoce que es el software libre, por lo cual el objetivo del proyecto es no encasillarse en programas específicos, ya que en la industria por reducir costos se puede ocupar estar herramienta y de esta forma es más fácil adaptarse a las mejores posibilidades. Tabla 3.2 Análisis de la Encuesta. pág. 51 3.3 Propuesta. En los puntos antes expuestos se han señalado las necesidades y se planteará los puntos del proyecto para cubrirla. 3.3.1 Proyecto Ixchel. Ixchel es una distribución de GNU/Linux orientada primeramente a los estudiantes de ICE de ESIME y con posible expansión a otras escuelas o carreras, Ixchel es una distribución personalizada, la cual intenta contener de manera portable las herramientas necesarias (software), las cuales también servirán como soporte para alumnos que no cuenten una computadora portátil. Ixchel se encuentra disponible en live-cd y en live-usb por lo cual puede correr en máquinas de bajos recursos o con opciones de arranque de solo unidad óptica, se dispone de un sitio en donde se puede descargar la distribución y colaborar con el proyecto ya sea con programas o con opiniones o encuestas para incluir más programas en la misma. Cuenta con un escritorio cinnamon extraído de la distribución de mint el cual corre bajo la licencia GPLv3.En la figura 3.8 se muestra el escritorio cinnamon de la versión 2.0 de Ixchel. Figura 3.8 Escritorio Cinnamon pág. 52 En la siguiente imagen nos muestra algunos de los programas que vienen precargados y son resultado de la encuesta de software que se aplicó, ver Figura 3.9. Figura 3.9 Menú del Escritorio. 3.4 Cómo obtener Ixchel. Aprovechando la flexibilidad del código abierto ―GNU/Linux‖ se contrató un servidor web apache 2 y php donde fue hospedado el proyecto, también fue contratado un servidor FTP dentro del mismo para gestionar el contenido de la página. Se empotró un sitio para la distribución, en la figura 3.10 se puede observar las cara y la URL de esta página. pág. 53 3.4.1 Sitio (http://gnulinux-ixchel.com/). Figura 3.10 Sito de la Distribución. La página cuenta con un repositorio en el cual existen programas y manuales de instalación, en general se encuentra los programas difíciles de encontrar y que están firmados por terceros, quiere decir que no existen en los repositorios oficiales de los repositorios de mint ubuntu o Debian. pág. 54 CAPÍTULO IV: IMPLEMENTACIÓN. Introducción. En este capítulo se expone la construcción de la distribución, en primera instancia se toma los requerimientos de configuración base y posteriormente el particionamiento de las unidades y paquetes necesarios, después la instalación del sistema base, de donde se parte para la personalización del sistema. 4.1 Obtención de la distribución Debian 7 de instalación mínima. La distribución se obtiene por medio de Internet y basta con tan solo llegar a su página oficial para descargarla, haciendo la observación que la versión a descargar, es la versión de instalación mínima. 4.2 Sistema anfitrión. Partiendo de una distribución básica como es una imagen pequeña de Debian 7 que solo pesa 280Mb, la cual carece de paquetes instalados y de entorno gráfico, es la materia prima del proyecto, la cual se personaliza en varios pasos y se mencionará la gran mayoría de ellos en este capítulo. 4.3 ¿Por qué Debian? A continuación se muestran en la tabla 4.1 las características principales de diferentes sistemas operativos entre ellos debían y el por qué el uso de dicho sistema para nuestra distribución. pág. 55 Es una distribución basada en Debian. Enfocada al usuario promedio. No cuenta con los códecs (codificadores-decodificadores) de audio necesarios, carente de controladores. No es compatible con algún hardware. Necesita más requerimientos de sistema. Difícil de encontrar soporte. Sistema basado en ubuntu. Depende mucho del sistema nativo. Por ende sus mismas desventajas. Sistema más estable en la actualidad Es multiarquitectura (permite instalar paquetes de diferentes arquitecturas ya sean de 32 0 64 bits). Cuenta con un conjunto de códecs y elimina la necesidad de repositorios de terceros. Su kernel se puede configurar para mejorar el funcionamiento. Tabla 4.1 Comparación de Distribuciones. 4.4 Obtención de la distribución LFS. Se obtiene la distribución linux from scratch de la página oficial de este proyecto, tomando el live-cd de la versión lfslivecd-x86-6.3-r2160, la cual se ejecuta en la computadora personal con los requerimientos mencionados en el capítulo II. pág. 56 Teniendo ambas distribuciones y como siguiente paso se instalará la distribución de debían 7, siguiendo un proceso largo ya que esta distribución posee un instalador mínimo y el entorno gráfico del instalador es muy básico. En los siguientes puntos se mencionan los pasos seguidos una vez arrancado el live CD. 4.5 Comprobación de la memoria disponible. Este paso es fundamental ya que con el sistema se ajustará la máquina en la cual se va a instalar el sistema, si la máquina es de bajos recursos el disco de instalación hace algunas modificaciones en la configuración sacrificando según, sea el caso, algunas opciones de instalación para ejecutarse en el equipo. 4.6 Partición y punto de montaje. En este momento, después de que ha sido ejecutada la detección de hardware, el último paso, el disco comienza a buscar unidades de almacenamiento en donde será instalado. Hay una serie de puntos de montaje los cuales se requieren de manera mínima para las funcionalidades del sistema operativo. pág. 57 Ejemplo de particiones IDE1 master (hda) - 6.4 GB WDC AC36400L #1 primary 16.4 MB B f ext2 #2 primary 551.0 MB #3 primary pri/log swap 5.8 GB 8.2 MB /boot ntfs ESPACIO LIBRE IDE1 slave (hdb) - 80.0 GB ST380021A #1 primary 15.9 MB ext3 #2 primary 996.0 MB fat16 #3 primary 3.9 GB xfs /home #5 logical 6.0 GB f ext3 / #6 logical 1.0 GB f ext3 /var #7 logical 498.8 GB ext3 #8 logical 551.5 GB swap #9 logical 65.8 GB ext2 swap Tabla 4.2 Tabla de particiones. Para el sistema base se elige la opción de partición automática la cual prepara las unidades de disco duro para la instalación. 4.7 Partición. En los siguientes pasos se enumera el procedimiento para particionar el disco duro de la distribución madre y prepararla para instalar la imagen básica de Debian. pág. 58 1. Comprobar los discos en el sistema. $ sudo fdisk -l Disco /dev/sda: 500.0 GB, 160041885696 bytes 255 cabezas, 63 sectores/pista, 19457 cilindros Unidades = cilindros de 16065 * 512 = 8225280 bytes Identificador de disco: 0x000c3c51 Dispositivo Inicio Comienzo Fin Bloques Id Sistema /dev/sda2 3233 9855 53199247+ 83 Linux /dev/sda4 9856 19457 77128065 83 Linux La respuesta de fdisk nos muestra los discos y con ello las particiones existentes. . 2. Se elige el disco donde se crearán las particiones. Fdisk /dev/sda Muestra un listado de opciones de acción. Orden Acción a Conmuta el indicador de iniciable b Modifica la etiqueta de disco bsd c Conmuta el indicador de compatibilidad con DOS d Suprime una partición l Lista los tipos de particiones conocidos m Imprime este menú n Añade una nueva partición o Crea una nueva tabla de particiones DOS vacía p Imprime la tabla de particiones pág. 59 q Sale sin guardar los cambios s Crea una nueva etiqueta de disco Sun t Cambia el identificador de sistema de una partición u Cambia las unidades de visualización/entrada v Verifica la tabla de particiones w Escribe la tabla en el disco y sale x Funciones adicionales (sólo para usuarios avanzados) 3. Elegimos la opción p para partición primaria. p Número de partición (1-4): 3 Primer cilindro (1-19457, valor predeterminado 1): 4. Se ejecuta el comando partprobe para aplicar los cambios. 5. Se da formato a la partición para comenzar a usarla $ mkfs.ext4 /dev/sda3 6. Montaje de la partición para instalar el sistema madre mount //dev/sda3 4.8 Edición del arranque Dentro del sistema de ficheros se modificado el arranque para personalizar la distribución, el archivo es el siguiente; /boot/grub/grub.cfg pág. 60 Default=0 Timeout=10 Splash image= (hd0,0)/grub/splash.xpm.gz # section to load Linux title Red Hat Enterprise Linux (2.4.21-1.ent) root (hd0,0) kernel /vmlinuz-2.4.21-1 ro root=/dev/sda2 initrd /initrd-2.4.21-1.img # section to load Windows Title Windows rootnoverify (hd0,0) chainloader +1 Se colocó el nombre de la distribución y la prioridad del mismo. 4.10 Configuración de las interfaces de red. Este paso es de gran importancia ya que gracias a la conexión con la red, permite la descarga e instalación de la paquetería del sistema. 1. Habilitar tarjeta de red, se usa el siguiente comando $ ifconfig up eth0 2. Edición del archivo de interface, si se desea se deja las opciones por default, si se quiere una conexión con un servidor que cuenta con protocolo de configuración dinámica (DHCP). pág. 61 nano /etc/network/interfaces Un ejemplo de este fichero el siguiente # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.134 netmask 255.255.255. gateway 192.168.1.1 Terminado el siguiente procedimiento se levanta la interface, usando el comando /etc/init.d/networking start 4.11 Instalación de programas. Contando con la conexión a internet, se tiene la opción de descargar programas de la web usando las ligas directas, aun no se cuenta con repositorios configurados así que se recurre a compilar los programas en modo consola. Pasos para descarga e instalación de programas modo consola 1. Descarga del programa bash# tar -xzvf fuentes_del_programa-version.tar.gz pág. 62 o si está comprimido con bzip: bash# tar -xjvf fuentes_del_programa-version.tar.bz2 2. Posicionamiento dentro de la carpeta del programa bash# cd fuentes_del_programa-version/ 3. Verificar dependencias bash# ./configure –parámetros 4. Compila e instala bash# make bash# make install 5. Salida bash# exit 4.11.1 Instalación del entorno de escritorio cinammon. Una vez configurado el repositorio de Mint se instala el escritorio con el siguiente comando $aptitude install cinnamon pág. 63 4.12 Selección de opciones de localización. Esta opción es acerca de la ubicación geográfica, esta configuración sirve para sincronizar el horario adecuado del sistema y para conectarse a los sitios de los repositorios para descargar el software. El idioma que escoja se utilizará durante el resto del proceso de instalación, siempre que exista una traducción para los distintos mensajes que se muestran. Si no hay una traducción disponible para el idioma seleccionado el instalador mostrará los mensajes en inglés. La ubicación geográfica seleccionada (habitualmente, un país) se utilizará más adelante en el proceso de instalación para seleccionar la zona horaria correcta y el servidor de réplica de Debian más apropiada en función de ese país. El idioma y el país se utilizarán conjuntamente para ayudar a definir la localización predeterminada del sistema y seleccionar la distribución del teclado adecuada. 4.12.1 Configuración de la red. En este paso, si el sistema detecta que tiene más de un dispositivo de red, se le pedirá que elija cual quiere usar como interfaz de red primaria, esto es, la que quiera usar para la instalación. El resto de las interfaces no se configurarán en este momento. Podrá configurar las demás interfaces una vez se haya terminado la instalación. Debian-installer intenta configurar automáticamente la tarjeta de red de su ordenador mediante el protocolo de configuración dinámica de host (DHCP) por omisión. Si esta configuración automática tiene éxito no se tendrá que modificar nada. Un fallo de esta solicitud puede deberse a muchos factores, variando desde un cable de red desconectado, hasta una mala configuración del entorno DHCP. Puede que ni siquiera tenga un servidor DHCP en la red local. En este caso se tiene un servidor DHCP desde el módem del proveedor del servicio de internet. pág. 64 4.12.2 Configuración usuarios y root. El instalador le permitirá configurar la cuenta del usuario root (super-usuario, o usuario administrador) y/o una cuenta para el primer usuario después de configurar la hora. Se pueden crear otras cuentas para los usuarios que se deseen, en este caso solo utilizaremos una la cual se configura para que el usuario tenga acceso a la distribución. La cuenta de root también se la conoce como la cuenta de super-usuario. Se trata de una cuenta que puede saltarse todas las protecciones de seguridad del sistema. Es una cuenta que sólo debería utilizarse para realizar la administración del sistema y sólo durante un tiempo tan corto como sea posible. 4.12.3 Usuario local. El sistema le preguntará si desea o no crear una cuenta de usuario normal. Esta cuenta debería utilizarse como la cuenta personal para acceder al sistema. No debe utilizar la cuenta de raíz como la cuenta personal o de uso diario, es por esta razón que se crean dos cuentas en Ixchel, la cuenta para acceder y la cuenta del root. 4.12.4 Instalar el sistema base. La configuración antes mencionada se queda en la memoria RAM por lo que no se ha hecho un cambio significativo en el disco duro, pero se ha preparado un ambiente para hacerlo. Aunque esta etapa es la menos problemática, consume una gran parte del tiempo de instalación debido a que descarga, verifica y desempaqueta el sistema base completo. Si se tiene un ordenador o conexión de red lentos, esto podría tomar algún tiempo. pág. 65 Los mensajes de desempaquetado y configuración generados durante esta fase se guardan en /var/log/syslog. Y se pueden monitorear a través de una consola serie que se puede desplegar mientras se está instalando. Se instalará un núcleo de Linux como parte de la instalación. En la prioridad predeterminada, el instalador elegirá por el usuario el que mejor se adapte al hardware. En los modos de menor prioridad, se puede elegir uno entre una lista de núcleos disponibles. 4.13 Programas adicionales. Una vez se haya instalado el sistema base se tiene un sistema útil pero limitado. La mayoría de los usuarios querrán instalar programas adicionales en el sistema para ajustarlo a sus necesidades, y el instalador le permite hacer esto. Este paso puede tardar más tiempo que la instalación del sistema base si tiene un ordenador lento o su red es lenta el cual son las condiciones donde fue instalado. 4.13.1 Configurar aptitude. Una de las herramientas utilizada para instalar paquetes en un sistema Debian GNU/Linux es un programa llamado apt-get, que está dentro del paquete apt. Existen otras interfaces a la gestión de paquetes, como aptitude y synaptic que también se utilizan. Se recomienda a los usuarios promedio, para que utilicen estas interfaces ya que integran otras funciones adicionales (como la búsqueda de paquetes y comprobaciones de estado) en una interfaz de usuario más amigable. De hecho, la herramienta recomendada para gestión de paquetes es aptitude y ambas herramientas están incluidas en Ixchel. pág. 66 La configuración de los paquetes apt se realiza de una manera manual se agrega una lista de repositorios que muchas veces son de terceros por lo que se debe de tener un especial cuidado en ello. El instalador intenta hacer esto de forma automática basándose en lo que conoce del medio de instalación que utilice. Los resultados de la configuración realizada se guardan en el archivo /etc/apt/sources.list. Podrá el usuario examinar y editar este fichero a gusto una vez que haya terminado la instalación. 4.13.2 Gestor de arranque. Esta opción se usa para finalizar la instalación, incluso cuando no se instale un gestor de arranque, bien porque la arquitectura o su arquitectura no disponga de uno o bien porque no es necesario (p. ej. cuando vaya a usar un gestor de arranque que ya exista en el sistema). Para configurar manualmente el gestor de arranque, se verifica el nombre del núcleo instalado en /target/boot, se verifica la presencia de un fichero initr.d en este directorio; probablemente se deba indicar al gestor de arranque que lo utilice si existe. Se necesitará también conocer, como información adicional, el disco y partición que ha elegido para su sistema de ficheros / (raíz) y también el sistema de ficheros /boot. 4.14 Terminando la instalación. Después del proceso de carga e instalación el sistema hace una verificación de que todo está instalado correctamente, comprobación que se hace cuando el sistema arranca, comprobando e inicializando los servicios, en caso de que uno falle es notificado al iniciar el sistema. pág. 67 4.14.1 Sistema terminado. Una vez terminado el sistema, se tiene un sistema base el cual solo es operable por la consola, así que está listo para ser personalizado no obstante es 100% operable si fuera un servidor, pero como este no es el caso se tienen que instalar herramientas programas y desde luego un entorno gráfico. 4.14.2 Añadiendo repositorios en la distribución. Posteriormente, se procede a la configuración de repositorios para la instalación de los programas, los mismos que utilizaremos para la distribución y cuidando de instalar solo los mínimos para un correcto funcionamiento de la distribución. Tomando en consideración que es una distribución Debian se configuran los repositorios en la siguiente ruta ―/etc/apt/source.list‖ para ello y, como fue antes mencionado, no disponemos con un editor de texto, se descarga de esta ruta mediante una serie de comandos hg clone https://vim.googlecode.com/hg/ vim cd vim/src make Usando el programa de texto previamente instalado para editar el archivo source.list usando el siguiente comando vim /etc/apt/source.list pág. 68 4.14.3 La lista añadida al repositorio ## Debian Testing deb http://ftp.de.Debian.org/Debian/ testing main contrib non-free deb-src http://ftp.de.Debian.org/Debian/ testing main contrib non-free ## Actualizaciones de seguridad deb http://security.Debian.org/ testing/updates main contrib non-free deb-src http://security.Debian.org/ testing/updates main contrib non-free ##Repositorio de Nuvola Player deb http://ppa.fenryxo.cz/nuvola-player/ sid main deb-src http://ppa.fenryxo.cz/nuvola-player/ sid main Después de configurar los repositorios añadiendo las líneas anteriores, se actualiza la lista dentro del sistema para que sea reconocida por el mismo. Con el siguiente comando se lleva a cabo esta operación #aptitude-update Es de suma importancia detallar este paso ya que la gran mayoría de los programas instalados dentro de la distribución vienen de estos repositorios. Como todos los programas que se instalarán posteriormente dependen de una librería de gráficos el siguiente paso es el más esperado, (se aplicó una encuesta online previamente mencionada). Es instalar el entorno gráfico del sistema operativo. pág. 69 Utilizando el repositorio instalado previamente utilizando el comando aptitude-install cinammon Es de gran ayuda la instalación de paquetes vía repositorio pues sin él, tendríamos que hacerlo de forma manual y resolviendo dependencias, las cuales midiéndolas numéricamente son por lo menos de tres cifras. 4.15 Personalizar imágenes Finalizada la instalación se personaliza el entorno gráfico, para ello se utiliza un programa llamando Gimp (parecido al famoso photoshop) para dar una idea. Este programa es descargado de la página oficial http://www.gimp.org/downloads/ donde se bajan los archivos binarios comprimidos con la extensión ―.tar.bz‖, estos binarios se instalan de manera manual y se resuelven las dependencias, si es que las hay, de manera manual, la serie de comandos para la instalación es la siguiente: tar -xjvf gimp.tar.bz cd gimp make make install Personalizando el escritorio GIMP editor de imágenes instalado previamente y Programas añadidos a la distribución. pág. 70 En este paso se agregan los programas que vendrán precargados en la distribución y que para ello si no existen en repositorios serán descargados de la página oficial e instalados manualmente. 4.16 Sistema anfitrión terminando. Cargado el S.O. y los programas, tenemos como producto una distribución madre, la cual está atrapada en el ordenador donde fue instalada, llegando a este punto se hace uso de una herramienta la cual provee amplias funcionalidades y que se utilizará para la personalización y para exportar el sistema portable. 4.16.1 Usando la herramienta LSF para personalizar Esta herramienta muy poderosa se ocupa para las modificaciones de la pantalla de inicio donde se cambian las opciones de arranque e imágenes de las mismas, provee de herramientas para editar de modo consola las prioridades de inicio y con ello ajustar a las necesidades de la distribución. En un ámbito menos significativo y no menos importante de mencionar también provee de herramientas para cambiar los iconos y barras de nuestro entorno gráfico, las cuales mencionamos su edición con el programa de edición de imágenes (Gimp). pág. 71 4.16.2 Creando la imagen Con la herramienta remastersys la cual fue instalada de un paquete del repositorio de Debian se crea una imagen completa del sistema operativo y con ellos todo lo ya personalizado, obteniendo esta imagen final de 2.5Gb, se da por terminada la serie de procesos mencionados y se obtiene la distribución lista para usarse. 4.16.3 Requerimientos mínimos de hardware para Ixchel. Procesador Pentium 4, a 1 Ghz. 1 Gb. RAM 5 Gb Disco duro Unidad de CD/DVD Puertos USB pág. 72 CONCLUSIONES El producto final es una herramienta gratuita, portable y de fácil instalación la cual ofrece la oportunidad de acercarse al software libre, sin tener conocimientos avanzados de informática, además de ser una tecnología que se puede adaptar a las necesidades del usuario ya que es 100% legal su modificación y distribución, también ayuda a erradicar la piratería con herramientas equivalentes y gratuitas. La distribución está enfocada especialmente para el alumno de la ESIME estudiante de la carrera de Ingeniería en Comunicaciones y Electrónica; la distribución cuenta con programas útiles para las asignaturas de dicha carrera. Es accesible para aquellos alumnos que no cuentan con computadora propia. Fomenta la creación de un modelo productivo y colaborativo de trabajo, con ello una independencia tecnológica, brinda seguridad al usuario ya que tiene acceso al código fuente corroborando que sus funciones sean específicamente para las que fue creado. Es de suma importancia el software libre tanto en la educación como en el ámbito laboral ya que nos da libertad de decisión en cuanto a que software usar, así como transmisión en el conocimiento colectivo, en la educación nos abre la puerta para conocer evaluar y usar software hecho por personas alrededor del mundo, y que podemos alimentar mejorando u optimizándolo para su posterior uso, de esta manera se aprenden cosas que probablemente no se vean en las aulas. En el ámbito laboral nos da el conocimiento y la experiencia para adaptarse a lenguajes diferentes y al software propio de la empresa que no necesariamente esta estandarizado o que está regido por normas de la empresa. pág. 73 ANEXO LICENCIA PÚBLICA GENERAL VERSION 3 Versión 3, 29 de junio 2007 Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/> Se permite la copia y distribución de copias literales de este documento de licencia, pero cambiándolo no está permitido. Preámbulo La Licencia Pública General de GNU es una licencia libre, para el software y otros tipos de obras. Las licencias para la mayoría del software y otros trabajos prácticos están diseñadas para quitarle a usted la libertad de compartir y modificar esos trabajos. Por el contrario, la Licencia Pública General de GNU pretende garantizarle la libertad de compartir y modificar todas las versiones de un programa - para asegurarse de que sigue siendo software libre para todos sus usuarios. Nosotros, la Fundación para el Software Libre, usamos la Licencia Pública General GNU para la mayoría de nuestro software; también se aplica a cualquier trabajo realizado de esta forma por sus autores. Usted puede aplicarla a sus propios programas. pág. 74 Cuando hablamos de software libre, estamos refiriéndonos a libertad, no de precio. Nuestras Licencias Públicas Generales están diseñadas para asegurarnos de que usted tiene la libertad de distribuir copias de software libre (y cobrar por ello si lo desea), que reciba el código fuente o que pueda conseguirlo si lo quiere, de que se puede cambiar el software o utilizar fragmentos de él en nuevos programas libres, y que usted sabe que puede hacer estas cosas. Para proteger sus derechos, necesitamos evitar que otros le nieguen estos derechos o pedirle que renuncie a los derechos. Por lo tanto, usted tiene ciertas responsabilidades si distribuye copias del software, o si lo modifica; responsabilidades que persiguen respetar la libertad de los demás. Por ejemplo, si distribuye copias de un programa, ya sea gratuitamente o a cambio de una contraprestación, debe transmitir a los destinatarios los mismos derechos que usted recibió. Debe asegurarse de que ellos también reciben, o pueden conseguir el código fuente. Y debe mostrarles estas condiciones de forma que conozcan sus derechos. Los desarrolladores que usen la GPL GNU protegen sus derechos de dos pasos: (1) imponen derechos al software, y (2) le ofrecemos esta licencia que le da permiso legal para copiar, distribuir y / o modificarlo. Para la protección de los desarrolladores y autores, la GPL expone claramente que no hay ninguna garantía para este software libre. Para beneficio de ambos, usuarios y autores, la GPL establece que las versiones modificadas serán marcados como cambiado, por lo que sus problemas no serán atribuidos por error a los autores de versiones anteriores. Algunos dispositivos están diseñados para negar al usuario instalar o ejecutar versiones modificadas del software dentro de ellos, a pesar de que el fabricante pueda hacerlo. Esto es completamente incompatible con el objetivo de proteger la libertad de los usuarios para modificar el software. El patrón sistemático de tal abuso se produce en el área de productos pág. 75 de uso personal, que es precisamente donde es más inaceptable. Por lo tanto, hemos diseñado esta versión de la GPL para prohibir estas prácticas en esos productos. Si apareciesen problemas similares en otros ámbitos, estaremos preparados para extender estas prestaciones a las de las futuras versiones de la GPL, según sea necesario para proteger la libertad de los usuarios. Por último, todo programa está constantemente amenazado por las patentes de software. Los Estados no deben permitir que las patentes restrinjan el desarrollo y uso de software en ordenadores de uso general, pero en los que sí, queremos evitar el especial peligro que suponen las patentes aplicadas a un programa libre puedan hacerlo propietario. Para evitar esto, la GPL establece que las patentes no se pueden utilizar para hacer que el programa no sea libre. Los términos y condiciones para la copia, distribución y modificación. TÉRMINOS Y CONDICIONES 0. Definiciones. "Esta Licencia" se refiere a la versión 3 de la Licencia Pública General GNU. "Derechos de autor" también significa las leyes del derecho de autor como que se aplican a otros tipos de obras, como las máscaras de semiconductores. pág. 76 "El Programa" se refiere a cualquier obra sujeta al derecho aplicado esta Licencia. Cada concesionario se dirige como "usted". "Licenciatarios" y "destinatarios" pueden ser personas u organizaciones. Para "modificar" un trabajo significa copiar o adaptar todo o parte de la obra de un modo que requiera permiso de copyright, que no sea la realización de una copia exacta. El trabajo resultante se denomina "versión modificada" de la obra anterior o trabajo "basado en" el trabajo anterior. Un "trabajo amparado" puede ser tanto el Programa no modificado como un trabajo basado en el Programa. Para "propagar" un trabajo significa hacer cualquier cosa con él, sin permiso, que le haga directa o indirectamente responsable de infringir leyes cubiertas por copyright, excepto la ejecución en un ordenador o la modificación de una copia privada. La difusión incluye la copia, distribución (con o sin modificaciones), a disposición del público y, en algunos países, otras actividades también. "Distribuir" un trabajo implica cualquier tipo de difusión que permite a la otra parte hacer o recibir copias. La mera interacción con un usuario a través de una red de ordenadores, sin transferir copia, no está transmitiendo. Un usuario interactivo interfaz muestra "Avisos Legales Apropiados" en la medida en que incluye una herramienta de gran utilidad y destacadas que (1) muestra un anuncio de copyright, y (2) le dice al usuario de que no hay ninguna garantía para el trabajo (excepto para la medida en que se proporcionan garantías), que los licenciatarios pueden transmitir el trabajo bajo esta Licencia, y cómo ver una copia de esta licencia. pág. 77 Si la interfaz presenta una lista de opciones o comandos, tales como menús, un elemento destacado en dicha lista cumple con este criterio. 1. Código Fuente. El "código fuente" de un trabajo se entiende la forma preferida del trabajo para hacer modificaciones en él. "Código objeto" se entiende cualquier forma no fuente de una obra. Una "Interfaz Estándar" se refiere a una interfaz que sea o bien un estándar oficial definido por un organismo de normalización reconocido, o, en el caso de las interfaces especificadas para un lenguaje de programación en particular, uno que se utiliza ampliamente entre los desarrolladores que trabajan en ese idioma. Las "Bibliotecas de Sistema" de un trabajo ejecutable incluyen a cualquier elemento, aparte de la obra en su conjunto, que (a) se incluye en la forma normal de un componente principal, pero que no es parte de ese componente principal, y (b) sólo sirve para permitir el uso de la obra con ese componente principal, o para implementar un Interfaz Estándar para el cual está disponible una implementación al público en forma de código fuente. Un "componente principal", en este contexto, significa un importante componente esencial (núcleo, sistema de ventanas, etc.) del sistema operativo específico (si existe) en el cual funcione el ejecutable, o un compilador utilizado para generar el trabajo, o un intérprete del código objeto utilizado para ejecutarlo. La "Fuente Correspondiente" de un trabajo en código objeto significa todo el código fuente necesario para generar, instalar, y (para un trabajo ejecutable) ejecutar el código objeto y modificar el trabajo, incluyendo scripts que controlen esas actividades. Sin embargo, no incluye el Sistema de Bibliotecas de la obra, o herramientas de propósito general o programas gratuitos disponibles en general que se utilizan sin modificaciones para realizar estas actividades pero que no forman parte de la obra. pág. 78 Por ejemplo, la Fuente Correspondiente incluye los archivos de definición de interfaz asociados con archivos fuente del trabajo, y el código fuente de las bibliotecas compartidas o subprogramas enlazados dinámicamente que el trabajo se requiere por diseño, como por la comunicación de datos intrínseca o el control de flujo entre esos subprogramas y otras partes de la obra. La Fuente Correspondiente no incluye necesariamente aquello que los usuarios pueden regenerar automáticamente de otras partes de la Fuente Correspondiente. La Fuente Correspondiente de un trabajo en código fuente es ese mismo trabajo. 2. Permisos básicos. Se otorgan todos los derechos garantizados por los términos del copyright en el Programa, y son irrevocables siempre que se cumplan las condiciones establecidas. Esta Licencia afirma explícitamente su permiso ilimitado para ejecutar el Programa sin modificaciones. El resultado de la ejecución de un programa amparado está cubierto por esta licencia sólo si la salida de su contenido, constituya un trabajo amparado. Esta Licencia reconoce sus derechos de uso razonable u otro equivalente, según lo dispuesto por la ley de derechos de autor. Usted podrá realizar, ejecutar y difundir trabajos amparados que no distribuya, sin condición alguna, siempre y cuando no tenga otra licencia en vigor. Podrá distribuir trabajos amparados a terceros con el único propósito de que ellos hagan modificaciones exclusivamente para usted, o le proporcionan ayuda para ejecutar esos trabajos, siempre y cuando cumpla con los términos de esta Licencia distribuyendo todo el material para el que usted no controla los derechos de autor. Aquellos haciendo así o ejecuten los trabajos amparados para usted deben hacerlo exclusivamente en su nombre, bajo su dirección y control, en términos que les prohíban realizar copias de su material con derechos de autor fuera de su relación con usted. pág. 79 La distribución bajo otras circunstancias se permite únicamente bajo las condiciones indicadas a continuación. No está permitido sublicenciar; sección 10 lo hace innecesario. 3. Protección de Derechos Legales Usuarios frente a Leyes contra la elusión. Ningún trabajo amparado debe considerarse parte de una medida tecnológica efectiva bajo cualquier ley aplicable que cumpla las obligaciones en virtud del artículo 11 del tratado de copyright WIPO adoptado el 20 de diciembre de 1996, o leyes similares que prohíben o restringen la violación de tales medidas. Cuando distribuya un trabajo amparado, renuncia a cualquier poder legal para prohibir la elusión de medidas tecnológicas en la medida de tales violaciones se realicen en ejercicio de derechos bajo esta Licencia con respecto al trabajo amparado, y usted negará cualquier intención de limitar el uso o modificación de la trabajar como un objetivo de imponer, contra los usuarios de la obra, sus derechos legales o de terceros para prohibir la violación de medidas tecnológicas. 4. Distribución de copias literales. Usted podrá distribuir copias literales del código fuente del Programa, según lo halla recibido, en cualquier medio, siempre que sea adecuada y bien visible publique en cada copia un anuncio de copyright; mantener intactos todos los avisos que establezcan que esta Licencia y cualquier término no-permisivo añadido de acuerdo con la sección 7 son aplicables al código; mantener intactos todos los avisos de ausencia de cualquier garantía; y dar a todos los destinatarios una copia de esta Licencia junto con el Programa. Puede cobrar cualquier importe o no cobrar por cada copia que distribuya, y podrá ofrecer soporte o protección de garantía mediante una tarifa. pág. 80 5. Distribución de Versiones Modificadas de Código. Usted podrá distribuir un trabajo basado en el Programa, o las modificaciones para producirlo a partir del Programa, en forma de código fuente bajo los términos del artículo 4, supuesto que además cumpla las siguientes condiciones: a) El trabajo debe incluir avisos destacados indicando que usted lo ha modificado y dando una fecha pertinente. b) El trabajo debe incluir avisos destacados indicando que es liberado bajo esta licencia y cualquier otra condición añadida en virtud del artículo 7. Este requisito modifica el requisito de la sección 4 de "mantener intactos todos los avisos". c) Debe obtener la licencia al trabajo completo, como un todo, bajo esta licencia a cualquier persona que esté en posesión de una copia. Por tanto, esta Licencia se aplicará junto con cualquier sección 7 términos adicionales aplicables, a la totalidad de la obra, y todas sus partes, con independencia de la forma en que se empaquetan. Esta Licencia no da permiso para la licencia de la obra, en cualquier otra manera, pero no se anula dicho permiso si usted la ha recibido por separado. d) Si el trabajo tiene interfaces de usuario interactivos, cada uno debe mostrar Avisos Legales Apropiados; Sin embargo, si el Programa tiene interfaces interactivos que no muestran Avisos Legales Apropiados, su trabajo no tiene por qué hacer que lo hagan. Una recopilación es el conjunto de un trabajo amparado y otros trabajos distintos e independientes, que no son por sus extensiones naturales miembros del trabajo amparado y que se combinen con él como para formar un programa más amplio, sobre un volumen de almacenamiento o medio de distribución, se le llama un "agregado" si la recopilación y su copyright al completo no son usados para limitar el acceso o los derechos legales de los usuarios la compilación va más allá de lo que permita el trabajo individual. La inclusión de un trabajo amparado en un paquete no hace aplicable esta Licencia al resto de elementos del paquete. pág. 81 6. Distribución Non-Source. Usted podrá distribuir un trabajo amparado en forma de código objeto en los términos de los artículos 4 y 5, siempre que también distribuya las Fuentes Correspondientes en código máquina, de acuerdo a los términos de esta Licencia, de alguna de estas formas: a) Distribuir el código objeto, o embebido en, un producto físico (incluyendo medios de distribución físicos), acompañado de las Fuentes Correspondientes en un medio físico duradero utilizado para el intercambio de software. b) Distribuir el código objeto, o embebido en, un producto físico (incluyendo medios de distribución físicos), acompañado de una oferta por escrito, válida durante al menos tres años y válida durante el tiempo que usted ofrezca recambios o soporte para ese modelo del producto, para dar al poseedor del código objeto o bien (1) una copia de las Fuentes Correspondientes a todo el software del producto que esté cubierto por esta Licencia, en un medio físico duradero habitual para el intercambio de software, por un precio no más que su coste razonable por distribuir físicamente las fuentes, o (2) acceso para copiar las fuentes correspondientes desde un servidor de red sin coste alguno. c) Distribuir copias individuales del código objeto junto con una copia de la oferta por escrito para proporcionar la Fuente Correspondiente. Esta opción se permite sólo ocasionalmente y con fines no comerciales, y sólo si usted recibió el código objeto junto con una oferta parecida, de acuerdo con la subcláusula 6b. d) Distribuir el código objeto ofreciendo acceso desde un lugar determinado (gratuitamente o por un cargo), y ofrecer un acceso equivalente a las Fuentes Correspondientes de la misma manera por el mismo lugar sin cargo añadido. No es necesario exigir a los destinatarios que copien las Fuentes Correspondientes junto con el código objeto. Si el lugar para copiar el código objeto es un servidor de red, la Fuente Correspondiente puede estar en un servidor diferente (gestionado por usted o un tercero) que ofrezca facilidades de copia equivalentes, siempre que mantenga instrucciones claras junto al código objeto especificando dónde encontrar la Fuente Correspondiente. Independientemente de qué servidores alberguen las pág. 82 Fuentes Correspondientes, usted seguirá obligado a asegurar que estarán disponibles durante el tiempo que sea necesario para satisfacer estos requisitos. e) Distribuir el código objeto mediante la transmisión punto a punto, siempre que informe a otros usuarios dónde se ofrecen el código objeto y las Fuentes Correspondientes de la obra al público en general sin costo alguno en la subcláusula 6d. Una parte separable del código objeto, cuyo código fuente esté excluido de las Fuentes Correspondientes como una Librería del Sistema, no necesita ser incluida en la distribución del código objeto del trabajo. Un "Producto de Usuario" es tanto (1) un "producto de consumo", lo que significa que cualquier propiedad personal tangible que se utiliza normalmente para propósitos de la familia o del hogar personales, o (2) cualquier cosa diseñada o vendida para su incorporación en una vivienda. Para determinar si un producto es un producto de consumo, los casos dudosos se resolverán en favor de la cobertura. Para un producto particular, recibida por un usuario en particular, "que se utiliza normalmente" se refiere a un uso típico o común de ese tipo de producto, independientemente de la situación del usuario particular o de la forma en que el usuario concreto utilice, o se espere que utilice, el producto. Un producto es un producto de consumo independientemente de si, el producto tiene usos sustanciales comercial, industrial o no consumidores, a menos que tales usos representen la única forma posible de utilizar el producto. "Información de instalación" para un producto de usuario significa cualquiera de los métodos, procedimientos, llaves de autorización u otra información necesarios para instalar y ejecutar versiones modificadas de un trabajo amparado en ese Producto de Usuario a partir de una versión modificada de las Fuentes Correspondientes. La información debe ser suficiente para asegurar que el funcionamiento continuo del código objeto modificado sin ningún tipo de condicionamiento o intromisión por el simple hecho de haber sido modificado. Si usted distribuye un trabajo código objeto bajo esta sección en, o específicamente para el uso en un Producto de Usuario y la distribución forma parte de una transacción en la que el derecho de posesión y uso del Producto de Usuario se transfieren a la destinatario a pág. 83 perpetuidad o por un período determinado (independientemente de cómo se caracteriza la transacción), las Fuentes Correspondientes distribuidas bajo esta sección debe ir acompañada de la Información de la instalación. Pero este requisito no se aplica si ni usted ni terceros tienen posibilidad de instalar el código objeto modificado en el Producto de usuario (por ejemplo, el trabajo ha sido instalado en la ROM). El requisito de proporcionar Información de Instalación no incluye el hecho de continuar proporcionando servicio de soporte, garantía, o actualizaciones para un trabajo que ha sido modificado o instalado por el destinatario, o para el Producto de Usuario en el que ha sido modificado o instalado. El acceso a una red puede ser denegado cuando la propia modificación afecte materialmente y de forma adversa el funcionamiento de la red o viole las reglas y protocolos de comunicación a través de la red. Fuente Correspondiente transmitida e Información de la instalación prevista, de acuerdo con esta sección debe estar en un formato documentado públicamente (y con una implementación disponible para el público en código fuente), y no debe requerir ninguna clave o contraseña especial para el desembalaje, la lectura o copia. 7. Condiciones adicionales. "Permisos Adicionales" son condicionantes que amplían los términos de esta Licencia permitiendo excepciones a una o más de sus condiciones. Los permisos adicionales que son aplicables al Programa completo deberán ser tratados como si estuviesen incluidos en esta Licencia, en la medida en que son válidas bajo la ley aplicable. Si los permisos adicionales se aplican sólo a una parte del Programa, esa parte se puede utilizar por separado bajo los permisos, pero el Programa completo seguiría estando afectado por esta Licencia con independencia de los permisos adicionales. pág. 84 Cuando distribuya una copia de un trabajo amparado, usted puede opcionalmente eliminar cualquier permiso adicional de esa copia, o de cualquier parte de ella. (Los permisos adicionales pueden ser eliminados en ciertos casos, supongamos si usted modifica el trabajo.) Usted puede establecer permisos adicionales en material añadido por usted a un trabajo amparado, para el que tiene o puede dar permisos de copyright correspondientes. No obstante cualquier otra disposición de esta licencia, por el material que añada a un trabajo amparado, usted puede (si está autorizado por los poseedores de copyright de ese material) añadir condiciones a esta Licencia con los términos: a) Ausencia de garantía o limitación de responsabilidad diferente de los términos de los artículos 15 y 16 de esta Licencia; u b) Obligación de mantener determinados avisos legales razonables o atribuciones de autoría en el material o en los Avisos Legales Correspondientes mostrados por los trabajos que lo contengan; o c) Prohibir la tergiversación del origen de ese material, o requerir que las versiones modificadas del material sean marcadas de forma apropiada, respecto a las diferencias de la versión original; o d) Limitar el uso con fines publicitarios de los nombres de los autores o de los materiales; o e) Negarse a ofrecer derechos afectados por leyes de registro para el uso de algunos nombres comerciales, marcas registradas, o marcas de servicio; o f) Exigir indemnización de licenciantes y autores de ese material por cualquier persona que distribuya el material (o versiones modificadas del mismo), estableciendo obligaciones contractuales de responsabilidad sobre el destinatario, para cualquier responsabilidad que estas obligaciones contractuales impongan directamente sobre los licenciantes y autores. Todas las otras condiciones adicionales no permisivas son consideradas "otras restricciones" en el sentido del artículo 10. Si el Programa, tal como usted lo recibió, o cualquier parte de ella pág. 85 contiene un aviso indicando que se rige por esta Licencia junto con un término que es una restricción adicional, usted puede quitar ese término. Si un documento de licencia contiene una restricción adicional pero permite modificar la licencia o el transporte bajo esta Licencia, puede añadir a un material de un trabajo amparado por los términos de ese documento de licencia, siempre que la restricción no se mantenga como la renovación de licencias o de transporte. Si añade condiciones para un trabajo amparado, en acuerdo con esta sección, debe colocar, en los archivos de origen pertinentes, una declaración de los términos adicionales que se aplican a esos archivos, o un aviso indicando dónde encontrar los términos aplicables. Las condiciones adicionales, permisivas o no permisivas, pueden indicarse en forma de una licencia por escrito o separado, o figurar como excepciones; los requisitos anteriores se aplican en ambos sentidos. 8. Terminación. Usted no puede distribuir o modificar un trabajo amparado salvo lo dispuesto expresamente en esta Licencia. Cualquier intento diferente de distribución o modificación será considerado nulo, y terminará automáticamente sus derechos bajo esta Licencia (incluyendo cualquier patente conseguida según el párrafo tercero del artículo 11). Sin embargo, si usted cesa de la violación de esta Licencia, entonces su licencia desde el poseedor del copyright correspondiente será restituida (a) provisionalmente, a menos que y hasta que el titular del derecho de autor termina explícitamente y, finalmente, su licencia, y (b) de forma permanente, si el titular del derecho de autor dejase para notificarle de la violación por algún cauce antes de 60 días después de la cesación. pág. 86 Por otra parte, su licencia desde el poseedor del copyright correspondiente será restituida permanentemente, si el poseedor del copyright le notifica de la violación por alguna causa esta es la primera vez que ha recibido la notificación de violación de esta Licencia (para cualquier trabajo) de ese poseedor de los derechos de autor, y enmendar la violación antes de 30 días desde la recepción de la notificación. La cancelación de sus derechos en virtud de esta sección no será cancelada las licencias de terceros que hayan recibido copias o derechos de usted bajo esta Licencia. Si se han terminado sus derechos y no restituidos de forma permanente, usted no califica para recibir nuevas licencias para el mismo material en la sección 10. 9. Aceptación no obligatoria por tenencia de copias. Usted no está obligado a aceptar esta licencia con el fin de recibir o ejecutar una copia del Programa. La distribución de un trabajo amparado surgida simplemente como consecuencia de la utilización de la transmisión punto a punto de recibir una copia tampoco requiere aceptación. Sin embargo, nada más que esta Licencia le otorga permiso para distribuir o modificar cualquier trabajo amparado. Estas acciones infringen el copyright si usted no acepta esta Licencia. Por lo tanto, al modificar o distribuir un trabajo amparado, usted indica su aceptación de esta Licencia para poder hacerlo. 10. Herencia automática de licencia para destinatarios. Cada vez que distribuya un trabajo amparado, el destinatario recibe automáticamente una licencia desde los poseedores originales, para ejecutar, modificar y distribuir ese trabajo, sujeto a esta licencia. Usted no es responsable de asegurar el cumplimiento por terceros de esta Licencia. Una "transacción de entidad" es una transacción de control de la transferencia de una organización, o sustancialmente todos los activos de una, o subdivide una organización, o la fusión de las organizaciones. Si la propagación de un trabajo amparado surge de una transacción de entidad, cada parte en esa transacción que reciba una copia de la obra pág. 87 también recibe cualesquiera licencias para el trabajo que la parte interesada tuviese o pudiese ofrecer según el párrafo anterior, además de un derecho de posesión de la Fuente Correspondiente de la obra de su predecesor en el interés, si el predecesor tiene o puede conseguir con un esfuerzo razonable. Usted no puede imponer ninguna restricción más sobre el ejercicio de los derechos otorgados o concedidos en virtud de esta licencia. Por ejemplo, no se puede imponer a la licencia pagos, derechos u otros cargos por el ejercicio de los derechos garantizados por esta Licencia, y usted no puede iniciar litigios (incluyendo demandas o contrademandas en pleitos), alegando que cualquier reclamo se infringen patentes por hacer, usar, vender, ofrecer en venta o importar el Programa o cualquier parte del mismo. 11. patentes. Un "contribuyente" es un poseedor de copyright que autoriza el uso bajo esta Licencia del Programa o un trabajo en el que se basa el Programa. El trabajo con esta licencia se denomina "versión en colaboración" con el colaborador. "Las reivindicaciones de patentes esenciales" de un contribuyente son todos los reclamos de patentes de propiedad o controladas por el contribuyente, ya sea que hayan sido adquiridas con posterioridad, o que hayan sido infringidas de alguna forma permitida por esta Licencia, de hacer, usar o vender la versión en colaboración, pero sin incluir demandas que sólo sean infracciones como consecuencia de modificaciones posteriores de la versión en colaboración. Para efectos de esta definición, "control" incluye el derecho de conceder sublicencias de patente de una manera consistente con los requerimientos de esta Licencia. Cada colaborador le concede una licencia no exclusiva, mundial, libre de regalías licencia de patente en virtud de las reivindicaciones de patente de origen del colaborador, para hacer, usar, vender, ofrecer en venta, importación y otras formas ejecutar, modificar y propagar el contenido de la versión en colaboración. pág. 88 En los siguientes tres párrafos, una "licencia de patente" es cualquier acuerdo o compromiso expreso, sin embargo denominados, que no imponga una patente (como un permiso expreso para ejecutar una patente o acuerdos para no demandar por violación de patentes). "Conceder" estas licencias de patente a un tercero significa llegar a tal acuerdo o compromiso que no imponga una patente al tercero. Si usted distribuye un trabajo amparado, conociendo que es una licencia de patente, y la Fuente Correspondiente de la obra no está disponible para su copia, de forma gratuita y en los términos de esta Licencia, a través de un servidor de red a disposición del público u otra de fácil acceso significa, entonces debe o bien (1) las Fuentes Correspondientes a ser tan disponible, o (2) tratar de eliminar del beneficio de la licencia de patente para este trabajo en particular, o (3) organizar, de manera coherente con el requisitos de esta Licencia, para extender la licencia de patente a terceros. "Conocer que" significa que usted tiene conocimiento efectivo de que, para la licencia de patente, la distribución del trabajo amparado en un país, o el uso de su receptor del trabajo amparado en un país, infringiría una o más patentes existentes en ese país que tiene razones para creer son válidos. Si, en virtud de o en conexión con una sola transacción o arreglo, usted distribuye o distribuye con fines de distribución, un trabajo amparado, concediendo una licencia de patente a algunas de las partes que reciba el trabajo amparado, y autorizándole a usar, distribuir, modificar o distribuir una copia específica del trabajo amparado, entonces la licencia de patente que usted otorgue se extiende automáticamente a todos los destinatarios de la obra y las obras cubiertas basados en él. Una licencia de patente es "discriminatoria" si no incluye dentro de su ámbito de cobertura, prohíbe el ejercicio de, o está condicionada a la falta de ejercicio de uno o más de los derechos que están específicamente otorgados por esta Licencia. Usted no puede distribuir un trabajo amparado si usted es una parte de un acuerdo con un tercero que está en el negocio de la distribución de software, bajo las cuales usted hace el pago a la tercera parte sobre la pág. 89 base de la extensión de su actividad de distribución del trabajo, y bajo el cual se otorgue, a cualquiera de las partes que recibirían el trabajo amparado, una licencia de patente discriminatoria (a) en relación con las copias del trabajo amparado distribuido por usted (o copias hechas de esas copias), o (b) directa y en relación con productos o paquetes que contengan el trabajo amparado, a menos que forme parte del acuerdo, o que la licencia de patente se concedió, antes del 28 de marzo de 2007. Nada en esta licencia se interpretará en el sentido de excluir o limitar cualquier licencia implícita o de otros medios de defensa a la infracción que de otra manera podrían estar disponibles para usted bajo la ley de patentes aplicable. 12. No condicionamiento de la libertad de terceros. Si se imponen condiciones (ya sea por orden judicial, acuerdo u otros) que contradigan las condiciones de esta Licencia, ello no le exime de cumplir las condiciones de esta Licencia. Si usted no puede distribuir un trabajo amparado por lo que se satisfagan simultáneamente sus obligaciones bajo esta licencia y cualquier otra obligación pertinente entonces, como consecuencia, no puede transmitir en absoluto. Por ejemplo, si usted está de acuerdo con los términos que te obligan a obtener derechos para transmitir más lejos de aquellos a los que transmitir el Programa, la única forma de satisfacer ambos condicionantes y esta Licencia sería abstenerse completamente de distribuir el Programa. 13. Uso conjunto con la Licencia GNU Affero General Public License. No obstante cualquier otra disposición de esta licencia, que tiene permiso para enlazar o combinar cualquier trabajo amparado con otro trabajo amparado por la versión 3 de la Licencia Pública GNU Affero General en un solo trabajo combinado, y transmitir el trabajo resultante. Los términos de esta Licencia seguirán siendo aplicables a la parte formada por el trabajo amparado, pero los condicionantes especiales de la Licencia Pública General Affero pág. 90 GNU, el artículo 13, en relación con la interacción a través de una red se aplicarán a la combinación como tal. 14. Versiones Revisadas de esta Licencia. La Free Software Foundation puede publicar versiones revisadas y / o nuevas de la Licencia Pública General GNU de vez en cuando. Tales versiones nuevas serán similares en espíritu a la presente versión, pero pueden diferir en detalles para considerar nuevos problemas o situaciones. Cada versión recibe un número de versión que la distingue. Si el Programa especifica que un cierto número de versión de la Licencia Pública General de GNU "o cualquier versión posterior" se aplica a él, usted tiene la opción de seguir los términos y condiciones, bien de esa versión indicada o de cualquier versión posterior publicada por la Free Software Fundación. Si el Programa no especifica un número de versión de la Licencia Pública General de GNU, usted puede elegir cualquier versión publicada por la Free Software Foundation. Si el Programa especifica que un apoderado puede decidir que se pueden utilizar las futuras versiones de la Licencia Pública General de GNU, la declaración pública de ese proxy de la aceptación de una versión permanentemente le autoriza a elegir esa versión para el Programa. Las versiones posteriores de la licencia le puede dar permisos adicionales o diferentes. Sin embargo, no hay obligaciones adicionales se imponen a cualquier autor o copyright titular como consecuencia de que usted adopte una versión posterior. pág. 91 15. Renuncia de garantía. NO HAY GARANTÍA PARA EL PROGRAMA, EN LA MEDIDA PERMITIDA POR LA LEY APLICABLE. Excepto cuando se indique de otra forma por escrito, los tenedores del copyright y / u otras partes proporcionan el programa "TAL CUAL" SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITAS, INCLUYENDO, PERO NO LIMITADO A, LAS GARANTÍAS DE COMERCIALIZACIÓN Y APTITUD PARA UN PROPÓSITO PARTICULAR . EL RIESGO EN CUANTO A LA CALIDAD Y EL DESEMPEÑO DEL PROGRAMA ES CON USTED. SI EL PROGRAMA TIENE UN ERROR, asume el coste de cualquier servicio, reparación o corrección. 16. Limitación de responsabilidad. EN NINGÚN CASO, salvo que lo requiera la legislación aplicable o haya sido acordado por escrito, ningún tenedor del copyright ni ninguna otra parte que MODIFICA Y / O TRANSMITE EL PROGRAMA COMO SE PERMITE ARRIBA, SERÁ RESPONSABLE ANTE USTED POR DAÑOS, INCLUYENDO CUALQUIER DAÑO GENERAL, ESPECIAL, ACCIDENTAL O CONSECUENTE DAÑOS CAUSADOS POR EL USO O LA IMPOSIBILIDAD DE USO DEL PROGRAMA (INCLUYENDO PERO NO LIMITADO A LA PÉRDIDA DE DATOS, DATOS CONSIDERADOS PÉRDIDAS inexacta o sufridas por usted o por terceras partes o a un fallo del Programa al funcionar con cualquier otro programa), INCLUSO SI dicho tenedor u otra parte ha sido advertido de la posibilidad de tales daños. 17. Interpretación de las cláusulas 15 y 16. Si la ausencia de garantía y limitación de responsabilidad descrita anteriormente no tuviesen efecto legal a nivel local en todos sus términos, la revisión de los tribunales se aplicará la ley local que más se aproxima a la exención de toda responsabilidad civil en relación con el Programa, a menos que una garantía o compromiso de responsabilidad acompaña una copia del Programa a cambio de una tarifa. FIN DE LOS TÉRMINOS Y CONDICIONES pág. 92 Cómo aplicar estos términos a sus nuevos programas Si usted desarrolla un nuevo Programa, y quiere que sea del mayor uso posible para el público, la mejor forma de conseguirlo es convirtiéndolo en software libre que cualquiera pueda redistribuir y cambiar bajo estos términos. Para hacerlo, añada los siguientes anuncios al programa. Lo más seguro es añadirlos al principio de cada fichero fuente para destacar declarar la ausencia de garantía; Además cada fichero debería tener al menos la línea de «copyright» y un indicador a dónde puede encontrarse el anuncio completo. <Una línea para indicar el nombre del programa y una rápida idea de qué hace.> Copyright (C) <año> <nombre del autor> Este programa es software libre: usted puede redistribuirlo y / o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Fundación para el Software Libre, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior. Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; ni siquiera la garantía implícita de COMERCIALIZACIÓN o PARA UN PROPÓSITO PARTICULAR. Vea el Licencia Pública General GNU para más detalles. Debería haber recibido una copia de la Licencia Pública General GNU junto con este programa. Si no es así, consulte <http://www.gnu.org/licenses/>. pág. 93 Añada también información sobre cómo contactar con usted mediante correo electrónico y postal. Si el programa es interactivo, haga que muestre un pequeño anuncio como el siguiente, cuando comienza a funcionar en modo interactivo: <Programa> Copyright (C) <año> <nombre del autor> Este programa viene con ABSOLUTAMENTE NINGUNA GARANTÍA; Para más detalles escriba 'show w'. Esto es software libre, y le invitamos a redistribuirlo bajo ciertas condiciones; escriba 'show c' para más detalles. Los comandos hipotéticos 'show w' y `show c» deberían mostrar las partes adecuadas de la Licencia Pública General. Por supuesto, los comandos de su programa podrían ser diferentes; para una interfaz gráfica de usuario, deberá utilizar un tipo "Acerca de". También deberías conseguir que su empleado (si trabaja como programador) o escuela, en su caso, a firmar una "renuncia de copyright" para el programa, si es necesario. Para más información sobre esto, y cómo aplicar y cumplir la GNU GPL, consulte <http://www.gnu.org/licenses/>. La Licencia Pública General GNU no permite que incluya sus programas en programas propietarios. Si su programa es una biblioteca de subrutinas, puede considerar más útil el permitir el enlazado de aplicaciones propietarias con la biblioteca. Si esto es lo que quieres hacer, use la Licencia Pública General de GNU en lugar de esta Licencia. Pero en primer lugar, por favor, lea <http://www.gnu.org/philosophy/why-not-lgpl.html>. pág. 94 GLOSARIO Emacs: es un editor de texto con una gran cantidad de funciones, muy popular entre programadores y usuarios técnicos. GNU Emacs es obviamente parte del proyecto GNU y la versión más popular de Emacs con una gran actividad en su desarrollo. El manual de GNU Emacs lo describe como "un editor extensible, personalizable, auto-documentado y de tiempo real." VI: es el editor de texto más utilizado en el mundo GNU/Linux. Conocer Vi resulta de mucha utilidad ya que es el editor de textos predeterminado en este sistema operativo. Es muy rápido y permite insertar la salida de los comandos directamente en el texto, así como también permite abrir archivos muy grandes (varios gigas). ED: es un editor de texto orientado a líneas. Se utiliza para crear, visualizar, modificar y manipular archivos de texto, tanto de forma interactiva y a través de scripts de shell. Una versión restringida de ED, RED, sólo puede editar ficheros del directorio actual y no puede ejecutar comandos de shell. Ed es el editor de texto "estándar" en el sentido de que es el editor original para Unix. Para la mayoría de los propósitos, sin embargo, es superado por los editores de pantalla que se completan como Emacs. SWAP: en informática, el espacio de intercambio es una zona del disco (un fichero o partición) que se usa para guardar las imágenes de los procesos que no han de mantenerse en memoria física. A este espacio se le suele llamar swap, del inglés "intercambiar". La mayoría de los sistemas operativos modernos poseen un mecanismo llamado memoria virtual, que permite hacer creer a los programas que tienen más memoria que la disponible realmente. Como en realidad no se tiene físicamente toda esa memoria, algunos procesos no podrán ser ubicados en la memoria RAM. pág. 95 En este caso es cuando es útil el espacio de intercambio: el sistema operativo puede buscar un proceso poco activo, y moverlo al área de intercambio (el disco duro) y de esa forma liberar la memoria principal para cargar otros procesos. Mientras no haga falta, el proceso extraído de memoria puede quedarse en el disco, ya que ahí no utiliza memoria física. Cuando sea necesario, el sistema vuelve a hacer un intercambio, pasándolo del disco a memoria RAM. Es un proceso lento (comparado con usar sólo la memoria RAM), pero permite dar la impresión de que hay más memoria disponible. BSD: son las siglas de ―Berkeley Software Distribution‖. Así se llamó a las distribuciones de código fuente que se hicieron en la Universidad de Berkeley en California y que en origen eran extensiones del sistema operativo UNIX® de AT&T Research. Varios proyectos de sistemas operativos de código abierto tienen su origen en una distribución de éste código conocida como 4.4BSD-Lite. Añaden además un buen número de paquetes de otros proyectos de Código Abierto, incluyendo de forma destacada al proyecto GNU. Slices: partición en disco duro. RMB: registro Maestro de Arranque. disklabel: etiqueta asignada en el disco duro. Timestamps: marcas de tiempo en archivos como en el acceso, modificación o cambios. IPC: comunicación entre procesos (Inter-Process Communication). DMR: (Gestor de Renderizado Directo o DRM) es un componente de Direct Rendering Infrastructure (Infraestructura de Renderizado Directo o DRI), que provee a sistemas operativos tipo Unix, como Linux, FreeBSD,NetBSD, y OpenBSD de aceleración gráfica eficiente, especialmente para aplicaciones 3D. Consiste en dos módulos del kernel: un módulo genérico llamado drm, y otro específico para el chip gráfico de que conste el hardware. Estos dos drivers en conjunto permiten que un cliente en el espacio de usuario (userspace) pueda acceder al hardware de vídeo de manera más o menos directa, acelerando de este modo la producción de imágenes. pág. 96 DMCA: el Acta de derechos de autor digitales del milenio (en inglés Digital Millennium Copyright Act o DMCA) es una ley de copyright (derechos de reproducción) de Estados Unidos que implementa dos tratados del año 1996 de la Organización Mundial de la Propiedad Intelectual (OMPI). Esta ley sanciona, no sólo la infracción de los derechos de reproducción en sí, sino también la producción y distribución de tecnología que permita sortear las medidas de protección del copyright (comúnmente conocidas como DRM); además incrementa las penas para las infracciones al derecho de autor en Internet. Tivoización: este término viene luego de que se percató que el hardware de marca TiVo que ejecutaba Linux embebido, tenía limitaciones que impedían la actualización del firmware o su modificación/reemplazo. Sin embargo funciona con software libre, se dispone del código, se puede distribuir, y hasta se podría modificar para otras máquinas, pero no para las que tienen limitaciones por hardware, bajo los componentes DRM. Esto desató gran indignación en los seguidores de la línea purista del software libre, quienes sentían vulnerados los derechos de los usuarios, aunque técnicamente seguía siendo SL. De ahí la práctica de imponer DRM lógicos o físicos para evitar actualizaciones del sistema operativo, se llama Tivoización. pág. 97 BIBLIOGRAFÍA ELECTRÓNICA http://www.gnu.org/ http://www.linux-es.org/distribuciones http://www.debianchile.org/ https://www.debian.org/ http://www.linuxfromscratch.org/ http://www.gimp.org/ pág. 98