La veracidad UNIX de “Tron Legacy”

Cuando ví “Tron Legacy” con Turyesdios, asistimos a algunos memorables momentos UNIX que nos hicieron quedarnos con ciertos detalles a los que les sacamos algo de punta.

A mí me hizo tal gracia que no pude resistirme a emparentar al protagonista de esta nueva versión del gran clásico con el programador Ian Murdock, desarrollador de la distro GNU/Linux más famosa en manos de una comunidad de usuarios y no una empresa.

Ian Murdock acabó trabajando en Sun Microsystems y, tras la compra de esta por parte de Oracle y la clausura de OpenSolaris se lanzó a devolverle su sudor a la comunidad (después de no pocas acusaciones de chaquetero cuando fichó por SUN) y empezó a trabajar en el fork libre Proyecto Indiana.

En la película, “La Empresa” cierra el sistema en el que el prota trabaja y éste, con todo su arrojo,  libera el código del proyecto “que sólo cambia el nombre” para que todo el mundo pueda disfrutarlo. Cuando tiene que escapar y se refugia en los viejos recreativos, descubre una máquina de su “viejo” y, con todo el salero de los guionistas y sus documentados asistentes, esta trabaja bajo un sistema operativo ficticio llamado curiosamente SolarOS, y que trabaja fielmente bajo comandos UNIX.

En una entrada cojonuda de Emezetablog sobre tópicos informáticos en las películas, nos hablan de la veracidad de todo el proceso del protagonista en la terminal. Os dejo con el artículo:

5. Tron Legacy: El buen ejemplo

El trabajo realizado en la película Tron Legacy resultó ser bastante acertado y detallado, aunque a priori pueda no parecerlo.

Sam Flynn llega a los recreativos y encuentra un ordenador con una sesión iniciada. En la pantalla se muestra una especie de contador 20:11:20:16:22:14:73, que probablemente representa los 20 años que lleva desaparecido el padre, junto a otras cantidades de menor magnitud (días, horas, minutos, segundos, microsegundos…).

Al acceder al sistema, se encuentra con la sesión de su padre abierta, menciona que accede con una puerta trasera (otro tópico del cine) y activa el láser.

Tron Legacy: Comandos en la terminal del sistema.

La cuestión es que cada uno de los comandos que aparecen en pantalla, son comandos reales de UNIX. Veamos detenidamente cada uno de ellos…

$ whoami
flynn

El símbolo $ en entornos UNIX o Linux simboliza que la cuenta que estamos utilizando es una cuenta de usuario «limitada». Cuando aparece el símbolo # simboliza que estamos con una cuenta de administrador o root, con todos los privilegios del sistema.

En el comando anterior, Flynn utiliza el comando whoami, un comando que muestra el usuario actual que está utilizando el sistema.

$ uname -a
SolarOS 4.0.1 Generic_50203-02 sun4m i386 Unknown.Unknown

En estas líneas, Sam pregunta con el comando uname (información del sistema) que tipo de sistema está funcionando. El parámetro -a muestra toda la información posible.

El sistema utilizado es SolarOS en su versión 4.0.1, un sistema operativo ficticio, derivado de Solaris (nucleo SunOS). Aunque en realidad existe un SolarOS, es bastante diferente al de la película.

$ login -n root
Login incorrect
login: backdoor
No home directory specified in password file!
Logging in with home=/

Gracias a Jesús por facilitarme información sobre esta característica.

En esta parte, Sam comenta que intentará acceder con una puerta trasera, mientras aparentemente accede con un nombre de usuario backdoor. Esto puede parecer una burrada, pero tiene su historia detrás.

El comando login sirve para acceder al sistema con una determinada cuenta de usuario. Si buscamos información sobre el comando login veremos que el parámetro -n no existe.

En la versión 4.0.1 de Solaris 386i, existió un agujero de seguridad conocido, debido a que la utilidad logintool necesitaba realizar tareas de limpieza (pero desconocía la password de root). Así pues, se le añadió la opción no documentada -n, esperando que nadie la encontrara.

El mecanismo de funcionamiento era idéntico al que se utiliza en Tron Legacy. Al realizar un login -n root, el sistema devolvía un error y preguntaba de nuevo un nombre de usuario. Al escribir un nuevo nombre de usuario (por lo visto, cualquiera), te dejaba entrar como administrador.

# bin/history
488 cd /opt/LLL/controller/laser/
489 vi LLLSDLaserControl.c
490 make
491 make install
492 ./sanity_check
493 ./configure -o test.cfg
494 vi test.cfg

