Requisitos de interfaz

Esta página describe un subconjunto de las interfaces del kernel de Linux en las que se basa Android para funcionar correctamente. La presencia y corrección de estas interfaces se prueban como parte de Vendor Test Suite (VTS) . Este subconjunto crecerá con el tiempo para contener una mayor parte de las interfaces del kernel de Android.

Llamadas al sistema

Se espera que todas las llamadas al sistema proporcionen las mismas firmas y semántica que en el kernel de Linux ascendente de la misma versión.

prctl

Además de las operaciones prctl ascendentes para las versiones de kernel compatibles, Android se basa en operaciones prctl adicionales, cuya implementación se puede encontrar en el kernel común de Android.

PR_SET_TIMERSLACK_PID
PR_SET_VMA

sistemas de archivos

El kernel de Linux exporta interfaces a través de varios sistemas de archivos. Android espera que estas interfaces comuniquen la misma información, en el mismo formato y proporcionen la misma semántica que en el kernel de Linux ascendente. Para las interfaces que no existen aguas arriba, el comportamiento apropiado lo dicta la rama correspondiente del kernel común de Android.

procfs

Interfaz Descripción
/proc/asonido/ Archivo de solo lectura que muestra la lista de controladores ALSA actualmente configurados.
/proc/líneacmd Archivo de solo lectura que contiene argumentos de línea de comando pasados ​​al kernel.
/proc/config.gz Archivo de solo lectura que contiene la configuración de compilación del kernel.
/proc/cpuinfo Archivo de solo lectura que contiene detalles de CPU específicos de la arquitectura.
/proc/diskstats Archivo de solo lectura que muestra estadísticas de E/S de dispositivos de bloque.
/proc/sistemas de archivos Archivo de solo lectura que enumera los sistemas de archivos actualmente admitidos por el kernel.
/proc/kmsg Archivo de solo lectura que muestra mensajes del kernel en tiempo real.
/proc/carga promedio Archivo de solo lectura que muestra el promedio de carga de E/S y CPU a lo largo del tiempo.
/proc/meminfo Archivo de solo lectura que muestra los detalles del subsistema de memoria.
/proc/misc Archivo de solo lectura que enumera varios controladores registrados en el dispositivo principal misceláneo.
/proc/modulos Archivo de solo lectura que contiene información sobre los módulos del kernel cargados.
/proc/montajes Enlace simbólico a /proc/self/mounts , que es un archivo de solo lectura que enumera información sobre los sistemas de archivos montados.
/proc/net Directorio que contiene una variedad de parámetros de pila de red.
/proc/net/xt_qtaguid/ Archivo de lectura y escritura que proporciona información sobre sockets etiquetados.
/proc/pagetypeinfo Archivo de solo lectura que contiene información del asignador de páginas.
/proc/stat Archivo de solo lectura que contiene varias estadísticas del kernel y del sistema.
/proc/intercambios Archivo de solo lectura que muestra la utilización del espacio de intercambio. Este archivo es opcional; su contenido y permisos se verificarán en VTS solo si el archivo está presente .
/proc/sys/abi/swp Archivo de lectura y escritura que determina el comportamiento de la instrucción ARM obsoleta SWP.
/proc/sys/fs/pipe-max-size Archivo de lectura y escritura que informa el tamaño máximo, en bytes, de un búfer de tubería individual.
/proc/sys/fs/protected_hardlinks Archivo de lectura y escritura que controla el comportamiento de creación de enlaces duros.
/proc/sys/fs/protected_symlinks Archivo de lectura y escritura que controla el comportamiento de creación de enlaces simbólicos.
/proc/sys/fs/suid_volcable Archivo de lectura y escritura que controla el modo de volcado del núcleo para setuid o binarios protegidos/contaminados.
/proc/sys/kernel/core_patrón Archivo de lectura y escritura que especifica el patrón de nombre de archivo de volcado del núcleo.
/proc/sys/kernel/core_pipe_limit Archivo de lectura y escritura que define cuántos procesos de bloqueo simultáneos se pueden canalizar a las aplicaciones de usuario en paralelo.
/proc/sys/kernel/dmesg_restrict Archivo de lectura y escritura que controla si los usuarios sin privilegios pueden acceder a dmesg.
/proc/sys/kernel/nombre de dominio Archivo de lectura y escritura que contiene el nombre de dominio YP/NIS del sistema.
/proc/sys/kernel/nombre de host Archivo de lectura y escritura que determina el nombre de host del sistema.
/proc/sys/kernel/hung_task_timeout_secs Archivo de lectura y escritura que controla el tiempo de espera utilizado para determinar cuándo una tarea deja de responder y debe considerarse colgada. Este archivo es opcional; su contenido y permisos se verificarán en VTS solo si el archivo está presente .
/proc/sys/kernel/kptr_restrict Archivo de lectura y escritura que determina si los punteros del kernel se imprimen en archivos proc y otras interfaces.
/proc/sys/kernel/modules_disabled Archivo de lectura y escritura que controla si se pueden cargar los módulos del núcleo.
/proc/sys/kernel/panic_on_oops Archivo de lectura y escritura que controla el comportamiento del kernel en oops.
/proc/sys/kernel/perf_event_max_sample_rate Archivo de lectura y escritura que controla la frecuencia de muestreo máxima de los eventos de rendimiento.
/proc/sys/kernel/perf_event_paranoid Archivo de lectura y escritura que controla el uso del sistema de eventos de rendimiento por parte de usuarios sin privilegios.
/proc/sys/kernel/pid_max Archivo de lectura y escritura que contiene el valor de ajuste de asignación de PID.
/proc/sys/kernel/random/boot_id Archivo de solo lectura que contiene una nueva ID aleatoria en cada arranque.
/proc/sys/kernel/randomize_va_space Archivo de lectura y escritura que determina la política de aleatorización del diseño de direcciones para el sistema.
/proc/sys/kernel/sched_child_runs_first Archivo de lectura y escritura que controla si las tareas recién bifurcadas se favorecen en la programación sobre sus tareas principales.
/proc/sys/kernel/sched_latency_ns Archivo de lectura y escritura que contiene la latencia máxima, en nanosegundos, en la que puede incurrir una tarea antes de ser programada.
/proc/sys/kernel/sched_rt_period_us Archivo de lectura y escritura que contiene la duración del período utilizada por el límite de ejecución de RT de todo el sistema en microsegundos.
/proc/sys/kernel/sched_rt_runtime_us Archivo de lectura y escritura que contiene la cantidad de tiempo, en relación con sched_rt_period_us, que el sistema puede ejecutar tareas de RT.
/proc/sys/kernel/sched_tunable_scaling Archivo de lectura y escritura que controla si el programador debe ajustar automáticamente sched_latency_ns en función de la cantidad de CPU.
/proc/sys/kernel/sched_wakeup_granularity_ns Archivo de lectura y escritura que contiene cuánto más tiempo de ejecución virtual debe tener la tarea A que la tarea B en nanosegundos para que la tarea B se adelante.
/proc/sys/kernel/sysrq Archivo de lectura y escritura que controla las funciones que se pueden invocar a través de la tecla sysrq.
/proc/sys/net/* Directorio que contiene una variedad de parámetros de pila de red.
/proc/sysrq-disparador Archivo de solo escritura que se puede usar para iniciar funciones sysrq.
/proc/sys/vm/dirty_background_ratio Archivo de lectura y escritura que contiene, como porcentaje de la memoria total disponible (páginas libres y páginas recuperables), el número de páginas en las que los subprocesos de descarga del núcleo en segundo plano comenzarán a escribir datos sucios.
/proc/sys/vm/dirty_expire_centisecs Archivo de lectura y escritura que define cuándo los datos sucios son lo suficientemente antiguos como para ser elegibles para que los subprocesos de vaciado del núcleo los escriban.
/proc/sys/vm/drop_caches Archivo de lectura y escritura que se puede usar para obligar al kernel a eliminar cachés limpios.
/proc/sys/vm/extra_free_kbytes Archivo de lectura y escritura que se puede usar para mantener memoria libre adicional entre el umbral en el que se activa la recuperación en segundo plano (kswapd) y el umbral en el que se activa la recuperación directa (mediante la asignación de procesos). Este archivo es opcional; su contenido y permisos se verificarán en VTS solo si el archivo está presente .
/proc/sys/vm/max_map_count Archivo de lectura y escritura que contiene el número máximo de áreas de mapa de memoria que puede tener un proceso.
/proc/sys/vm/mmap_min_addr Archivo de lectura y escritura que determina la dirección mínima que se puede mmap 'd.
/proc/sys/vm/mmap_rnd_bits Archivo de lectura y escritura que especifica la cantidad de aleatoriedad en las direcciones mmap 'd.
/proc/sys/vm/mmap_rnd_compat_bits Archivo de lectura y escritura que especifica la cantidad de aleatoriedad en las direcciones mmap 'd.
/proc/sys/vm/overcommit_memory Archivo de lectura y escritura que determina el modo de contabilidad de la memoria virtual del kernel.
/proc/sys/vm/page-cluster Archivo de lectura y escritura que controla el número de páginas hasta las que se leen páginas consecutivas desde el intercambio en un solo intento.
/proc/uid_cputime/remove_uid_range Archivo de solo escritura que, cuando se escribe, elimina los UID para que no se muestren en /proc/uid_cputime/show_uid_stat .
/proc/uid_cputime/show_uid_stat Archivo de solo lectura que contiene el tiempo que los procesos de un UID pasaron en el espacio del usuario y del kernel.
/proc/uid_io/estadísticas Archivo de solo lectura que contiene una lista de estadísticas de E/S para cada UID en el sistema
/proc/uid_procstat/conjunto Archivo de solo escritura utilizado para configurar un UID como primer plano o fondo.
/proc/uid_time_in_state Archivo de solo lectura que contiene el tiempo que los procesos de cada UID pasan ejecutándose en cada frecuencia disponible. Este archivo es opcional; su contenido y permisos se verificarán en VTS solo si el archivo está presente .
/proc/tiempo de actividad Archivo de solo lectura que muestra cuánto tiempo ha estado funcionando el sistema.
/proc/versión Archivo de solo lectura que contiene una cadena que describe la versión del kernel.
/proc/vmallocinfo Archivo de solo lectura que contiene vmalloc 'd.
/proc/vmstat Archivo de solo lectura que contiene estadísticas de memoria virtual del kernel.
/proc/infozona Archivo de solo lectura que contiene información sobre las zonas de memoria.

desarrollador

Interfaz Descripción
/dev/ashmem Archivo anónimo de dispositivo de memoria compartida.
/dev/carpeta Archivo de dispositivo Binder.
/dev/hwbinder Archivo de dispositivo de enlace de hardware.
/dev/tune Archivo de dispositivo TUN/TAP universal.
/dev/xt_qtaguid Archivo de dispositivo de filtro de red QTAGUID.

sistemas

Interfaz Descripción
/sys/clase/net/*/mtu Archivo de lectura y escritura que contiene la unidad de transmisión máxima para cada interfaz.
/sys/clase/rtc/*/hctosys Archivo de solo lectura que muestra si un rtc en particular proporciona la hora del sistema en el arranque y la reanudación.
/sys/dispositivos/sistema/cpu/ Directorio que contiene información sobre la configuración y la frecuencia de la CPU.
/sys/kernel/wakeup_reasons Directorio de archivos de solo lectura que contienen la hora de la última suspensión y el motivo de la reanudación.
/sys/poder/estado Archivo de lectura y escritura que controla los estados de suspensión del sistema.
/sys/power/wake_lock Archivo de lectura y escritura que contiene los wake locks activos.
/sys/power/wake_unlock Archivo de lectura y escritura que contiene wake locks no activos.
/sys/power/wakeup_count Archivo de lectura y escritura que se puede usar para poner el sistema en estado de suspensión teniendo en cuenta la llegada simultánea de eventos de activación.

selinuxfs

El marco monta selinuxfs en /sys/fs/selinux .

Sendero Descripción
/sys/fs/selinux/checkreqprot Archivo de lectura/escritura que contiene un indicador binario que determina cómo se verifican las protecciones de selinux en llamadas mmap y mprotect .
/sys/fs/selinux/null Dispositivo nulo de lectura/escritura para uso de selinux.
/sys/fs/selinux/política Archivo de solo lectura que contiene la política de selinux en forma binaria.