domingo, 28 de octubre de 2007

PORTABILIDAD

La portabilidad es un concepto tan libre para definir como para el que la usa. Según Wikipedia es una característica de ciertos programas que les permite ser utilizados en distintos ordenadores sin que precisen modificaciones de importancia. Aunque también la portabilidad se define en instrumentos portátiles que nos permiten dicho traslado de información, tales como los pendrive, microprocesadores o memorias SD.

En el software, la portabilidad se define como su dependencia de la plataforma en la que corre. La portabilidad es mayor cuanto menor es su dependencia del software de plataforma.

Si un software puede ser compilado en plataformas diversas (x86, IA64, amd64, etc), dicho software se dice que es multiplataforma.

En algunos casos el software es "independiente" de la plataforma y puede ejecutarse en plataformas diversas sin necesidad de ser compilado específicamente para cada una de ellas, a este tipo de software se le llama interpretado, por que necesita de un interprete para ser ejecutado en las diferentes plataformas.

Mucho se ha hablado de algunos esfuerzos para lograr la portabilidad de software entre diversas plataformas. Diferentes aproximaciones existen, de las cuales dos se distinguen por que han mostrado muy interesantes resultados: la portabilidad a nivel de código binario (Java, por ejemplo) y la portabilidad a nivel de código fuente.

La primera, aunque es técnicamente muy retadora e interesante, ha mostrado, quizá como resultado de lo mismo, muchos problemas para su adopción generalizada. De tales problemas se distinguen cuatro:

  1. la eficiencia del código,
  2. las dificultades en la adopción generalizada de estándares,
  3. la estabilidad de las aplicaciones,
  4. el difícil crecimiento.

Por otra parte, la portabilidad a nivel de código fuente es un esfuerzo que cuenta con una mucho mayor experiencia, tanto en el rubro de soluciones técnicas concretas como en el de adopción de estándares. Tiene también desventajas, entre las cuales se distingue la necesidad de recompilar las aplicaciones para cada plataforma de interés. Sin embargo, contra esa desventaja existe un número de ventajas que la hacen aparecer, creemos, como la forma racional y viable de lograr la portabilidad real.

A manera de ejemplo, en materia de interacción de las aplicaciones con el API del sistema operativo existe un estándar tan difundido y aceptado que se ha vuelto exigencia: se llama Posix. Si se escriben aplicaciones en C o C++ que, en su dependencia del sistema operativo se ciñen a lo que dicta el estándar, su portabilidad en ese sentido es completa.

Por otra parte, cuando se trata de los aspectos particulares de la compilación en cada ambiente de desarrollo, existe en Unix un conjunto de herramientas de autodetección del entorno de desarrollo y de la preparación de los parámetros para la compilación, que simplifican en grado sumo tal labor y la vuelven, en la mayor parte de los casos, trivial. Dichas herramientas, entre otras cosas pueden hacer lo siguiente:

  • detección del sistema operativo,
  • identificación del compilador,
  • detección de las librerías instaladas,
  • detección de herramientas auxiliares,
  • definición de la estructura de directorios,
  • detección de las capacidades del usuario que está llevando a cabo el proceso.

A cambio de la aparente dificultad en la recompilación de las aplicaciones, se obtiene como beneficio la eficiencia de un código que se ejecuta siempre en su plataforma nativa, con la funcionalidad idéntica en todas la plataformas.

El software libre ha demostrado su calidad, muy por encima de las correspondientes aplicaciones comerciales, de la siguiente forma:

  • presenta menor número de fallas (bugs),
  • es más rápida la respuesta de los cuerpos de desarrollo a las fallas (soporte verdadero),
  • brinda a los usuarios más amplitud en el soporte,
  • dada su amplia vinculación con la academia y a la investigación, incorpora de ellas todos sus avances y tendencias, anticipándose a lo meramente comercial.

NANOTECNOLOGÍA

La nanotecnología es un campo de las ciencias aplicadas dedicado al control y manipulación de la materia a una escala menor que un micrómetro, a nivel de átomos y moléculas. Tal manipulación se produce en un rango de entre uno y cien nanómetros.

La nanotecnología es el estudio, diseño, creación, síntesis, manipulación y aplicación de materiales, aparatos y sistemas funcionales a través del control de la materia a nano escala, y la explotación de fenómenos y propiedades de la materia a nano escala.

La nanotecnología habla de máquinas pequeñas al extremo de lo invisible capaces de construir edificios, detener enfermedades, pelear guerras y producir alimentos.

*Memoria:

En un laboratorio de IBM en Zurich, uno de los que ayudó en la invención del microscopio AFM de 1986, se trabaja en la miniaturización a nivel nanómetro del registro de datos. El sistema de almacenamiento se basa en un conjunto de 1024 agujas de AFM en una matriz cuadrada que pueden escribir bits de información de no más de 50 nanómetros de diámetro. El mismo conjunto es capaz de leer la información e incluso reescribirla.

La capacidad de guardar información a esa escala es una noticia para el mercado, pues multiplica la cantidad de información que se puede almacenar en un área determinada. El sistema actual de registro, basado en la memoria magnética, puede guardar alrededor de dos gigabits por centímetro cuadrado. Con unidades de almacenamiento provistas de matrices gigantescas, con millones de agujas, se puede lograr un almacenamiento en el orden de los terabytes, como 40 veces lo que está disponible hoy comercialmente.

*Computadoras ubicuas:

La miniaturización a nivel nanométrico apunta a la inserción de potentes computadoras en relojes de pulsera y teléfonos celulares que posean un disco rígido. Se supone que la tecnología del "Miriápodo" (como un ciempiés) proveerá de discos rígidos de una capacidad en el orden de los gigabytes y de un tamaño de un centímetro cuadrado. Este nanodrive de tecnología AFM requerirá menos energía para su operación que los de tecnología magnética, un factor crítico en los productos portátiles.

*Nanotecnología puede crear una red de Internet basada en energía solar.

Investigadores de Canadá han demostrado que se puede utilizar la nanotecnología para conseguir un Internet de máxima potencia basado en la potencia de luz. Este descubrimiento puede llevar a una red 100 veces más rápida que la actual.

Profesores de la Universidad de Carleton diseñaron una sustancia que combinaba buckyballs (una nano-estructura compuesta de 60 átomos de carbono C60 estructurados en un espacio cerrado y perfectamente simétrico, especialmente como superconductores), con un tipo de polímero. Esta combinación logró crear una capa clara y lisa, diseñada para lograr que las partículas de luz captase la trayectoria de otras partículas.

Sargent y Chen, estudiaron las propiedades ópticas de esta nueva sustancia híbrida. Descubrieron que la sustancia era capaz de procesar datos transportados en ondas de telecomunicaciones, los colores infrarojos de luz utilizados en cables de fibra de óptica. Según Sargent, un sistema basado en la comunicación vía fibra óptica podría enviar señales por la red global en un pico-segundo, resultando un Internet 100 veces más rápido.

No hay comentarios: