El Sistema Operativo no importa

Hace algún tiempo, los sistemas operativos importaban mucho; estos definían qué podía y qué no podía hacer una computadora. El viejo Sistema Operativo orquestaba el uso de recursos: memoria, procesadores, entrada/salida a dispositivos externos (pantalla, teclado, discos, red, impresoras, etcétera). Son un conjunto de tareas complicadas que requieren hacer malabares delicados entre restricciones y conflictos, y cada Sistema Operativo lo hacía de manera diferente, o no lo hacían. En aquellos días, el Sistema Operativo estaba casado con el hardware y solo un puñado de magos con estudios en Ingeniería Electrica - y un profundo conocimiento en circuitos - entendían (inventaron y protegieron) la construcción de Sistemas Operativos.

Al paso del tiempo, los secretos de estos illuminati se filtraron. Hace poco más de 20 años, el Sistema Operativo perdió su misterio. Se ha aprendido tanto acerca de la programación de un kernel que se ha convertido en un estudio universitario y un pasatiempo de las vacaciones de fin de año. Claro está, a nivel universitario se ve el estudio de un Sistema Operativo de manera teórica, se requiere aún de mucho esfuerzo para hacerlo.

Hoy, solo existe un Sistema Operativo: UNIX. Es por eso que se da por sentado que el Sistema Operativo ya no importa - o que se necesita otro nuevo punto de vista, para definir el término de Sistema Operativo.

Cuando RIM decidió ir con el Sistema Operativo QNX para su tableta, la Playbook, empezó a correrse el chisme. Después de nombrar a Blackberry OS como el “mejor de la camada” (una frase de marketing muy rebuscada), RIM se rindió a la realidad: La fundación del “Sistema Operativo probado” demostró ser muy rígida. Debido a las capas de software que se ha acumulado a través de los años, el objeto ya no podía ser modernizado. Fue mejor dejarlo a un lado y volver a empezar. QNX está basado en un Sistema Operativo UNIX para aplicaciones empotradas que data de 1982 cuando fue liberado para el procesador Intel 8088.

Lo mismo le pasó a Apple… 2 veces. El Sistema Operativo de Apple II (o la falta de uno, según los puristas), no podía actualizarse a estándares modernos, así que Macintosh tuvo que construírse sobre bases frescas. El Mac OS original tuvo bases propias y fue reemplazado por OS X. Basado en un kernel Mach, OS X es otro derivado de UNIX, hecho en conjunto con la Universidad Carnegie Mellon y Avie Tevanian1. El señor Tevanian mejoró el sistema durante sus inicios como jefe en software de NeXT y fue el instrumento en convencer a Apple que la compra de NeXT podía darle nueva vida a la compañía.

Si abres la aplicación Terminal en Mac, ¿qué es lo que ves? Una noble “shell” de Unix, un programa que los geeks usan para interactuar con el Sistema Operativo. La terminal usa la shell bash (Bourne Again Shell, creada por Brian Fox, basada en sh, que fue creada por Stephen Bourne).

Y ahora se tiene Apple iOS, un derivado de OS X.

También estuvo Palm. Se dieron cuenta que PalmOS no tenía arreglo, entonces empezaron de nuevo y crearon WebOS, un derivado de Linux.

¿Android? Está badado en el kernel de Linux. ¿El Meego de Nokia? También.

La lista sigue. Se tiene el hijo espiritual de UNIX viviendo en la Nube, corriendo millones de servidores Linux en Google, Facebook, Amazon, etcétera.

La única excepción es Windows. Inicialmente construído encima de MS-DOS, Microsoft fue construyendo versión tras versión, tratando de mantener compatiblidad hacia atrás y al mismo tiempo, agregar nuevas características. No siempre trabajó bien (vease Windows Me y Windows Vista), pero trabajaba lo suficientemente bien porque Microsoft no se rindió. Arreglaron problemas que declaraban que no existían, y apareció un bien respetado Windows 7.

Windows vivirá - en una industria de la PC que se encuentra tambaleando. Pero del otro lado, en el segmento de la Nube y smartphones de alto crecimiento, es un mundo Unix/Linux. Se necesita ver a otro lugar para encontrar las diferencias que importan.

Los retos técnicos se han migrado a dos áreas: La Interfaz de Usuario (UI) ó el ahora nuevo término Experiencia de Usuario (UX), y herramientas de programación.

Ahora que todas las funciones de sistema son similares, el juego de los fabricantes de hardware y software es convencer al usuario que su experiencia será más cómoda e intuitiva. Tu dispositivo caminará sobre el agua, te atrapará cuando caes, entre otras ideas que te hacen creer los vendedores.

Para los desarrolladores, lo que ahora se le llama Sistema Operativo debe de proveer un alto poder expresivo. Para ejercer ese poder expresivo, el programador necesita herramientas de software. La industria usa acrónimos como API (Application Programming Interface), IDE (Integrated Development Environment) o frases como Application Frameworks. Estas definen las reglas y convenciones -qué ideas son permitidas y cómo expresarlas- y las herramientas de software que los programadores necesitan para desarrollar una aplicación.

Este es el Sistema Operativo de hoy. Experiencia de Usuario. Herramientas de desarrollo.

Un último elemento que es y no es Sistema Operativo: Esta nueva criatura llamada Tienda de Aplicaciones. Desde un punto de vista no técnico, la Tienda de Aplicaciones debe ser considerada parte de la totalidad del Sistema Operativo, parte de su entorno. Las aplicaciones siempre han estado alrededor del Sistema Operativo. Un programa puede hacer hasta donde el Sistema Operativo lo permita, así que se hicieron trucos para crear multi-tarea, para poder reproducir audio y video sin interrupciones. Estos trucos fueron incorporados al Sistema Operativo (y al hardware, vease el GPU), con lo cual se creó una nueva generación de aplicaciones que querían más y más.

La tienda de Aplicaciones, inventada o no en Cupertino, forma parte de este entorno, un componente OS Killer.


  1. Vice Presidente Senior de Ingeniería de Software en Apple Computer entre 1997 y 2003. CSTO en Apple Computer entre 2003 y 2006. Encargado del desarrollo de Mac OS X.

    [return]