¿Por qué usamos GNU/Linux y el resto del software libre?
Bueno, en realidad el título queda demasiado grande para lo que ideaba expresar en este artículo. Luego iré a eso, pero siendo bien básico, diré que uso software libre porque me gusta poder controlar mi PC, usar los programas con cualquier finalidad, poder estudiarlos si quiero (ver el código fuente, la "receta"), modificarlos si me place, mejorarlos si puedo, y compartir esas mejoras con el resto del mundo si así lo deseo. Verán que en esta frase existen palabras claves, y que todas tienen que ver con el poder hacer algo, con el deseo, con la voluntad, es decir con la acción sobre el software (parte lógica de la máquina), y por lo tanto sobre el hardware (parte física).
Bien, sobre este asunto de poder estudiar cómo están hechos los programas, y poder ayudar a la gente, quienes usamos software libre todos los días estamos acostumbrados a vivir de ese modo. El propósito de este artículo es dar un mínimo ejemplo.
Hoy respondí un mail de un compañero llamado Luis que tiene un problema con su tarjeta de sonido: si no utiliza el servidor de sonido jack, la tarjeta de sonido no puede ser utilizada por más de un programa a la vez. Por ejemplo, no puede estar escuchando una canción mientras chatea con aMSN con sonidos. Esto aún no está resuelto para su placa de sonido, siendo que es una placa en apariencia de baja calidad y los drivers aún no están completos, de eso se encargará la gente de ALSA (un grupo de programadores pagados por Novell que diseñan controladores de sonido). Pero al menos Luis quería saber qué programas (procesos) estaban utilizando la placa de sonido, para poder desbloquearla.
Me apresuré en contestar, y le dije que era muy "fácil" ironizando, dado que para hacer lo que él quería ("cómo puedo saber qué proceso la está usando?") investigué cómo funcionaba el programa de configuración de las placas de sonido en GNU/Linux, llamado "alsaconf" (lo que decía más arriba de estudiar el código fuente), y de allí derivé a un segmento de código bastante "sencillo" ubicado en otro programa llamado /etc/init.d/alsa:
echo_procs_using_sound()
{
echo $( \
lsof +D /dev -F rt \
| awk '/^p/ {pid=$1} /^t/ {type=$1} /^r0x(74|e)..$/ && type == "tCHR" {print pid}' \
| cut -c 2- \
| uniq \
)
}
No tenía nada de tiempo para analizar eso, pero sabía que la función "echo_procs_using_sound" significaba que daría como resultado los procesos (procs) utilizando (using) sonido (sound). Es decir que era lo que él necesitaba. Tomé partes del programa /etc/init.d/alsa para realizar un script que simplemente desbloqueara el uso de la tarjeta de sonido cerrando los procesos que la estuvieran utilizando, no era la mejor solución pero no tenía tiempo para nada mejor.
Lo bueno de todo esto es que luego otro compañero de la lista de mail contestó algo más simple quizá: ejecutá en una consola
lsof | grep dsp
Explicando que "lsof" es "list open files" (listar los archivos abiertos), y "|grep dsp" sirve para buscar en la salida del comando anterior la palabra dsp (el dispositivo de sonido). En fin, para algunos quizá sea cosa de "loquitos de la programación", para nosotros es básico poder entender cómo funcionan los programas y poder modificarlos para tener el control sobre nuestros equipos informáticos.
A raíz de esto, veremos de hacer un pequeño script que funcione gráficamente y permita ver qué programas utilizan la placa de sonido, para luego dar la opción de cerrarlos o no.

Autor:
(marcos) Marcos Guglielmetti - 11/03/2008










Todo muy lindo el artículo, pero seguís cayendo en lo mismo de siempre. El título de la nota no debería ser en plural ("usamos"), sino en singular ("por qué uso software libre") refiriéndote a vos mismo (tal como lo hiciste en el texto), o a lo sumo un plural limitado ("por que las personas como yo usan s.l."). A la gran mayoría de los usuarios no le importa investigar el código ni mejorarlo, sino simplemente utilizar el sistema operativo. No les interesa "controlar su PC" ni las demás definiciones que usás para intentar destacarlo y diferenciarlo con respecto al software no-libre. ¿Te interesa que el software libre siga siendo para unos pocos, o que lo use la mayor cantidad de gente posible? Si elegís la primera opción, entonces dejá de llenar este blog con contenido errado, y dedicate a tu lista de correo donde todos son como vos; si lo que pretendés es la segunda opción, entonces empezá a cambiar el enfoque, fijate lo que le interesa al usuario común, que es exactamente lo contrario a lo que te interesa a vos, y entonces dedicate a instruir (bah, el término adecuado según tu gente sería "evangelizar") como corresponde y vas a ver cómo obtenés buenos resultados. Por no hacer esto, te equivocás siempre.
El software propietario es para unos pocos, el software libre es para todos navegante. Y como vos decís, "usar el sistema operativo", pero con libertad.
creo que eso de saber como funciona un programa solo nos interesa a nostros los que programamos, pero como die Emiliano si se usa un sistema operativo lo minimo lo tenemos que usar con libertad
Aún siendo verdad que la prioridad del usuario normal es usar el s.o. sin importarle lo más mínimo como funciona, y mucho menos como mejorarlo (porque no sabría), hay algo que parece que escapa a la razón de muchos: Si un usuario es capaz de mejorar la utilidad de un s.o. gracias a que puede estudiarlo, comprenderlo y modificarlo (porque tenga dichos conocimientos), según la filosofía del software libre, todos (y digo todos, programadores y usuarios básicos) se verán afectados por esa mejora y la disfrutarán. Es verdad que a pocos usuarios les interesa la opción de cambiar el fuente de su sistema, pero creo que a todos los usuarios les encantaría la posibilidad de que hacer lo que sea con su sistema. Y si un usuario quiere tener la posibilidad de cerrar un proceso concreto que está usando audio, y no sabe como encontrarlos, y alguien como M.Guglielmetti (o cualquier otro) hace un script gracias a las facilidades del software libre, creo que hemos logrado el objetivo de que el usuario (aún sin conocimientos de programación) haga lo que quiera. Quisiera saber yo que es lo que le interesa al usuario común...y si eso aún no ha sido realizado para el software libre, estoy seguro de que muchos estaríamos encantados en ponernos a ello. Pero la idea que tengo yo de usuario común es el que navega por internet (iceweasel), envía correo (evolution), trabaja con multimedia (ardour, amarok, gimp, audaciy, blender....) o chatea con sus amigos (gaim, amsn...). Y eso, con software libre se hace de sobra.