Vistas de página en total

sábado, 5 de mayo de 2012

Computadora de un Teléfono Inteligente


El teléfono inteligente es una computadora con la principal función de comunicarse y efectuar computaciones. Una computadora es un dispositivo electrónico que tiene un procesador central, memoria interna en rom y ram, memoria externa en discos y otros, dispositivos de entrada y salida. Para funcionar tiene un sistema operativo y programas de aplicaciones. El sistema operativo es un programa principal que controla la computadora. Un programa es una secuencia de instrucciones, que bajo el control del procesador central, son obtenidos de la memoria una a una y ejecutadas. Las instrucciones son aritméticas, lógicas, de decisión y control, de entrada y salida y otras instrucciones. Cada instrucción a nivel de máquina es una secuencia de unos y ceros.  Una instrucción tiene una parte que indica la operación a realizar (aritmética, lógica, de decisión, etc.) y otra parte la dirección en memoria de los operandos o datos. Programar en este nivel de máquina de puros unos y ceros sería muy difícil pero no imposible. Para ayudar a la programación se inventaron los lenguajes de programación de alto nivel, donde las instrucciones, por ejemplo las aritméticas se identifican con nombres de ADD o +, SUBSTRACT o -, MULTIPLY o * , DIVIDE o /. Una vez escrito y terminado el programa es traducido o compilado  por otro programa que los convierte a un lenguaje de máquina y poder ejecutarse para obtener los resultados deseados. Cuando se invento la computadora su objetivo principal era de realizar computaciones, posteriormente se incluyo la comunicación de usuarios para accessar a la computadora con cables en un sitio local y a través de líneas telefónicas para sitios remotos. Con el paso del tiempo se crearon redes locales que conectaban a varias computadoras en un área local de un edificio o varios cercanos. Siguieron las redes amplias donde se conectaban varias computadoras en un área amplia dentro de una ciudad, país o a nivel mundial utilizando sistemas propietarios de comunicaciones, usadas principalmente por grandes compañías. Cuando surge internet, que es la biblioteca global de la información y el conocimiento,  es una red de redes de computadoras, donde  se conectan todas las computadoras del mundo, utiliza el sistema de comunicación mundial. Pero cualquier persona puede conectarse a internet, usando cualquier clase de computadora y una línea de comunicación, lo más importante, también puede usar su teléfono inteligente o móvil para navegar por internet entre otras muchas funciones del teléfono. Concluimos que  el teléfono móvil  integra las tecnologías de electrónica, computación y comunicaciones en la mano del hombre
.
CDC 6600
Supercomputadora
Las primeras computadoras eran grandes y de alto costo, además se necesitaba mucho espacio para la computadora, solo disponible en instituciones y compañías grandes. Para programarlas se necesitaba un entrenamiento en un lenguaje de programación como fortran o cobol, que no cualquiera podía realizar.  Para hacer y ejecutar un programa, primero se aprendía el lenguaje, despues se escribía en una hoja de codificación, se entregaba al departamento de perforación, donde se recogía el programa en un paquete de tarjetas después de pasar uno o varios días, a continuación se llevaba a una ventanilla del centro de computación para procesar el programa, después de cierto tiempo de días se recogía el paquete de tarjetas y un listado del programa que normalmente indicaba errores del programa, se corregía y se repetía el proceso descrito. A este modo de hacer y ejecutar los programas se les llamo sistemas de computación en batch o de lotes. 
Cuando surgen los sistemas interactivos de tiempo compartido y de las redes locales, el programador interacciona con una terminal o una computadora personal conectada a una computadora central de gran poder de computo, para hacer y ejecutar sus programas, aumentando la eficiencia en la programación. Posteriormente en las redes locales y amplias las computadoras personales se convierten en una computadora servidor de gran poder de computo y se conectan las computadoras cliente para compartir los recursos de la red, como impresoras y bases de datos, así surge la programación distribuida de aplicaciones cliente-servidor. 
Hoy en día con la computadora de un teléfono inteligente continúa la programación distribuida de aplicaciones cliente-servidor, pero también las aplicaciones locales. Los programas se crean y prueban en una computadora personal utilizando algún lenguaje como java, c++  u otro y cuando están sin errores se transfieren al teléfono inteligente por cable usb o de forma inalámbrica. Pero ahora se ha llegado a utilizar al propio teléfono celular como una herramienta para desarrollar sus propios programas, increíble que ahora la programación de una computadora se realice en la mano del hombre, recordemos que un principio el ciclo de desarrollo de un programa era de varios días y ahora se reduce a muy poco tiempo, dependiendo de lo complicado que sea el programa. Ahora cualquier persona que tenga un teléfono inteligente con Android 2.2 puede aprender a programar su propia computadora que está en el teléfono inteligente.
Microcomputadora
Una de las primeras computadoras personales que se construyeron  y  utilizo  el lenguaje basic, fue la Radioshack TRS-I. Fue una computadora con un procesador central Z80, memoria rom de 4Kbytes donde tenía el sistema operativo rudimentario y el lenguaje basic y una ram de 12Kbytes donde se ejecutaban los programas, los dispositivos de entrada un teclado y de salida una pantalla de tv y el cassette para guardar programas y datos era un dispositivo de entrada y salida. Para funcionar tiene el sistema operativo en rom  y los programas de aplicaciones se crean y almacenan en cassettes. El sistema operativo con basic es un programa principal que controla la computadora. Un programa es una secuencia de instrucciones, que bajo el control del procesador central Z80, son obtenidos de la memoria una a una y ejecutadas. Las instrucciones son aritméticas, lógicas, de decisión y control, de entrada y salida, entre otras instrucciones. Cada instrucción a nivel de máquina es una secuencia de unos y ceros. Cada instrucción tiene una parte que indica la operación a realizar (aritmética, lógica, de decisión, etc.) y otra parte la dirección en memoria de los operandos o datos. Programar en este nivel de máquina de puros unos y ceros sería muy difícil pero no imposible. Para ayudar a la programación se inventaron los lenguajes de programación de alto nivel como el BASIC, donde las instrucciones, por ejemplo las aritméticas se identifican con nombres de ADD o +, SUBSTRACT o -, MULTIPLY o * , DIVIDE o /. Una vez escrito y terminado el programa es traducido o compilado  por otro programa, en este caso el programa basic es un intérprete que los convierte a un lenguaje de máquina del Z80 y al ejecutarse puede obtener los resultados deseados.
Teléfono Inteligente
Ahora vamos analizar un teléfono móvil o inteligente como el Samsung Galaxy mini. Es una computadora de un teléfono móvil que tiene la función principal de comunicaciones telefónicas y computaciones. Tiene un procesador central Qualcomm MSM7227 con l arquitectura ARMv6 a 600Mhz y un procesador GPU Adreno 200, memoria ram de 384Mbytes, en rom  de 512 Mbytes, 164 Mbytes de memoria interna y otra externa de un microSD de 2Gbytes hasta 32 Gbytes, dispositivos de entrada y salida, la pantalla de salida del teléfono también hace la función de entrada como teclado. Para funcionar tiene un sistema operativo y programas de aplicación, como sistema operativo tiene android 2.2 un descendiente de Linux. El sistema operativo es un programa que controla todo el teléfono. Cada programa es una secuencia de instrucciones del procesador arm6, de unos y ceros. Cada instrucción a nivel de máquina tiene una parte que indica la operación a realizar y la otra parte la dirección de memoria de los operandos o datos. Pero también tiene lenguajes de alto nivel para programar como Java. Cuando se escribe un programa en java, se compila y se deja en un lenguaje de una máquina virtual java, en el caso de android hace una segunda traducción para llevarlo a una máquina virtual dalvik optimizado para teléfonos móviles o inteligentes. Para ejecutarse utiliza un programa intérprete del sistema operativo android que traduce las instrucciones dalvik a instrucciones del procesador arm6 y las ejecuta. Hermosa secuencia, nada sencilla pero así trabaja la computadora del teléfono móvil. 

