31 de octubre de 2013

"De propósito general" es algo más que una definición

La mayoría de sistemas operativos predominantes que utilizamos a diario son considerados "de propósito general", es decir, no están diseñados y optimizados para una tarea específica, sino que intentan abarca un rango muy amplio de funcionalidades, a diferencia de los de propósito específico, diseñados para tareas muy concretas.

El hecho de que un sistema operativo sea "de propósito general" es algo que se suele pasar por alto, pero que a veces tiene un coste, aunque por la regla general es muy positivo. Y no todos entienden o se acuerdan de que pensar en el "propósito general" fuerza a pensar los problemas de una manera diferente: recuerden los flamewars en los que se ha acusado a Linux de centrarse demasiado en servidores y estar condenado por ello a no ser óptimo en el escritorio, por ejemplo.

El caso es que hoy nos encontramos con un ejemplo de libro de las ventajas de un diseño de "propósito general": Acaba de publicarse Android 4.4 "Kitkat". En su esfuerzo por reducir la patética y negada hasta la saciedad brutal fragmentación de Android y por adaptar a relojesotro tipo de formatos con hardware menos potente, Google se ha esforzado por reducir los requisitos de memoria del sistema operativo. Y la lista de técnicas que han usado para lograr reducción de uso de memoria es curiosa:
OEMs building the next generation of Android devices can take advantage of targeted recommendations and options to run Android 4.4 efficiently, even on low-memory devices. Dalvik JIT code cache tuning, kernel samepage merging (KSM), swap to zRAM, and other optimizations help manage memory
"Kernel Samepage Merging (KSM)", es desduplicación de memoria, es decir, si dos páginas de memoria tienen el mismo contenido, el sistema operativo borra una copia y referencia a sus usuarios a la otra. Fue introducido incluido en 2.6.32, hace casi 4 años. Pero lo curioso es que es una técnica típicamente de virtualización que fue desarrollada en Linux por Red Hat. Cuando se tienen en memoria varias VMs virtualizadas de un mismo sistema operativo, la desduplicación puede ahorrar cantidades de memoria considerables.

Lo bueno de que Linux sea un sistema operativo de propósito general es que Android puede usar ahora ese mismo sistema de desduplicación. ¿Quien podría haber predicho hace cuatro años que un sistema pensado para servidores acabaría siendo utilizado en teléfonos móviles de última generación?

2 comentarios:

  1. Interesante artículo. El kernel Linux debe tener todavía más funciones que puedan optimizar el uso de android, ya que al ser una máquina virtual de Java, consume muchos más recursos de los que debería. O al menos, eso pienso.

    ResponderEliminar
  2. Y a ver que lían los de Jolla con SailfishOS, que de momento van a sacar un móvil en breve, pero igual que se pretendía con Meego, quieren meterlo hasta en la sopa... Relojes, televisores, sistemas de navegación de coche, neveras...

    ResponderEliminar