Una vez accedió con una cuenta con privilegios de administrador, ejecuta un history, comando que muestra las últimas operaciones realizadas en el sistema.

Se pueden ver las últimas tareas realizadas, como accediendo a la ruta /opt/LLL/controller/laser/, y editando el fichero LLLSDLaserControl.c (supuesto controlador del laser, en lenguaje C) con el editor vi.

Más adelante, realiza un make para compilarlo y un make install para realizar su respectiva instalación. También se ejecuta un sanity_check (una serie de tests específicos) y se ejecuta el script configure, guardando las opciones en el archivo de configuración test.cfg, el cuál modificará mediante el editor vi posteriormente.

495 vi ~/last_will_and_testament.txt
496 cat /proc/meminfo
497 ps -a -x -u
498 kill -9 2207
499 kill 2208
500 ps -a -x -u
501 touch /opt/LLL/run/ok

En el siguiente comando del historial de comandos ejecutados por el padre, se ve como editó un archivo llamado last_will_and_testament.txt, el testamento de Flynn (¿preparando detalles para la segunda parte?).

Posteriormente, comprueba el uso de memoria del sistema haciendo un cat /proc/meminfo, examina las tareas que están funcionando actualmente con el ps y finaliza algunos procesos con el kill.

Finalmente, comprueba de nuevo los procesos activos y actualiza el archivo /opt/LLL/run/ok (probablemente, para especificar que está preparado para activar el laser).

502 LLLSDLaserControl -ok 1
# bin/LLLSDLaserControl -ok 1
* Starting up...
* PSU online
* HV online
* Analog core memory... OK!
* Booting pattern recognition systems
* Merging current data model
* Starting laser emitter
* Particle traps test OK!
* Entangling laser with particle traps

Finalmente, la última línea del historial del padre de Sam, muestra activación del láser ejecutando LLLSDLaserControl con el parametro -ok establecido a 1. Esto hace varias comprobaciones y pregunta al usuario si quiere realizar la apertura del láser.

Acerca de Gaius Baltar

Aficionado a la tecnología informática desde que un MSX pasó por casa y apasionado defensor del Software Libre como religión para unir a los pueblos. Es Gaius Baltar al fin y al cabo, y tiene derecho a equivocarse. Cuando se aburre, redacta y gestiona los contenidos en diversos blogs subculturales. Ver todas las entradas de Gaius Baltar

12 responses to “La veracidad UNIX de “Tron Legacy”

  • referne

    Cuanto tiempo libre, la virgen…..

    • Gaius Baltar

      Me alegra que haya captado tu atención de una manera tan pasmosa, aunque no entiendo, ni de lejos, el comentario.

  • Kiyoshi

    ¡Menuda frikada más guapa!

  • referne

    Q hay que tener mucho tiempo para rayarse tanto con un fotograma de una peli.

    • Gaius Baltar

      No es un fotograma, Referne. El tío va poniendo comandos, y tampoco son muy raros (salvo el parámetro -r ese).

      Si usas UNIX/Gnu/Linux, el ‘uname’ es muy útil para saber la versión de kernel que estás usando y librarte de tener que teclear un linux-headers-patatin-patatan cuando quieres fozar en terminal, le pones linux-headers-‘uname…’ y ya te lo rellena.

      El ‘whois’ es algo de sobra conocido en el mundo de la informática también.

      Y etc etc. Es como ver una secuencia de acción en la que Tom Cruise hace un invertido con la moto mientras da vueltas y dispara… uno sabe que no es posible, no tiene que perder el tiempo. Esto es lo mismo, pero en modo “veraz” ^^

  • Javier Cárdenas

    Wow!

    Realmente sorprendente. Pensé que los comandos del terminal usado en la película eran ficticios. Ahora podemos decir que hasta esos detalles no fueron dejados de lado.

    ¡Muy buen trabajo por traernos esa información!

    • Gaius Baltar

      Sí, es gracioso que la gran Disney se molestara tanto en tratar esto con tan buen hacer.

      ¡Gracias por leernos!

  • turyesdios

    cuando eres un 777 lo entiendes

  • Salviati

    Estoy viendo la peli escena por escena y apuntando cosas para redactar un post porque me encanta. Trabajo a diario con UNIX y al ver lo que tecleaba me he flipado.. he puesto LLLSDLaserControl.c en google y he llegado aquí… muy buen post… deacuerdo al 100% con lo que alcanzo a saber… sin llegar a los niveles históricos que habéis llegado , – ) Yo lo más viejo que he visto es un SunOS 5.6. Por cierto… yo prefiero ser un 744, que luego toketea cualquiera , – )

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: