Native Daemons and Libraries

Native daemons in this layer include init, healthd, logd, and storaged. These daemons interact directly with the kernel or other interfaces and don't depend on a userspace-based HAL implementation.

Native libraries in this layer include libc, liblog, libutils, libbinder, and libselinux. These Native libraries interact directly with the kernel or other interfaces and don't depend on a userspace-based HAL implementation.

Native Daemons:

  • Live in the same layer as the Linux kernel: They interact directly with the kernel or other low-level interfaces for essential functionalities.

  • Examples:

    • init: Responsible for system startup, initializing processes, and bringing up the Android framework.

    • healthd: Monitors system health and logs any issues.

    • logd: Handles system logging, collecting and storing messages from various parts of the system.

    • storaged: Manages storage devices like flash memory and SD cards.

  • Don't rely on HAL (Hardware Abstraction Layer): They operate at a lower level, independent of userspace HAL implementations.

Native Libraries:

  • Also reside in the same layer as the kernel: These libraries provide core functionalities for the system, directly interacting with the kernel or other low-level interfaces.

  • Examples:

    • libc: The C standard library, offering essential functions for memory management, input/output, and string manipulation.

    • liblog: Provides logging functions used by other system components.

    • libutils: Collection of utility functions commonly used by the Android system.

    • libbinder: Inter-Process Communication (IPC) mechanism for communication between various system services.

    • libselinux: Provides Security-Enhanced Linux (SELinux) functionalities for access control.

  • Independent of userspace HAL: Similar to daemons, they operate at a lower level, independent of userspace HAL implementations.

Last updated