PDF de programación - Jugando con demonios: Análisis del proyecto FreeBSD con la herramienta CVSAnalY

Imágen de pdf Jugando con demonios: Análisis del proyecto FreeBSD con la herramienta CVSAnalY

Jugando con demonios: Análisis del proyecto FreeBSD con la herramienta CVSAnalYgráfica de visualizaciones

Publicado el 1 de Octubre del 2018
498 visualizaciones desde el 1 de Octubre del 2018
246,9 KB
9 paginas
Creado hace 20a (01/01/2004)
Jugando con demonios:

An¶alisis del proyecto FreeBSD con la

herramienta CVSAnalY*

¶Alvaro Navarro, Israel Herraiz y Gregorio Robles

fanavarro,herraiz,[email protected]

Grupo de Sistemas y Comunicaciones (GSyC)

Universidad Rey Juan Carlos

Tulip¶an s/n 28933 M¶ostoles (Madrid), España

Resumen Los sistemas de control de versiones como CVS o Subversion
son unas de las herramientas m¶as utilizadas en proyectos de software
libre. En ellos podemos encontrar, adem¶as del c¶odigo fuente del pro-
yecto, informaci¶on relativa a los desarrolladores, las modiflcaciones que
¶estos llevan a cabo, as¶‡ como las fechas de las mismas. CVSAnalY es
una herramienta que nace con el fln de recopilar toda esa informaci¶on,
extendiendo su estudio al pasado, presente y futuro del proyecto. Gracias
a esta herramienta y a la informaci¶on que proporciona se puede realizar
una mejor gesti¶on del proyecto, as¶‡ como conocer mejor sus caracter¶‡sti-
cas. En este art¶‡culo mostraremos c¶omo realizar un an¶alisis para lo cual
utilizaremos como caso de estudio uno de los sistemas operativos libres,
FreeBSD.

1.

Introducci¶on

Una de las principales caracter¶‡sticas que han hecho del software libre un
verdadero ¶exito es que a pesar de la diversidad geogr¶aflca y cultural de los
miembros de un proyecto cualquiera se ha sido capaz de crear un software no
s¶olo funcional, sino que en muchos casos estable, potente e innovador.

Esto es debido a que el modelo de desarrollo que se sigue en el software
libre tiende a ser lo m¶as abierto posible, en parte para mitigar los efectos de
la dispersi¶on de los desarrolladores que participan en el proyecto y debido a
que de esta forma se permite la colaboraci¶on e integraci¶on de nuevos miembros.
Gracias a este modelo, podemos estudiar los proyectos de software libre, ya que
su informaci¶on est¶a p¶ublicamente disponible en Internet.

Desde el punto de vista tecnol¶ogico, y debido a la dependencia del desarrollo
de software libre de Internet y de las herramientas que sustentan el desarrollo
colaborativo, es muy importante contar con un software que permita conocer el

* Este trabajo ha sido flnanciado en parte por la Comisi¶on Europea, dentro de la
acci¶on coordinada CALIBRE del programa IST, n¶umero de contrato 004337, por
el proyecto CICYT TIN2004-07296 y por la Universidad Rey Juan Carlos con el
proyecto PPR-2004-42.

2

estado de un proyecto y facilite su administraci¶on y gesti¶on. Como miembros
de un proyecto de software libre, es adem¶as interesante conocer de manera ex-
haustiva la evoluci¶on y el desarrollo que ha llevado nuestro proyecto desde su
nacimiento hasta el d¶‡a de hoy, qu¶e personas son las m¶as activas, qu¶e fases del
proyecto han sido las m¶as cr¶‡ticas o incluso conocer qu¶e relaci¶on puede tener un
desarrollador respecto a otro.

El an¶alisis deber¶‡a ser lo menos intrusivo posible con el fln de no interferir
en el desarrollo del proyecto; en otras palabras: el proyecto no deber¶‡a parar ni
verse afectado por ¶el. Por tanto nos serviremos de toda la informaci¶on generada
de forma indirecta por todos los miembros del proyecto, esto es, informaci¶on
relativa al sistema de control de versiones (CVS o Subversion) o al sistema de
tratamiento de bugs (Bugzilla).

