Sei sulla pagina 1di 126

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.
TESIS
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

DEDICATORIA

Dedicado a
Mi Madre querida que siempre me ha apoyado en todo
Y mi abuelita Luisa desde el cielo me apoyas tambin.

iii

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.

iv

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

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

vi

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
2.2

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

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


vii

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


viii

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


ix

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
x

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
xi

RECOMENDACIONES ................................................................................................... 63
REFERENCIAS BIBLIOGRFICAS ............................................................................. 64
ANEXO ............................................................................................................................... 66

xii

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
xiii

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.

xiv

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.

xv

( 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 ).
1998

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


[actualizado

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.

xvi

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.

xvii

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.

xviii

( 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.

xix

( 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.

xx

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.

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

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.

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?

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.

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

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.

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.

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.

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.

10

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

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.

11

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.

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.

12

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".

13

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
14

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.

Minix es un clon del sistema operativo Unix distribuido junto con su cdigo fuente y desarrollado por el
profesor Andrew S. Tanenbaum en 1987.

15

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.

16

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.

17

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

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.

18

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.

19

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.

20

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.

21

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).

22

Tabla 1: Sistema de archivos estndar de jerarqua.

Directorio
/bin

Descripcin
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.

23

Directorio
/opt

Descripcin
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.

24

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.

25

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.

26

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

27

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.

28

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
29

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:

30

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.

31

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.

32

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.

33

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.

34

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.

35

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:

36

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

37

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.

38

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.

39

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.
40

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.
41

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).

42

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.

43

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 distribucin oficial basada en la distribucin GNU/Linux Ubuntu, que utiliza
el entorno de escritorio Xfce. Xubuntu est diseado para usuarios con computadores que
44

poseen recursos limitados de sistema, o para usuarios que buscan un entorno de escritorio
altamente eficiente.
Xubuntu a diferencia de Ubuntu, utiliza Xfce como entorno de escritorio. Este cambio
permite un mejor desempeo del sistema operativo en computadores con recursos limitados de
sistema, al ser ms ligero y rpido. De la misma manera, Xubuntu tambin se caracteriza por
utilizar aplicaciones GTK+ diseadas para utilizar menos recursos (como por ejemplo, utiliza
Gnome Office en lugar OpenOffice.org).
A diferencia de las otras tres distribuciones oficiales de Canonical Ltd. y Ubuntu Foundation,
Xubuntu no cuenta con un servicio ShipIt. El primer lanzamiento oficial de Xubuntu apareci
el 1 de junio de 2006, junto con la versin 6.06 Dapper Drake de la familia de distribuciones de
Ubuntu.
Para arrancar el Desktop CD (combinacin de LiveCD y el CD de instalacin) se requieren
128 MiB de memoria RAM. Para ejecutar la instalacin del sistema operativo se requieren 192
MiB de memoria RAM. El CD de instalacin alternativo requiere solamente. 64 MB de
memoria RAM.
2.4.2 BoUML
BoUmL, herramienta de software libre. Pude ser redistribuida o modificada bajo los trminos
de Licencia Pblica General (GNU). Permite especificar y generar cdigo en C++, Java, Php e
IDL.
Es software libre. Aunque no es JAVA, es multiplataforma: Linux, Solari, Mac Os,
Windows, incluida en proyecto LULA. Las caractersticas que presenta son:

45

Permite programar simultneamente en C++, Java, Php e IDL.

Programa orientado a objetos.

Permite trabajar con UML 2 (ArgoUML todava no lo permite).

Soporta gran cantidad de diagramas (incluidos los de secuencia que en el ArgoUML


funcionan una versin si y otra no.

Es rpida y apenas consume memoria.

Es sencilla de utilizar.

Puedes generar cdigo para Java, C++ e IDL (y controlar bastante la generacin)

Tambin es capaz de generar documentacin en varios formatos (HTML, XMI, ...)

46

METODOLOGA DE LA INVESTIGACIN

3.1

Tipo de investigacin

De acuerdo a la naturaleza del estudio de la investigacin, el presente proyecto rene


condiciones metodolgicas del tipo aplicada y descriptiva.
Tamayo y Tamayo (17) afirma: La investigacin aplicada se le denomina tambin activa o
dinmica, y se encuentra ntimamente ligada a la investigacin pura, ya que depende de sus
descubrimientos y aportes tericos. Busca confrontar la teora con la realidad.
Asmismo Hernndez et al. (6) sealan La investigacin descriptiva, busca especificar
propiedades, caractersticas y rasgos importantes de cualquier fenmeno que se analice.
3.2

Nivel de investigacin

Cuando se trata de resolver un problema, es muy conveniente tener un conocimiento


detallado de los posibles tipos de investigacin que se puedan seguir.
El presente proyecto de investigacin rene condiciones metodolgicas de una investigacin
del tipo descriptivo al tratarse de un proyecto de desarrollo de sistemas operativos basado en
software libre.

47

3.3

Diseo de investigacin

El diseo de la investigacin. Cuando el investigador se limita a observar los acontecimientos


sin intervenir en los mismos entonces se desarrolla una investigacin no experimental.
Segn Hernndez et al. (6) La investigacin no experimental es la que se realiza sin
manipular deliberadamente variables; lo que se hace en este tipo de investigacin es observar
fenmenos tal y como se dan en su contexto natural, para despus analizarlos. En un estudio no
experimental no se construye ninguna situacin sino que se observan situaciones ya existentes,
no provocadas intencionalmente.

48

3.4

Diseo e implementacin

En este apartado se detalla principalmente todos los componentes necesarios para el


desarrollo de la mini distribucin GNU/Linux. Primeramente se vern algunos pormenores
bsicos sobre las herramientas del entorno de desarrollo del sistema, posteriormente se
mostrarn los aspectos ms relevantes que se ha tenido en cuenta para el desarrollo del sistema.
3.4.1 Mtodos para la compilacin y desarrollo del sistema
Para el desarrollo de la mini distribucin hacemos uso de las metodologas: Linux From
Scratch y Slitaz ScratchBook ambos mtodos esenciales para el desarrollo de sistemas Linux
desde el cdigo fuente.
Usamos el mtodo LFS para el diseo de la estructura de directorios y compilacin de
algunos paquetes necesarios para la mini distribucin.
En cuanto a la implementacin de paquetes, bibliotecas, programas y scripts, utilizamos el
mtodo Slitaz ScratchBook, ste mtodo nos muestra la manera ms prctica para la
compilacin e implementacin de paquetes.
3.4.2 Determinacin de requisitos
3.4.2.1 Requisitos de hardware
Tanto para el uso y desarrollo de sistemas GNU/Linux no se requiere de equipos sofisticados,
es otra de las ventajas de los sistemas GNU/Linux para el desarrollo de nuestros objetivos.
Las caractersticas mnimas en las que se desarrollo la mini distribucin son las siguientes:

49

Tabla 2: Hardware para el desarrollo del sistema.

Componente

Caracterstica

Computador

Pentium IV

Memoria RAM

512 MB
68
2.8 GHz
6.521
40158
GB.

Procesador
Disco duro

1.324
LCD
Dell
620

Pantalla
Tarjeta de red

D-Link DFE-520 TX
3.254
2.254

Tarjeta de video

Nvidia Quadro Pro


956

3.4.2.2 Requisitos de software

2.541

En cuanto a los requisitos de software es necesario la instalacin de una distribucin


GNU/Linux el cual ser adaptado para nuestros propsitos, ste sistema debe ser preparado con
todas las herramientas necesarias como compiladores, emuladores y bibliotecas, etc.
El siguiente cuadro nos muestra las caractersticas de software del sistema anfitrin:
Tabla 3: Software necesario para el desarrollo de la aplicacin.

Software

Descripcin

Xubuntu 10.04

Distribucin GNU/Linux como sistema host.

Build-essentials

Coleccin de compiladores de GNU


68

Qemu

Emulador

Libncurses, zlib, etc.

158
Bibliotecas del sistema.
620

50

3.4.3 Modelo de diseo


El modelo de diseo es realizado en base a tres capas que conforman el sistema. El Kernel,
Bibliotecas y Aplicaciones del usuario.
3.4.3.1 Capas del sistema
Al tener distribuido el sistema por medio de capas se logra jerarquizar los componentes que
conforman el sistema a ser creado.

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

a) Kernel y mdulos a implantar: El Kernel Linux a implantar dentro del sistema


GNU/Linux se caracteriza por tener un arquitectura modular. Este Kernel concentra
todas las funcionalidades esenciales como la administracin de memoria,

51

planificacin de procesos, etc.

Figura 8: Estructura del Kernel modular y monoltico.

b) Estructura de directorios: El rbol de directorios para la mini distribucin est


