miércoles, 8 de julio de 2009

La nube color cromo

Google Chrome OS: ese es el nombre que se nos propone para la gran novedad tecnológica del 2009/2010. Qué mejor tema para el post 300 de este blog.

Para el consumidor final, una computadora es Windows. Así de simple a pesar que los Mactards o los zelotes del Linux o del FLOSS opinen lo contrario. Ni Linux es realmente capaz de competir a nivel del consumidor final, ni Apple tiene interés en pelear con Microsoft por las masas, sino simplemente regodearse con la minoría que está dispuesta a pagar extra por su sistema operativo.

Esto puede cambiar, aunque no sabremos realmente cuándo y qué tan rápido, si el proyecto de sistema operativo de Google despega. Aclaremos: un sistema operativo combina tanto la interfaz, que es la manera como hacemos las cosas en la computadora, como la gestión de servicios interna de la computadora. ¿Un ejemplo? La vulnerabilidad de Windows a los virus es en parte resultado de una decisión de arquitectura: todo programa instalado en cualquier directorio puede ejecutarse; en Unix (es decir Linux y Apple OS X), los programas solo pueden ejecutarse desde el directorio de aplicaciones, lo que hace más complicado contrabandear programas haciéndolos pasar por otra cosa.

Pero lo más importante es que los sistemas operativos residen en la computadora, ocupando un montón de espacio en el disco duro. Google en cambio está proponiendo mover todo a la nube, el hábitat natural de esta empresa. La apuesta es audaz y puede que no funcione, pero hay que reconocer que si funciona nos va a regresar al pasado al mismo tiempo que permitirnos un gran salto al futuro.

¿Contradicción? En parte: poner todo, del sistema operativo a los datos, pasando por los programas, en la nube, se parece mucho a la computación de la prehistoria, cuando todo se hacía en una mainframe y lo que podía tocar un usuario no era más que un dispositivo de ingreso y exhibición de datos. Un viejo terminal tenía mínimas capacidades de procesamiento y se podía reemplazar a la volada. La data, y todo lo que le daba sentido a la data, residía en la mainframe, un artefacto mágico que residía en un sancta sanctorum informático, protegido por una serie de sacerdotes, desde monaguillos / operadores que no la dejaba sola, hasta cardenales / ingenieros que la tocaba y daban mantenimiento. Claro, incluso ahí la mainframe era de la empresa: ahora la mainframe va a ser la granja de servidores de Google, y más allá de todos los EULAs y promesas de Google de "no hacer el mal", igual, la dependencia del gigante de Mountain View no va a bajar, va a aumentar.

Por el lado positivo, esto le puede hacer la vida más fácil al usuario hiperconectado de hoy, el que no tendrá que preocuparse de actualizaciones, de virus, de backups nunca hechos. Si se quiere una computadora para navegar, mandar correos o mensajes instantáneos, y por ahí hacer alguito más con fotos y páginas web, una plataforma en la nube simplifica la vida: puede acceder a ella desde cualquier sitio, con cualquier equipo. Claro, habrán cosas que no valdrá la pena intentar hacer en la nube, como editar videos. Pero lo demás, pues no creo que haya muchos límites para hacerlo en la nube cromada.

Veremos: cuando hayan más novedades, claro está.
-

3 comentarios:

Elventear dijo...

El modelo de la Nube es un modelo centralizado, pero no es lo mismo que un sistema de terminales tontos manejados por un mainframe.

Ya hoy en día se pueden hacer interfases Web que son totalmente programables con JavaScript, CSS, HTML y SVG. Es probable que a la larga este medio reemplace a Flash. Con HTML5 se está intentando integrar el video en los estándares abiertos de la Web y Google tiene un prototipo para mostrar gráficos con OpenGL (3D entre otras cosas), directamente en el browser.

Un equipo que sea capaz de manipular su interfaz a su antojo, generar gráficos, captar información (Video, audio, fotos) no es un equipo tonto.

Existen dos propósitos con esta tendencia hacia los "terminales conectados" (Como yo los llamaría): portabilidad y acceso a información vasta. Al mantener el equipo conectado uno se puede deshacer de la necesidad de tener medios de almacenamiento en el equipo, lo cual mejora la portabilidad del equipo (En tamaño y duración de la batería).

