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. |