basado en el Estndar de la Jerarqua del Sistema de Ficheros (FHS). Los directorios
se crean por defecto con permisos 755. El propietario tiene permisos para leer,
escribir y ejecutar; el grupo y otros usuarios slo de leer y ejecutar. La estructura del
rbol de directorios que contendr la mini distribucin se muestra en la siguiente
figura:

52

Figura 9: Estructura de directorios para la mini distribucin.

3.4.3.2 Entorno de desarrollo


El entorno de desarrollo lo conforma un directorio principal creado dentro del directorio
principal /home y a la vz ste contiene los dems subdirectorios que albergan toda la estructura
de la mini distribucin.

53

La siguiente figura muestra la estructura del entorno para el desarrollo de la mini distribucin
un directorio Linux que alberga los dems subdirectorios del sistema.

Figura 10: Entorno de desarrollo para la mini distribucin.

Descripcin de los directorios del entorno de desarrollo:


a) Linux: Este se crea dentro del directorio /home del usuario, el nombre del directorio
Linux es trivial puede ser cualquier otro que identifique al entorno, este directorio
se debe crear como usuario root.
b) Rootfs: Contiene el sistema de directorios, los mdulos de Kernel, bibliotecas entre
otros archivos y directorios importantes.
c) Live: Contiene los archivos y scripts para el bootloader del sistema, necesario para
el funcionamiento de la Live CD.
d) Sources: Contiene los paquetes fuentes, en este directorio es donde configuramos y
compilamos todos los paquetes fuente para despus implementarlas en la mini
distribucin.
54

3.4.3.3 Estructura del sistema base


Para tener un sistema mnimo funcional o prototipo, se configura y compila el Kernel linux,
Busybox y Syslinux, el orden para su configuracin y compilacin no es necesario en este
proceso.

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

3.4.3.4 Paquetes de software


En la compilacin de paquetes se sigue la metodologa LFS y Slitaz para la implementacin
de un sistema GNU/Linux base. El orden de instalacin y los paquetes a instalarse tienen como
referencia la metodologa LFS y Slitaz. En mayor cantidad el orden ser determinado por el
nivel de dependencias de cada paquete.
3.4.3.5 Software necesario para el sistema
Lista de todo los paquetes fuente bsicos que intervienen en el desarrollo de la mini
distribucin.

bastet-0.41.tgz

busybox-1.12.0.tar.gz

55

clex-3.18.tar.gz

cpio-2.10.tar.bz2

dialog-1.1-20080819.tgz

e2fsprogs-1.41.9.tar.bz2

expat-2.0.1.tar.gz

fontconfig-2.7.1.tar.gz

freetype-2.3.9.tar.bz2

galculator-1.3.4.tar.gz

glibc-2.10.1.tar.bz2

gpm-1.20.5.tar.bz2

gtkdialog-0.7.20.tar.gz

hicolor-icon-theme-0.12

hicolor-icon-theme-0.12.tar.gz

jpegsrc.v6b.tar.gz

jwm-2.0.1.tar.bz2

libglade-2.6.2.tar.bz2

libpng-1.2.40.tar.bz2

libxcb-1.4.tar.bz2

linux-2.6.30.6.tar.gz

make-3.81.tar.gz

mc-4.7.0.1.tar.bz2

module-init-tools-3.10.tar.bz2

nano-2.0.8.tar.gz
56

ncurses-5.7.tar.gz

openssl-0.9.8l.tar.gz

shared-mime-info-0.90.tar.bz2

tiff-3.8.2.tar.gz

udev-150.tar.bz2

util-linux-ng-2.16.1.tar.bz2

xcb-util-0.3.5.tar.gz

xterm-255.tgz

xtinyx.tgz

zenity-2.28.0.tar.bz2

zlib-1.2.3.tar.gz

x-window

57

3.4.4 Diagrama de componentes


El diagrama representa los diferentes componentes de la mini distribucin GNU/Linux Live
CD y sus respectivas dependencias para su funcionamiento.

