geek

En esto de los unos y ceros la cosa varia en cuestión de minutos, y no es para menos porqué un simple programa que una persona anónima hace en una punta del mundo afecta significativamente a otra en otra parte y es que todos los factores influyen.

No sé si conocéis el efecto mariposa. Según Wikipedia es lo siguiente:

El efecto mariposa es un concepto de la teoría del caos. La idea es que, dadas unas condiciones iniciales de un determinado sistema dinámico caótico (más concretamente con dependencia sensitiva a las condiciones iniciales) cualquier pequeña discrepancia entre dos situaciones con una variación pequeña en los datos iniciales, acabará dando lugar a situaciones donde ambos sistemas evolucionan en ciertos aspectos de forma completamente diferente.

Y es que eso mismo me ha pasado a mi últimamente, aunque a todos nos influyen los factores externos en más o menos medida (de ahí que haya variables diarias que hacen tergiversar nuestras opiniones y decisiones). En mi decisión por llevar el concepto software libre a otros ámbitos diarios y promover éste maravilloso mundo de colaboración (muchas veces de personas anónimas que gastan su valioso tiempo para ayudar a otros sin pedir nada a cambio, les agradezco mucho la ayuda prestada) me he topado con personas de toda índole y clase, muchas veces por curiosidad y otras por saber las cosas cómo son en realidad, también hay que contar el factor de mi torpeza a la hora de expresarme y que muchas veces da lugar a equivocaciones por parte de otras personas por el mismo hecho que comentaba anteriormente.

Hablando de software libre, no quiero irme por otros derroteros, he descubierto hasta que punto ha llegado el concepto de las cuatro libertades del software libre y las diez del código abierto.

En la universidad donde estudio, en su esfuerzo incansable por hacer las cosas mejor para el alumnado y aunque a veces me desespera por tantos cambios que introducen, desarrollan pequeñas herramientas el propio claustro del profesorado con su posterior documentación para que sea más comprensible por parte del alumnado y no alumnado la utilización de dichas herramientas.

En concreto voy a comentar una que espero utilizar a lo largo de esté curso y me ha llamado mucho la atención. Se trata de ARMSim, desarrollado en la Universidad de Victoria y ‘QtARMSim‘ una interfaz para ARM basado en Qt, desarrollado y adaptado en 2014 por Germán Fabregat Llueca, Sergio Barrachina Mir, Juan Carlos Fernández Fernández y Germán León Navarro. Está basado en el trabajo previo de Gloria Edo Piñana que desarrolló en 2008 GISpim.

Cómo ya habéis deducido es para uso docente aunque se puede utilizar para otros fines en entornos simulados.

ARM está basada en la arquitectura RISC (Reduced Instruction Set Computer), es actual y muy utilizada en dispositivos móviles.

La Arquitectura de Computadores históricamente ha seguido el frenético ritmo en el que los avances tecnológicos y arquitectónicos en el diseño de grandes computadores, primero, y en el diseño de los microprocesadores, a partir de los 80, se han ido sucediendo. Así pues, se puede decir que la docencia en Arquitectura de Computadores ha pasado por seis grandes eras:

mainframes, minicomputadores, primeros microprocesadores, micro-
procesadores, RISC y post RISC. Cada vez que las universidades han podido acceder a hardware específico a un coste razonable, este ha sido utilizado ampliamente como material de referencia. Algunas de las máquinas y microprocesadores que han disfrutado de una mayor
popularidad en la docencia de Arquitectura de Computadores han sido: el PDP-11, el 68000 de Motorola, el 80×86 de Intel, el MIPS y el SPARC.

Según nos cuentan los autores en la descripción: Una de las primeras metas fue la de seleccionar un simulador o entorno de ARM que pudiera utilizarse en las prácticas de la asignatura. Debiendo tener en cuenta, además, que otras asignaturas iban a utilizar la plataforma, Arduino Due, dotada de un microprocesador que implementa la arquitectura ARM Thumb 2.

La podéis instalar de la siguiente manera:
1) En Ubuntu:
$ sudo apt-get install python3-pyside python3-pip
$ sudo apt-get install ruby
$ sudo pip3 install qtarmsim
2) En Gentoo:
# emerge -av pyside ruby
# pip3 install qtarmsim
Si lo habéis instalado bien os tendrá que salir en el lanzador de aplicaciones y al abrirlo tendréis un entorno gráfico cómo éste:
captura-de-pantalla-de-2016-09-29-02-01-03
Dentro de su interfaz tenemos el menú de simulación que nos permite entre otras cosas restaurar el valor del contenido de los registros y la memoria y ejecutar el programa.
Una de las mejores cosas que tiene esta interfaz es que puedes ejecutar el depurador paso a paso, es decir, las instrucciones que realices para el simulado puedes ir viéndolas por la pantalla lcd virtual que está en la parte inferior.
captura-de-pantalla-de-2016-09-29-02-39-50
Cómo se muestra en la imagen anterior, puedes ver los registros y sus valores correspondientes en modo ensamblador.
captura-de-pantalla-de-2016-09-29-02-50-26
En las opciones del simulador puedes elegir desde que sea una máquina básica, es decir, que simula las operaciones sin pseudo-instrucciones, hasta el modo E/S Mapeado, que activa la entrada-salida mapeada de memoria.
Podéis encontrar más información en el manual que se facilita en la propia interfaz.
Solo cabe destacar una cosa más, y es que está bajo una licencia GPLv3+
Gracias de antemano por leerme.