En esta ponencia nos centraremos en una herramienta capaz de analizar
un repositorio de un proyecto de software libre, mostrando conclusiones y es-
tad¶‡sticas sobre el mismo. La herramienta en cuesti¶on se llama CVSAnalY y
est¶a disponible1 de forma libre y gratuita bajo las condiciones de la licencia
GPL.

CVSAnalY [1] obtiene la mayor parte de la informaci¶on acerca del proyecto
de software libre de los logs del sistema de control de versiones. Cada vez que
un desarrollador realiza un cambio en el CVS (como por ejemplo, añadir nuevo
c¶odigo al proyecto) se registra el nombre del usuario que realiz¶o el cambio, la
fecha, qu¶e l¶‡neas ha añadido y cu¶ales ha eliminado, qu¶e flcheros ha añadido y/o
etc. Adem¶as, el desarrollador tambi¶en puede añadir un comentario al cambio.

Este art¶‡culo muestra el funcionamiento de CVSAnalY empleando la informa-
ci¶on almacenada en el repositorio de control de versiones del proyecto FreeBSD.
En primer lugar conflguraremos la herramienta. A continuaci¶on se realizar¶a un
acercamiento a la estructura del sistema FreeBSD y por ¶ultimo comentaremos
los resultados obtenidos flnalizando con las conclusiones y trabajos futuros.

2. Conflgurando CVSAnalY

Para emplear CVSAnalY existen una serie de prerrequisitos. A continuaci¶on
mostramos la lista de paquetes necesarios para poder ejecutar el programa2: cvs,
mysql-server, python (versi¶on 2.2 o posterior), python-mysql, python-mysqldb,
python-imaging, gnuplot y ploticus (versi¶on 2.2 o mayor si se quieren obtener
diagramas de tarta en color). Si se quiere hacer uso de las opciones avanzadas,
tambi¶en se ha de tener instalado en la m¶aquina smail (para que el sistema pueda
enviar un correo electr¶onico al usuario una vez haya acabado el an¶alisis), whirlgif
(para la creaci¶on de gifs din¶amicos), rsync (si se quiere tener una copia local del
repositorio CVS), cron (si se pretende actualizar peri¶odicamente los datos) y rcs
(en el caso de emplear rsync).

1 http://cvsanaly.tigris.org
2 En la mayor¶‡a de sistemas los nombres de los paquetes son pr¶acticamente id¶enti-
cos. Por ejemplo, nosotros hemos probado la herramienta en Debian GNU/Linux y
FreeBSD y los paquetes necesarios eran los mismos.

3

Uno de los principales problemas con los que se encuentra el usuario no-
vel la primera vez que utiliza CVSAnalY es la compleja conflguraci¶on de los
par¶ametros. Estos par¶ametros se encuentras almacenamos en un flchero de con-
flguraci¶on denominado config.py. Es por ello que decidimos implementar un
asistente para la creaci¶on din¶amica del flchero de conflguraci¶on, que se encuen-
tra en (cvsanaly wizard.py). El asistente ir¶a preguntando de manera intuitiva la
informaci¶on necesaria para el an¶alisis, tales como la direcci¶on del repositorio, la
lista de m¶odulos que se quieren descargar y analizar (por defecto analizar¶a todos
los m¶odulos), la informaci¶on de acceso al servidor de base de datos, qu¶e an¶alisis
se van a realizar, qu¶e gr¶aflcas se obtienen, d¶onde se guardar¶an los resultados, etc.
Una vez creado el flchero de conflguraci¶on se nos avisar¶a que estamos en con-
diciones de comenzar el proceso mediante la ejecuci¶on de la instrucci¶on python
cvsanaly.py dentro del directorio donde tengamos instalada la herramienta.

