¿Por qué cada aplicación se ejecuta como un usuario separado?
Porque Android aplica un aislamiento de procesos mucho más fuerte que los sistemas operativos tradicionales (de escritorio) como Unix, Linux o Windows, al tiempo que permite la interacción entre aplicaciones (IPC es una de las fortalezas de Android) asegurado por un buen modelo de seguridad.
¿Es por razones de seguridad, para que una aplicación no pueda dañar a otra?
Principalmente es por razones de privacidad, pero también resulta útil desde un punto de vista de seguridad. El fuerte aislamiento de aplicaciones en Android garantiza que ninguna aplicación pueda afectar a otra aplicación.
¿Por qué no es así en las distribuciones de Linux de escritorio?
La mayoría de los modernos sistemas multiusuario de escritorio se centran en aislar a los usuarios. Los procesos también están aislados, pero no tan fuertemente como en Android. Por ejemplo, si instalas un programa en Linux o Windows, tendrá acceso total a tus datos privados de usuario. En Android, si no se otorgan permisos especiales, solo tendrá acceso a sus propios datos.
Hace un tiempo, el hecho de que las aplicaciones de Android que solicitan el permiso READ_EXTERNAL_STORAGE
también obtienen acceso a las imágenes de los usuarios que residen en /sdcard/DCIM
era un gran obstáculo. De alguna manera, nadie parecía recordar que bajo una instalación normal de GNU/Linux o Windows, cada aplicación instalada que es ejecutada por el usuario tiene acceso total a sus datos privados.
Android está algunos pasos adelante en comparación con los sistemas operativos tradicionales en cuanto a permisos y control de acceso para usuarios finales normales. Las instalaciones típicas de Linux para usuarios finales aún no exponen esas características. Probablemente porque nadie ha escrito buenos GUI amigables para ellos. Y si alguna vez hay otra versión de Windows después de Win8, probablemente veremos un sistema de permisos similar allí también.