Figura 12: Componentes base del sistema base.

58

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

59

3.4.5 Diagrama de actividades


Los siguientes diagramas representan las operaciones que llevamos a cabo para la instalacin
del sistema anfitrin y como para el desarrollo de la mini distribucin.

Figura 14: Instalacin y configuracin del sistema anfitrin.

60

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

61

CONCLUSIONES

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 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.

62

RECOMENDACIONES
1. Como primer punto 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.
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.

63

REFERENCIAS BIBLIOGRFICAS
( 1 ).

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

2003, p. 16-18.
( 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, p. 19.
( 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 ).

Hernndez, R., Fernndez, C., Baptista, P. Metodologa de la Investigacin. 4a ed.

Mxico D.F.: McGraw-Hill Interamericana; 2006, p. 103-205.


( 7 ).

Monroy, R. Creacin de distribucines Linux [Tesis]. Espaa, Universidad de Almera,

2011, p. 21-59.
( 8 ).

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

2005, p.58-59.
64

( 9 ).

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.
( 10 ). Requejo, G. Construccin de un sistema Linux a partir del cdigo fuente. [Tesis].
Barcelona: Universidad Politcnica de Catalua. Facultad de Informtica; 2012.
( 11 ). Ramirz, A. Diseo e implementacin de un Sistema Operativo para fines educativos.
[Tesis]. Madrid: Universidad Carlos III de Madrid. Facultad de Ingeniera Informtica; 2012,
p. 44.
( 12 ). Silberschatz, A., Baer, P. S. Sistemas Operativos. 5a ed. Mxico: Pearson; 1999.
( 13 ). Stallman, R. Free Software, Free Society. 2a ed. Boston: GNU Press; 2010. p. 1-3.
( 14 ). 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.
( 15 ). Sanchez, S., Garca O. Unix y Linux gua prctica. 3a ed. Madrid: Ra-Ma; 2004.
( 16 ). Tamayo y Tamayo. El proceso de la investigacin cientfica. 4 ed. Mxico D.F:
Limusa; 2004, p. 43.

65

ANEXO
GUA DE IMPLEMENTACIN Y DESARROLLO DE LA
MINI DISTRIBUCIN

Figura 16: Mini distribucin GNU/Linux.

1. Descarga de Xubuntu 10.04


http://releases.ubuntu.com/lucid/xubuntu -10.04.4-desktop i386.iso

2. Configuracin de bibliotecas necesarias


Abrimos una consola con privilegios de root y digitamos:
nano /etc/apt/sources.list

Copiar y pegar la siguiente lista:


deb http://old-releases.ubuntu.com/ubuntu/ gutsy main restricted
universe multiverse
deb-src

http://old-releases.ubuntu.com/ubuntu/

gutsy

main

restricted universe multiverse


deb

http://old-releases.ubuntu.com/ubuntu/

gutsy-updates

main

restricted universe multiverse


deb-src http://old-releases.ubuntu.com/ubuntu/ gutsy-updates main
restricted universe multiverse
deb

http://old-releases.ubuntu.com/ubuntu

gutsy-security

main

restricted universe multiverse


deb-src http://old-releases.ubuntu.com/ubuntu gutsy-security main
restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ gutsy-backports main
restricted universe multiverse
deb-src

http://old-releases.ubuntu.com/ubuntu/

main restricted universe multiverse

gutsy-backports

Ahora hacemos una actualizacin digitando el siguiente comando:


apt-get update

3. Instalacin de paquetes necesarios en el sistema anfitrin


aptitude install build-essential
aptitude install libncurses5 -dev
aptitude install qemu
aptitude install zlib1g dev
apt-get install libfreetype6
apt-get install libxaw7 -dev
apt-get install libfreetype6 -dev
apt-get install libjpeg62 -dev
apt-get install libxml2 -dev
apt-get install libxau -dev
apt-get install libxmu -dev
apt-get install libpng12 -dev
apt-get install libfontconfig1 -dev
apt-get install gettext
apt-get install libcairo2 -dev
apt-get install libglib2.0-dev
apt-get install libpango1.0-dev
apt-get install libatk1.0-dev
apt-get install libwxbase2.8-dev
apt-get install libtiff4 -dev
apt-get install libxfixes -dev

apt-get install libxrender -dev


apt-get install x11proto -core-dev
apt-get install x11proto -fontcache -dev
apt-get install x11proto -xinerama -dev
apt-get install x11proto -randr-dev
apt-get install x11proto -composite -dev
apt-get install x11proto -fixes-dev
apt-get install libx11 -dev
apt-get install libxext -dev
apt-get install xtrans -dev
apt-get install libxdmcp dev
apt-get install libxpm -dev
apt-get install libgif -dev
apt-get install libaudiofile -dev
apt-get install libxinerama -dev
apt-get install libimlib2 dev
apt-get install gawk
apt-get install automake
apt-get install pkg-conf
apt-get install autoconf
apt-get install xsltproc
apt-get install python xcbgen
apt-get install gperf
apt-get install libxcb -shm0-dev

4. CONSTRUCCIN DEL SISTEMA BASE


Sistema base compuesto por Kernel linux, Busybox y Syslinux.

Crear en el directorio /home digitando la siguiente orden:


mkdir -v mini_linux && cd mini_linux
mkdir -pv live/boot/isolinux
mkdir -v src
mkdir -v rootfs
chmod -v a+wt src

5. Creando el sistema de directorios de la mini distribucin


Ingresamos al directorio rootfs donde albergar todo el sistema de directorios de la mini
distribucin:
cd rootfs
mkdir -pv {boot/grub,etc/{sysconfig ,init.d},home,lib,dev}
mkdir -pv {mnt,opt,run/{lock,shm},proc,sys}
mkdir -pv {media/{floppy ,cdrom},srv,var}
mkdir

-pv

var/{backups

,cache,crash,games,lib/{misc,locate

,dpkg}}
mkdir -pv var/{local,log,mail,opt,spool,run,lock}
chmod 777 run/{lock,shm}
install -dv -m 0750 root
install -dv -m 1777 tmp /var/tmp
mkdir -pv usr/{,local/}{include ,lib,src,games}
mkdir -pv usr/{,local/}share/{doc,info,locale ,man,i18n}
mkdir -pv usr/{,local/}share/{kmap,misc,terminfo
,zoneinfo/America}
mkdir -pv usr/{,local/}share/man/man{1..8}
mkdir -pv usr/share/{applications ,i18n,locale ,icons,images
,pixmaps}
mkdir -pv usr/share/i18n/{charmaps ,locales}
mkdir -pv usr/share/locale/es/LC_MESSAGES
mkdir -pv usr/lib/{locale ,gconv}
for dir in usr usr/local do
ln -sv share/{man,doc,info} $dir

done
ls -sv run var/run
ls -sv run/lock var/lock

6. Configuracin de archivos de sistema

Archivos fstab:
cat > etc/fstab << "EOF"
#/etc/fstab: information about static file system.
proc

/proc

proc

defaults

sysfs

/sys

sysfs

defaults

devpts

/dev/pts devpts defaults

tmpfs

/run

tmpfs

defaults

EOF

Archivo etc/init.d/rcS:
cat > etc/init.d/rcS << "EOF"
#!/bin/sh
KMAP=es
echo "Procesando /etc/init.d/rcS... "
/bin/mount proc
/bin/mount -a
/bin/hostname -F /etc/hostname
/sbin/ifconfig eth0 127.0.0.1
/sbin/loadkmap < /usr/share/kmap/\$KMAP.kmap

EOF
chmod a+x etc/init.d/rcS

Archivo etc/inittab:
cat > etc/inittab << "EOF"
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
tty2::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r
::ctrlaltdel:/sbin/reboot
EOF

Archivos de red:
echo "127.0.0.1
localhost" > etc/hosts
echo "FisNUX" > etc/hostname
echo "order hosts,bind" > etc/host.conf
echo "multi on" >> etc/host.conf

Archivo etc/issue & motd:


echo "Linux GNU/Linux Minimum \r \l" > etc/issue
echo "Bienvenido a mini linux" > etc/motd

Archivo etc/nsswitch.conf:
cat > etc/nsswitch.conf << "EOF"
# Begin /etc/nsswitch.conf
passwd: files

group: files
shadow: files
hosts: files dns
networks: files
protocols: files
services: files
ethers: files
rpc: files
EOF

Archivo etc/securetty:
cat > etc/securetty << "EOF"
# /etc/securetty: List of terminals on which root is allowed
to login.
console
# For people with serial port consoles
ttyS0
# Standard consoles
tty1
tty2
tty3
tty4
tty5
tty6
tty7
EOF

Archivo etc/shells:
cat > etc/shells << "EOF"
# /etc/shells: valid login shells.
/bin/sh
/bin/ash
/bin/hush
EOF

Archivo etc/busybox.conf:
cat > etc/busybox.conf << "EOF"
[SUID]
# Allow command to be run by anyone.
su = ssx root.root
passwd = ssx root.root
loadkmap = ssx root.root
mount = ssx root.root
reboot = ssx root.root
halt = ssx root.root
EOF
chmod 600 etc/busybox.conf

Archivo etc/profile:
cat > etc/profile << "EOF"
# /etc/profile: system -wide .profile file for the Bourne
shells
# Setup a red prompt for root and a green one for users.
PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

LD_LIBRARY_PATH="/usr/lib:/lib"
NORMAL="\[\e[1;37m\]"
RED="\[\e[1;31m\]"
GREEN="\[\e[1;32m\]"
if [ "id -u" -eq 0 ]; then
PS1="$RED\u@\h[$NORMAL\w$RED]# $NORMAL"
else
PS1="$GREEN\u@h[$NORMAL\w$GREEN]\$ $NORMAL"
fi
DISPLAY=:0.0
export PATH LD_LIBRARY_PATH PS1 DISPLAY ignoreeof
umask 022
export TERM=xterm
export LANG=es_PE
export LC_ALL=es_PE
EOF

Archivo usuarios y grupos:


echo "root:x:0:0:root:/root:/bin/sh" > etc/passwd
echo "root::13525:0:99999:7:::" > etc/shadow
echo "root:x:0:" > etc/group
echo "root:*::" > etc/gshadow
chmod 640 etc/shadow
chmod 640 etc/gshadow

Archivo etc/mtab:
touch etc/mtab

7. Copiando dispositivos a la mini distribucin:


cp -dpRv /dev/console dev/
cp -dpRv /dev/tty dev/
cp -dpRv /dev/tty[0-6] dev/
cp -dpRv /dev/null dev/
cp -dpRv /dev/zero dev/
cp -dpRv /dev/ram0 dev/
cp -dpRv /dev/mem dev/
cp -dpRv /dev/shm dev/

8. COMPILACIN DEL KERNEL Y DE BUSYBOX

Ingresamos al directorio /fuentes


cd fuentes
wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux
-2.6.30.6.tar.bz2
wget http://busybox.net/downloads/busybox -1.12.0.tar.bz2
wget http://www.kernel.org/pub/linux/utils/boot/syslinux/
syslinux -4.05.tar.bz2

Compilacin de Busybox
tar jxvf busybox -1.12.0.tar.bz2
cd busybox -1.12.0
cp -v ../busybox -1.12.0.config .config
make oldconfig

(# make menuconfig) opcional


make
make install
chmod 4755 _install/bin/busybox

Copiando los archivos generados a la mini distribucin:


cp -av _install/* ../../rootfs
cd ../../rootfs
rm linuxrc
ln -s bin/busybox init

Compilacin del Kernel Linux:


tar -zxvf linux -2.6.30.6.tar.gz
cd linux -2.6.38
make mrproper
cp -v ../src/linux -2.6.30.6-fisnux.config .config
make oldconfig
#make menuconfig
make
make INSTALL_MOD_PATH=\$PWD/_pkg modules_install

Copiando el archivos generado del Kernel


cp -v arch/i386/boot/bzImage live/boot

Configuracin del teclado:


tar jxvf kmap.tar.bz2
cp -v kmap/* \$fs/usr/share/kmap

Crear enlace simblico a etc/mtab:


chroot . /bin/ash
/# ln -s /proc/mounts /etc/mtab
/# exit

9. CREANDO EL SISTEMA DE ARRANQUE PARA LA MINI DISTRIBUCIN

Crear el archivo isolinux.cfg:


Para la creacin del sistema Live CD copiar los archivos en el directorio
live/boot/isolinux/:
isolinux.bin, ifmem.c32, reboot.c32, vesamenu.c32, boot.cat,
splash.jpg, acerca.txt y ayuda.txt

Crear el archivo isolinux.cfg con los siguientes parmetros:


UI vesamenu.c32
DEFAULT fisnux
PROMPT 0
MENU Menu Principal
MENU BACKGROUND splash.jpg
TIMEOUT 60
MENU WIDTH 78
MENU MARGIN 4
MENU ROWS 5
MENU VSHIFT 10
MENU TIMEOUTROW 13
MENU TABMSGROW 11

MENU CMDLINEROW 11
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29
MENU COLOR border
30;44
#40ffffff #a0000000 std
MENU COLOR title
1;36;44 #9033ccff #a0000000 std
MENU COLOR sel
7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel
37;44
#50ffffff #a0000000 std
MENU COLOR help
37;40
#c0ffffff #a0000000 std
MENU COLOR timeout_msg
37;40
#80ffffff #00000000 std
MENU COLOR timeout
1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07
37;40
#90ffffff #a0000000 std
MENU COLOR tabmsg

31;40
#30ffffff #00000000 std
LABEL fisnux
MENU LABEL FisNUX GNU/Linux Live Alfa v0.1
KERNEL /boot/bzImage
append initrd=/boot/rootfs.gz rw root=/dev/null vga=
normal autologin
LABEL md5sum
MENU LABEL Check media
COM32 md5sum.c32
append /md5sum
LABEL help
MENU LABEL Ayuda
MENU HELP ayuda.txt
LABEL reboot
MENU LABEL Reiniciar sistema
COM32 reboot.c32
F1 ayuda.txt
F2 acerca.txt

10. Generando initramfs:


cd rootfs
find . -print | cpio -o -H newc | gzip -9 > ../live/boot/
rootfs.gz
cd ..

11. GENERANDO Y EJECUTANDO LA MINI DISTRIBUCIN LIVE CD:


genisoimage -R -o fisnux.iso -b \
boot/isolinux/isolinux.bin \
-no-emul-boot -boot-load-size 4 -V "FisNUX" \
-input-charset iso8859 -1 -boot-info-table live

Figura 17: Primeras pruebas de la mini distribucin.

12. INSTALACIN DE PROGRAMAS


En esta seccin instalamos solo determinados programas para la mini-distribucin,
nota a tomar mientras ms programas instalemos en la mini distribucin, ms espacio nos
ocupar en el archivo imagen.

Figura 18: Programas instalados en la mini distribucin.

Asignar variable de entorno:


export fs=$PWD/rootfs

Revisar la variable de entorno.


echo $fs

Paquete Glibc:
Configuracin y compilacin.
cd glibc -2.11
mkdir ../glibc-build
cd ../glibc-build
echo "CFLAGS += -march=i486 -mtune=native -O3 -pipe" >
configparms
..//configure \
--prefix=/usr \
--infodir=/usr/share/info \
--disable -profile \
--enable -add-ons \
--enable -kernel=2.6.18 \
--libexecdir=/usr/lib/glib
make &&
make

install_root=\$(cd

../glibc

-2.11.1

pwd)/_pkg

install

bc-1.06:
Descarga:
http://ftp.gnu.org/gnu/bc/bc-1.06.tar.gz

Configuracin y compilacin:
sed -i /PROTO.*readline/d bc/scan.l &&
sed -i /flex -I8/s/8// configure &&
sed -i /stdlib/a #include <string.h> lib/number.c &&

sed -i s/program.*save/static &/ bc/load.c &&


./configure --prefix=/usr --with-readline &&
make

Ejecutamos un test:
echo "quit" | ./bc/bc -l Test/checklib.b

Ahora como usuario root, procedemos a instalar en el directorio _pkg, para no


perjudicar al sistema anfitrin:
make DESTDIR=$PWD/_pkg install
strip -vs _pkg/usr/bin/*
cp -avi _pkg/usr/bin/bc $fs/usr/bin

Zlib-1.2.3:
Descarga:
http://zlib.net/fossils/zlib -1.2.3.1.tar.gz

Compilacin y configuracin
tar xjfv zlib -1.2.3.1.tar.bz2
cd zlib -1.2.3
./configure --shared --prefix=/usr
make
strip -vs libz.so*
cp -av libz.so* \$fs/usr/lib

e2fsprogs-1.39:
Descarga:
http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs
1.39.tar.gz?download

Configuracin y compilacin
tar xzf e2fsprogs -1.39.tar.gz
cd e2fsprogs -1.39
./configure --prefix=/usr --with-root-prefix="" \
--enable -elf-shlibs --disable -evms --sysconfdir=/etc \
--infodir=/usr/share/info --mandir=/usr/share/man
make
make DESTDIR=$PWD/_pkg install
strip -vs _pkg/sbin/*
strip -vs _pkg/lib/*
strip -vs _pkg/usr/bin/*
strip -vs _pkg/usr/sbin/*
strip -vs _pkg/usr/lib/*
cp -iv _pkg/sbin/{badblocks ,blkid,dumpe2fs ,e2fsck ,e2image}
$fs
/sbin
cp -iv _pkg/sbin/{e2label ,findfs ,logsave ,mke2fs ,mkfs.*}
$fs/
sbin
cp -iv _pkg/sbin/{resize2fs ,tune2fs} $fs/sbin
cp -av _pkg/lib/* $fs/lib
rm -rf $fs/lib/libss*
cp -av _pkg/etc/* $fs/etc
cp -av _pkg/usr/bin/* $fs/usr/bin
cp -av _pkg/usr/sbin/* $fs/usr/sbin

cp -adv _pkg/usr/lib/*.so $fs/usr/lib


rm -rf $fs/usr/lib/libss*

lighttpd-1.4.18:
Descarga:
http://download.lighttpd.net/lighttpd/releases

1.4.x/lighttpd-1.4.18.tar.gz

Configuracin y compilacin:
tar xzf lighttpd -1.4.18.tar.gz
cd lighttpd -1.4.18
./configure -enable -shared --disable -ipv6 --prefix=/usr \
--libdir=/usr/lib/lighttpd --mandir=/usr/share/man
make
make DESTDIR=$PWD/_pkg install
strip -vs _pkg/usr/bin/*
strip -vs _pkg/usr/sbin/*
strip -vs _pkg/usr/lib/lighttpd/*
cp _pkg/usr/bin/* $fs/usr/bin
cp _pkg/usr/sbin/* $fs/usr/sbin
mkdir $fs/usr/lib/lighttpd
Modules :
cp -v _pkg/usr/lib/lighttpd/mod_access.so $fs/usr/lib/lighttpd

cp -v _pkg/usr/lib/lighttpd/mod_accesslog.so $fs/usr/lib/
lighttpd
cp -v _pkg/usr/lib/lighttpd/mod_alias.so $fs/usr/lib/lighttpd
cp -v _pkg/usr/lib/lighttpd/mod_auth.so $fs/usr/lib/lighttpd
cp -v _pkg/usr/lib/lighttpd/mod_cgi.so $fs/usr/lib/lighttpd
cp -v _pkg/usr/lib/lighttpd/mod_compress.so $fs/usr/lib/
lighttpd
cp -v _pkg/usr/lib/lighttpd/mod_rewrite.so $fs/usr/lib/
lighttpd
cp -v _pkg/usr/lib/lighttpd/mod_status.so $fs/usr/lib/lighttpd
cp -v _pkg/usr/lib/lighttpd/mod_userdir.so $fs/usr/lib/
lighttpd

Configuracin en el directorio var/www y crear el archivo etc/lighttpd:


# /etc/lighttpd/lighttpd.conf.
# Web server configuration file.
# Configuration du serveur web.
#
# Documentation: /usr/share/doc/slitaz/user-guide/web-server.
html
#
http://trac.lighttpd.net/trac/wiki#
Documentation
# Root documents.
server.document -root = "/var/www/"
# Port, default for HTTP traffic is 80.

server.port = 80
# Server , user and group name.
server.username = "www"
server.groupname = "www"
# Server header.
server.tag = "lighttpd/1.4.15 (FisNUX GNU/Linux)"
# Directory listings.
dir-listing.activate = "enable"
dir-listing.encoding
= "iso8859 -1"
# File to open by default.
index-file.names = ( "index.html","index.pl, index.cgi" )
# Log messages.
accesslog.filename = "/var/log/lighttpd/access.log"
server.errorlog
= "/var/log/lighttpd/error.log"
# Server pid file
server.pid-file = "/var/run/lighttpd.pid"
# MIME type.
mimetype.assign = (
".html" => "text/html",
".txt" => "text/plain",
".js" => "text/javascript",
".css" => "text/css",
".xml" => "text/xml",

".log" => "text/plain",


".conf" => "text/plain",
".pdf" => "application/pdf",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".png" => "image/png",
".gif" => "image/gif",
".xbm" => "image/x-xbitmap",
".xpm" => "image/x-xpixmap",
".gz" => "application/x-gzip",
".tar.gz" => "application/x-tgz",
".tazpkg" => "application/x-tazpkg",
".torrent" => "application/x-bittorrent",
".ogg" => "application/ogg",
)
# Deny access the file-extensions.
url.access -deny = ( "~", ".inc" )
# Modules to load.
# See /usr/lib/lighttpd for all available modules.
server.modules = (
"mod_access",
"mod_userdir",
"mod_alias",
"mod_auth",
"mod_status",

"mod_accesslog",
"mod_cgi",
#"mod_fastcgi",
#"mod_compress",
#"mod_rewrite",
#"mod_simple_vhost",
)
# User directory module.
userdir.path = "Public"
userdir.exclude -user = ("root")
# Status module.
status.status -url = "/server -status"
# Compress module
#compress.cache-dir
= "/var/cache/lighttpd/compress/"
#compress.filetype
= ("text/plain", "text/html")
# Alias urls for localhost.
$HTTP["remoteip"] =~ "127.0.0.1" {
alias.url += ("/doc/" => "/usr/share/doc/"
)
}
# CGI module.
$HTTP["url"] =~ "/cgi-bin/" {
cgi.assign = (

".sh" => "/bin/sh",


".cgi" => "/bin/sh"
)
}
# Virtual hosts.
# If you want name-based virtual hosting load mod_simple_vhost
.
# You can uncomment the line below to manage virtual hosting
# in a seperate file.
#include /etc/lighttpd/vhost.conf
# Example.com
#$HTTP["host"] =~ "(^|\.)example\.com$" {
#server.document -root = "/var/www/vhost/exemple.com/html"
#server.errorlog = "/var/log/lighttpd/example -error.log"
#accesslog.filename = "/var/log/lighttpd/example -access.log"
#}

Crear el directorio donde contendr los logs del sistema:


mkdir $fs/var/log/lighttpd

Crear usuarios y grupos:


Vamos a aadir un usuario y un grupo para el servidor web. El usuario por defecto en
fisnux es www, pero se puede cambiar esto en el archivo lighttpd.conf archivo de
configuracin.
echo "www:x:80:80:www:/var/www:/bin/sh" >> $fs/etc/passwd

echo "www:*:13509:0:99999:7:::" >> $fs/etc/shadow


echo "www:*:13509:0:99999:7:::" >> $fs/etc/shadow chroot $fs /bin/ash
/# addgroup -g 80 www
/# chown www.www /var/log/lighttpd
exit

cpio-2.8:
Descarga:
http://ftp.gnu.org/gnu/cpio/cpio -2.8.tar.gz

Configuracin y compilacin:
tar xzf cpio -2.8.tar.gz
cd cpio -2.8
./configure --prefix=/usr --bindir=/bin \
--libexecdir=/usr/bin
--mandir=/usr/share/man \
--infodir=/usr/share/info
Make
make DESTDIR=$PWD/_pkg install
strip -v _pkg/bin/*
strip -v _pkg/usr/bin/*
cp -av _pkg/bin/* $fs/bin
cp -av _pkg/usr/bin/* $fs/usr/bin
cp -av _pkg/usr/share/locale/es $fs/usr/share/locale

module-init-tools-3.2:

Descarga:
http://ftp.kernel.org/pub/linux/utils/kernel/module

-init-

tools -3.2.tar.bz2

Configuracin y compilacin:
tar xvjf module -init-tools -3.2.tar.bz2
cd module -init-tools -3.2
./configure --enable -zlib --prefix=/usr --sbindir=/sbin -bindir=/bin \
--sysconfdir=/etc --infodir=/usr/share/info
--mandir=/usr/
share/man
make
make DESTDIR=$PWD/_pkg install
strip -v _pkg/sbin/{depmod ,insmod ,modinfo ,modprobe ,rmmod}
strip -v _pkg/bin/lsmod
cp -iv _pkg/sbin/{depmod ,insmod ,modinfo ,modprobe ,rmmod}
$fs/
sbin
cp -iv _pkg/bin/lsmod $fs/bin

Copiamos los mdulos del Kernel compilados anteriormente:


cp -a linux -2.6.38/_pkg/lib/* $fs/lib

Comprimimos los mdulos:


Se comprime los mdulos para la reduccin de su tamao, estamos desarrollando un
sistema minimalista y es primordial no ocupar demasiado espacio.

cd lib/modules/2.6.38-fisnux
find . -name "*.ko" -exec gzip {} \;
sed s/\.ko/.ko.gz/g modules.dep > tmp.dep
rm modules.dep
mv tmp.dep modules.dep

13.

INSTALACIN DE NCURSES Y LIBRERIAS


Ncurses-5.6
Descarga
http://ftp.gnu.org/pub/gnu/ncurses/ncurses -5.6.tar.gz

Configuracin y compilacin
tar xzf ncurses -5.6.tar.gz
cd ncurses -5.6
./configure --prefix=/usr \
--libdir=/lib --sysconfdir=/etc \
--infodir=/usr/share/info --mandir=/usr/share/man \
--with-shared --without -debug --without -ada
make
make DESTDIR=$PWD/_pkg install
strip -v _pkg/lib/*
strip -v _pkg/usr/bin/*
cp -a _pkg/lib/libncurses.so* $fs/lib
cp -ia _pkg/usr/bin/{clear,ncurses5 -config ,tset,reset} \
$fs/usr/bin

Copiamos los archivos terminfo:


mkdir -v $fs/usr/share/terminfo
mkdir -v $fs/usr/share/terminfo/{a,l,r,v,x}
cp -v _pkg/usr/share/terminfo/a/ansi $fs/usr/share/terminfo/a
cp -v _pkg/usr/share/terminfo/l/linux $fs/usr/share/terminfo/l
cp -v _pkg/usr/share/terminfo/r/rxvt $fs/usr/share/terminfo/r
cp -v _pkg/usr/share/terminfo/x/{xterm,xterm-color,xterm-new,
xterm-vt220} \
$fs/usr/share/terminfo/x
cp -v _pkg/usr/share/terminfo/v/{vt100,vt102*} $fs/usr/share/
terminfo/v
cp -a _pkg/usr/share/tabset \$fs/usr/share

Editor nano:
Descarga:
http://www.nano-editor.org/dist/v2.0/nano -2.0.7.tar.gz

Configuracin e instalacin
tar xzf nano -2.0.7.tar.gz
cd nano -2.0.7
./configure --prefix=/usr --sysconfdir=/etc/nano \
--enable -color --enable -multibuffer --enable -nanorc &&
make
make DESTDIR=$PWD/_pkg install
install -v -m644 -D doc/nanorc.sample /etc/nano/nanorc.sample

&&
install -v -m755 -d /usr/share/doc/nano -2.0.7 &&
install -v -m644 doc/{,man/,texinfo/}*.html /usr/share/doc/
nano -2.0.7
strip -v _pkg/usr/bin/nano
cp -a _pkg/usr/bin/* \$fs/usr/bin
cp -a _pkg/usr/share/nano \$fs/usr/share

Dialog-1.1:
Descarga
http://invisible-island.net/datafiles/release/dialog.tar.gz

Configuracin y compilacin:
tar xvzf dialog.tar.gz
cd dialog -1.1-20070409
./configure --enable -nls --with-ncurses --prefix=/usr \
--sysconfdir=/etc --mandir=/usr/share/man
make
make DESTDIR=\$PWD/_pkg install
strip -v _pkg/usr/bin/dialog
cp -v _pkg/usr/bin/dialog \$fs/usr/bin

14. INSTALACION DE LOCALES

Instalacin de locale:
Crear los directorios siguientes:
mkdir -p rootfs/usr/share/{i18n,locale}

mkdir -p rootfs/usr/lib/{locale ,gconv}


mkdir -p rootfs/usr/share/i18n/{charmaps ,locales}
mkdir -p rootfs/usr/share/locale/fr/LC_MESSAGES

Copiar los idiomas respectivos es_PE, es_ES a /usr/share/i18n/locales:


cp -a /usr/share/i18n/locales/{es_PE,es_ES,i18n,iso14651_t1} \
rootfs/usr/share/i18n/locales

Copiar los archivos translit_* files a /usr/share/i18n/locales:


cp -a /usr/share/i18n/locales/{translit_circle ,
translit_cjk_compat} \
rootfs/usr/share/i18n/locales
cp -a /usr/share/i18n/locales/{translit_combining ,
translit_compat} \
rootfs/usr/share/i18n/locales
cp

-a

/usr/share/i18n/locales/{translit_font

,translit_fraction
} \
rootfs/usr/share/i18n/locales
cp -a /usr/share/i18n/locales/{translit_narrow ,
translit_neutral} \
rootfs/usr/share/i18n/locales
cp -a /usr/share/i18n/locales/{translit_small ,translit_wide}
\
rootfs/usr/share/i18n/locales

Copiar los charmaps a /usr/share/i18n/charmaps:

cp -a /usr/share/i18n/charmaps/ANSI_X3.* rootfs/usr/share/i18n
/charmaps
cp -a /usr/share/i18n/charmaps/{ISO -8859-1.gz,ISO -8859-2.gz,
ISO -8859-15.gz} \
rootfs/usr/share/i18n/charmaps

Copiar las librerias gconv a /usr/lib/gconv:


cp -v/usr/lib/gconv/{ANSI_X3.110.so,gconv-modules ,UNICODE.so}
\
rootfs/usr/lib/gconv
cp -v /usr/lib/gconv/{ISO8859 -1.so,ISO8859 -2.so,ISO8859 15.so}
\
rootfs/usr/lib/gconv
strip -v rootfs/usr/lib/gconv/*.so

Copiamos la utilidad locale del sistema anfitrin a nuestra mini distribucin:


cp -v /usr/bin/locale rootfs/usr/bin

Ahora generamos el archivo /usr/lib/locale/locale-archive:


cp /usr/bin/localedef rootfs/usr/bin
chroot rootfs /bin/ash
# localedef -i es_PE -f ISO -8859-1 es_PE
# localedef -i es_ES -f ISO -8859-1 es_ES
# exit

Configuracin de locales:
Insertamos el idioma espaol por defecto en la mini distribucin
export LANG=es_PE
export LC_ALL=es_PE

15. INSTALACIN DE X WINDOW(entorno grfico)

Expat-2.0
Configuracin y compilacin:
tar xzf expat -2.0.0.tar.gz
cd expat -2.0.0
./configure --sysconfdir=/etc --prefix=/usr \
--mandir=/usr/share/man
make &&
make DESTDIR=$PWD/_pkg install
strip -v _pkg/usr/lib/*
strip -v _pkg/usr/bin/*
cd _pkg/usr/lib
ln -s libexpat.so.1.5.0 libexpat.so.0
cp -av *.so* $fs/usr/lib
cd ..
cp -av bin/* \$fs/usr/bin
cd ../../..

Freetype-2.3.1
tar xjf freetype -2.3.1.tar.bz2
cd freetype -2.3.1
./configure --sysconfdir=/etc --prefix=/usr \
--mandir=/usr/share/man
make &&
make DESTDIR=\$PWD/_pkg install
strip -vs _pkg/usr/lib/*
cp -av _pkg/usr/bin/* $fs/usr/bin
cp -av _pkg/usr/lib/*.so* $fs/usr/lib

Fontconfig-2.4.2
Configuracin y compilacin:
tar xzf fontconfig -2.4.2.tar.gz
cd fontconfig -2.4.2
./configure --sysconfdir=/etc --prefix=/usr \
--mandir=/usr/share/man --localstatedir=/var
make &&
make DESTDIR=$PWD/_pkg install
strip -v _pkg/usr/bin/*
strip -v _pkg/usr/lib/*
cp -av _pkg/usr/bin/* $fs/usr/bin
cp -av _pkg/usr/lib/*.so* $fs/usr/lib
cp -av _pkg/etc $fs
cp -av _pkg/var \$fs

XServer- XVesa
Configuracin y compilacin:
tar xzf Xtinyx.tgz
cp -v bin/Xvesa $fs/usr/bin
strip $fs/usr/bin/Xvesa
chmod 4711 $fs/usr/bin/Xvesa

Configurar archivo rgb.txt:


mkdir -p $fs/usr/share/X11
cp -v /usr/share/X11/rgb.txt $fs/usr/share/X11
chroot $fs /bin/ash
/#mkdir -p /usr/X11R6/lib/X11/
/#ln -s /usr/share/X11/rgb.txt /usr/X11R6/lib/X11/rgb.txt
/#exit

Configurar fonts:
tar xzf Xfnts.tgz
mkdir -pv $fs/usr/X11R6/lib/X11/fonts
mkdir -pv $fs/usr/share/fonts/truetype

Copiando fuentes:
cp -av lib/X11/fonts/* $fs/usr/X11R6/lib/X11/fonts
cp

-av

/usr/share/fonts/truetype/ttf-bitstream

$fs/usr/share/
fonts/truetype

Regenerar archivo Font.dir:

-vera

mkfontdir $fs/usr/X11R6/lib/X11/fonts/75dpi

Copiar archivos faltantes:


cp -v /usr/lib/libz.so.1 $fs/usr/lib/libz.so.1

Reconstruyendo la cache fuente:


chroot \$fs /bin/ash
/# fc-cache -v
/# fc-list
/# exit

Copiando archivos de localizacin:


mkdir -pv \$fs/usr/share/X11/locale
cp -av /usr/share/X11/locale/{C,iso8859 -1,iso8859 -15,iso8859
-2} \
$fs/usr/share/X11/locale

Xterm-223
tar xzf xterm -223.tgz
cd xterm -223
./configure --prefix=/usr --sysconfdir=/etc \
--mandir=/usr/share/man --localstatedir=/var \
--with-app-defaults=/usr/share/X11/app-defaults \
--build=i486-pc-linux-gnu --host=i486-pc-linux-gnu
make
make DESTDIR=$PWD/_pkg install
strip _pkg/usr/bin/*
cp -v _pkg/usr/bin/* $fs/usr/bin

cp -av _pkg/usr/share/X11/* \$fs/usr/share/X11

Libpng-1.2.18:
tar xjf libpng -1.2.18.tar.bz2
cd libpng -1.2.18
./configure --enable -shared --prefix=/usr \
--mandir=/usr/share/man
make
make DESTDIR=$PWD/_pkg install
strip _pkg/usr/lib/*.so*
cp -av _pkg/usr/lib/libpng12.so* $fs/usr/lib
cp -av _pkg/usr/bin/libpng12* \$fs/usr/bin

Instalacin del administrador de escritorio JWM(Joes Window Manager):


tar xjf jwm -2.0.tar.bz2
cd jwm -2.0
./configure --prefix=/usr --mandir=/usr/share/man \
--sysconfdir=/etc/jwm --disable -xinerama
make
strip src/jwm
cp -v src/jwm $fs/usr/bin
mkdir $fs/etc/jwm
cp -v example.jwmrc \$fs/etc/jwm/system.jwmrc

Generando script para la interfaz:


Nano startx
#!/bin/sh
Xvesa -ac -shadow -screen 800x600x24 & exec jwm

Dar permiso de ejecucion:


chmod +x startx

Libjpeg-6b
Configuracin y compilacin:
tar xzf jpegsrc.v6b.tar.gz
cd jpeg -6b
./configure --enable -shared --prefix=/usr \
--mandir=/usr/share/man
make
strip .libs/*
cp -av .libs/*.so* $fs/usr/lib
cp -v .libs/{cjpeg,djpeg,jpegtran} \$fs/usr/bin

Tiff-3.8.2
Configuracin y compilacin:
tar xzf tiff -3.8.2.tar.gz
cd tiff -3.8.2
./configure
--prefix=/usr --mandir=/usr/share/man
make
make DESTDIR=\$PWD/_pkg install
strip _pkg/usr/bin/*
strip _pkg/usr/lib/*.so*
cp -av _pkg/usr/lib/*.so* \$fs/usr/lib

Generar nuevamente la ISO


genisoimage -R -o fisnux.iso -b \
boot/isolinux/isolinux.bin \
-no-emul-boot -boot-load-size 4 -V "FisNUX" \
-input-charset iso8859 -1 -boot-info-table live

Potrebbero piacerti anche