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