Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Juliaca Per
2013
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
1.2
1.2.1
1.2.2
1.3
Objetivos .................................................................................................................. 5
MARCO TERICO Y CONCEPTUAL ................................................. 6
2.1
2.1.1
2.2
2.2.1
2.2.3
2.2.4
2.2.6
2.2.7
2.2.9
2.3.1
2.3.2
GNU/Linux ..................................................................................................... 40
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
Busybox .......................................................................................................... 41
2.3.8
Bibliotecas ...................................................................................................... 41
2.3.9
Compilacin .................................................................................................... 42
2.3.10
2.3.11
2.3.12
2.3.13
Live CD ....................................................................................................... 43
2.3.14
2.3.15
2.3.16
Syslinux ....................................................................................................... 43
2.3.17
2.3.18
X-Window ................................................................................................... 44
2.3.19
Xorg............................................................................................................. 44
2.4
2.4.1
2.4.2
BoUML ........................................................................................................... 45
x
3.2
3.3
3.4
3.4.1
3.4.2
3.4.5
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
Baig, R., Aul, F. Sistema operativo GNU/Linux bsico. 1a ed. Barcelona: Eureca
Media; 2003.
( 2 ).
( 5 ).
xv
( 7 ).
principal]. Estados Unidos; 2004 [actualizado 29 jun 2004; citado 30 jun 2013].
Disponible en: http://www.pathname.com/fhs/pub/fhs2.3.pdf.
( 8 ).
( 11 ).
Stallman, R. Free Software, Free Society. 2a ed. Boston: GNU Press; 2010. p. 1-
3.
( 12 ).
1998
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 ).
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 ).
( 5 ).
http://www.pathname.com/fhs/pub/fhs2.3.pdf.
( 8 ).
Spain:
xix
( 11 ).
Stallman, R. Free Software, Free Society. 2da ed. Boston: GNU Press; 2010. p.
1-3.
( 12 ).
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
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
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.
2.1
Marco terico
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
El sistema operativo controla y coordina el uso del hardware entre los diversos programas
de aplicacin de los usuarios.
10
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 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 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
17
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
19
20
Alpha (alpha")
ARM (arm")
HP PA-RISC (hppa")
IA-64 (ia64")
S/390 (s390")
AMD64 (amd64")
21
22
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
/dev
Directorio de dispositivos.
/home
/root
/etc
/lib
/media
/mnt
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
/sbin
/tmp
/usr
/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
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.
26
27
MB.
Figura 5: Administrador de ventanas IceWM con diseo minimalista.
28
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:
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
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
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
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
36
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.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
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
Es sencilla de utilizar.
Puedes generar cdigo para Java, C++ e IDL (y controlar bastante la generacin)
46
METODOLOGA DE LA INVESTIGACIN
3.1
Tipo de investigacin
Nivel de investigacin
47
3.3
Diseo de investigacin
48
3.4
Diseo e implementacin
49
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
2.541
Software
Descripcin
Xubuntu 10.04
Build-essentials
Qemu
Emulador
158
Bibliotecas del sistema.
620
50
51
52
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.
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
58
59
60
61
CONCLUSIONES
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 ).
Chez, T., Mero, J. Prototipo de un software de sistema basado en el Kernel y lfs (Linux
( 5 ).
2011, p. 21-59.
( 8 ).
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
http://old-releases.ubuntu.com/ubuntu/
gutsy
main
http://old-releases.ubuntu.com/ubuntu/
gutsy-updates
main
http://old-releases.ubuntu.com/ubuntu
gutsy-security
main
http://old-releases.ubuntu.com/ubuntu/
gutsy-backports
-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
Archivos fstab:
cat > etc/fstab << "EOF"
#/etc/fstab: information about static file system.
proc
/proc
proc
defaults
sysfs
/sys
sysfs
defaults
devpts
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/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 etc/mtab:
touch etc/mtab
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
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
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 &&
Ejecutamos un test:
echo "quit" | ./bc/bc -l Test/checklib.b
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
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
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",
"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 = (
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
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.
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
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
Instalacin de locale:
Crear los directorios siguientes:
mkdir -p rootfs/usr/share/{i18n,locale}
-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
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
Configuracin de locales:
Insertamos el idioma espaol por defecto en la mini distribucin
export LANG=es_PE
export LC_ALL=es_PE
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 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
-vera
mkfontdir $fs/usr/X11R6/lib/X11/fonts/75dpi
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
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
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