Desarroollo de programas con Eclipse y Java en una PC
Actualmente para crear o desarrolla programas de aplicación para teléfonos móviles se utiliza una computadora personal, una laptop que tienen como sistema operativo Windows o Linux, u otro. Primero se debe de bajar e instalarse  el SDK7 de java, un programa de desarrollo como eclipse3, el SDK de android y el plug de SDK para eclipse3. Hay muchos sitios de internet que detallan el proceso de instalación y uso. Para realizar un programa para teléfonos android, primero se usa eclipse, se crea un proyecto, se escribe el programa, se compila si hay errores se corrigen, si no hay errores, lanza un simulador de un telefóno con android, lento la primera vez, y se ejecuta el programa y lo deja en la carpeta bin. Después el programa binario de un archivo apk se lleva al teléfono móvil ya sea con una interface usb o usando dropbox que es una nube o cloud, donde se almacena los archivos y se transfieren a diferentes computadoras que seleccionamos y que puede  incluir a un teléfono móvil. En cualquier caso al descargarse en el teléfono se da click sobre el programa binario apk, se instala y listo se puede ejecutar y usarse. Una secuencia un poco larga.

Desarrollo de Programas con AIDE y Java en un Telefóno Inteligente
Pero  a sucedido algo maravilloso y es que en un teléfono móvil ya se puede programar con Java y AIDE, tal como él, samsug galaxy mini con android2.2 el nombre de AIDE significa Android Integrated Development Environmente, es decir algo parecido a eclipce, es un sistema para desarrollar aplicaciones de android en nuestro propio teléfono, claro existe pequeñas limitaciones físicas en los teléfonos móviles, un poco menos en las tablet, pero así empezaron las pc y terminaron por eliminar los mainframes o grandes computadoras. Para desarrollar aplicaciones con AIDE solo se necesita un teléfono móvil con android2.2, conectarse al mercado de android, buscar AIDE que es libre, bajarlo e instalarlo, y listo ya tenemos la herramienta para hacer programas en nuestro propio teléfono móvil. Primero ejecutamos AIDE, si es la primera vez, crea un proyecto para el programa hola mundo y a partir de ahí se puede crear otros programas, maravilloso. Como la calculadora simple que programe y vamos a usar más adelante.
Increíble y maravilloso que hoy en una mano tengamos una computadora de un teléfono móvil, en mi caso mi Samsung galaxy mini. Todo esto, lo repito otra vez, resultado de la evolución y desarrollo humano. Así como el hombre primitivo uso la tecnología de la mano para hacer utensilios, el hacha, lanza, el arco y flechas, y usarlo para sobrevivir. Hoy día miles de hombres con diversos intereses han desarrollado y creado la tecnología electrónica, de computación y de comunicaciones, y las  tres  se han integrado para crear la computadora de un teléfono móvil o teléfono inteligente y está disponible en la mano del hombre inteligente, para una multitud de usos: hablar por teléfonos, enviar mensajes, cálculos matemáticos, navegar por  internet, oír música o la radio, ver televisión, uso del gps, ver videos en youtube, redes sociales como facebook, entretenimiento, etc. Debemos valorar al propio hombre como resultado de la evolución y desarrollo  humano. De valorar la inteligencia de los hombres que han contribuido en las diferentes ramas del conocimiento humano y de crear la ciencia y tecnología, para ofrecer a la humanidad una mejor vida y comodidad, que nunca tuvieron nuestros antepasados, los hombres primitivos, hagamos reconocimiento a ellos que fueron los que iniciaron el diseño de la computadora mental humana y que posteriormente el hombre ha tratado de crear un modelo o simulación de la mente humana, al crear la computadora y que culmina ahora en una computadora de un teléfono móvil.
Computadora Mental Humana
En mi página anterior hablamos de la computadora mental del hombre e hicimos una descripción de la mente humana  y dijimos que el cerebro es el hardware y la red neuronal y subredes forman el software de la computadora mental humana que contiene todos los programas y sistema operativo que controlan todo el cuerpo y la interacción con su medio ambiente. Algunos piensan que comparar o igualar el cerebro-mente a una computadora es degradante, puede ser que lo sea, pero veamos como realizamos operaciones aritméticas, mentalmente podemos hacer operaciones sencillas de suma 2+2=4, de resta 10-5, multiplicación 5x5=25 y división de 100/10=10.  Pero cuando aumentamos las cifras, muy pocas personas lo pueden hacer. Por ejemplo para multiplicar 54678934 x23451 ya usamos un medio externo como una hoja y un lápiz o lapicero para escribir,  este lo usamos para anotar las cantidades y además seguimos una secuencia de pasos de un procedimiento o programa para multiplicar, si no aprendemos las tablas de multiplicar o el procedimiento o programa no podremos realizar la multiplicación.         
También una computadora si no se programa para solucionar las operaciones matemáticas, nunca resolverá la operación. La diferencia principal es que la computadora es mucho más rápida y nunca se cansa,  puede programarse para operaciones rutinarias y sumamente complicadas con grandes cantidades. Creo que esta fue una de las  razones principales de haber inventado la computadora. 

Para ver de una forma real, vamos a utilizar un teléfono móvil como el Samsung galaxy mini, con un programa simple de una calculadora decimal que programe con AIDE en mi propio teléfono, que realiza las operaciones aritméticas decimales de sumar 2+2=4, restar 10-5=5, multiplicar 5x5=25 y dividir 100/10=10. Y operaciones más complicadas, que debido a sus resultados de cantidades grandes, se utiliza la representación exponencial E que significa 10 elevado a una potencia, por ejemplo la división de 566789346786543365.4567 entre 236748451.4678 da 2.3940572E9 o sea 2.3940572x10 a la potencia de 9 y a partir del punto se cuentan 9 posiciones a la derecha y queda el resultado en 2394057200.00. Para estas operaciones no necesitamos una calculadora, mucho menos un computadora. Pero aumentemos las cifras, posiblemente se realicen, pero aumentemos las veces de hacer las operaciones, resulta monótono y cansado. La idea principal es de cómo utilizar un programa que se hizo con AIDE y en la próxima página del blog, veré como se programa con java en AIDE y de hacer el programa de la calculadora en forma detallada.        
                  

No hay comentarios: