Viendo ayer la comunicación entre procesos se ve que en Android se usa OpenBinder. Pero he mirado la lista de procesos y he visto que existe un daemon llamado dbus-daemon que también se está ejecutando.
Y yo me pregunto ¿por qué si Android usa OpenBinder como sistema de comunicación entre procesos, también está el sistema D-Bus para hacer lo mismo? ¿Por qué este sistema es redundante?

Pues parece ser, según me ha informado mi amigo Héctor, que la pila Bluetooth de Android está basada en Bluez, la implementación oficial de la pila Bluetooth en Linux. Y resulta que esta implementación utiliza D-Bus para comunicarse con el resto de los procesos, como se puede observar en el diagrama donde se explica su funcionamiento.
Espero que pronto implementen su propia pila Bluetooth o, al menos, que reimplementen la comunicación de la actual adaptándola a OpenBinder, porque lo que pasa con esto es que existe un proceso adicional e innecesario que lo único que hace es comsumir memoria, tiempo y de procesador y, sobre todo, batería. Y la verdad es que Android es un sistema bastante bien hecho y que está calando profundo como para que estén con estas cosas.







¿Has visto Go?
ttp://www.rethink-wireless.com/article.asp?article_id=2136
Entre los autores están Ken Thompson, Rob Pike y Russ Cox.
Tienes una charla de Rob Pike, de Google Tech Talks
(1 hora):
http://www.youtube.com/watch?v=rKnDgT73v8s
Sí, lo había visto. De hecho tengo que echarle un vistazo porque por lo poco que he visto, aunque tiene sus carencias (a mi entender) ha solucionado el problema de la concurrencia y sincronización de hilos de una forma muy elegante.
Quizás sea la próxima entrada
.