El concepto de nube, no implica el riesgo de Monopolio. Sobre todo si utiliza estándares abiertos, el riesgo está sin embargo que existan un grupo limitado de proveedores, dada la necesidad de una gran inversión en infraestructura.

Muy aparte del tema, quisiera aclarar el punto de seguridad en Windows vs. Unix. Windows y Unix son igualmente vulnerables a código ejecutable, no existe tal cosa como un directorio de aplicaciones. Por otro lado, laa razón de que Unix ha demostrado ser más seguro que Windows, en mi opinión, es por el paradigma de diseño del sistema operativo. Unix está hecho a partir de muchas piezas independientes con funciones muy específicas. Todas estas piezas interactúan entre sí, pero no dependen entre sí; esto permite más fácilmente separar los privilegios entre las aplicaciones. En cambio, Windows ha sido desarrollado de una forma monolítca donde muchas cosas están relacionadas, no hay una clara separación de privilegios.

Otras razones:
- Unix fue desarrollado desde el inicio como un sistema multiusuario, así que su configuración por defecto considera cualquier cosa que no sea de confianza como hostil. Windows no.
- La otra razón es la edad de Unix. El Unix es un sistema operativo con más de 30 años de antigüedad y existen partes de los Unix actuales que retinen muchos pedazos de código originales, que han sido corregidos con el paso de los años. En mi opinión es más difícil hacer esto en Windows, razón por la cual decidieron reescribir el Windows para Vista y terminó siendo un fiasco.

En resumen, aunque en la superficie parezca diferente, las entrañas de Unix son menos complejas. Menor complejidad implica menor probabilidad de vulnerabilidades y error humano.

Eduardo Villanueva Mansilla dijo...

Gracias por el comentario, pero...

Aparte de no haber dicho que se trata de equipos o terminales tontos... la clave acá está en dónde residen los datos y la capacidad real de procesamiento. Un terminal con RAM, procesadores de video y todo lo demás diseñado para encargarse de procesar client-side la exhibición de datos y etcétera, se sigue pareciendo funcionalmente a un 3278: la diferencia es cuánta exigencia pone la exhibición de datos. La lógica tras el sistema es similar. Digamos que la definición de "tonto" ha cambiado, por miles de razones, pero no deja de parecerse.

Tampoco el concepto de mainframe implicaba monopolio, y no es el punto que he tratado de indicar: es el riesgo de concentrar la información en un solo sitio... en Google.

Varios puntos más pero no puedo acotarlos ahora.

Farid Matuk dijo...

*** Permiteme un comentario desde la pre-historia como programador en Fortran, de seguro uno en Cobol lo ve diferente. En el viejo mainframe, el usuario tenía todo de su lado (tarjetas perforadas con los datos y el programa), entregaba las tarjetas en una ventanilla y al día siguiente recibía las tarjetas mas un impreso. La computadora únicamente procesaba, no almacenaba.
*** Cuando llegaron las cintas magnéticas, el disco duro y los términales, se centralizó un tanto porque el código se escribía a través de un terminal en el disco duro del mainframe, pero los datos se almacenaban en cintas que usualmente estaban en manos del usuario.
*** En el primer UNIX que use en una PDP 11/30, los datos y el código se almacenaban en un floppy de 8 pulgadas (128Kb), y la interacción era similar a la presente con una PC sin internet. Los sumos sacerdotes se hacían innecesarios porque el UNIX era mas flexible que los sistemas operativos específicos de cada mainframe.
*** Con el surgimiento del modem, la comunicación entre computadores no dependía de cables ad-hoc, sino se podía hacer a través de la red pública telefónica y con ello la cooperación entre usuarios tomó diversas formas como el correo-e, los bulletin boards, la www, etc. Y la ausencia de mainframe persistía.
*** Hasta donde percibo el modelo de Google es un repositorio central de datos pero la capacidad operativa sigue en manos del usuario. Es decir que un programa estadístico es ejecutado en la PC y los datos están en la nube. Esta situación pudiera ser vista como la inversa del primer diseño de computo donde el programa estadístico era ejecutado en el mainframe y los datos en tarjetas eran almacenados por el usuario.
*** Esta percepción es de un programador Fortran donde lo complejo es el código y lo accesorio es la base de datos, mientras que para un programador Cobol lo complejo es la base de datos y lo accesorio es el código. Por ello veo que la nube de Google tendrá mas impacto en el mundo Cobol que en el mundo Fortran.