Es importante resaltar que en el caso de no especiflcarse alguna opci¶on de
conflguraci¶on imprescindible, la herramienta muestra un men¶u que nos permite
seleccionar el valor adecuado para esa opci¶on. Adem¶as, si el valor es simplemente
verdadero o falso, podemos seleccionar que para cualquier otra incidencia pr¶oxi-
ma se tome un valor por defecto, y no se pregunte al usuario qu¶e valor debe
tomarse para la opci¶on perdida. De este modo evitaremos interrupciones inespe-
radas en la ejecuci¶on del proceso, m¶axime si se trata del an¶alisis de proyectos del
tamaño de FreeBSD como es el caso que nos atañe, ya que es costoso en tiempo.

3. Un caso de uso: FreeBSD

FreeBSD3 es un sistema operativo libre, bajo licencia BSD, disponible para
diferentes arquitecturas. FreeBSD es un derivado de BSD UNIX, exactamente
de la versi¶on de UNIX desarrollada en la Universidad de California en Berkeley.
FreeBSD, a diferencia de otros proyectos libres similares, posee una estructura

organizativa particular [2]:

core team: compuesto por un grupo reducido de commiters y elegidos por
votaci¶on entre todos los desarrolladores. Su principal funci¶on es la de tomar
decisiones sobre el rumbo que debe tomar el proyecto.
commiters: conjunto de desarrolladores con permisos de escritura en los re-
positorios de c¶odigo. Cualquier commiter puede ser elegido para formar parte
del core team.
release engineer: encargados de liberar las versiones cada 6 meses (aproxi-
madamente).
contributors: abarca el conjunto de traductores y mantenedores del ¶arbol de
ports.

Sin duda, una diferencia notable respecto a otros sistemas operativos libres
como GNU/Linux, es la estructura interna del sistema. FreeBSD no es s¶olo un
kernel, es un sistema completo con su kernel, programas y bibliotecas b¶asicas en

3 http://www.freebsd.org

4

espacio de usuario. As¶‡ pues, en FreeBSD no existe el concepto de distribuci¶on
tan com¶un en GNU/Linux; en su lugar tenemos diferentes ramas de desarrollo.
Es importante, por tanto, saber que en el repositorio encontraremos desde el
kernel hasta bibliotecas para criptograf¶‡a.

Una vez que contamos con una visi¶on global del proyecto que pretendemos
analizar, pasamos a la ejecuci¶on de CVSAnalY. En primer lugar, tal y como
hemos indicado en la anterior secci¶on, debemos crear un flchero de conflguraci¶on
compatible con nuestra herramienta. En el estudio que nos atañe, la conflgura-
ci¶on quedar¶‡a del siguiente modo:

conflg repository = :pserver:anoncvs:[email protected]:/home/ncvs
conflg modules = [’.’]
conflg dbname = freebsd
conflg graphs = 1

En la primera l¶‡nea hemos indicado el repositorio del que obtendremos el
c¶odigo fuente, mientras que en la segunda introducimos los m¶odulos que la he-
rramienta analizar¶a, en este caso todos (que viene dado por el punto). La tercera
l¶‡nea pregunta por el nombre de la base de datos donde se almacenar¶an los re-
sultados y en la ¶ultima especiflcamos que queremos que la herramienta genere
gr¶aflcas.

4. Resultados obtenidos

Una vez flnalizado el proceso completo, la herramienta nos enviar¶a un correo
electr¶onico avis¶andonos de la flnalizaci¶on del mismo. El an¶alisis de FreeBSD
dur¶o alrededor de 3 d¶‡as, tiempo durante el cual la herramienta se descarg¶o el
c¶odigo, analiz¶o los flcheros logs, almacen¶o los resultados en la base de datos
y cre¶o gr¶aflcas as¶‡ como un c¶omodo interfaz web para su posterior consulta.
Nosotros expondremos un resumen de los resultados. Para consult
  • Links de descarga
http://lwp-l.com/pdf13679

Comentarios de: Jugando con demonios: Análisis del proyecto FreeBSD con la herramienta CVSAnalY (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad