Requisiti dell'interfaccia

Questa pagina descrive un sottoinsieme delle interfacce del kernel Linux su cui Android funzioni correttamente. La presenza e la correttezza di queste interfacce sono testate nell'ambito della Test Suite dei fornitori (VTS). Questo sottoinsieme crescerà nel tempo per contenere una parte più ampia di Interfacce del kernel Android.

Chiamate di sistema

Tutte le chiamate di sistema devono fornire le stesse firme e semantica nel kernel Linux upstream della stessa versione.

prctl

Oltre alle operazioni prctl upstream per i modelli supportati versioni kernel, Android si basa su operazioni prctl aggiuntive, disponibile nel kernel android-common.

PR_SET_TIMERSLACK_PID
PR_SET_VMA

File system

Il kernel Linux esporta le interfacce tramite diversi file system. Android si aspetta queste interfacce per comunicare le stesse informazioni, nello stesso formato e la stessa semantica del kernel Linux upstream. Per le interfacce che non esistono a monte, il comportamento appropriato è dettato dal ruolo ramo del kernel comune Android.

procf

Interfaccia Descrizione
/proc/asound/ File di sola lettura che mostra l'elenco dei driver ALSA attualmente configurati.
/proc/cmdline File di sola lettura contenente argomenti della riga di comando passati al kernel.
/proc/config.gz File di sola lettura contenente la configurazione della build del kernel.
/proc/cpuinfo File di sola lettura contenente dettagli sulla CPU specifici dell'architettura.
/proc/diskstats File di sola lettura che mostra le statistiche di I/O dei dispositivi a blocchi.
/proc/filesystems File system con elenco di file in sola lettura attualmente supportati da in un kernel.
/proc/kmsg File di sola lettura che mostra i messaggi del kernel in tempo reale.
/proc/loadavg File di sola lettura che mostra la media di carico di CPU e IO nel tempo.
/proc/meminfo File di sola lettura che mostra i dettagli del sottosistema della memoria.
/proc/misc File di sola lettura che elenca i driver vari registrati sul dispositivo principale vari.
/proc/modules File di sola lettura contenente informazioni sui moduli kernel caricati.
/proc/mounts Symlink a /proc/self/mounts, un file di sola lettura che elenca le informazioni sui file system montati.
/proc/net Directory contenente una serie di parametri dello stack di rete.
/proc/net/xt_qtaguid/ File di lettura-scrittura che fornisce informazioni sui socket con tag.
/proc/pagetypeinfo File di sola lettura contenente informazioni sull'allocatore di pagine.
/proc/stat File di sola lettura contenente varie statistiche del kernel e del sistema.
/proc/swaps File di sola lettura che mostra l'utilizzo dello spazio di swap. Questo file è facoltativo; i suoi contenuti e le relative autorizzazioni vengono verificati in VTS solo se file è presente.
/proc/sys/abi/swp File di lettura/scrittura che determina il comportamento dell'ARM obsoleto l'istruzione SWP.
/proc/sys/fs/pipe-max-size File in lettura/scrittura che indica la dimensione massima, in byte, di un un singolo buffer.
/proc/sys/fs/protected_hardlinks File di lettura/scrittura che controlla il comportamento della creazione di link diretti.
/proc/sys/fs/protected_symlinks File di lettura/scrittura che controlla il comportamento della creazione di messaggi .
/proc/sys/fs/suid_dumpable File di lettura/scrittura che controlla la modalità core dump per setuid o altro file binari protetti/incompatibili.
/proc/sys/kernel/core_pattern File di lettura-scrittura che specifica il pattern del nome file del core dump.
/proc/sys/kernel/core_pipe_limit File di lettura/scrittura che definisce il numero di processi di arresto anomalo simultanei possono essere inviati in parallelo alle app dell'utente.
/proc/sys/kernel/dmesg_restrict File in lettura/scrittura che controlla se gli utenti senza privilegi possono accedere dmesg.
/proc/sys/kernel/domainname File di lettura/scrittura che contiene il nome di dominio YP/NIS del sistema.
/proc/sys/kernel/hostname File di lettura/scrittura che determina il nome host del sistema.
/proc/sys/kernel/hung_task_timeout_secs File di lettura e scrittura che controlla il timeout utilizzato per determinare quando un'attività non risponde e deve essere considerato appeso. Questo file è facoltativo; i relativi contenuti e autorizzazioni vengono verificati in VTS solo se se il file è presente.
/proc/sys/kernel/kptr_restrict File di lettura/scrittura che determina se i puntatori del kernel vengono stampati proc file e altre interfacce.
/proc/sys/kernel/modules_disabled File di lettura/scrittura che controlla se i moduli kernel possono essere caricati.
/proc/sys/kernel/panic_on_oops File di lettura/scrittura che controlla il comportamento del kernel in caso di errore.
/proc/sys/kernel/perf_event_max_sample_rate File di lettura/scrittura che controlla la frequenza massima di campionamento delle prestazioni eventi.
/proc/sys/kernel/perf_event_paranoid File di lettura/scrittura che controlla l'utilizzo del sistema degli eventi relativi alle prestazioni da parte di utenti senza privilegi.
/proc/sys/kernel/pid_max File di lettura e scrittura contenente il valore di wrapping dell'allocazione PID.
/proc/sys/kernel/random/boot_id File di sola lettura che contiene un nuovo ID casuale a ogni avvio.
/proc/sys/kernel/randomize_va_space File di lettura/scrittura che determina il criterio di randomizzazione del layout degli indirizzi per il sistema.
/proc/sys/kernel/sched_child_runs_first File di lettura/scrittura che controlla se le attività appena create con fork sono preferite la pianificazione delle attività principali.
/proc/sys/kernel/sched_latency_ns File di lettura-scrittura che contiene la massima latenza, in nanosecondi, un'attività prima della pianificazione.
/proc/sys/kernel/sched_rt_period_us File di lettura/scrittura che contiene la durata del periodo utilizzata dall'RT a livello di sistema di esecuzione in microsecondi.
/proc/sys/kernel/sched_rt_runtime_us Il file di lettura/scrittura che contiene la quantità di tempo relativa a sched_rt_period_us, in modo che il sistema possa eseguire attività RT.
/proc/sys/kernel/sched_tunable_scaling File di lettura e scrittura che controlla se sched_latency_ns deve essere vengono regolati automaticamente dallo scheduler in base al numero di CPU.
/proc/sys/kernel/sched_wakeup_granularity_ns File di lettura e scrittura che contiene la quantità di attività di runtime virtuale necessaria dell'attività B in nanosecondi affinché l'attività B la prerilasci.
/proc/sys/kernel/sysrq File di lettura e scrittura che controlla le funzioni che possono essere richiamate tramite chiave sysrq.
/proc/sys/net/* Directory contenente una serie di parametri dello stack di rete.
/proc/sysrq-trigger File di sola scrittura che può essere utilizzato per avviare funzioni sysrq.
/proc/sys/vm/dirty_background_ratio File di lettura e scrittura che contiene la percentuale di memoria totale disponibile (pagine senza costi e pagine recuperabili), il numero di pagine in cui i thread del flusher del kernel in background iniziano a scrivere dati "sporchi".
/proc/sys/vm/dirty_expire_centisecs File di lettura/scrittura che definisce quando i dati dirty sono abbastanza vecchi da essere idonei per scrivere dai thread di flusher del kernel.
/proc/sys/vm/drop_caches File di lettura/scrittura che può essere utilizzato per forzare il rilascio del kernel pulito .
/proc/sys/vm/extra_free_kbytes File di lettura/scrittura che può essere utilizzato per mantenere altra memoria libera tra soglia in cui viene attivata la rivendicazione dello sfondo (kswapd) e la soglia in cui entra in gioco la rivendicazione diretta (mediante l'allocazione dei processi). Questo file è facoltativo; i relativi contenuti e autorizzazioni vengono verificati in VTS solo se se il file è presente.
/proc/sys/vm/max_map_count File di lettura/scrittura che contiene il numero massimo di aree di mappe di memoria che il processo può avere.
/proc/sys/vm/mmap_min_addr File di lettura/scrittura che determina l'indirizzo minimo consentito mmap.
/proc/sys/vm/mmap_rnd_bits un file di lettura/scrittura che specifica la quantità di casualità mmap indirizzi.
/proc/sys/vm/mmap_rnd_compat_bits un file di lettura/scrittura che specifica la quantità di casualità mmap indirizzi.
/proc/sys/vm/overcommit_memory File di lettura/scrittura che determina la gestione della memoria virtuale del kernel .
/proc/sys/vm/page-cluster File di lettura/scrittura che controlla il numero di pagine fino a cui le pagine consecutive vengono lette dallo scambio con un unico tentativo.
/proc/uid_cputime/remove_uid_range File di sola scrittura che, se scritto, rimuove gli UID dalla visualizzazione in /proc/uid_cputime/show_uid_stat.
/proc/uid_cputime/show_uid_stat Il file di sola lettura contenente il tempo impiegato da un UID per i processi dell'utente e nello spazio kernel.
/proc/uid_io/stats File di sola lettura contenente un elenco di statistiche I/O per ogni UID nel sistema
/proc/uid_procstat/set File di sola scrittura utilizzato per configurare un UID in primo piano o in background.
/proc/uid_time_in_state File di sola lettura contenente il tempo di esecuzione dei processi di ogni UID ciascuna frequenza disponibile. Questo file è facoltativo; i suoi contenuti e le autorizzazioni vengono verificate in VTS solo se presente il file.
/proc/uptime File di sola lettura che mostra da quanto tempo il sistema è stato in esecuzione.
/proc/version File di sola lettura contenente una stringa che descrive la versione del kernel.
/proc/vmallocinfo File di sola lettura contenente intervalli di vmalloc.
/proc/vmstat File di sola lettura contenente le statistiche sulla memoria virtuale del kernel.
/proc/zoneinfo File di sola lettura contenente informazioni sulle zone di memoria.

sviluppo

Interfaccia Descrizione
/dev/ashmem File anonimo del dispositivo di memoria condivisa.
/dev/binder File del dispositivo Binder.
/dev/hwbinder File del dispositivo binder hardware.
/dev/tun File del dispositivo universale TUN/TAP.
/dev/xt_qtaguid File del dispositivo netfilter QTAGUID.

sysfs

Interfaccia Descrizione
/sys/class/net/*/mtu File di lettura/scrittura contenente l'unità massima di trasmissione per ogni a riga di comando.
/sys/class/rtc/*/hctosys File di sola lettura che mostra se un determinato rtc fornisce l'ora di sistema all'avvio e alla ripresa.
/sys/devices/system/cpu/ Directory contenente informazioni sulla configurazione della CPU e frequenza.
/sys/kernel/wakeup_reasons Directory di file di sola lettura contenenti l'ora e l'ora dell'ultima sospensione perché.
/sys/power/state File di lettura e scrittura che controlla gli stati di sospensione del sistema.
/sys/power/wake_lock File di lettura e scrittura che contiene i wakelock attivi.
/sys/power/wake_unlock File di lettura/scrittura che contiene wakelock non attivi.
/sys/power/wakeup_count File di lettura/scrittura che può essere utilizzato per mettere il sistema in stato di sospensione tenendo conto dell'arrivo simultaneo di eventi di sveglia.

Selinuxfs

Il framework monta selinuxfs in /sys/fs/selinux.

Percorso Descrizione
/sys/fs/selinux/checkreqprot File di lettura/scrittura contenente un flag binario che determina come selinux le protezioni vengono controllate durante le chiamate mmap e mprotect.
/sys/fs/selinux/null Dispositivo nullo di lettura/scrittura per l'utilizzo da parte di Selinux.
/sys/fs/selinux/policy File di sola lettura contenente il criterio selinux in formato binario.