Requisiti di interfaccia

Questa pagina descrive un sottoinsieme delle interfacce del kernel Linux su cui Android si basa per funzionare correttamente. La presenza e la correttezza di queste interfacce vengono testate nell'ambito della Vendor Test Suite (VTS) . Questo sottoinsieme crescerà nel tempo per contenere una porzione più ampia di interfacce del kernel Android.

Chiamate di sistema

Ci si aspetta che tutte le chiamate di sistema forniscano le stesse firme e semantica del kernel Linux upstream della stessa versione.

prctl

Oltre alle operazioni prctl upstream per le versioni del kernel supportate, Android si basa su operazioni prctl aggiuntive, la cui implementazione può essere trovata nel kernel comune di Android.

PR_SET_TIMERSLACK_PID
PR_SET_VMA

Filesystem

Il kernel Linux esporta le interfacce tramite diversi filesystem. Android si aspetta che queste interfacce comunichino le stesse informazioni, nello stesso formato e forniscano la stessa semantica del kernel Linux upstream. Per le interfacce che non esistono a monte, il comportamento appropriato è dettato dal ramo corrispondente del kernel comune di Android.

procfs

Interfaccia Descrizione
/proc/suono/ 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 della CPU specifici dell'architettura.
/proc/diskstats File di sola lettura che mostra le statistiche I/O dei dispositivi a blocchi.
/proc/filesystem File di sola lettura che elencano i filesystem attualmente supportati dal kernel.
/proc/kmsg File di sola lettura che mostra i messaggi del kernel in tempo reale.
/proc/loadavg File di sola lettura che mostra il carico medio di CPU e IO nel tempo.
/proc/meminfo File di sola lettura che mostra i dettagli del sottosistema di memoria.
/proc/misc File di sola lettura che elenca i driver vari registrati sul dispositivo principale vario.
/proc/moduli File di sola lettura contenente informazioni sui moduli del kernel caricati.
/proc/mounts Collegamento simbolico a /proc/self/mounts , che è un file di sola lettura che elenca le informazioni sui filesystem montati.
/proc/net Directory contenente una varietà di parametri dello stack di rete.
/proc/net/xt_qtaguid/ File di lettura e scrittura che fornisce informazioni sui socket contrassegnati.
/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/swap File di sola lettura che mostra l'utilizzo dello spazio di swap. Questo file è facoltativo; i suoi contenuti e permessi verranno verificati in VTS solo se il file è presente .
/proc/sys/abi/swp File di lettura-scrittura che determina il comportamento dell'istruzione ARM obsoleta SWP.
/proc/sys/fs/pipe-max-size File di lettura-scrittura che riporta la dimensione massima, in byte, di un singolo buffer di pipe.
/proc/sys/fs/protected_hardlinks File di lettura-scrittura che controlla il comportamento di creazione di collegamenti reali.
/proc/sys/fs/protected_symlinks File di lettura-scrittura che controlla il comportamento della creazione di collegamenti simbolici.
/proc/sys/fs/suid_dumpable File di lettura-scrittura che controlla la modalità core dump per setuid o binari altrimenti protetti/contaminati.
/proc/sys/kernel/core_pattern File di lettura-scrittura che specifica il modello del nome file del core dump.
/proc/sys/kernel/core_pipe_limit File di lettura-scrittura che definisce quanti processi simultanei che causano arresti anomali possono essere reindirizzati in parallelo alle applicazioni utente.
/proc/sys/kernel/dmesg_restrict File di lettura-scrittura che controlla se gli utenti non privilegiati possono accedere a dmesg.
/proc/sys/kernel/nomedominio File di lettura-scrittura che contiene il nome di dominio YP/NIS del sistema.
/proc/sys/kernel/nomehost File di lettura-scrittura che determina il nome host del sistema.
/proc/sys/kernel/hung_task_timeout_secs File di lettura-scrittura che controlla il timeout utilizzato per determinare quando un'attività non risponde e deve essere considerata bloccata. Questo file è facoltativo; i suoi contenuti e permessi verranno verificati in VTS solo se il file è presente .
/proc/sys/kernel/kptr_restrict File di lettura-scrittura che determina se i puntatori del kernel vengono stampati nei file proc e in altre interfacce.
/proc/sys/kernel/modules_disabled File di lettura-scrittura che controlla se i moduli del kernel possono essere caricati.
/proc/sys/kernel/panic_on_oops File di lettura-scrittura che controlla il comportamento del kernel in caso di oops.
/proc/sys/kernel/perf_event_max_sample_rate File di lettura-scrittura che controlla la frequenza di campionamento massima degli eventi di performance.
/proc/sys/kernel/perf_event_paranoid File di lettura-scrittura che controlla l'utilizzo del sistema degli eventi di prestazione da parte di utenti non privilegiati.
/proc/sys/kernel/pid_max File di lettura-scrittura che contiene il valore di wrap dell'allocazione PID.
/proc/sys/kernel/random/boot_id File di sola lettura che contiene un nuovo ID casuale ad ogni avvio.
/proc/sys/kernel/randomize_va_space File di lettura-scrittura che determina la politica 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 biforcate sono preferite nella pianificazione rispetto alle attività principali.
/proc/sys/kernel/sched_latency_ns File di lettura-scrittura che contiene la latenza massima, in nanosecondi, che può verificarsi in un'attività prima di essere pianificata.
/proc/sys/kernel/sched_rt_period_us File di lettura-scrittura che contiene la durata del periodo utilizzato dal limite di esecuzione RT a livello di sistema in microsecondi.
/proc/sys/kernel/sched_rt_runtime_us File di lettura-scrittura che contiene la quantità di tempo, relativa a sched_rt_period_us, in cui il sistema può eseguire attività RT.
/proc/sys/kernel/sched_tunable_scaling File di lettura-scrittura che controlla se sched_latency_ns deve essere regolato automaticamente dallo scheduler in base al numero di CPU.
/proc/sys/kernel/sched_wakeup_granularity_ns File di lettura-scrittura che contiene la quantità di attività di runtime virtuale A in più che l'attività B deve avere in nanosecondi affinché l'attività B la prevenga.
/proc/sys/kernel/sysrq File di lettura-scrittura che controlla le funzioni che possono essere richiamate tramite la chiave sysrq.
/proc/sys/net/* Directory contenente una varietà di parametri dello stack di rete.
/proc/sysrq-trigger File di sola scrittura che può essere utilizzato per avviare le funzioni sysrq.
/proc/sys/vm/dirty_ background_ratio File di lettura-scrittura che contiene, come percentuale della memoria totale disponibile (pagine libere e pagine recuperabili), il numero di pagine in cui i thread di lavaggio del kernel in background inizieranno a scrivere i dati sporchi.
/proc/sys/vm/dirty_expire_centisecs File di lettura-scrittura che definisce quando i dati dirty sono abbastanza vecchi da poter essere scritti dai thread di flusher del kernel.
/proc/sys/vm/drop_caches File di lettura-scrittura che può essere utilizzato per forzare il kernel a eliminare le cache pulite.
/proc/sys/vm/extra_free_kbytes File di lettura-scrittura che può essere utilizzato per mantenere memoria libera aggiuntiva tra la soglia in cui entra in azione il recupero in background (kswapd) e la soglia in cui entra in azione il recupero diretto (allocando processi). Questo file è facoltativo; i suoi contenuti e permessi verranno verificati in VTS solo se il file è presente .
/proc/sys/vm/max_map_count File di lettura-scrittura che contiene il numero massimo di aree della mappa di memoria che un processo può avere.
/proc/sys/vm/mmap_min_addr File di lettura-scrittura che determina l'indirizzo minimo che può essere mmap .
/proc/sys/vm/mmap_rnd_bits File di lettura-scrittura che specifica la quantità di casualità negli indirizzi mmap .
/proc/sys/vm/mmap_rnd_compat_bits File di lettura-scrittura che specifica la quantità di casualità negli indirizzi mmap .
/proc/sys/vm/overcommit_memory File di lettura-scrittura che determina la modalità di accounting della memoria virtuale del kernel.
/proc/sys/vm/page-cluster File di lettura-scrittura che controlla il numero di pagine fino al quale le pagine consecutive vengono lette dallo scambio in un singolo tentativo.
/proc/uid_cputime/remove_uid_range File di sola scrittura che, una volta scritto, rimuove gli UID dalla visualizzazione in /proc/uid_cputime/show_uid_stat .
/proc/uid_cputime/show_uid_stat File di sola lettura contenente il tempo trascorso dai processi di un UID nello spazio utente e kernel.
/proc/uid_io/stats File di sola lettura contenente un elenco di statistiche I/O per ciascun UID nel sistema
/proc/uid_procstat/set File di sola scrittura utilizzato per configurare un UID come primo piano o sfondo.
/proc/uid_time_in_state File di sola lettura contenente il tempo impiegato dall'esecuzione dei processi di ciascun UID a ciascuna frequenza disponibile. Questo file è facoltativo; i suoi contenuti e permessi verranno verificati in VTS solo se il file è presente .
/proc/tempo di attività File di sola lettura che mostra da quanto tempo il sistema è in esecuzione.
/proc/versione File di sola lettura contenente una stringa che descrive la versione del kernel.
/proc/vmallocinfo File di sola lettura contenente intervalli vmalloc .
/proc/vmstat File di sola lettura contenente le statistiche della memoria virtuale dal kernel.
/proc/zonainfo File di sola lettura contenente informazioni sulle zone di memoria.

dev

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

sysfs

Interfaccia Descrizione
/sys/class/net/*/mtu File di lettura-scrittura contenente l'unità di trasmissione massima per ciascuna interfaccia.
/sys/class/rtc/*/hctosys File di sola lettura che mostra se un particolare rtc fornisce l'ora del sistema all'avvio e alla ripresa.
/sys/dispositivi/sistema/cpu/ Directory contenente informazioni sulla configurazione e sulla frequenza della CPU.
/sys/kernel/wakeup_reasons Directory di file di sola lettura contenenti l'ora dell'ultima sospensione e il motivo della ripresa.
/sys/potenza/stato File di lettura-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 uno stato di sospensione tenendo conto dell'arrivo simultaneo di eventi di riattivazione.

selinuxfs

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

Sentiero Descrizione
/sys/fs/selinux/checkreqprot File di lettura/scrittura contenente un flag binario che determina come vengono controllate le protezioni selinux sulle chiamate mmap e mprotect .
/sys/fs/selinux/null Legge/scrive dispositivo nullo per l'utilizzo da parte di selinux.
/sys/fs/selinux/policy File di sola lettura contenente la policy selinux in formato binario.