Desarrollo de la mini distribución GNU/Linux Live CD a partir del código fuente para el...

126
UNIVERSIDAD ANDINA NÉSTOR CÁCERES VELÁSQUEZFACULTAD DE INGENÍERIA DE SISTEMAS CARRERA ACADÉMICO PROFESIONAL DE INGENIERÍA DE SISTEMAS Desarrollo de la mini distribución GNU/Linux Live CD a partir del código fuente para el funcionamiento en arquitecturas PC x86. T E S I S PRESENTADA POR: Bach. Johny Alex Añazco Arapa PARA OPTAR EL TÍTULO PROFESIONAL DE INGENIERO DE SISTEMAS Juliaca Perú 2013

description

Desarrollo de la mini distribución GNU/Linux Live CD a partir del código fuente para el funcionamiento en arquitecturas PC x86.

Transcript of Desarrollo de la mini distribución GNU/Linux Live CD a partir del código fuente para el...

  • UNIVERSIDAD ANDINA NSTOR CCERES VELSQUEZ

    FACULTAD DE INGENERIA DE SISTEMAS

    CARRERA ACADMICO PROFESIONAL DE INGENIERA DE SISTEMAS

    Desarrollo de la mini distribucin GNU/Linux Live CD a partir del

    cdigo fuente para el funcionamiento en arquitecturas PC x86.

    T E S I S

    PRESENTADA POR:

    Bach. Johny Alex Aazco Arapa

    PARA OPTAR EL TTULO PROFESIONAL DE

    INGENIERO DE SISTEMAS

    Juliaca Per

    2013

  • UNIVERSIDAD ANDINA NSTOR CCERES VELSQUEZ

    FACULTAD DE INGENIERA DE SISTEMAS

    CARRERA ACADMICO PROFESIONAL DE INGENIERA DE SISTEMAS

    Desarrollo de la mini distribucin GNU/Linux Live CD a partir del cdigo fuente

    para el funcionamiento en arquitecturas PC x86

    PRESENTADO POR:

    Bach. Johny Alex Aazco Arapa

    PARA OPTAR EL TTULO PROFESIONAL DE INGENIERO DE SISTEMAS

    APROBADO POR:

    PRESIDENTE DE JURADO : __________________________

    Msc. Juan, BENITES NORIEGA

    PRIMER MIEMBRO : __________________________

    Msc. Richard, CONDORI CRUZ

    SEGUNDO MIEMBRO : __________________________

    Dr. Paul, MAMANI TISNADO

  • iii

    DEDICATORIA

    Dedicado a

    Mi Madre querida que siempre me ha apoyado en todo

    Y mi abuelita Luisa desde el cielo me apoyas tambin.

  • iv

    AGRADECIMIENTOS

    En primer lugar quiero agradecer al todopoderoso Dios, por brindarme la oportunidad de

    vivir, por darme salud y las fuerzas necesarias a lo largo de toda mi trayectoria.

    A mis padres Juan y Constantina, por su apoyo incondicional especialmente a mi madre que

    siempre me ha apoyado en todo y dado su confianza y perdonado en algunos errores cometidos.

    A mi hermano Rogelio que me supo llenar de conocimiento igualmente.

    A mi amigo de la infancia Jorge Antonio por sus consejos y apoyo y siempre estaremos as

    en las buenas y en las malas.

    A toda la comunidad de Software Libre que comparten sus ideas y proyectos y todos los

    desarrolladores que da a da estn ah ofrecindonos a los linuxeros soluciones y software libre

    de calidad que podamos usar, modificar y redistribuir con nuestros semejantes. Mil gracias a

    todos ellos que hacen que cada da personas tengan ms intereses en hacer uso de Tecnologas

    de Libre Distribucin.

  • v

    NDICE DE TABLAS

    Tabla 1: Sistema de archivos estndar de jerarqua. ............................................................ 23

    Tabla 2: Hardware para el desarrollo del sistema. ............................................................... 50

    Tabla 3: Software necesario para el desarrollo de la aplicacin. ......................................... 50

  • vi

    NDICE DE FIGURAS

    Figura 1: Perspectiva abstracta de los componentes de un sistema operativo. ...................... 8

    Figura 2: Funcines del sistema operativo .......................................................................... 10

    Figura 3: Arquitectura de un sistema operativo GNU/Linux. ............................................. 18

    Figura 4: Sistema X Window. .............................................................................................. 26

    Figura 5: Administrador de ventanas IceWM con diseo minimalista. .............................. 28

    Figura 6: Modelo espiral ...................................................................................................... 35

    Figura 7: Capas para el desarrollo de la Mini distribucin. ................................................. 51

    Figura 8: Estructura del Kernel modular y monoltico. ....................................................... 52

    Figura 9: Estructura de directorios para la mini distribucin. ............................................. 53

    Figura 10: Entorno de desarrollo para la mini distribucin. ................................................ 54

    Figura 11: Estructura sistema base: Kernel, Busybox y Syslinux. ...................................... 55

    Figura 12: Componentes base del sistema base. .................................................................. 58

    Figura 13: Componentes principales del sistema Live CD GNU/Linux. ............................ 59

    Figura 14: Instalacin y configuracin del sistema anfitrin. ............................................. 60

    Figura 15: Procesos para el desarrollo de la mini distribucin. ........................................... 61

    Figura 16: Mini distribucin GNU/Linux. ........................................................................... 66

    Figura 17: Primeras pruebas de la mini distribucin. .......................................................... 82

    Figura 18: Programas instalados en la mini distribucin. .................................................... 83

  • vii

    NDICE GENERAL

    DEDICATORIA .................................................................................................................. iii

    AGRADECIMIENTOS ...................................................................................................... iv

    NDICE DE TABLAS ......................................................................................................... v

    NDICE DE FIGURAS ...................................................................................................... vi

    NDICE GENERAL .......................................................................................................... vii

    RESUMEN ........................................................................................................................ xiii

    INTRODUCCIN ............................................................................................................... 1

    PROBLEMA DE LA INVESTIGACIN ............................................... 2

    1.1 Planteamiento del problema ..................................................................................... 2

    1.2 Formulacin del problema ....................................................................................... 4

    1.2.1 Pregunta general ............................................................................................... 4

    1.2.2 Preguntas especficas ........................................................................................ 4

    1.3 Objetivos .................................................................................................................. 5

    MARCO TERICO Y CONCEPTUAL ................................................. 6

    2.1 Marco terico ........................................................................................................... 6

    2.1.1 Antecedentes de investigacin .......................................................................... 6

    2.2 Bases tericas ........................................................................................................... 8

  • viii

    2.2.1 Sistema operativo .............................................................................................. 8

    2.2.1.1 Funcines del sistema operativo .................................................................. 9

    2.2.1.2 Clasificacin de los sistemas operativos .................................................... 10

    2.2.2 El proyecto GNU y la fundacin del software libre ....................................... 11

    2.2.3 La importancia de la licencia pblica general GNU ....................................... 12

    2.2.4 Sistema operativo GNU/Linux ....................................................................... 15

    2.2.4.1 Caractersticas principales .......................................................................... 15

    2.2.4.2 Funcines principales ................................................................................. 16

    2.2.4.3 Arquitectura de un sistema linux................................................................ 17

    2.2.4.4 Arquitecturas soportadas ............................................................................ 21

    2.2.4.5 Sistema de directorios ................................................................................ 21

    2.2.4.6 Sistema X window ..................................................................................... 25

    2.2.4.7 Arranque y parada del sistema X Window ................................................ 25

    2.2.4.8 Gestores de ventanas .................................................................................. 27

    2.2.5 Distribucion GNU/Linux ................................................................................ 29

    2.2.6 GNU/Linux Live CD ...................................................................................... 29

    2.2.7 Mini distribucines GNU/Linux ..................................................................... 29

    2.2.7.1 Caractersticas de las mini distribucines .................................................. 30

  • ix

    2.2.7.2 Necesidades que resuelven ......................................................................... 30

    2.2.7.3 Mini distribucines conocidas en el mercado ............................................ 32

    2.2.8 Metodologa Espiral ........................................................................................ 33

    2.2.9 Metodologa de desarrollo de software ........................................................... 36

    2.2.9.1 El proceso iterativo .................................................................................... 36

    2.2.10 Mtodos para el desarrollo de sistemas GNU/Linux .................................. 36

    2.2.10.1 Mtodo Linux From Scratch .................................................................... 37

    2.2.10.2 Mtodo Slitaz Scratch Book ..................................................................... 37

    2.2.10.3 Mtodo Remastersys ................................................................................ 37

    2.2.10.4 Mtodo Suse Studio ................................................................................. 38

    2.2.10.5 Mtodo Revisor ........................................................................................ 38

    2.2.10.6 Mtodo Ubuntu Customization Kit .......................................................... 39

    2.2.10.7 Mtodo reconstructor ............................................................................... 39

    2.3 Marco conceptual ................................................................................................... 40

    2.3.1 Sistema operativo ............................................................................................ 40

    2.3.2 GNU/Linux ..................................................................................................... 40

    2.3.3 Licencia GPL .................................................................................................. 40

    2.3.4 Software libre .................................................................................................. 40

  • x

    2.3.5 Distribucin GNU/Linux ................................................................................ 41

    2.3.6 Arquitectura x86 ............................................................................................. 41

    2.3.7 Busybox .......................................................................................................... 41

    2.3.8 Bibliotecas ...................................................................................................... 41

    2.3.9 Compilacin .................................................................................................... 42

    2.3.10 Cdigo fuente .............................................................................................. 42

    2.3.11 Joes Window Manager ............................................................................... 42

    2.3.12 Kernel Linux ............................................................................................... 42

    2.3.13 Live CD ....................................................................................................... 43

    2.3.14 Mini distribucin GNU/Linux ..................................................................... 43

    2.3.15 Paquete de software ..................................................................................... 43

    2.3.16 Syslinux ....................................................................................................... 43

    2.3.17 Sistema de archivos estndar de jerarqua ................................................... 44

    2.3.18 X-Window ................................................................................................... 44

    2.3.19 Xorg ............................................................................................................. 44

    2.4 Software utilizado en el desarrollo ......................................................................... 44

    2.4.1 Distribucin Xubuntu 10.04 ........................................................................... 44

    2.4.2 BoUML ........................................................................................................... 45

  • xi

    METODOLOGA DE LA INVESTIGACIN .................................... 47

    3.1 Tipo de investigacin ............................................................................................. 47

    3.2 Nivel de investigacin ............................................................................................ 47

    3.3 Diseo de investigacin ......................................................................................... 48

    3.4 Diseo e implementacin ....................................................................................... 49

    3.4.1 Mtodos para la compilacin y desarrollo del sistema ................................... 49

    3.4.2 Determinacin de requisitos ........................................................................... 49

    3.4.2.1 Requisitos de hardware .............................................................................. 49

    3.4.2.2 Requisitos de software ............................................................................... 50

    3.4.3 Modelo de diseo ............................................................................................ 51

    3.4.3.1 Capas del sistema ....................................................................................... 51

    3.4.3.2 Entorno de desarrollo ................................................................................. 53

    3.4.3.3 Estructura del sistema base ........................................................................ 55

    3.4.3.4 Paquetes de software .................................................................................. 55

    3.4.3.5 Software necesario para el sistema ............................................................ 55

    3.4.4 Diagrama de componentes .............................................................................. 58

    3.4.5 Diagrama de actividades ................................................................................. 60

    CONCLUSIONES ............................................................................................................. 62

  • xii

    RECOMENDACIONES ................................................................................................... 63

    REFERENCIAS BIBLIOGRFICAS ............................................................................. 64

    ANEXO ............................................................................................................................... 66

  • xiii

    RESUMEN

    El presente trabajo de investigacin titulado Desarrollo de la mini distribucin GNU/Linux

    Live CD a partir del cdigo fuente para el funcionamiento en arquitecturas PC x86 pretende

    dar alcance sobre las bondades que brinda el uso del software libre para el desarrollo de

    aplicaciones de cdigo abierto, muestra el procedimiento y desarrollo haciendo uso desde

    paquetes fuente para desarrollar sistemas de libre distribucin GNU/Linux, conocer la

    configuracin y compilacin del Kernel Linux y Busybox, paquetes importantes para el

    desarrollo de nuestro objetivo.

    Para lo cual se formul el siguiente planteamiento del problema Cmo se puede desarrollar

    una mini distribucin GNU/Linux a travs de la compilacin desde su cdigo fuente?

    Se plante el siguiente objetivo general: Desarrollar la mini distribucin GNU/Linux Live CD

    a partir de su cdigo fuente para arquitecturas x86.

    En el marco terico se utiliz conceptos sobre el software libre, la licencia GPL, distribuciones

    GNU/Linux, mini distribuciones y mtodos para desarrollar distribucines y mini

    distribuciones.

    Las conclusiones a las que se llegaron fueron:

    1. Con respecto a los requerimientos de hardware se utiliz un equipo de mnimos recursos

    disponibles, y para ser preciso un equipo Pentium IV, y en los aspectos de software en ste

    equipo se instal la distribucin Xubuntu 10.04 un derivado de la distribucin Ubuntu

    Linux, sta distribucin tiene la caracterstica de que est diseado para ser utilizado en

    equipos de bajos recursos, cumpliendo con los requerimientos de hardware y software

  • xiv

    respectivamente ste sistema fue adaptado con todos los requerimientos de software para

    el desarrollo de la mini distribucin como: compiladores, emuladores y bibliotecas

    necesarias para la ejecucin de algunos programas.

    2. En relacin a los paquetes y bibliotecas de software libre, que intervienen en el proceso de

    desarrollo de la mini distribucin fueron: Kernel Linux, Busybox, Syslinux, Xorg,

    biblitecas, etc; todos estos paquetes de software fueron configurados y compilados desde

    su cdigo fuente para la implementacin en la mini distribucin GNU/Linux, mediante los

    mtodos Linux From Scratch y Slitaz ScratchBook.

    3. En cuanto al componente principal que ms influy para el reconocimiento de arquitecturas

    x86 (32 bits) es el Kernel Linux, por lo tanto es el componente principal para el

    funcionamiento de toda distribucin o mini distribucin GNU/Linux. Y que tambin ste

    representa el corazn de todo sistema operativo de libre distribucin.

    Las recomendaciones del trabajo de investigacin fueron:

    1. Como primer punto de la recomendacin se debe tener conocimientos sobre el manejo de

    sistemas GNU/Linux, manejo de la consola y comandos shells, desarrollar distribucines o

    mini distribucines se requiere de conocimientos previos sobre el funcionamiento de estos

    sistemas.

    2. Como alcance al proyecto se sugiere el reemplazo del administrador de ventanas Joes

    Windows Manager por otros administradores como por ejemplo Dwm, BlackBox,

    OpenBox, IceWM, etc. Cada uno diseados para el uso en mini distribucines los cuales

    presentan determinadas ventajas y sus entornos son mucho ms atractivos.

  • xv

    3. Implementar software de acuerdo a las necesidades convenientes, ya que el proyecto de

    mini distribucin cuenta con un mnimo de programas, existen versiones mnimas de

    programas exclusivos para mini distribuciones.

    La bibliografa referencial que se tom en cuenta fueron:

    ( 1 ). Baig, R., Aul, F. Sistema operativo GNU/Linux bsico. 1a ed. Barcelona: Eureca

    Media; 2003.

    ( 2 ). Casanova, S. El proyecto GNU/Linux FME Distribucin Libre para la Facultad

    de Matemticas y Estadstica. [Tesis]. Barcelona, Universidad Politcnica de Catalua.

    Facultad de Matemticas y Estadstica; 2004.

    ( 3 ). Chez, T., Mero, J. Prototipo de un software de sistema basado en el Kernel y

    lfs (Linux From Scratch) de linux para la Facultad de Ciencias Informticas de la

    ULEAM. [Pgina principal]. Ecuador; 2012 [actualizado 26 de Ene de 2012; citado 25

    de Nov 2013]. Disponible en: http://fuanmero.blogspot.com/

    ( 4 ). Facundo A., Hector. La Biblia de Linux. 1a ed. Argentina: MP Ediciones; 2002.

    ( 5 ). Giler, C., Santamara, A. Distribucin de GNU/Linux para uso en los

    laboratorios de la carrera de Electrnica y Redes de Informacin. [Tesis]. Ecuador,

    Escuela Politcnica Nacional, 2011.

    ( 6 ). Monroy, R. Creacin de distribucines Linux [Tesis]. Espaa, Universidad de

    Almera, 2011, p. 21-59.

  • xvi

    ( 7 ). Russel, R., Quinlan, D., Yeoh, C. Filesystem Hierarchy Standard [Pgina

    principal]. Estados Unidos; 2004 [actualizado 29 jun 2004; citado 30 jun 2013].

    Disponible en: http://www.pathname.com/fhs/pub/fhs2.3.pdf.

    ( 8 ). Requejo, G. Construccin de un sistema Linux a partir del cdigo fuente. [Tesis].

    Barcelona: Universidad Politcnica de Catalua. Facultad de Informtica; 2012.

    ( 9 ). Ramirez, A. Diseo e Implementacin de un Sistema Operativo para fines

    didcticos. [Tesis], Madrid Espaa: Universidad Carlos III de Madrid; 2012.

    ( 10 ). Silberschatz, A., Baer, P. S. Sistemas Operativos. 5a ed. Mxico: Pearson; 1999.

    ( 11 ). Stallman, R. Free Software, Free Society. 2a ed. Boston: GNU Press; 2010. p. 1-

    3.

    ( 12 ). San Felix, A. Mini distribuciones en GNU/Linux [Pgina principal]. Espaa;

    1998 [actualizado 4 Ago 1998; citado 12 Ene 2013]. Disponible en:

    http://acsblog.es/articulos/trunk/SoloLinux/minidistribuciones.html.

    Palabras clave: Mini distribuciones, Linux From Scratch, GNU/Linux, Licencia GPL, Kernel

    Linux.

  • xvii

    ABSTRACT

    The research paper entitled Development of mini distribution GNU/Linux live CD from the

    source code for the x86 PC architectures intended to catch on the benefits offered by the use

    of free software for application development code open, showing the process and development

    from scratch using from source packages for developing systems free GNU/Linux, know the

    configuration and compilation of the Linux kernel and busybox tool, important for our purpose

    packages.

    For which gave the following statement of the problem: Why develop a system based on

    GNU/Linux from the source code through compilation tools open source operating system?

    He raised the following general objective: Development mini distribution GNU/Linux live CD

    from their source code for x86.

    The theoretical framework was used concepts of free software, the license GPL, distributions

    and mini distributions GNU/Linux.

    The conclusions that were arrived:

    1. With regard to the requirements of hardware equipment used minimal resources available

    , and to be precise a Pentium IV computer, and the software aspects of this equipment in

    Xubuntu 10.04 installed a distribution derived from Ubuntu Linux distribution , this

    distribution has the feature that is designed to be used on computers poor, fulfilling the

    requirements of hardware and software respectively this system was adapted to all

    requirements of software for the development of the mini distribution as compilers,

    emulators and libraries needed for the implementation of some programs.

  • xviii

    2. Regarding packages and libraries free software, involved in the development process of the

    mini distribution were : Linux kernel , Busybox , Syslinux , Xorg , biblitecas , etc , all these

    software packages were configured and compiled from source for implementation in the

    mini GNU / Linux, using the methods and Slitaz Linux From Scratch ScratchBook

    3. As the most influential component for recognizing x86 (32 bit) was the Linux kernel, so it

    is the main component for the operation of any distribution or mini GNU/Linux. and it

    represents the heart of every operating system.

    The recommendations of the research were:

    1. As the first point of the recommendation is to have knowledge about the management of

    GNU/Linux, management console and command shells, develop mini distributions or

    distributions no easy task requires previous knowledge of the operation of these systems.

    2. As the project scope suggested replacement window manager Joe's Windows Manager by

    other administrators for example Dwm, BlackBox, OpenBox, IceWM, etc. Each designed

    for use in mini distributions, which have certain advantages and are much more attractive

    environments.

    3. Implement software according to the needs convenient, since the mini project has a

    minimum distribution of programs, minimum versions are exclusive programs for mini

    distributions.

    The literature reference that was taken into account are:

    ( 1 ). Baig, R., Aul, F. Basic System Operating GNU/Linux. Barcelona: Eureca Media;

    2003.

  • xix

    ( 2 ). Casanova, S. The GNU/Linux Distribution Free FME for the Faculty of

    Mathematics and Statistics [Thesis]. Spain, University Politcnica of Catalua; 2004.

    ( 3 ). Chez, T., Mero, J. Prototype of a software system based on the Kernel and lfs

    (Linux From Scratch) linux for the Faculty of Computer Science [Internt]. Ecuador;

    2012 [update 26 de jan de 2012; cited 25 de Nov 2013]. Available in:

    http://fuanmero.blogspot.com/

    ( 4 ). Facundo A., Hector. The Bible Linux. Argentina: MP Editions; 2002.

    ( 5 ). Giler, C., Santamara, A. Distribucin de GNU/Linux para uso en los

    laboratorios de la carrera de Electrnica y Redes de Informacin. [Tesis]. Ecuador,

    Escuela Politcnica Nacional, 2011.

    ( 6 ). Monroy, R. Creating Linux distributions [Thesis]. Espaa, University of

    Almera, 2011, p. 21-59.

    ( 7 ). Russel, R., Quinlan, D., Yeoh, C. Filesystem Hierarchy Standard [Internet].

    United States; 2004 [update 29 Jun 2004; cited 5 Jun 2013]. Available in:

    http://www.pathname.com/fhs/pub/fhs2.3.pdf.

    ( 8 ). Requejo, G. Building a Linux system from source code. [Thesis]. Spain:

    University Politcnica of Catalua; 2012.

    ( 9 ). Ramirez, A. Design and Implementation of an Operating System for educational

    purposes. [Thesis], Madrid Spain: University Carlos III of Madrid; 2012.

    ( 10 ). Silberschatz, A., Baer, P. S. Operative Systems. 5a ed. Mxico: Pearson; 1999.

  • xx

    ( 11 ). Stallman, R. Free Software, Free Society. 2da ed. Boston: GNU Press; 2010. p.

    1-3.

    ( 12 ). San Felix, A. Mini distributions GNU/Linux [Internet]. Spain; 1998 [update 4

    Aug 1998; cited 12 Jan 2013]. Available in:

    http://acsblog.es/articulos/trunk/SoloLinux/minidistribuciones.html.

    Keywords: Mini distributions, Linux From Scratch, GNU/Linux, License GPL, Kernel Linux.

  • 1

    INTRODUCCIN

    El presente proyecto de tesis tiene por objetivo desarrollar la mini distribucin GNU/Linux

    en su formato Live CD para arquitecturas x86, hace uso desde los paquetes fuente para su

    posterior configuracin y compilacin. Muestra de manera detallada los pasos a seguir para la

    construccin de sistemas de libre distribucin GNU/Linux, el proyecto presentado es

    desarrollado bajo la licencia GPL que nos permite usar los programas con fines expresamente

    libres y educativos.

    Este proyecto presenta los siguientes captulos:

    El captulo I contiene el planteamiento del problema, formulacin de las preguntas de

    investigacin respectivas.

    El captulo II contiene el marco terico y conceptual con una breve introduccin a los

    sistemas operativos y una introduccin al proyecto GNU, la licencia GPL y el Software Libre y

    su importancia para la realizacin del presente proyecto de tesis, tambin hace mencin de los

    sistemas operativos GNU/Linux sus caractersticas y componentes principales.

    El captulo III se describe el Marco metodolgico, los procesos seguidos para el desarrollo

    de la mini distribucin.

    Finalizando con las conclusiones y recomendaciones, las referencias bibliogrficas utilizadas

    para el desarrollo del presente proyecto y por ltimo los anexos respectivos que incluyen el

    desarrollo de una mini distribucin a partir de su cdigo fuente.

  • 2

    PROBLEMA DE LA INVESTIGACIN

    1.1 Planteamiento del problema

    GNU/Linux es un sistema operativo cada vez ms popular que est demostrando ser una

    alternativa a los sistemas privativos, GNU/Linux es software libre y de cdigo abierto, es

    desarrollado por una comunidad de programadores muy unida. Existen diferentes tipos de

    sistemas operativos GNU/Linux y para diferentes tipos de arquitecturas, y estn disponibles

    para los usuarios, estos sistemas operativos son conocidos generalmente como distribucines

    GNU/Linux. Cada distribucin tiene un objetivo principal distinto.

    Una variante de las distribuciones tradicionales son las mini distribuciones, ste tipo de

    sistemas con diseo minimalista logran que podamos trabajar en un entorno GNU/Linux casi

    completo arrancando desde una unidad USB o Live CD, sin instalar en el disco duro del

    ordenador, evitando as cualquier interferencia con algn sistema instalado en el ordenador. Las

    caractersticas que presentan este tipo de distribucines es su reducido tamao los cuales pueden

    llegar a ocupar 2 MB de espacio hasta una cantidad estimada de 100 MB ya sea instalado o

    ejecutandose mediante el sistema Live CD, otra caracterstica es el bajo consumo de recursos,

    aqu la importancia sobre el uso de este tipo de distribuciones.

    Una razn importante en el desarrollo de mini distribuciones GNU/Linux partiendo desde su

    cdigo fuente es conocer cmo trabaja internamente un sistema Linux. Desarrollar un sistema

    operativo basado en GNU/Linux ayuda a demostrar lo que hace que Linux funcione, cmo

  • 3

    trabajan juntas las distintas partes y cmo unas dependen de otras. Una de las mejores cosas que

    este proceso de desarrollo proporciona, es la habilidad para adaptar un sistema GNU/Linux a

    nuestros propios gustos y necesidades.

    Otro de los beneficios claves es que se obtiene el control del sistema mismo. Compilando

    desde el cdigo fuente podemos personalizar cada aspecto del sistema, como la estructura de

    directorios y la configuracin de los guiones de arranque. Tambin podemos decidir dnde, por

    qu y cmo se instalan los programas, otro aspecto importante es el desarrollo de un sistema

    GNU/Linux verdaderamente compacto. Cuando instalamos una distribucin normal acabamos

    instalando muchos programas que probablemente nunca usaremos. Tan slo estn ah ocupando

    espacio de disco o peor an, ciclos de CPU.

    La propuesta del presente proyecto de investigacin no es realmente simular en ello si no,

    demostrar los distintos procesos involucrados que toma el desarrollo de una mini distribucin

    GNU/Linux partiendo desde su cdigo fuente, buscando obtener mejores conocimientos sobre

    el funcionamiento interno de los sistemas de libre distribucin GNU/Linux. Las mini

    distribuciones GNU/Linux no son ms que una variante de los sistemas grandes cuyo objetivo

    general es introducir todo un sistema completo GNU/Linux en el mnimo espacio posible. Este

    proyecto bajo la modalidad de desarrollo tiene a la vz por finalidad hacer uso del software libre

    y sus cuatro libertades fundamentales para su desarrollo. Es software libre y permite el estudio

    del mismo para su ejecucin, modificacin y distribucin.

  • 4

    1.2 Formulacin del problema

    1.2.1 Pregunta general

    Cmo se puede desarrollar una mini ditribucin GNU/Linux a partir de la compilacin

    desde su cdigo fuente?

    1.2.2 Preguntas especficas

    1. Cules son los requerimientos de hardware y software para el desarrollo de la mini

    distribucin GNU/Linux?

    2. Qu paquetes y bibliotecas de software libre intervienen en el proceso de desarrollo de

    una mini distribucin GNU/Linux?

    3. Cul es el componente principal para la configuracin de arquitecturas x86 en sistemas

    GNU/Linux?

  • 5

    1.3 Objetivos

    Objetivo general

    Desarrollar la mini distribucin GNU/Linux Live CD a partir de su cdigo fuente para el

    funcionamiento en arquitecturas x86.

    Objetivos especficos

    1. Determinar los requerimientos de hardware y software para el desarrollo de la mini

    distribucin GNU/Linux.

    2. Identificar los paquetes y bibliotecas de software libre para su posterior compilacin e

    implementacin en la mini distribucin GNU/Linux.

    3. Identificar el componente principal para el reconocimiento de arquitecturas x86.

  • 6

    MARCO TERICO Y CONCEPTUAL

    2.1 Marco terico

    2.1.1 Antecedentes de investigacin

    Casanova (2). Proyecto de investigacin titulado: El proyecto GNU/Linux FME

    Distribucin Libre para la Facultad de Matemticas y Estadstica. Universidad Politcnica de

    Catalua, este proyecto surge de la necesidad de un colectivo de estudiantes y profesores, de la

    Facultad de Matemticas y Estadstica. Esta investigacin ayud en la necesidad del uso del

    Software Libre como alternativa al uso del Software Propietario la necesidad de tener las

    mismas herramientas (Programas) que se usan para el aprendizaje diario que se imparten en las

    aulas es por ello que nace la necesidad de desarrollar e implementar un Sistema Operativo Libre

    GNU/Linux y que adems sea tan manejable y fcil instalacin en los ordenadores de mesa,

    para cubrir la necesidad de cualquier estudiante.

    Giler y Santamara (5). Proyecto de investigacin titulado Distribucin de GNU/Linux para

    uso en los laboratorios de la carrera de Electrnica y Redes de Informacin de la facultad de

    Ingeniera Elctrica y Electrnica de la Escuela Politcnica Nacional de Ecuador. Este proyecto

    nace de la necesidad de desarrollar un sistema GNU/Linux hecho a medida, ya que en dicha

    facultad se hace uso de otra distribucin del cul contiene programas y bibliotecas inncesarias

    para el uso cotidiano y tambin para evitar el consumo innecesario de recursos importantes

  • 7

    como: memoria ram, espacio en disco, etc. La distribucin es desarrollada desde el cdigo

    fuente.

    Requejo (11). Proyecto de investigacin titulado Construccin de un sistema Linux a partir

    del cdigo fuente. De la Universidad Politcnica de Catalua en Barcelona de la Facultad de

    Informtica. En este proyecto, proporciona dicho sistema, construyndolo desde su cdigo

    fuente, para determinar qu software es necesario, de dnde se puede obtener y cmo

    configurarlo, compilarlo y ejecutarlo. Un proyecto el cul personaliza sus propias maneras de

    compilar paquetes fuente, desarrollando un sistema funcional y con entorno de escritorio

    personalizado.

    Ramirez (12). Proyecto de investigacin titulado Diseo e implementacin de un sistema

    operativo para fines educativos. Universidad Carlos III de Madrid de la Facultad de Ingeniera

    Informtica. Este proyecto presenta el diseo e implementacin de un sistema operativo con

    capacidades bsicas, pero suficientes, como para poder ser utilizado como herramienta de apoyo

    a la enseanza de la asignatura "Sistemas Operativos". El proyecto cubre las necesidades

    especficas de un entorno de enseanza concreto.

    Chez y Mero (3). Proyecto de investigacin titulado Prototipo de un software de sistema

    basado en el kernel y lfs (Linux From Scratch) de Linux para la Facultad de Ciencias

    Informticas de la ULEAM. De la Universidad Laica Eloy Alfaro de Manabi. Cuya

    investigacin hace referencia a la importancia para el proceso de enseanza- aprendizaje de la

    materia de Sistemas Operativos; los estudiantes podrn comprender el funcionamiento del

    sistema desarrollado.

  • 8

    2.2 Bases tericas

    2.2.1 Sistema operativo

    Existen diferentes conceptos sobre lo que es un sistema operativo podramos decir que un

    sistema operativo es un conjunto de programas que interactuan entre si y que es lo ms

    importante en un ordenador.

    Como definen Silberschatz y Baer (13) Sistema Operativo es una parte importante de casi

    todos los sistemas de computacin. Estos ltimos se pueden dividir a grandes rasgos en cuatro

    componentes: el hardware, el sistema operativo, los programas de aplicacin (o del usuario), y

    los usuarios.

    Figura 1: Perspectiva abstracta de los componentes de un sistema operativo.

    Nota: Fuente. Silberschatz, A., Baer, P. S. Sistemas Operativos. 5a ed. Mxico: Pearson; 1999. p. 4

    El sistema operativo controla y coordina el uso del hardware entre los diversos programas

    de aplicacin de los usuarios.

  • 9

    2.2.1.1 Funcines del sistema operativo

    Un sistema operativo (SO) es un programa que tiene encomendadas una serie de funciones

    diferentes cuyo objetivo es simplificar el manejo y la utilizacin de la computadora, hacindolo

    seguro y eficiente. Histricamente se han ido completando las misiones encomendadas al

    sistema operativo, por lo que los productos comerciales actuales incluyen una gran cantidad de

    funciones, como son interfaces grficas, protocolos de comunicacin, etc.

    Las funciones clsicas, del sistema operativo se pueden agrupar en las categoras siguientes:

    1. Coordinar y manipular el hardware del computador.

    2. Organizar los archivos en diversos dispositivos de almacenamiento.

    3. Gestionar los errores de hardware y la perdida de datos.

    4. Encargarse de brindar al usuario una interfaz con la cual pueda operar de manera. Fcil

    todas las funciones anteriores descritas.

  • 10

    Figura 2: Funcines del sistema operativo

    2.2.1.2 Clasificacin de los sistemas operativos

    Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de diferentes maneras,

    dependiendo del uso o de la aplicacin que se les daba.

    Se clasifican en:

    Sistema operativo multiprogramacin.

    Sistema operativo monotarea.

    Sistema operativo monousuario.

    Sistema operativo multiusuario.

    Sistema operativo por lotes.

    Sistema operativo de tiempo real.

    Sistema operativo de tiempo compartido.

    Sistema operativo distribuido.

  • 11

    Sistema operativo de red.

    Sistema operativo paralelo.

    2.2.2 El proyecto GNU y la fundacin del software libre

    Baig y Aul (1). Para entender todo el movimiento del software libre, debemos situarnos a

    finales de la dcada de los sesenta, principios de los setenta. En aquellos tiempos las grandes

    compaas de ordenadores no daban el valor que hoy da se da al software. En su gran mayora

    eran fabricantes de ordenadores que obtenan sus principales ingresos vendiendo sus grandes

    mquinas, a las que incorporaban algn tipo de sistema operativo y aplicaciones. Las

    universidades tenan permiso para coger y estudiar el cdigo fuente del sistema operativo para

    fines docentes. Los mismos usuarios podan pedir el cdigo fuente de drivers y programas para

    adaptarlos a sus necesidades. Se consideraba que el software no tena valor por s mismo si no

    estaba acompaado por el hardware que lo soportaba. En este entorno, los laboratorios Bell

    (AT&T) disearon un sistema operativo llamado UNIX1, caracterizado por la buena gestin de

    los recursos del sistema, su estabilidad y su compatibilidad con el hardware de diferentes

    fabricantes (para homogeneizar todos sus sistemas). Este ltimo hecho fue importantsimo

    (hasta entonces todos los fabricantes tenan sus propios operativos incompatibles con los otros),

    ya que devino el factor que le proporcion mucha popularidad Poco a poco, las grandes

    empresas empezaron a tomar conciencia Nota del valor del software: primero fue IBM2 que en

    1965 dej de dar el mismo, Stallman cuenta como ancdota lo mucho que se enfad al descubrir

    que la compaa que les haba vendido una impresora para el laboratorio donde trabajaba no le

    1 Sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969, por un grupo de

    empleados de los laboratorios Bell de AT&T. 2 International Business Machines (IBM) es una empresa multinacional estadounidense de tecnologa y

    consultora, fabrica y comercializa hardware y software para computadoras.

  • 12

    quera facilitar el cdigo fuente de los drivers. l slo quera modificarlos para que le avisara

    automticamente cuando se atascaba el papel! La compaa se neg a proporcionrselos. El

    cdigo fuente de su sistema operativo, a finales de los setenta Digital Research empez a vender

    el suyo, etc. Este hecho hizo que todas las compaas se dieran cuenta de que el software poda

    ser muy rentable y les poda aportar grandes beneficios. A partir de este hecho, la mayora de

    empresas empezaron a poner reticencias a dejar el cdigo fuente de sus programas. En este

    entorno cada vez ms cerrado, Richard Stallman que trabajaba en el MIT3 (Massachusetts

    Institute of Technology) se sinti indignado al comprobar que cada vez era ms difcil conseguir

    el cdigo fuente de los programas que utilizaba para adaptarlos a sus necesidades, tal como

    haba hecho hasta entonces. De especial inters para entender los motivos que llevaron a

    Stallman a iniciar GNU es su primer manifiesto, el documento donde explic a toda la

    comunidad en qu consistira el proyecto, cmo lo orientara y por qu tena que hacerlo. En l

    empez a describir el concepto de software libre y para qu crea necesario que programadores

    y desarrolladores de alrededor del mundo contribuyeran con l. Aunque en muchas ocasiones

    se confunde el concepto de software libre con el de software gratuito (en ingls, free tiene los

    dos significados), en posteriores documentos se ha dejado muy claro que el software libre no

    debe por qu ser gratuito.

    2.2.3 La importancia de la licencia pblica general GNU

    Stallman (14) La Licencia Pblica General de GNU o ms conocida por su nombre en ingls

    GNU General Public License (o simplemente sus siglas del ingls GNU GPL) es la licencia ms

    ampliamente usada que permite acceder al cdigo fuente del ncleo de Linux de forma gratuita.

    3 El Instituto Tecnolgico de Massachusetts (MIT, del ingls Massachusetts Institute of Technology) es una

    institucin de educacin superior privada situada en Cambridge, Massachusetts, Estados Unidos.

  • 13

    En consecuencia, este sistema se puede recopilar en otras plataformas que no sean PC. Para

    permitir la distribucin de programas sin el pago de regalas, la fundacin FSF (Fundacin para

    el Software Libre) desarroll un proyecto con el nombre GNU (un poco de historia: GNU es

    una sigla recurrente que significa "GNU is Not Unix" [GNU no es Unix]). Los usuarios de GNU

    estn sujetos a los trminos de la licencia de uso GPL (Licencia de Pblico General), que

    describe los trminos legales de uso, la distribucin o modificacin del cdigo fuente.

    A continuacin encontrar una breve lista de algunos aspectos de esta licencia:

    La licencia GPL permite modificar el programa original y distribuirlo (bajo licencia de

    GPL).

    La licencia GPL autoriza la venta del software gratuito original o modificado, siempre

    que el vendedor autorice la distribucin (aun en forma gratuita) de dicho software

    modificado.

    La licencia GPL autoriza el uso del software con fines de lucro (para obtener ganancias);

    el software bajo licencia de GPL permanece bajo la propiedad de sus autores y nadie

    puede asumir total o parcialmente los derechos de autor; La licencia no implica ningn

    tipo de compensacin de los autores.

    Esta licencia se denomina a veces copyleft, por analoga con la palabra copyright. El software

    libre

    Como Stallman (14) hace mensin acerca del software libre Con software libre nos

    referimos a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, modificar y

    mejorar el software".

  • 14

    Nos referimos especialmente a cuatro clases de libertad para los usuarios de software:

    Libertad 0: La libertad para ejecutar el programa sea cual sea nuestro propsito.

    Libertad 1: La libertad para estudiar el funcionamiento del programa y adaptarlo a tus

    necesidades, el acceso al cdigo fuente es condicin indispensable para esto.

    Libertad 2: La libertad para redistribuir copias y ayudar as al prjimo.

    Libertad 3: la libertad para mejorar el programa y luego publicarlo para el bien de toda

    la comunidad, el acceso al cdigo fuente es condicin indispensable para esto.

    Software libre es cualquier programa cuyos usuarios gocen de estas libertades. De modo que

    deberas ser libre de redistribuir copias con o sin modificaciones, de forma gratuita o cobrando

    por su distribucin, a cualquiera y en cualquier lugar. Gozar de esta libertad significa, entre

    otras cosas, no tener que pedir permiso ni pagar para ello.

    Asimismo, deberas ser libre para introducir modificaciones y utilizarlas de forma privada,

    ya sea en tu trabajo o en tu tiempo libre, sin siquiera tener que mencionar su existencia. Si

    decidieras publicar estos cambios, no deberas estar obligado a notificarlo de ninguna forma ni

    a nadie en particular.

    La libertad para utilizar un programa significa que cualquier individuo u organizacin podrn

    ejecutarlo desde cualquier sistema informtico, con cualquier fin y sin la obligacin de

    comunicrselo subsiguientemente ni al desarrollador ni a ninguna entidad en concreto.

    La libertad para redistribuir copias supone incluir las formas binarias o ejecutables del

    programa y el cdigo fuente tanto de las versiones modificadas como de las originales, la

    distribucin de programas en formato ejecutable es necesaria para su adecuada instalacin en

    sistemas operativos libres. No pasa nada si no se puede producir una forma ejecutable o binaria

  • 15

    dado que no todos los lenguajes pueden soportarlo, pero todos debemos tener la libertad para

    redistribuir tales formas si se encuentra el modo de hacerlo. Para que las libertades 1 y 3, la

    libertad para hacer cambios y para publicar las versiones mejoradas adquieran significado,

    debemos disponer del cdigo fuente del programa. Por consiguiente, la accesibilidad del cdigo

    fuente es una condicin necesaria para el software libre.

    2.2.4 Sistema operativo GNU/Linux

    De acuerdo con Facundo y Hector (4) GNU/Linux es el primer sistema operativo basado en

    UNIX que es 100% Software Libre. Si bien anteriormente haba otros sistemas operativos de

    libre distribucin como MINIX4, stos no eran totalmente Software Libre, ya que eran regidos

    por licencias ms restrictivas. GNU/Linux es un proyecto que ya lleva 20 aos en desarrollo, y

    lo estar por muchos ms, ya que se asienta sobre una base de cientos de programadores de

    todas partes del mundo. Muchas veces me preguntan si no es posible que el que hace Linux un

    da se vuelva rebelde y quiera hacer que su sistema sea propietario". La respuesta es,

    obviamente, negativa. No existe una persona que hace Linux". GNU/Linux es un conjunto de

    componentes desarrollados por muchas personas que trabajan en muchos proyectos.

    2.2.4.1 Caractersticas principales

    Entre las principales caractersticas que podemos mencionar:

    1. Funciona en modo protegido 386.

    2. Proteccin de la memoria entre procesos, de manera que uno de ellos no pueda colgar

    el sistema.

    4 Minix es un clon del sistema operativo Unix distribuido junto con su cdigo fuente y desarrollado por el

    profesor Andrew S. Tanenbaum en 1987.

  • 16

    3. Carga de ejecutables por demanda: Linux slo lee del disco aquellas partes de un

    programa que estn siendo usadas actualmente.

    4. Poltica de copia en escritura para la comparacin de pginas entre ejecutables: esto

    significa que varios procesos pueden usar la misma zona de memoria para ejecutarse.

    5. Cuando alguno intenta escribir en esa memoria, la pgina (4Kb de memoria) se copia a

    otro lugar. Esta poltica de copia en escritura tiene dos beneficios: aumenta la velocidad

    y reduce el uso de memoria.

    6. La memoria se gestiona como un recurso unificado para los programas de usuario y para

    el cach de disco, de tal forma que toda la memoria libre puede ser usada para cach y

    sta puede a su vez ser reducida cuando se ejecuten grandes programas.

    7. Soporte para muchos teclados nacionales o adaptados y es bastante fcil aadir nuevos

    dinmicamente.

    2.2.4.2 Funcines principales

    Algunas de las funciones importantes que podemos mencionar tenemos:

    1. Sistema multitarea: Es posible ejecutar varios programas a la vez sin necesidad que

    tener que parar la ejecucin de cada aplicacin.

    2. Sistema multiusuario: varios usuarios pueden acceder a las aplicaciones y recursos

    Linux al mismo tiempo y cada uno puede ejecutar varios programas a la vez.

    3. Shells programables: Conecta las rdenes de un usuario con el Kernel de Linux, y al

    ser programables se puede modificar para adaptarlo a las necesidades.

  • 17

    4. Independencia de dispositivos: Admite cualquier dispositivo gracias a que cada vez

    uno nuevo instalado, este se aade al Kernel. Este tiene una gran adaptabilidad y no se

    encuentra limitado como otros sistemas operativos.

    5. Comunicaciones: Linux es el sistema ms flexible para poder conectarse a cualquier

    ordenador del mundo, tiene las mayores capacidades para navegar.

    2.2.4.3 Arquitectura de un sistema linux

    En la Figura se representa la arquitectura de un sistema genrico Linux con todos los

    componentes implicados. Aunque la figura abstrae en un alto grado el contenido del ncleo y

    de los otros componentes, las abstracciones presentadas son suficientes para la discusin. Tenga

    en cuenta que hay muy poca diferencia en la descripcin siguiente entre un sistema integrado y

    un sistema de estacin de trabajo o servidor, ya que los sistemas Linux son todas las mismas

    estructuras en este nivel de abstraccin.

  • 18

    Figura 3: Arquitectura de un sistema operativo GNU/Linux.

    Nota: Fuente. Yaghmour, K. Building Embedded Linux Systems. Estados Unidos: O'Reilly & Associates, Inc., 2003. p. 59.

    a. Kernel Linux

    Giler y Santamara (5) describen, el Kernel es el componente principal del sistema operativo.

    Proporciona toda la funcionalidad para ejecutar procesos y servicios del sistema, como por

    ejemplo: gestin de memoria, gestin de archivos, manejo de usuarios, gestin de los procesos,

    etc. Dentro del Kernel se contemplan dos niveles de ejecucin de los procesos. Modo usuario y

    modo privilegiado o root5. Cuando se ejecuta la llamada del ncleo, se est ejecutando en modo

    privilegiado. Cuando se ejecuta cdigo que no pertenece al ncleo, se est ejecutando en modo

    usuario. Al poseer dos niveles diferentes de ejecucin se garantiza que a nivel de hardware

    ningn programa de usuario pueda acceder a recursos generales del sistema, tampoco

    interactuar directamente con otros procesos

    5 En sistemas operativos del tipo Unix, root es el nombre convencional de la cuenta de usuario que posee todos

    los derechos en todos los modos (mono o multi usuario). root es tambin llamado superusuario.

  • 19

    El objetivo de poseer niveles de ejecucin es garantizar que programas maliciosos o mal

    diseados no perjudiquen el sistema u otros procesos. Cada proceso tiene su propia zona de

    memoria y no puede acceder fuera de ella de manera incidental.

    b. Interfaz de bajo nivel

    Especfica para cada configuracin de hardware, sobre la cual, el Kernel ejecuta y provee

    control directo de los recursos hardware. Tpicamente, los servicios de bajo nivel manejan

    operaciones especficas de la CPU (del ingls Central Unit Process), operaciones de memoria

    especficas a la arquitectura, y provee interfaces bsicas para dispositivos.

    c. Abstraccin de alto nivel

    Provee abstracciones comunes a todos los sistemas Unix, incluyendo procesos, archivos,

    sockets y seales. Este nivel de abstraccin se mantiene constante aunque difiera el hardware.

    Entre estos dos niveles de abstraccin, el Kernel necesita lo que se denomina componentes

    de interpretacin para comprender e interactuar con datos estructurados provenientes de, o hacia

    ciertos dispositivos. Los diferentes tipos de sistemas de archivos y los protocolos de red son

    ejemplos de fuentes de datos estructurados.

    El Kernel necesita interpretarlos e interactuar a fin de proveer acceso a los datos provenientes

    desde estas fuentes o hacia las mismas.

  • 20

    d. Bibliotecas del sistema

    Giler y Santamara (5) sostienen que, las bibliotecas del sistema contienen las funciones para

    realizar las llamadas al sistema", a travs de la cuales las aplicaciones pueden interactuar con

    el ncleo. Todas las funciones necesarias para la ejecucin de aplicaciones se implementan en

    las bibliotecas del sistema. Las aplicaciones efectan llamadas a las bibliotecas del sistema para

    obtener un servicio.

    Los utilitarios de usuario son aquellos que realizan tareas habituales dentro del sistema. Los

    utilitarios de usuario realizan tareas como: listar los directorios, mover archivos, eliminar

    archivos, etc. Algunos utilitarios pueden desempear funciones ms complejas como:

    procesamiento de texto, ordenacin de datos, etc.

    Las bibliotecas tambin ofrecen rutinas que no corresponden a llamadas al sistema". Por

    ejemplo: algoritmos de ordenacin, funciones matemticas y rutinas de manipulacin de

    cadenas.

    e. Utilitarios del sistema y del usuario

    Los utilitarios del sistema constituyen las herramientas que el usuario espera encontrar en un

    sistema completo. Algunos utilitarios del sistema podran invocarse una sola vez para asignar

    valores iniciales y configurar algn aspecto del sistema. En contraste, los demonios podran

    ejecutarse en el sistema de forma permanente, hasta que el sistema o el demonio sean parados

    o desactivados.

  • 21

    2.2.4.4 Arquitecturas soportadas

    El ncleo Linux ha sido adaptado a una larga y creciente lista de arquitecturas, desde su

    creacin el Kernel de Linux ha tenido una evolucin considerable, podemos instalar en celulares

    de ltima generacin hasta grandes superordenadores.

    Algunas de las arquitecturas soportadas podemos mencionar:

    Intel x86 / IA-32 (i386")

    Motorola 68k (m68k")

    Sun SPARC (sparc")

    Alpha (alpha")

    Motorola/IBM PowerPC (powerpc")

    ARM (arm")

    CPUs MIPS (mips2mipsel")

    HP PA-RISC (hppa")

    IA-64 (ia64")

    S/390 (s390")

    AMD64 (amd64")

    2.2.4.5 Sistema de directorios

    De acuerdo con Russel (10). El FHS (Filesystem Hierarchy Standard), es una norma que

    define los directorios principales y sus contenidos en el sistema operativo GNU/Linux y otros

    sistemas de la familia Unix. Estos archivos se organizan en distintos directorios cuya funcin y

    nombre son estndar para todos los sistemas UNIX.

  • 22

    El sistema de directorios es de dos tipos:

    1. Estticos: Contiene archivos que no cambian sin la intervencin del administrador

    (root), sin embargo, pueden ser ledos por cualquier otro usuario. (Por ejemplo /bin,

    /sbin, /opt, /boot, /usr/bin, etc).

    2. Dinmicos: Contiene archivos que pueden cambiar sin la intervencin del

    administrador, y pueden leerse y escribirse (algunos slo por su respectivo usuario y el

    root). Contienen configuraciones, documentos, etc. Para estos directorios, es

    recomendable una copia de seguridad con frecuencia, o mejor an, deberan ser

    montados en una particin aparte en el mismo disco, como por ejemplo, montar el

    directorio /home en otra particin del mismo disco, independiente de la particin

    principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los

    documentos de los usuarios. (Por ejemplo: /var/mail, /var/spool, /var/run, /var/lock,

    /home).

  • 23

    Tabla 1: Sistema de archivos estndar de jerarqua.

    Directorio Descripcin

    /bin Comandos binarios esenciales para uso de todos los usuarios. /bin no

    puede contener directorios y deben residir aqu los binarios requeridos

    cuando no se ha montado ningn otro sistema de archivos el resto

    puede ser alojado en /usr/bin.

    /boot

    Archivos estticos del cargador de arranque. /boot contiene todos los

    datos que el kernel necesita antes de comenzar a ejecutar programas de

    modo usuario, es decir, todos los datos involucrados en el proceso de

    arranque, archivos de mapa de sector y sectores de arranque maestro.

    /dev Directorio de dispositivos.

    /home Directorio para poner las carpetas home de los usuarios.

    /root Directorio home para el root del sistema.

    /etc Archivos de configuracin del sistema, especficos del host. El

    directorio /etc debe contener nicamente archivos de configuracin y

    contener el directorio /opt.

    /lib Libreras compartidas esenciales para el kernel Linux.

    /media Puntos de montaje para medios removibles (floppy, cdrom, cdrecorder

    y zip debieran existir aqu.

    /mnt Punto de montaje temporal.

  • 24

    Directorio Descripcin

    /opt Software opcional de aplicacin. Estas aplicaciones, utilizan el

    directorio de usuario para guardas sus configuraciones, y de esta forma,

    cada usuario puede tener una configuracin diferente, de la misma

    aplicacin.

    /proc

    El directorio /proc contiene archivos especiales que o bien extraen

    informacin del kernel o bien la envan a ste.

    /sbin Binarios esenciales del sistema exclusivos del usuario root. /sbin es el

    responsable de sostener los binarios necesarios para realizar las 3

    operaciones bsicas ya discutidas.

    /tmp Archivos temporales. /tmp debe existir y ser accesible para programas

    que necesiten de datos temporales, es decir, datos cuyo contenido no

    necesariamente es el mismo tras invocaciones sucesivas. Se

    recomienda borrar todo archivo alojado en /tmp tras el arranque del

    sistema.

    /usr Jerarqua secundaria de los datos de usuario; contiene la mayora de las

    utilidades y aplicaciones multiusuario. En otras palabras, contiene los

    archivos compartidos de slo lectura. Este directorio puede incluso ser

    compartido con otras computadoras.

    /var Datos variables.

    Nota: Fuente. Russel, R., Quinlan, D., Yeoh, C. Filesystem Hierarchy Standard [Internet]. Estados Unidos; 2004 [actualizado

    29 Jun 2004; citado 5 jun 2013]. Disponible en: http://www.pathname.com/fhs/pub/fhs2.3.pdf. p. 4-15.

  • 25

    2.2.4.6 Sistema X window

    Snchez y Garca (16) describen, el sistema X Window, conocido generalmente como X,

    es un sistema de ventanas portable, que se ejecuta de forma transparente en red sobre diferentes

    plataformas y sistemas operativos. El sistema X permite que los programas presenten ventanas,

    que pueden contener informacin textual y grfica, en cualquier ordenador que soporte el

    protocolo X Window. Este protocolo especifica cul es la informacin que debe ser transmitida

    entre los procesos activos en el sistema X haciendo que se consiga una compatibilidad, no slo

    al nivel de cdigo fuente, sino tambin a nivel binario. Gracias a este mecanismo podemos tener

    mquinas con arquitecturas diferentes e incluso con distintos sistemas operativos

    intercambiando informacin por medio de una red local. El sistema X Window fue desarrollado

    en el MIT (Instituto Tecnolgico de Massachusetts) con la ayuda de la compaa DEC (Digital

    Equipment Corporation). Su arquitecto principal fue Robert Sheifler. X Window evolucion a

    partir de un sistema de ventanas desarrollado en la Universidad de Standford conocida como

    sistema W.

    2.2.4.7 Arranque y parada del sistema X Window

    De acuerdo con Snchez y Garca (16). Para iniciar el sistema X en un terminal grfico, una

    vez iniciada la sesin en el terminal, generalmente daremos la orden startx, aunque en algunas

    versiones de UNIX puede ser otra diferente, startx es un programa (un shell script normalmente)

    que se encuentra en el directorio /usr/bin/X11 y que acta como interfaz entre el usuario y el

    programa xinit, xinit es el programa que lleva a cabo el inicio y arranque del servidor X junto

    con los primeros clientes que se van a comunicar con el servidor. Startx6 se suministra para

    6 startx es un script que contiene las secuencias que deben ser utilizadas al invocar un ambiente grfico, esto

    es, se encarga de ejecutar xinit.

  • 26

    facilitar al usuario el inicio del sistema X sin necesidad de conocer a fondo la forma de invocar

    al programa xinit, startx es un archivo que puede ser copiado en nuestro directorio de arranque

    y modificado por el usuario para configurar las X de modo adecuado.

    Una vez iniciado al sistema observaremos que cambia el modo de vdeo y en pantalla

    aparecen diversos grficos. Una presentacin tpica puede ser la que se muestra en la figura.

    Figura 4: Sistema X Window.

    Nota: Fuente: Sanchez, S., Garca O. Unix y Linux gua prctica. 3 ed. Madrid: Ra-Ma; 2004. p. 223.

  • 27

    2.2.4.8 Gestores de ventanas

    Desde el punto de vista de Snchez y Garca (16). Una de las caractersticas del sistema X

    Window (y tambin de UNIX) es que su funcionalidad se consigue gracias a la cooperacin de

    componentes sencillos e independientes, al contrario que otros sistemas en los que se opta por

    integrar todos los elementos. La ventaja de este esquema es que cada una de las partes puede

    ser desarrollada, modificada y codificada de forma independiente. El mejor ejemplo de esto es

    el concepto de gestor de ventanas, manejador de ventanas o Window Manager, que bsicamente

    es el componente que determina la apariencia de las ventanas y proporciona los medios

    necesarios para que el usuario pueda interactuar con ellas. Esto se consigue por medio del marco

    de decoracin que el gestor pone alrededor de cada ventana.

    Gestores de ventanas ms conocidas:

    a) DWM (Dynamic Window Manager): Uno de los ms veteranos y conocidos, y

    tambin uno de los ms simples (est completamente programado en C) y limitados en

    sus posibilidades de personalizacin. Su consumo de memoria es de tan solo de 1 MB.

    b) JWM (Joes Window Manager): JWM es un gestor de ventanas ligero para X

    Windows System que es ideal para viejos ordenadores o poco potentes gracias a su bajo

    consumo de recursos. De hecho, la fantstica distribucin Puppy Linux hace uso de

    JWM. Su consumo de memoria es el orden de los 3 Mbytes.

    c) BlackBox y OpenBox: Estos gestores de ventanas con ese caracterstico apellido *Box

    nacieron a partir de BlackBox, del que luego fueron surgiendo variantes. BlacBox es

    comparable a JWM y tiene un consumo de memoria que ronda los 3 Mbytes. OpenBox

  • 28

    no se suele usar de forma independiente, pero lo incluyen algunas distribuciones como

    CrunchBag. Su consumo es algo mayor, de 7 Mbytes.

    d) IceWM: Este gestor de ventanas para el X Window System est desarrollado en C++.

    IceWM destaca por su soporte de temas, algunos de los cuales estaban pensados para

    emular la interfaz de sistemas operativos de la poca en la que se comenz a

    desarrollar tales como Windows 95, OS/2 o Motif. La configuracin a base de ficheros

    de texto permite modificar algunos parmetros de la interfaz, y tambin dispone de una

    barra de tareas opcional con un men de inicio. Y todo ello con un consumo de 4,5

    MB.

    Figura 5: Administrador de ventanas IceWM con diseo minimalista.

  • 29

    2.2.5 Distribucion GNU/Linux

    Como describen Baig y Aul (1). Una distribucin GNU/Linux es un conjunto de software

    basado en el ncleo Linux y otras herramientas de sistema GNU. Actualmente se pueden

    encontrar multitud de distribuciones diferentes, con propsitos que van desde el uso ms general

    y cotidiano, pasando por la opcin multimedia, y abarcando hasta el mbito profesional. Estas

    distribuciones se pueden obtener a travs de Internet, o comprando los CDs de las mismas, los

    cuales contendrn todo lo necesario para instalar un sistema Linux bastante completo y en la

    mayora de los casos un programa de instalacin que nos ayudara en la tarea de una primera

    instalacin.

    2.2.6 GNU/Linux Live CD

    Segn Casanova (2), un sistema Linux Live CD es un sistema basado en GNU/Linux

    (cualquiera de sus distribuciones) que es capaz de arrancar desde un CD sin utilizar el disco

    duro para instalar software. La finalidad inicial de estos sistemas era ofrecer un sistema

    operativo completo para hacer demostraciones o como medio para efectuar el rescate de otro

    sistema instalado en el equipo. Las primeras distribuciones eran sistemas reducidos con un

    pequeo nmero de aplicaciones instaladas. Su tamao era ideal para grabarlos. La estructura

    de estas distribuciones es ms sencilla de lo que en principio pueda parecer, existen muchas

    Live-CDs distintas, pero todas estn basadas en el modelo de la distribucin Knoppix.

    2.2.7 Mini distribucines GNU/Linux

    El punto de vista propuesto por San Flix (13). Una mini distribucin de Linux es una

    variante de ese sistema cuyo objetivo es incorporar un sistema operativo completo en unidades

    de almacenamiento porttil de baja capacidad como un disquete. Este tipo de distribuciones

  • 30

    logran que podamos trabajar en un entorno Linux casi completo arrancando desde un disquete

    o llavero USB y sin utilizar el disco duro que pueda tener el ordenador, evitando as cualquier

    interferencia con el sistema instalado en el ordenador. Y debido a su bajo consumo de recursos,

    el ms crtico suele ser la memoria RAM que en muchos casos debe ser de 8 Mb de RAM por

    lo que casi cualquier ordenador nos vale para su uso. El lema de las mini distribuciones de Linux

    es en general intentar meter lo ms posible de un sistema GNU/Linux en el mnimo espacio

    posible.

    2.2.7.1 Caractersticas de las mini distribucines

    Al no requerir hardware de ltima generacin y poseer una mnima implementacin en su

    estructura, las mini distribuciones presentan las siguientes caractersticas:

    Mnimo espacio requerido: 1Mb y 50Mb.

    Mnimo consumo de recursos: 4-8 Mb RAM y procesador i386.

    Uso de memoria RAM como sistema de ficheros.

    No necesitan normalmente disco duro:

    Suelen permitir conectar el equipo a la red e incluyen clientes y a veces servidores

    de servicios bsicos como ftp, http, telnet u otros.

    Discos auxiliares para aadir ms funcionalidades.

    2.2.7.2 Necesidades que resuelven

    Cada mini distribucin ha sido creada con un objetivo en la mente del creador, y de nuestro

    viaje por las diferentes mini distribuciones que existen hemos podido reflejar las siguientes

    funcionalidades:

  • 31

    1. Aprender Linux.

    2. Terminales X.

    3. Seguridad.

    4. Gestin de red.

    A veces lo que se busca es montar un sistema Linux desde el que aprender el uso de la shell",

    de las diferentes utilidades de un sistema Unix (sed, awk, vi, man, ls, etc.), conocer el sistema

    de arranque de un sistema Unix, en fin, el tener un entorno mnimo para empezar a conocer un

    sistema Unix.

    Otras veces se intenta hacer un ordenador funcional invirtiendo el mnimo esfuerzo posible,

    como es el caso de convertir un puesto de trabajo en un terminal X. De esta forma desde los

    clientes se utilizan los recursos de los servidores de una forma cmoda. Y estos clientes tendrn

    unos requisitos mnimos: 386 con 4-8 Mb de RAM.

    La seguridad dentro de una red es algo vital para su funcionamiento y muchas veces un

    sistema despus de ser atacado no puede ya utilizarse sin reinstalar debido a posibles troyanos"

    que hayan dejado en el sistema. Gracias a las mini distribuciones, podemos arrancar desde

    disquetes y analizar los ataques en la red. Si nuestro sistema se ve comprometido (alguien ha

    conseguido entrar en l) basta con apagar el ordenador y volver a arrancar de los discos. De

    nuevo nuestro sistema estar limpio y nos podremos fiar de l.

    En lnea con esta funcionalidad estn las mini distribuciones orientadas a gestionar la red.

    Con ellas podremos analizar el trfico de la red, ver las alarmas que se producen o corregir los

    problemas que se detecten.

  • 32

    2.2.7.3 Mini distribucines conocidas en el mercado

    El siguiente es un listado de distribuciones Linux para exprimir esas mquinas menos

    modernas, en las que no es posible disfrutar al 100% de una distribucin moderna, por causa de

    la limitacin de hardware.

    1. Antomic: Nueva mini distribucin basada en Debian para usuarios noveles y de fcil

    instalacin.

    2. Austrumi: Otra distribucin live de reducido tamao, apenas 50MB. Poco popular, pero

    no por ello de baja calidad. Basada, como la mayora, en Slackware. Da buenos

    resultados en equipos Pentium y posteriores. Cuidado aspecto grfico, con

    Enlightenment.

    3. BasicLinux: Mini distribucin especialmente pensada para recuperar 486 desfasados.

    Basada en Slackware se ejecuta directamente desde disquete usando la RAM.

    4. BrutalWare: Mini distribucin para la administracin de redes con TCP/IP.

    5. Coyote Linux: Variante de Linux Router Project, se ejecuta desde un slo diskette y

    convierte esa vieja PC que tiene guardada en el armario en un ruteador capaz de conectar

    su red local a Internet.

    6. Damn Small Linux: Mini distribucin en live cd que por su tamao pequeo, puede

    servir como distro de rescate o para usarse en mquinas con poco poder de

    procesamiento.

  • 33

    7. DeLi Linux: Acrnimo de Desktop Light Linux, puede operar con suavidad en

    terminales 486 con 16MB de RAM. Trabaja entorno grfico XFree y es un derivado de

    Slackware.

    8. Feather Linux: Otra distribucin pequea en tamao y en consumos. Es Live CD. Para

    la gestin grfica emplea XVesa y XFbdev. Est basada en Knoppix.

    9. Puppy Linux: Es una distribucin live, con posibilidad de ser instalada en disco duro.

    Apenas requiere RAM, y suele operar con suavidad en equipos antiguos. Proporciona

    dualidad Fvwm95 y JWM.

    10. SliTaz Linux: Diseada para correr en un hardware con 128 Mb de memoria RAM.

    Ocupa 30 Mb de CD y 80 Mb en el disco duro una vez instalada. A partir de 16 Mb de

    RAM dispone del gestor de ventanas JWM (en la versin cooking es LXDE).

    2.2.8 Metodologa Espiral

    De acuerdo con Pressman (8), es un modelo de proceso de software evolutivo que conjuga

    la naturaleza iterativa de la construccin de prototipos con los aspectos controlados y

    sistemticos del modelo en cascada. Proporciona el material para el desarrollo rpido de

    versiones incrementables del software.

    Cuando se desarrolla el modelo espiral, el software se desarrolla en una serie de entregas

    evolutivas. Durante las primeras iteraciones, la entrega tal vez sea un documento del modelo o

    un prototipo. Durante las ltimas iteraciones se producen versiones cada vez ms completas del

    sistema desarrollado.

  • 34

    El modelo en espiral se divide en un nmero de actividades estructurales, tambin llamadas

    regiones de tareas. Generalmente, existen entre tres y seis Regiones de tareas.

    Comunicacin: las tareas requeridas para establecer comunicacin entre el

    desarrollador y el usuario.

    Planificacin: las tareas requeridas para definir recursos, el tiempo y otras

    informaciones relacionadas con el proyecto. Son todos los requerimientos.

    Modelado: las tareas requeridas para construir una o ms representaciones de la

    aplicacin.

    Construccin: las tareas requeridas para construir, probar, instalar y proporcionar

    soporte al usuario.

    Despliegue: las tareas requeridas para obtener la reaccin del cliente segn la evaluacin

    de las representaciones del software creadas durante la etapa de ingeniera e

    implementacin durante la etapa de instalacin.

    Segn la propuesta de Rmirez (12) El modelo en espiral aporta un enfoque realista, que

    evoluciona igual que el software; se adapta muy bien para desarrollos en gran escala. Este

    modelo es particularmente apto para el desarrollo de Sistemas Operativos (complejos) y todos

    aquellos proyectos en los que sea necesaria una fuerte gestin del proyecto y sus riesgos,

    tcnicos o de gestin.

  • 35

    Figura 6: Modelo espiral

    Fuente: Pressman, R. Ingeniera del Software. 6a ed. Mxico: McGraw-Hill Interamericana; 2005, p.59.

    Segn Pressman (8). Cuando empieza el proceso evolutivo, el equipo de ingeniera del

    software gira alrededor de la espiral en la direccin de las agujas del reloj, comenzando por el

    centro. El primer circuito de la espiral produce el desarrollo de una especificacin de productos;

    los pasos siguientes en la espiral se podran utilizar para desarrollar un prototipo y

    progresivamente versiones mas sofisticadas del software. Cada paso de la regin de

    planificacin produce ajustes en el plan del proyecto.

  • 36

    2.2.9 Metodologa de desarrollo de software

    La metodologa que se seguir para el desarrollo del presente proyecto es METODOLOGA

    EN ESPIRAL, puesto que La versin incremental podra ser un modelo en papel o un prototipo.

    2.2.9.1 El proceso iterativo

    Los requerimientos de los sistemas siempre evolucionan en el transcurso del proyecto, as la

    iteracin del proceso (retrabajo de etapas iniciales) es parte del proceso de un gran Sistema. La

    iteracin puede ser aplicada como parte de un gran proceso genrico.

    1. Desarrollo Incremental, En vez de tener un Sistema como nica entrega, el sistema

    se subdivide en entregas parciales denominadas incrementos. Un incremento es un

    sistema (producto) en s, pero funcionalmente incompleto.

    2. Desarrollo Espiral, El proceso se representa como una espiral, en vez de una

    secuencia de actividades con realimentacin. Cada vuelta en la espiral, representa

    una fase en el proceso.

    2.2.10 Mtodos para el desarrollo de sistemas GNU/Linux

    La tarea ms complicada es la implementacin de un sistema Linux basado directamente en

    la compilacin de los paquetes uno a uno, desde el kernel hasta los paquetes necesarios para

    nuestro fin. Para ello se utiliza un sistema anfitrin desde el cual ayuda a realizar la

    implementacin desde cero.

    Dentro de los mtodos para el desarrollo de sistemas operativos basados en GNU/Linux

    Monroy (7) mensiona los siguientes:

  • 37

    2.2.10.1 Mtodo Linux From Scratch

    Linux From Scratch o LFS es un tipo de instalacin del sistema operativo GNU/Linux y el

    nombre de un libro escrito por Gerard Beekmans junto a otros. El libro es una coleccin de

    documentos que indican los pasos para desarrollar un sistema GNU/Linux desde cero, a partir

    del cdigo fuente. El libro Linux From Scratch est disponible en lnea en el sitio oficial y

    actualmente su versin es la 7.4.

    De acuerdo al sitio de Linux From Scratch, las ventajas de este mtodo son un sistema

    compacto, flexible y seguro y proporciona gran conocimiento de cmo funciona un sistema

    operativo GNU/Linux.

    2.2.10.2 Mtodo Slitaz Scratch Book

    Es una pequea gua que nos muestra paso a paso la configuracin y compilacin de paquetes

    base para la construccin de una mini distribucin GNU/Linux. Al igual que la metodologa

    LFS usa los mismos pasos pero en forma minimalista, la idea es tener un sistema liviano y

    funcional. Esta gua nos muestra sobre el uso de la herramienta Busybox como principal

    componente para la creacin de un sistema minimalista.

    2.2.10.3 Mtodo Remastersys

    A pesar de todas las bondades que nos ofrece Ubuntu y otras distribuciones basadas en

    Debian, en muchas ocasiones echamos en falta un toque personal, tanto en el software includo

    como en los detalles de personalizacin. Remastersys es una aplicacin gratuita y de cdigo

    abierto que nos permitir crear una imagen de disco con nuestra distribucin Ubuntu u otra

    basada en Debian con su configuracin actual, de forma que, cuando la grabemos en un disco y

  • 38

    la instalemos tendremos a nuestra disposicin una copia de nuestro sistema tal y como estaba

    cuando hicimos la imagen de disco.

    2.2.10.4 Mtodo Suse Studio

    Novell acaba de presentar una nueva versin de SUSE Studio, que permite crear versiones a

    medida de SUSE. Ofrece una cmoda interfaz para que cualquiera pueda crear su propia versin

    de la distribucin Linux de Novell con configuraciones especficamente adaptadas a sus

    necesidades. Las software appliances o Just Enough Operating Systems (JeOS, sistema

    operativo con justo lo necesario) son muy tiles para entornos en los que necesitamos ejecutar

    aplicaciones sobre infraestructuras muy diversas.

    Consisten en una pila de aplicaciones junto con todas sus dependencias, integradas sobre una

    versin mnima del sistema operativo, para que las aplicaciones a usar corran con unos recursos

    al mnimo, y simplificando la instalacin. Para facilitar la tarea de crear JeOS a

    medida, SUSE Studio ofrece varias plantillas prediseadasque utilizar como punto de partida,

    como un JeOS mnimo, una plantilla para servidores, una X11 mnima, y plantillas con

    escritorios basadas en Gnome o KDE.

    2.2.10.5 Mtodo Revisor

    Revisor permite personalizar tanto los CDs y DVDs desde una cmoda interfaz grfica, lo

    que lo hace accesible a todo tipo de usuarios, y dispone tambin de la posibilidad de configurarlo

    mediante lnea de comandos y ficheros de configuracin, con lo que los usuarios profesionales

    o con mayores conocimientos tambin podrn disfrutar personalizando su distro hasta los ms

    mnimos detalles.

  • 39

    Las posibilidades de Revisor son tan amplias que permite no solamente seleccionar los

    paquetes que queremos incluir en nuestro Live CD o DVD o medio de instalacin, si no que

    tambin podemos definir a nuestro antojo como ser el aspecto del escritorio en el disco Live o

    una vez instalado.

    2.2.10.6 Mtodo Ubuntu Customization Kit

    UCK tambin llamado Ubuntu Customization Kit es una herramienta que te da la facilidad

    de modificar/ personalizar a tu gusto los LiveCDs oficiales de Ubuntu (incluyendo Xubuntu,

    Kubuntu, etc.). Puedes personalizarlo como quieras y aplicarle diferentes paquetes de idiomas,

    etc.

    2.2.10.7 Mtodo reconstructor

    Como su nombre indica esta suite resconstruye/ modifica/personaliza a tu manera las

    distribuciones de Linux basadas en Debian y Ubuntu desde una ISO.

  • 40

    2.3 Marco conceptual

    2.3.1 Sistema operativo

    El conjunto de programas informticos que permite la administracin eficaz de los recursos

    de una computadora es conocido como sistema operativo o software de sistema. Estos

    programas comienzan a trabajar apenas se enciende el equipo, ya que gestionan el hardware

    desde los niveles ms bsicos y permiten adems la interaccin con el usuario.

    2.3.2 GNU/Linux

    Es uno de los trminos empleados para referirse a la combinacin del ncleo o kernel libre

    similar a Unix denominado Linux con el sistema GNU. Su desarrollo es uno de los ejemplos

    ms prominentes de software libre; todo su cdigo fuente puede ser utilizado, modificado y

    redistribuido libremente por cualquiera bajo los trminos de la GPL (Licencia Pblica General

    de GNU, en ingls: General Public License) y otra serie de licencias libres.

    2.3.3 Licencia GPL

    La Licencia Pblica General de GNU o ms conocida por su nombre en ingls GNU General

    Public License (o simplemente sus siglas del ingls GNU GPL) es la licencia ms ampliamente

    usada en el mundo del software y garantiza a los usuarios finales (personas, organizaciones,

    compaas) la libertad de usar, estudiar, compartir (copiar) y modificar el software.

    2.3.4 Software libre

    Software libre es la denominacin del software que brinda libertad a los usuarios sobre su

    producto adquirido y por tanto, una vez obtenido, puede ser usado, copiado, estudiado,

    modificado y redistribuido libremente.

  • 41

    2.3.5 Distribucin GNU/Linux

    Una distribucin Linux (coloquialmente llamada distro) es una distribucin de software

    basada en el ncleo Linux que incluye determinados paquetes de software para satisfacer las

    necesidades de un grupo especfico de usuarios, dando as origen a ediciones domsticas,

    empresariales y para servidores. Por lo general estn compuestas, total o mayoritariamente, de

    software libre, aunque a menudo incorporan aplicaciones o controladores propietarios.

    2.3.6 Arquitectura x86

    Nombre dado al grupo de microprocesadores de la familia de Intel y a la arquitectura que

    comparten estos procesadores. Existen X86 tanto de 16 bits como de 32 bits, estos ltimos

    llamados IA-32 (x86-32). Los microprocesadores x86 fueron 8086, 80286, 80386, 80486.

    Luego continu con el Pentium.

    2.3.7 Busybox

    BusyBox es un programa que combina muchas utilidades estndares de Unix en un solo

    ejecutable pequeo. Es capaz de proveer la mayora de las utilidades que estn especificadas

    para los sistemas Unix adems de muchas de las utilidades que suelen verse en sistemas

    GNU/Linux.

    2.3.8 Bibliotecas

    Una biblioteca es un conjunto de implementaciones funcionales, codificadas en un lenguaje

    de programacin, que ofrece una interfaz bien definida para el comportamiento que se invoca.

    Las bibliotecas pueden vincularse a un programa (o a otra biblioteca) en distintos puntos del

    desarrollo o la ejecucin, segn el tipo de vnculo que se quiera establecer.

  • 42

    2.3.9 Compilacin

    Compilacin se refiere al proceso de generacin de cdigo que sigue al preprocesado. Un

    proceso en el que el compilador recorre la estructura de tokens generada por el analizador

    sintctico, traducindolos en cdigo de la mquina para la que compila.

    2.3.10 Cdigo fuente

    El cdigo fuente de un programa informtico (o software) es un conjunto de lneas de texto

    que son las instrucciones que debe seguir la computadora para ejecutar dicho programa. Por

    tanto, en el cdigo fuente de un programa est descrito por completo su funcionamiento.

    2.3.11 Joes Window Manager

    Es un administrador de ventanas escrito en C y con unas dependencias mnimas donde las

    haya. De reciente creacin viene a aportar a la larga lista de administradores de ventanas otra

    opcin ms de utilizacin mnima de recursos. En este manual trataremos la instalacin de la

    versin en espaol de JWM, que contiene significativas diferencias con la versin original.

    2.3.12 Kernel Linux

    Al kernel o ncleo es el nivel ms bajo de software fcilmente reemplazable que interacta

    con el hardware de tu computadora. Se encarga de interconectar todas las aplicaciones que se

    ejecutan en el modo usuario hasta el hardware y permitiendo a los procesos obtener

    informacin de unos a otros utilizando la comunicacin entre procesos (IPC).

  • 43

    2.3.13 Live CD

    Un Live CD no es otra cosa que una distribucion de Linux que funciona al 100%, sin

    necesidad de instalarla en el ordenador donde la probamos. Utiliza la memoria RAM del

    ordenador para 'instalar' y arrancar la distribucion en cuestion. En la memoria tambin se instala

    un "disco virtual" que emula al disco duro de un ordenador.

    2.3.14 Mini distribucin GNU/Linux

    Una mini distribucion, no es mas que una distribucion Linux, o cualquier SO de codigo libre.

    Estas son iguales a sus hermanas mayores, salvo que estan optimizadas para consumir el minimo

    porcentaje de recursos del sistema, de manera que tenemos un SO, muy ligero, que consume

    pocos recursos, y son capaces de funcionar a la perfeccion en maquinas muy viejas.

    2.3.15 Paquete de software

    Un paquete de software es una serie de programas que se distribuyen conjuntamente.

    Algunas de las razones suelen ser que el funcionamiento de cada uno complementa a o requiere

    de otros, adems de que sus objetivos estn relacionados como estrategia de mercadotecnia.

    2.3.16 Syslinux

    El proyecto SYSLINUX abarca un conjunto de gestores de arranque ligeros, para arrancar

    ordenadores en el sistema operativo GNU/Linux. Es obra de H. Peter Anvin y est formado por

    varios sistemas distintos. Este poderoso bootloader permite arrancar desde la red, tambin desde

    muchos sistemas de archivos diferentes como lo son: fat, ext2, ext3, ext4 y btrfs.

  • 44

    2.3.17 Sistema de archivos estndar de jerarqua

    El estndar de jerarqua del sistema de archivos (o FHS, del ingls Filesystem Hierarchy

    Standard) es una norma que define los directorios principales y sus contenidos en el sistema

    operativo GNU/Linux y otros sistemas de la familia Unix. Se dise originalmente en 1994 para

    estandarizar el sistema de archivos de las distribuciones de Linux, basndose en la tradicional

    organizacin de directorios de los sistemas Unix. En 1995 se ampli el mbito del estndar a

    cualquier Unix que se adhiriese voluntariamente.

    2.3.18 X-Window

    El sistema X-Window, (X-window o simplemente las X) se trata de la herramienta de

    software para el desarrollo de interfaces grficas de usuario (GUI's) para estaciones de trabajo.

    Una GUI es en pocas palabras una interfaz usuario/computadora que se ejecuta en modo grfico.

    2.3.19 Xorg

    Xorg es una aplicacin pblica, una implementacin en cdigo abierto del sistema X window

    versin 11. Desde el momento que Xorg se convierte en la opcin ms popular entre los usuarios

    de Linux, su omnipresencia ha dado lugar a que sea un requisito cada vez ms utilizado por las

    aplicaciones GUI (Graphical User Interface), con la consiguiente adopcin masiva por la

    mayora de las distribuciones.

    2.4 Software utilizado en el desarrollo

    2.4.1 Distribucin Xubuntu 10.04

    Xubuntu es una di