La importancia de la transparencia que tiene Linux

Avatar

Gastón

(Por Gastón Charkiewicz)

Los sistemas operativos actuales suelen tener más o menos las mismas funcionalidades. Curiosamente, también tienen bastantes características en común… Ahora, hay una de ellas que es muy propia de Linux, y no todos los demás la comparten: la transparencia. ¿De qué se trata todo esto, y porqué puede beneficiarme?

Tiempo atrás, me encontraba trabajando en un proyecto bastante interesante: el desarrollo de un generador de números puramente aleatorios. Quizás suene como algo complicado o muy técnico y difícil de entender, pero en realidad no lo es. Permítanme contarles.

La computación actual utiliza aleatoriedad todo el tiempo, desde al elegir el tema siguiente en el modo aleatorio del reproductor de audio, hasta para hacer seguras las compras online con mi tarjeta de crédito. Curiosamente, a una computadora le es prácticamente imposible generarlos por si sola, ya que al fin y al cabo no es más que una máquina que sigue órdenes puntuales. Le es casi imposible «decidir». Entonces, ¿cómo se logra cambiar de temas de forma aleatoria, o más importante aun, llevar a cabo compras por Internet de forma segura? La respuesta es concreta: con algo llamado pseudoaleatoriedad.

Bueno, pseudoaleatoriedad también suena a «técnico y difícil de entender»… De todos modos, tampoco es así: no es más que, digamos, simular que una computadora lleve a cabo una elección. Entonces, detrás de esa elección, se esconde simplemente una función matemática que utilizará algún valor que pueda cambiar bastante, como por ejemplo la posición donde esta el puntero del mouse. En esencia, no es mucho más que eso.

Ahora, ¿podría yo adivinar dónde está situado el puntero? Esto es peligroso, porque si alguien lo adivina, con sólo conocer mi función matemática ya conocerá el número aleatorio generado… Quizás no sea muy peligroso que conozca la canción siguiente a reproducirse pero, ¿y con las compras online? Para colmo, hay una posibilidad de adivinar números pseudoaleatorios.

La historia no termina ahí: ¿no sería genial un tipo de aleatoriedad que no pudiera adivinarse? Bueno sí, y de hecho ya existe: se le dice aleatoriedad pura, o simplemente aleatoriedad (para los que conocen que la otra es pseudo). Justamente en esto estaba yo trabajando: un prototipo para generar números puramente aleatorios.

Comencé a llevar a cabo el proyecto en un sistema operativo distinto a Linux (ahora no viene al caso cual), que no era de código abierto. Todo marchaba bien, ya tenía el circuito armado y también había programado lo necesario. Restaba conectarlo al puerto USB y probarlo.

last

 

 

 

 

 

 

Bueno, no funcionó. Verifiqué el circuito, y aparentaba estar bien. Miré con detalle lo que había programado, lo probé por separado, y funcionaba… entonces, ¿qué era lo que estaba trayendo problemas? Necesitaba utilizar otro tipo de herramientas más específicas, para ver si la conexión entre el prototipo y la computadora estaba bien.

Para sorpresa mía, al analizar bien el escenario me di cuenta de que ni siquiera se llevaba a cabo una conexión. Era necesario entonces revisar los componentes del sistema operativo que estaban involucrados… y acá se me presentó un gran problema: ¿cómo revisar con detalle módulos cerrados? Dependía exclusivamente de las facilidades que me proveía el sistema operativo, porque dichos módulos no eran de código abierto.

Como las herramientas con las que contaba no eran suficientes como para asegurarme de que el problema no estaba allí, decidí continuar mis pruebas en Linux. Ya estaba habituado al sistema operativo, por lo que el pasaje no fue complicado. Desde ese momento trabajar en el proyecto fue un poco más simple y, sobre todo, pude ver y entender por completo todo lo que sucedía alrededor del prototipo.

A través de este problema, se evidencia una de las características de Linux que más me gustan: su transparencia. Salvo raras excepciones, todas las distribuciones son de código abierto. Esto me da la libertad de modificarlas a mi gusto, pero sobre todo de poder entender por completo qué es lo que está sucediendo, de poder conocer todo el panorama. Es que, justamente, hablar de Linux no es solamente hablar de «un sistema operativo gratis», o demás apreciaciones no tan importantes. A veces, es cuestión de libertades.

Avatar

Gastón Charkiewicz

Profesor universitario y programador de día, Batman de noche. Infosec. Basket.

Deja un comentario