-
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