Exigences d'interface

Cette page décrit un sous-ensemble des interfaces du noyau Linux sur lesquelles Android s'appuie pour fonctionner correctement. La présence et l'exactitude de ces interfaces sont testées dans le cadre du Vendor Test Suite (VTS) . Ce sous-ensemble grandira au fil du temps pour contenir une plus grande partie des interfaces du noyau Android.

Appels système

Tous les appels système sont censés fournir les mêmes signatures et sémantiques que dans le noyau Linux en amont de la même version.

prctl

En plus des opérations prctl en amont pour les versions de noyau prises en charge, Android s'appuie sur des opérations prctl supplémentaires, dont l'implémentation se trouve dans le noyau Android-common.

PR_SET_TIMERSLACK_PID
PR_SET_VMA

Systèmes de fichiers

Le noyau Linux exporte les interfaces via plusieurs systèmes de fichiers. Android s'attend à ce que ces interfaces communiquent les mêmes informations, dans le même format, et fournissent la même sémantique que dans le noyau Linux en amont. Pour les interfaces qui n'existent pas en amont, le comportement approprié est dicté par la branche correspondante du noyau commun Android.

procfs

Interface Description
/proc/son/ Fichier en lecture seule affichant la liste des pilotes ALSA actuellement configurés.
/proc/ligne de commande Fichier en lecture seule contenant les arguments de ligne de commande transmis au noyau.
/proc/config.gz Fichier en lecture seule contenant la configuration de la construction du noyau.
/proc/cpuinfo Fichier en lecture seule contenant des détails sur le processeur spécifiques à l'architecture.
/proc/diskstats Fichier en lecture seule affichant les statistiques d'E/S des périphériques bloqués.
/proc/systèmes de fichiers Fichier en lecture seule répertoriant les systèmes de fichiers actuellement pris en charge par le noyau.
/proc/kmsg Fichier en lecture seule affichant les messages du noyau en temps réel.
/proc/loadavg Fichier en lecture seule affichant la moyenne de la charge du processeur et des E/S au fil du temps.
/proc/meminfo Fichier en lecture seule affichant les détails du sous-système de mémoire.
/proc/misc Fichier en lecture seule répertoriant les divers pilotes enregistrés sur le périphérique principal divers.
/proc/modules Fichier en lecture seule contenant des informations sur les modules du noyau chargés.
/proc/montages Lien symbolique vers /proc/self/mounts , qui est un fichier en lecture seule répertoriant les informations sur les systèmes de fichiers montés.
/proc/net Répertoire contenant une variété de paramètres de pile réseau.
/proc/net/xt_qtaguid/ Fichier en lecture-écriture fournissant des informations sur les sockets balisées.
/proc/pagetypeinfo Fichier en lecture seule contenant des informations sur l'allocateur de page.
/proc/stat Fichier en lecture seule contenant diverses statistiques du noyau et du système.
/proc/échanges Fichier en lecture seule montrant l'utilisation de l'espace de swap. Ce fichier est facultatif ; son contenu et ses autorisations seront vérifiés dans VTS uniquement si le fichier est présent .
/proc/sys/abi/swp Fichier en lecture-écriture qui détermine le comportement de l'instruction ARM obsolète SWP.
/proc/sys/fs/pipe-max-size Fichier en lecture-écriture qui indique la taille maximale, en octets, d'un tampon de canal individuel.
/proc/sys/fs/protected_hardlinks Fichier en lecture-écriture qui contrôle le comportement de création de liens physiques.
/proc/sys/fs/protected_symlinks Fichier en lecture-écriture qui contrôle le comportement de création de liens symboliques.
/proc/sys/fs/suid_dumpable Fichier en lecture-écriture qui contrôle le mode de vidage de mémoire pour les binaires setuid ou autrement protégés/entachés.
/proc/sys/kernel/core_pattern Fichier en lecture-écriture qui spécifie le modèle de nom de fichier de vidage mémoire.
/proc/sys/kernel/core_pipe_limit Fichier en lecture-écriture qui définit le nombre de processus de plantage simultanés qui peuvent être transmis en parallèle aux applications utilisateur.
/proc/sys/kernel/dmesg_restrict Fichier en lecture-écriture qui contrôle si les utilisateurs non privilégiés peuvent accéder à dmesg.
/proc/sys/kernel/nom de domaine Fichier en lecture-écriture contenant le nom de domaine YP/NIS du système.
/proc/sys/kernel/nom d'hôte Fichier en lecture-écriture qui détermine le nom d'hôte du système.
/proc/sys/kernel/hung_task_timeout_secs Fichier en lecture-écriture qui contrôle le délai d'expiration utilisé pour déterminer le moment où une tâche ne répond plus et doit être considérée comme bloquée. Ce fichier est facultatif ; son contenu et ses autorisations seront vérifiés dans VTS uniquement si le fichier est présent .
/proc/sys/kernel/kptr_restrict Fichier en lecture-écriture qui détermine si les pointeurs du noyau sont imprimés dans les fichiers proc et d'autres interfaces.
/proc/sys/kernel/modules_disabled Fichier en lecture-écriture qui contrôle si les modules du noyau peuvent être chargés.
/proc/sys/kernel/panic_on_oops Fichier en lecture-écriture qui contrôle le comportement du noyau en cas de problème.
/proc/sys/kernel/perf_event_max_sample_rate Fichier en lecture-écriture qui contrôle la fréquence d'échantillonnage maximale des événements de performances.
/proc/sys/kernel/perf_event_paranoid Fichier en lecture-écriture qui contrôle l'utilisation du système d'événements de performances par des utilisateurs non privilégiés.
/proc/sys/kernel/pid_max Fichier en lecture-écriture contenant la valeur de wrapper d’allocation PID.
/proc/sys/kernel/random/boot_id Fichier en lecture seule contenant un nouvel ID aléatoire à chaque démarrage.
/proc/sys/kernel/randomize_va_space Fichier en lecture-écriture qui détermine la politique de randomisation de la disposition des adresses pour le système.
/proc/sys/kernel/sched_child_runs_first Fichier en lecture-écriture qui contrôle si les tâches nouvellement créées sont favorisées dans la planification par rapport à leurs tâches parentes.
/proc/sys/kernel/sched_latency_ns Fichier en lecture-écriture contenant la latence maximale, en nanosecondes, qu'une tâche peut subir avant d'être planifiée.
/proc/sys/kernel/sched_rt_period_us Fichier en lecture-écriture qui contient la durée de la période utilisée par la limite d'exécution RT à l'échelle du système en microsecondes.
/proc/sys/kernel/sched_rt_runtime_us Fichier en lecture-écriture qui contient la durée, par rapport à sched_rt_period_us, pendant laquelle le système peut exécuter des tâches RT.
/proc/sys/kernel/sched_tunable_scaling Fichier en lecture-écriture qui contrôle si sched_latency_ns doit être automatiquement ajusté par le planificateur en fonction du nombre de processeurs.
/proc/sys/kernel/sched_wakeup_granularity_ns Fichier en lecture-écriture qui contient la quantité de plus que la tâche d'exécution virtuelle A doit avoir par rapport à la tâche B en nanosecondes pour que la tâche B la préempte.
/proc/sys/kernel/sysrq Fichier en lecture-écriture qui contrôle les fonctions pouvant être invoquées via la clé sysrq.
/proc/sys/net/* Répertoire contenant une variété de paramètres de pile réseau.
/proc/sysrq-trigger Fichier en écriture seule qui peut être utilisé pour lancer les fonctions sysrq.
/proc/sys/vm/dirty_background_ratio Fichier en lecture-écriture qui contient, en pourcentage de la mémoire totale disponible (pages libres et pages récupérables), le nombre de pages à partir desquelles les threads de vidage du noyau en arrière-plan commenceront à écrire des données sales.
/proc/sys/vm/dirty_expire_centisecs Fichier en lecture-écriture qui définit le moment où les données sales sont suffisamment anciennes pour pouvoir être écrites par les threads de vidage du noyau.
/proc/sys/vm/drop_caches Fichier en lecture-écriture qui peut être utilisé pour forcer le noyau à supprimer des caches propres.
/proc/sys/vm/extra_free_kbytes Fichier en lecture-écriture qui peut être utilisé pour conserver de la mémoire libre supplémentaire entre le seuil où la récupération en arrière-plan (kswapd) entre en jeu et le seuil où la récupération directe (en allouant des processus) entre en jeu. Ce fichier est facultatif ; son contenu et ses autorisations seront vérifiés dans VTS uniquement si le fichier est présent .
/proc/sys/vm/max_map_count Fichier en lecture-écriture contenant le nombre maximum de zones de carte mémoire qu'un processus peut avoir.
/proc/sys/vm/mmap_min_addr Fichier en lecture-écriture qui détermine l'adresse minimale pouvant être attribuée à mmap .
/proc/sys/vm/mmap_rnd_bits Fichier en lecture-écriture qui spécifie le degré de caractère aléatoire des adresses mmap .
/proc/sys/vm/mmap_rnd_compat_bits Fichier en lecture-écriture qui spécifie le degré de caractère aléatoire des adresses mmap .
/proc/sys/vm/overcommit_memory Fichier en lecture-écriture qui détermine le mode de comptabilité de la mémoire virtuelle du noyau.
/proc/sys/vm/page-cluster Fichier en lecture-écriture qui contrôle le nombre de pages jusqu'à laquelle des pages consécutives sont lues à partir du swap en une seule tentative.
/proc/uid_cputime/remove_uid_range Fichier en écriture seule qui, une fois écrit, supprime les UID de l'affichage dans /proc/uid_cputime/show_uid_stat .
/proc/uid_cputime/show_uid_stat Fichier en lecture seule contenant le temps passé par les processus d'un UID dans l'espace utilisateur et noyau.
/proc/uid_io/stats Fichier en lecture seule contenant une liste de statistiques d'E/S pour chaque UID du système
/proc/uid_procstat/set Fichier en écriture seule utilisé pour configurer un UID comme premier plan ou arrière-plan.
/proc/uid_time_in_state Fichier en lecture seule contenant le temps d'exécution de chaque processus UID à chaque fréquence disponible. Ce fichier est facultatif ; son contenu et ses autorisations seront vérifiés dans VTS uniquement si le fichier est présent .
/proc/disponibilité Fichier en lecture seule qui indique depuis combien de temps le système fonctionne.
/proc/version Fichier en lecture seule contenant une chaîne décrivant la version du noyau.
/proc/vmallocinfo Fichier en lecture seule contenant les plages vmalloc 'd.
/proc/vmstat Fichier en lecture seule contenant les statistiques de mémoire virtuelle du noyau.
/proc/zoneinfo Fichier en lecture seule contenant des informations sur les zones mémoire.

développeur

Interface Description
/dev/ashmem Fichier de périphérique de mémoire partagée anonyme.
/dev/classeur Fichier de périphérique de classeur.
/dev/hwbinder Fichier de périphérique de classeur matériel.
/dev/tun Fichier de périphérique TUN/TAP universel.
/dev/xt_qtaguid Fichier de périphérique QTAGUID netfilter.

sysfs

Interface Description
/sys/class/net/*/mtu Fichier en lecture-écriture contenant l'unité de transmission maximale pour chaque interface.
/sys/class/rtc/*/hctosys Fichier en lecture seule indiquant si un rtc particulier fournit l'heure système au démarrage et à la reprise.
/sys/périphériques/système/cpu/ Répertoire contenant des informations sur la configuration et la fréquence du processeur.
/sys/kernel/wakeup_reasons Répertoire de fichiers en lecture seule contenant l'heure de la dernière suspension et le motif de la reprise.
/sys/puissance/état Fichier en lecture-écriture qui contrôle les états de veille du système.
/sys/power/wake_lock Fichier en lecture-écriture contenant les wakelocks actifs.
/sys/power/wake_unlock Fichier en lecture-écriture contenant des wakelocks non actifs.
/sys/power/wakeup_count Fichier en lecture-écriture pouvant être utilisé pour mettre le système en état de veille tout en prenant en compte l'arrivée simultanée d'événements de réveil.

selinuxfs

Le framework monte selinuxfs sur /sys/fs/selinux .

Chemin Description
/sys/fs/selinux/checkreqprot Fichier en lecture/écriture contenant un indicateur binaire qui détermine comment les protections selinux sont vérifiées lors des appels mmap et mprotect .
/sys/fs/selinux/null Périphérique nul en lecture/écriture à utiliser par Selinux.
/sys/fs/selinux/politique Fichier en lecture seule contenant la politique selinux sous forme binaire.