Otra vez GNU/Linux y su coste estimado de desarrollo.
Ya hablé hace tiempo del coste estimado de desarrollo de GNU/Linux pero me pareció que los datos que aportaba no eran de suficiente actualidad.
He tardado mucho en publicar esta entrada, la tenía guardada desde hace muchos meses.
Leía poco después en las listas de debian.org un estudio realizado por profesores de la Universidad Politécnica de Madrid y la Universidad Rey Juan Carlos de riguroso interés.
Son 4 páginas de las que resalto algunos detalles interesantes
Los cálculos se han estimado sólo para la rama main (no se ha considerado ni contrib ni nonfree).
La verdad es que los ojos te hacen chirivitas. :shock_tb:
A día 6 de Junio de 2005:
La distribución Debian es producida por el proyecto Debian, un grupo de cerca de 1499 voluntarios.
…hay más de 8,600 paquetes fuente. El release completo comprende cerca de 15,300 paquetes de binarios…
La siguiente tabla de resumen por lenguajes de programación del número de líneas de código de Debian Sarge.
| Lenguaje | Lineas de código fuente | Porcentaje (%) |
|---|---|---|
| C | 130,847,000 | 57 |
| C++ | 38,602,000 | 16.8 |
| Shell | 20,763,000 | 9 |
| LISP | 6,919,000 | 3 |
| Perl | 6,415,000 | 2.8 |
| Python | 4,129,000 | 1.8 |
| Java | 3,679,000 | 1.6 |
| FORTRAN | 2,724,000 | 1.2 |
| PHP | 2,144,000 | 0.93 |
| Pascal | 1,423,000 | 0.62 |
| Ada | 1,401,000 | 0.61 |
| Totales | 229,496,000 | 100 |
Below 0.5% there are some other languages such as Objective C (0.37%), ML (0.31%), Yacc (0.29%), Ruby (0.26%), C# (0.23%) or Lex (0.10%). A number of other languages score less than 0.1%.
COCOMO model are as follows:
Total physical SLOC count: 229.495.824
Estimated effort: 714.440,52 person-months (59.536,71 person-years). Formula: 2,4 * (KSLOC^1,05)
Estimated schedule: 105,84 months (8,82 years). Formula:2.5 * (Effort^0,38)
Estimated cost to develop: 8,043,000,000 USD
To reach these figures, each project was estimated as though it had been developed independently, which is true for nearly all cases.
For calculating the cost estimation, we have used the mean salary for a full-time systems programmer in 2000 according to Computer World - 56,286 USD per year - and an overhead factor of 2.4.
Gráfico. Tamaño de paquetes frente a líneas de código representadas en escala logarítmica para Debian 3.1 Sarge.
| Sistema Operativo | Lineas de código fuente |
|---|---|
| Microsoft Windows 3.1 (Abril 1992) | 3,000,000 |
| Sun Solaris (Octubre 1998) | 7,500,000 |
| Microsoft Windows 95 (Agosto 1995) | 15,000,000 |
| Red Hat LINUX 6.2 (Marzo 2000) | 17,000,000 |
| Microsoft Windows 2000 (Febrero 2000) | 29,000,000 |
| Red Hat LINUX 7.1 (Abril 2001) | 30,000,000 |
| Microsoft Windows XP (2002) | 40,000,000 |
| Red Hat LINUX 8.0 (Septiembre 2002) | 50,000,000 |
| Fedora Core 4 (versión previa; Mayo 2005) | 76,000,000 |
| Debian 3.0 (Julio 2002) | 105,000,000 |
| Debian 3.1 (Junio 2005) | 229,500,000 |
El número de paquetes continua creciendo y doblándose casi cada dos años
También encontré desde aquel momento a esta parte otra página dedicada a estimaciones de Debian, supongo que del mismo grupo de investigadores.
http://libresoft.dat.escet.urjc.es/debian-counting/
General Statistics for Debian Sarge Code Counting
SLOCCount Web for Debian Sarge: Packages
SLOCCount Web for Debian Sarge: General Graphs
El artículo en formato PDF “Measuring Libre Software Using Debian 3.1 Sarge as a case study”
Algunas de las referencias del artículo:
Measuring Woody: The size of Debian 3.0 [enlace roto]
Computer World, Salary Survey 2000.
More Than a Gigabuck: Estimating GNU/Linux’s Size
Libre Software Engineering
Y eso que es de hace más de un año. ¿Cómo andará la cosa ahora?
Etiquetas: Álbum, debian, fotografías, gnu, Informática, linuxCrear imágenes de disquetes
Hoy vamos a crear una imagen de un disquete.
Hoy nos ponemos un poquito retro.
Ahora que las disqueteras no las usa ni su inventor, pues nosotros las sacamos a relucir.
Tan sólo tenemos que tener… todas las herramientas necesarias.
Primero hay que crear una imagen vacía. La llamaremos “disquete.img”
usuario@maquina:~$ dd if=/dev/zero of=disquete.img bs=512 count=2880
Ahora hay que preparar la imagen para ser montada como dispositivo loopback.
root@maquina:~$ losetup /dev/loop0 disquete.img
Se crea el sistema de ficheros, por ejemplo como MSDOS.
root@maquina:~$ mkdosfs /dev/loop0
Finalmente se monta en /mnt/midisquetera
root@maquina:~$ mkdir /mnt/midisquetera
root@maquina:~$ mount -t msdos /dev/loop0 /mnt/midisquetera
Cámaras Web. Logitech Quickcam for Notebooks Pro
No ha sido fácil pero tras unos días he conseguido hacer funcionar la cámara en Debian.
Hay que utilizar drivers aún en desarrollo pero la cosa funciona.
Existen por Internet otros drivers denominados pwc que no funcionan con este modelo. Parece ser que funcionan con cámaras anteriores a los últimos modelos de Logitech (ver tabla).
El mayor problema es que para sistemas operativos GNU/Linux no hay mucho mundo en relación a las cámaras web. Esta es la impresión que yo tengo en cuanto al soporte de cámaras web.
Los fabricantes deberían contratar o pagar a todos los desarrolladores de drivers que hay y apuntarse ya al mundo del software libre. Y si no desarrollan sus drivers como software libre, que al menos se den cuenta de una vez de que es un mercado desaprovechado.
El meollo
La documentación digamos que hay que extraerla de la lista de correo del proyecto LINUX uvc driver. Le queda mucho como proyecto, pero el driver es estable.
Aunque quizás como proyecto no llegue a tener un sentido completo, porque por lo que he leído lo que quieren es introducir el driver en el kernel LINUX. La opción más sensata, así viene de serie con el kernel el soporte.
Se han centrado en V4L2 y no en V4L en su primera versión que ya ha quedado abandonada por. Al menos de momento V4L está descartado.
LINUX UVC driver and tools es el proyecto que da soporte, de momento, a:
| Identificador de dispositivo | Modelo de cámara | Fabricante |
|---|---|---|
| 046d:08c1 | Logitech Quickcam Fusion | Logitech |
| 046d:08c2 | Logitech Quickcam Orbit | Logitech |
| 046d:08c3 | Logitech Quickcam Pro for Notebooks | Logitech |
| 046d:08c5 | Logitech Quickcam Pro 5000 | Logitech |
| 046d:08c6 | Logitech Quickcam OEM Dell Notebook | Logitech |
| 046d:08c7 | Logitech Quickcam OEM Cisco VT Camera II | Logitech |
Para hacer funcionar el driver para la cámara Logitech Quickcam for Notebooks Pro la receta consta de descargar, compilar e instalar :
usuario@maquina:~/src/svn/linux-uvc$ svn checkout http://svn.berlios.de/svnroot/repos/linux-uvc/trunk
root@maquina:~/src/svn/linux-uvc$ su
root@maquina:~/src/svn/linux-uvc$ cd trunk/
root@maquina:~/src/svn/linux-uvc$ make
Building USB Video Class driver…
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.17-1-686′
Building modules, stage 2.
MODPOST
CC /PATH/src/svn/linux-uvc/trunk/uvcvideo.mod.o
LD [M] /PATH/src/svn/linux-uvc/trunk/uvcvideo.ko
make[1]: se sale del directorio `/usr/src/linux-headers-2.6.17-1-686′
root@maquina:~/src/svn/linux-uvc$ make install
Installing USB Video Class driver…
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.17-1-686′
INSTALL /PATH/src/svn/linux-uvc/trunk/uvcvideo.ko
DEPMOD 2.6.17-1-686
make[1]: se sale del directorio `/usr/src/linux-headers-2.6.17-1-686′
depmod -ae
Obviamente para compilar serán necesarios los paquetes de cabeceras del núcleo LINUX y puede que alguno más que se me pase por ser obvio.
Hay que añadir al(los) usuario(s) al grupo video por los permisos que se asignan al dispositivo que se crea (en mi caso /dev/video0)
root@maquina:/home/user/src/svn/linux-uvc/trunk$ ls -la /dev/video0
crw-rw—- 1 root video 81, 0 2006-08-03 14:03 /dev/video0
root@maquina:~/src/svn/linux-uvc$ adduser USUARIO video
Una vez enchufemos la cámara salen mensajes de este tipo (yo la he enchufado y desenchufado para que se vean un poco todos los mensajes).
usuario@maquina:~$ dmesg | tail -n 14
uvcvideo: Found UVC 1.00 device <unnamed> (046d:08c3)
usbcore: registered new driver uvcvideo
USB Video Class driver (v0.1.0)
USB 4-4: USB disconnect, address 5
USB 4-4: new high speed USB device using ehci_hcd and address 6
USB 4-4: configuration #1 chosen from 1 choice
uvcvideo: Found UVC 1.00 device <unnamed> (046d:08c3)
6:3:1: cannot set freq 0 to ep 0×86
6:3:2: cannot set freq 0 to ep 0×86
6:3:3: cannot get freq at ep 0×86
USB 4-4: USB disconnect, address 6
USB 4-4: new high speed USB device using ehci_hcd and address 7
USB 4-4: configuration #1 chosen from 1 choice
uvcvideo: Found UVC 1.00 device <unnamed> (046d:08c3)
El mensaje cannot set freq 0 to ep 0×86 es debido al micrófono incorporado en la cámara, que aún no funciona.
La aplicación luvciew es útil para ver si funciona nuestra cámara.
usuario@maquina:~/src/webcam/$ wget http://mxhaard.free.fr/spca50x/Investigation/uvc/luvcview-20060706.tar.gz
usuario@maquina:~/src/webcam/$ tar -xvf luvcview-20060706.tar.gz
usuario@maquina:~/src/webcam/$ cd luvcview-20060706
usuario@maquina:~/src/webcam/luvcview-20060706$ make
ERRORES debido a la falta de las librerias Simple DirectMedia Layer
usuario@maquina:~/src/webcam/luvcview-20060706$ apt-get install libsdl1.2-dev
Para que funcione la cámara con ekiga es necesario instalar el plugin para V4L2 de las Portable Windows Library.
usuario@maquina:~$ apt-get install libpt-plugins-V4L2
Aplicaciones
Que soportan V4L2
Todas estas las he probado y funcionan:
- gnomemeeting
- ekiga (derivado/evolución de gnomemeeting)
- luvcview
- v4l2ucp es una aplicación que está empaqueta en los repositorios de marillat. v4l2ucp es un interfaz gráfico para control de dispositivos V4L2
Aplicaciones en el limbo, es decir, por el momento sin comprobar
- camorama
- camE
- (esto es un comando encontrado en la lista de correo) ffmpeg -vd /dev/video0 -s 640×480 -r 5 -b 5000 -y -vcodec mpeg4 -f avi - | mplayer -
Aplicaciones que NO soportan V4L2, por el momento que yo sepa
Cuestiones
¿Alguien conoce algún otro programa?
¿Me dejo algo?
Otros proyectos y referencias
Versión actual del driver pwc.. Parece dar soporte completo (a alta resolución) con un driver libre. De hecho, en esta versión está basado el paquete pwc-source de Debian .
Versión no mantenida desde hace tiempo de los drivers pwc. Para funcionamiento “completo” requieren del driver binario (y polémico) pwcx.
LINUX support for Philips USB webcams (and LINUX only). No lo he probado. Creo que tiene que ver con el enlace anterior porque no hay noticias nuevas desde el 2004.
Warning: “/tmp/vmware-config0/vmnet-only/vmnet.o” failed to load: Not a kernel module, lacks modinfo section
Si usas la última versión del kernel, la 2.6.17 puede que los módulos para vmware no compilen.
Tienen un pequeño problema de carencia de información básica (autor, licencia….) que se suele incluir en los módulos para el kernel linux:
*** Warning: "/tmp/vmware-config0/vmnet-only/vmnet.o" failed to load: Not a kernel module, lacks modinfo section make[2]: *** [__modpost] Error 1 make[1]: *** [modules] Error 2 make[1]: se sale del directorio `/usr/src/linux-headers-2.6.17-1-686′ make: *** [vmnet.ko] Error 2 make: se sale del directorio `/tmp/vmware-config0/vmnet-only’ Unable to build the vmnet module.
Para resolverlo hay dos opciones.
Opción 1
root@einstein:/usr/lib/vmware/modules/source$ tar -xvf vmnet.tar
Añadimos MODULE_AUTHOR(”VMWare”); al archivo driver.c antes de la línea #ifdef VMW_HAVE_SK_ALLOC_WITH_PROTO
root@einstein:/usr/lib/vmware/modules/source$ emacs vmnet-only/driver.c root@einstein:/usr/lib/vmware/modules/source$ ll total 1387 -rw-r--r-- 1 root root 1003520 2006-07-04 17:59 vmmon.tar drwxr-xr-x 2 root root 1528 2006-07-29 16:41 vmnet-only -rw-r--r-- 1 root root 358400 2006-07-04 17:59 vmnet.tar -r--r--r-- 1 root root 51200 2006-07-04 17:55 vmppuser.tar root@einstein:/usr/lib/vmware/modules/source$ mv vmnet.tar vmnet.tar.old root@einstein:/usr/lib/vmware/modules/source$ tar cvf vmnet.tar vmnet-only/ root@einstein:/usr/lib/vmware/modules/source$ ll total 1787 -rw-r--r-- 1 root root 1003520 2006-07-04 17:59 vmmon.tar drwxr-xr-x 2 root root 1528 2006-07-29 16:41 vmnet-only -rw-r--r-- 1 root root 409600 2006-07-29 16:42 vmnet.tar -rw-r--r-- 1 root root 358400 2006-07-04 17:59 vmnet.tar.old -r--r--r-- 1 root root 51200 2006-07-04 17:55 vmppuser.tar root@einstein:/usr/lib/vmware/modules/source$ rm -rf vmnet-only/
Tras esto volvemos a compilar/configurar el vmware con el comando destinado a tal efecto y listo.
root@einstein:/usr/lib/vmware/modules/source$ vmware-config.pl ... Building the vmnet module. Building for VMware Workstation 5.5.x. Using 2.6.x kernel build system. make: se ingresa al directorio `/tmp/vmware-config2/vmnet-only' make -C /lib/modules/2.6.17-1-686/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.17-1-686′ CC [M] /tmp/vmware-config2/vmnet-only/driver.o CC [M] /tmp/vmware-config2/vmnet-only/hub.o CC [M] /tmp/vmware-config2/vmnet-only/userif.o CC [M] /tmp/vmware-config2/vmnet-only/netif.o CC [M] /tmp/vmware-config2/vmnet-only/bridge.o CC [M] /tmp/vmware-config2/vmnet-only/procfs.o CC [M] /tmp/vmware-config2/vmnet-only/smac_compat.o CC [M] /tmp/vmware-config2/vmnet-only/smac_linux.x386.o LD [M] /tmp/vmware-config2/vmnet-only/vmnet.o Building modules, stage 2. MODPOST CC /tmp/vmware-config2/vmnet-only/vmnet.mod.o LD [M] /tmp/vmware-config2/vmnet-only/vmnet.ko make[1]: se sale del directorio `/usr/src/linux-headers-2.6.17-1-686′ cp -f vmnet.ko ./../vmnet.o make: se sale del directorio `/tmp/vmware-config2/vmnet-only’ The module loads perfectly in the running kernel. …
Opción 2
La otra opción es aplicar la última actualización de los parches de la serie any any. No se quién los realiza. Pero resuelven cualquier problema para poder compilar los módulos de vmware con las últimas versiones del kernel LINUX al poco de liberarse.
Siempre se puede encontrar la última versión aquí:
Directorio donde encontrar la úlitma versión de vmware-any-any. A fecha de hoy el archivo se llama vmware-any-any-update113.tar.gz
También dejo un enlace para la mula:
vmware-any-any-update102.tar.gz (Enlace tipo ed2k)
vmware-any-any-update104.tar.gz (Enlace tipo ed2k)
vmware-any-any-update113.tar.gz (Enlace tipo ed2k)
Se aplica en tres sencillos pasos:
tar xzf vmware-any-any-update113.tar.gz cd vmware-any-any-update113 ./runme.pl
Referencias:
Can’t compile vmnet.ko on (Debian) LINUX kernel 2.6.17
Etiquetas: any any, any any update, debian, gnu, Informática, linux, parche vmware, patch vmware, vmware, vmware kernel 2.6South Park atrapado en el arte ASCII
No he conseguido que se alineara bien en HTML así que he puesto una captura de pantalla del fichero de texto.
[Briconsejo: Diseño WEB para todos]
A la hora de insertar este tipo de figuras hay que tener en cuenta que no todo el mundo usa un navegador web estandar y estas muestras artísticas pueden ser muy molestas.
Por ello hay que facilitar saltarlas. además, por supuesto de su descripción.
Inicio código:
[<a id="ASCII-chart" href="#continuarascii">saltar la figura ASCII</a> o consultar la <a rel="Alternate" href="ruta/ascii-descripcion.html">descripción del gráfico</a>]
<pre>
FIGURA DE ARTE ASCII
</pre>
<a id=”continuarascii”></a>
Fin código.
Referencias:
Pongo también fichero de texto plano y la página donde encontré a South Park.
Algún ejemplo más de arte ASCII (DVD, animaniac, tux)
Arte ASCII en la wikipedia española
Arte ASCII en la wikipedia inglesa
network manager …. (Connection “:1.XX” is not allowed to own the service)
El network manager es una maravilla de la ciencia del software libre que permite acercar a un más a la comodidad y a la simplicidad la configuración de nuestros dispositivos de red.
Concretamente para configurar nuestros dispositivos de conexión wifi es la bomba, con un solo clic te lista todas las redes wireless detectadas en ese momento.
Si aparece un error como el siguiente es porque los usurarios que quiera utilizar el applet han de pertenecer al grupo “netdev“:
** (nm-applet:23088): WARNING **: <WARNING> nma_dbus_init (): nma_dbus_init() could not acquire its service. dbus_bus_acquire_service() says: 'Connection ":1.16" is not allowed to own the service "org.freedesktop.NetworkManagerInfo" due to security policies in the configuration file'
A veces es tán útil leer:
io@einstein:~$ less file:///usr/share/doc/network-manager/README.Debian
Para añadir el usuario al grupo o herramienta gráfica o línea de comandos y para aplicar los cambios reiniciar el dbus.
io@einstein:~$ adduser USUARIO netdev io@einstein:~$ /etc/init.d/dbus reload
BiblioRed:
Página principal del proyecto network manager
Guadec-es y Guadec 2006.
Se celebra desde este fin de semana.
No he podido ir finalmente. Una pena. Hubiera estado ir con mi apañero en lo del trabajao.
Habrá que conformarse con ir leyendo las presentaciones y escuchando y viendo los videos en directo.
Este fin de semana pasado la guadec hispana.
Muchos bueno.

La catedral y el bazar
Despues de ver el documental sobre el laboratorio 03, de emocionarme, de motivarme, me he dado una vuelta por algunas de los proyectos alojados en sindominio.net, que no son pocos.
He llegado sin darme cuenta a “La catedral y el bazar” y fíjate, me he dado cuenta de que no lo había leído.
El tío de las pistolas. Así es como se conoce a Eric Raymond desde la gente más extremista del software libre.
Eric Raymond es un tipo que defiende su libertad. Su libertad para llevar un arma y poder defenderse. Y el tipo lo ve perfecto.
Además de todo esto es el creador de la corriente código abierto, que visto desde lejos es casi lo mismo que el software libre, pero que visto de cerca claramente no tiene nada que ver.
Pues escribió en su momento un, como llamarlo, un escrito. La catedral y el bazar.
Es un texto conocido por todos aquellos que andan liados en temas filosofales del software libre. Una referencia.
En un primer vistazo rápido he descubierto perlas cómo las “leyes de” :
…no se entiende cabalmente un problema hasta que se implementa la primera solución…
Cualquier informático da fe.
…”con muchas miradas, todos los errores saltarán a la vista”. A esto lo he bautizado como la Ley de Linus…
Cualquiera persona da fe.
…la opinión promedio de un número grande de observadores igualmente expertos (o igualmente ignorantes) es más confiable de predecir que la de uno de los observadores seleccionado al azar. A esto se le conoce como el efecto Delphi…
Cualquiera persona da fe.
…Fred Brooks, Capítulo 11: “Muéstreme su código y esconda sus estructuras de datos, y continuaré intrigado. Muéstreme sus estructuras de datos y generalmente no necesitaré ver su código; resultará evidente.”…
Cualquier informático da fe.
Lo tengo que leer detenidamente, porque a pesar de ser del de las pistolas, tiene cosas buenísimas de las que uno ve continuamente pero no se para a reflexionar. Te llaman loco. Cuando las ves escritas por otro dices, “eeeh, mola tío”.
Referencias:
[sindominio.net] La catedral y el bazar (versión HTML)
[elastico.net] La catedral y el bazar (versión PDF)
[eldemonionegro.com] La catedral y el bazar (versión PDF)
Estos son los resultados para ...




Últimos comentarios