Uso del Software Libre para el Desarrollo de Aplicaciones

Anuncio
Uso del Software Libre para el Desarrollo de Aplicaciones
Everth H. Rocha Trejo 1 y Gabriel Gerónimo Castillo 1
1
Universidad Tecnológica de la Mixteca, Carretera a Acatlima Km. 2.5,
Huajuapan de León, Oaxaca. México
{everth, gcgero}@nuyoo.utm.mx
Abstract
El presente trabajo tiene como propósito mostrar el
uso del software libre para el desarrollo de
aplicaciones en el ámbito académico. Se muestran
algunas aplicaciones desarrolladas en materias
universitarias y se
menciona el software libre
utilizado para su implementación.
1. Introducción
En el ámbito académico la generación de aplicaciones
de código abierto y el uso de software libre para su
desarrollo son adecuados para mejorar el aprendizaje
en los alumnos. La generación de aplicaciones
mediante el uso de software libre brinda al alumno y al
profesor un mayor apoyo para realizar proyectos de
software con el conocimiento de lenguajes estándar,
utilizando computadoras de bajo costo y sin necesidad
de instalaciones complicadas y complejas.
En las siguientes secciones se muestran aplicaciones
desarrolladas con software libre en el área de
compiladores, sistemas operativos y redes de
computadoras; algunos de estos programas son parte de
proyectos terminales o en etapa terminal.
2. Desarrollo de Compiladores
La construcción de un compilador es una tarea que
implica cierta complejidad, ya que este tipo de
aplicación requiere cuidado y precisión, existen
diversos métodos, técnicas y herramientas que apoyan
el desarrollo de las diferentes fases de un compilador.
En la materia denominada Compiladores se han
generado compiladores utilizando métodos y técnicas
tradicionales, pero se han logrado mejores resultados al
aplicar herramientas que colaboren en su construcción,
particularmente se han utilizado herramientas para las
primeras fases de desarrollo.
Para la fase del análisis léxico se utiliza flex [1]. Flex
es una herramienta para generar programas capaces de
reconocer patrones de texto. Su facilidad de uso radica
en que el usuario sólo necesita establecer las reglas de
búsqueda sin necesidad de escribir un programa, ya
que éste genera el programa en C que busca esos
patrones.
Para la fase del análisis sintáctico se utiliza bison [2],
éste es un generador de analizadores sintácticos que
usa gramáticas independientes del contexto y genera
código C; en el código C añadido en el cuerpo de un
programa bison se puede llevar a cabo la traducción
dirigida por la sintaxis y la revisión de tipos que
integra la fase del análisis semántico.
La inclusión de estas herramientas en el proceso de
desarrollo de un proyecto de software de este tipo, ha
ayudado al alumno a emplear la teoría de expresiones
regulares y a construir gramáticas de una manera más
fácil favoreciendo con esto las fases del modelo de
prototipo para el ciclo de vida que se lleva a cabo para
la obtención del compilador.
A continuación se muestra en la figura 1 la interfaz del
compilador que permite traducir instrucciones que
simulan acciones en una casa inteligente. La traducción
obtenida genera un código de máquina virtual que es
ejecutado por la máquina virtual construida para este
fin, la figura 2 muestra la interfaz de la máquina
virtual.
es Linux. Se realizan prácticas para comprender la
creación de procesos, concurrencia, administración de
memoria, administración de archivos, y comunicación
en red, para esto nos valemos de los lenguajes TCL/TK
[3] y C. Una de las prácticas consiste en la creación de
un explorador de archivos que permita administrar los
archivos de forma fácil y amigable. Para el desarrollo
del explorador (figura 3) se explotan las bibliotecas
que permiten manipular el superbloque, los inodos, los
archivos y los directorios.
4. Desarrollo de aplicaciones para redes
de computadoras
Figura 1. Editor de instrucciones para una casa
inteligente.
Uno de los objetivos en la materia de redes es dar a
conocer al alumno los formatos de los paquetes que
fluyen en una red IP, para esto se construyo un
analizador de paquetes que presenta en forma clara y
legible la información de los encabezados IP. Existen
varios software que realizan esto, como tcpdump,
snoop, ethereal, etc., pero la meta es mejorar y ampliar
las características del software desarrollado a lo largo
de los diferentes cursos que se imparten, tanto de
Sistemas Operativos como los de Redes de
computadoras. El analizador se está implementando
con la ayuda de las siguientes herramientas: TCL/TK,
BLT [4], la biblioteca libpcap y sockets en C. Lo que
se tiene hasta el momento es el análisis de los paquetes
IP (TCP, UDP, ICMP), ARP, RARP, y se incorporó un
módulo para el análisis de paquetes IPv6, donde se
analiza el encabezado IPv6, e ICMPv6.
Figura 2. Máquina virtual del compilador casa
inteligente.
3. Desarrollo de aplicaciones en Sistemas
Operativos
Si el alumno se encarga de practicar y programar
algunos módulos o herramientas incorporadas en un
Sistema Operativo, se observa que se hace más
interesante para las dos partes involucradas, alumno –
profesor, el desarrollo del curso. El Sistema Operativo
que se explota para el desarrollo del curso en la UTM
Figura 3. Explorador de Linux.
En la figura 4 y 5 se muestran parte del analizador de
paquetes desarrollado.
Lo que se observa en los alumnos al programar y usar
este software es un mayor entendimiento en la forma
de encapsular y desencapsular los diferentes
encabezados que se anexan a la información que se
transmite por la red, y comprenden el uso de los
diferentes campos en los encabezados.
Debido a que no se cuenta con un router en cada
laboratorio de redes, el aprendizaje y la aplicación de
las listas de acceso se hacia muy teórico, por esta razón
se empezó la construcción de un analizador sintáctico
para las listas de acceso estándar y extendidas, el cual
además de analizar la correcta escritura de las listas,
brinda al usuario la facilidad de escritura de dichas
listas por medio de su interfaz. Para llevar a cabo la
construcción del analizador sintáctico se utilizó la
herramienta flex para realizar la fase de análisis léxico
y la herramienta bison para la fase de análisis
sintáctico. Este módulo además de guiar al alumno en
la escritura de las reglas de acceso, almacena en un
archivo
las
definiciones
establecidas,
que
posteriormente son revisadas, indicándole la ocurrencia
de errores, y de esta manera evitar fallos antes del
envío de las reglas al router. La interfaz para la
creación de las listas de acceso se muestra en la figura
6 y 7, dicha interfaz fue diseñada utilizando BLT.
Figura 5. Interfaz del módulo captura paquetes IPv6
(fase de presentación).
Figura 6. Pantalla de creación de listas de acceso
estándar.
Figura 4. Analizador de paquetes IPv4.
[4] M. Harrison, “ TCL/TK Tools”, 1a. Ed, O’Reilly, Agosto
1997, pp. 265-342.
Figura 7. Pantalla de creación de listas de acceso
extendidas.
5. Conclusiones
El uso de software libre contribuye al desarrollo de
aplicaciones sin la necesidad de adquirir software
comercial que en muchas ocasiones no está al alcance
de las instituciones universitarias, permite además
obtener aplicaciones que tienen utilidad y que se
pueden mejorar a través de los distintos cursos. De
esta forma el objetivo que se persigue es construir más
aplicaciones útiles para fomentar su uso.
El software libre despierta en el alumno inquietud de
conocer su implementación, y tomarlo como base para
desarrollar aplicaciones no sólo para cubrir los créditos
del curso, si no para realizar mejores desarrollos por su
cuenta.
6. Referencias
[1] V. Paxson, “Manual de GNU Flex. Un generador de
analizadores léxicos rápidos. “, Universidad de California,
Abril 1995. [Online] http://www.linux.org.ni/LuCAS/
LuCAS/Manuales-LuCAS/FLEX/flex-es-2.5.pdf
[2] C. Donnelly, R. Stallman. ¨ Manual de GNU Bison. El
Generador de Analizadores Sintácticos compatible con
YACC.”, Free Software Foundation, Febrero 1999. [online]
http://www.linux.org.ni/LuCAS/LuCAS/Manuales-LuCAS /
BISON/bison-es-1.27.pdf
[3] E. Foster, “ Graphical Applications with Tcl & Tk”,
M&T Books, 2a. Ed , 1997.
Descargar