Esta página descreve um subconjunto das interfaces do kernel do Linux nas quais o Android depende para funcionar corretamente. A presença e correção dessas interfaces são testadas como parte do Vendor Test Suite (VTS) . Esse subconjunto crescerá com o tempo para conter uma porção maior de interfaces do kernel do Android.
Chamadas do sistema
Espera-se que todas as chamadas do sistema forneçam as mesmas assinaturas e semânticas do kernel Linux upstream da mesma versão.
prctl
Além das operações prctl
upstream para versões de kernel compatíveis, o Android conta com operações prctl
adicionais, cuja implementação pode ser encontrada no kernel android-common.
PR_SET_TIMERSLACK_PID PR_SET_VMA
Sistemas de arquivos
O kernel Linux exporta interfaces através de vários sistemas de arquivos. O Android espera que essas interfaces comuniquem as mesmas informações, no mesmo formato e forneçam a mesma semântica do kernel Linux upstream. Para interfaces que não existem upstream, o comportamento apropriado é determinado pela ramificação correspondente do kernel comum do Android.
procfs
Interface | Descrição |
---|---|
/proc/asound/ | Arquivo somente leitura mostrando a lista de drivers ALSA configurados no momento. |
/proc/cmdline | Arquivo somente leitura contendo argumentos de linha de comando passados para o kernel. |
/proc/config.gz | Arquivo somente leitura contendo a configuração de compilação do kernel. |
/proc/cpuinfo | Arquivo somente leitura contendo detalhes de CPU específicos da arquitetura. |
/proc/diskstats | Arquivo somente leitura mostrando estatísticas de E/S de dispositivos de bloco. |
/proc/sistemas de arquivos | Sistemas de arquivos de listagem de arquivos somente leitura atualmente suportados pelo kernel. |
/proc/kmsg | Arquivo somente leitura mostrando mensagens do kernel em tempo real. |
/proc/loadavg | Arquivo somente leitura mostrando a média de carga de CPU e E/S ao longo do tempo. |
/proc/meminfo | Arquivo somente leitura mostrando detalhes do subsistema de memória. |
/proc/misc | Arquivo somente leitura listando drivers diversos registrados no dispositivo principal diverso. |
/proc/modules | Arquivo somente leitura contendo informações sobre módulos de kernel carregados. |
/proc/mounts | Link simbólico para /proc/self/mounts , que é um arquivo somente leitura que lista informações sobre os sistemas de arquivos montados. |
/proc/net | Diretório contendo uma variedade de parâmetros de pilha de rede. |
/proc/net/xt_qtaguid/ | Arquivo de leitura/gravação que fornece informações sobre soquetes marcados. |
/proc/pagetypeinfo | Arquivo somente leitura contendo informações do alocador de página. |
/proc/stat | Arquivo somente leitura contendo várias estatísticas do kernel e do sistema. |
/proc/swaps | Arquivo somente leitura mostrando a utilização do espaço de troca. Este arquivo é opcional; seu conteúdo e permissões serão verificados no VTS somente se o arquivo estiver presente . |
/proc/sys/abi/swp | Arquivo de leitura-gravação que determina o comportamento da instrução ARM obsoleta SWP. |
/proc/sys/fs/pipe-max-size | Arquivo de leitura/gravação que relata o tamanho máximo, em bytes, de um buffer de canal individual. |
/proc/sys/fs/protected_hardlinks | Arquivo de leitura/gravação que controla o comportamento de criação de links físicos. |
/proc/sys/fs/protected_symlinks | Arquivo de leitura-gravação que controla o comportamento de criação de links simbólicos. |
/proc/sys/fs/suid_dumpable | Arquivo de leitura/gravação que controla o modo de dump principal para binários setuid ou protegidos/contaminados. |
/proc/sys/kernel/core_pattern | Arquivo de leitura-gravação que especifica o padrão de nome de arquivo de dump principal. |
/proc/sys/kernel/core_pipe_limit | Arquivo de leitura/gravação que define quantos processos de falha simultâneos podem ser canalizados para aplicativos de usuário em paralelo. |
/proc/sys/kernel/dmesg_restrict | Arquivo de leitura/gravação que controla se usuários sem privilégios podem acessar dmesg. |
/proc/sys/kernel/domainname | Arquivo de leitura/gravação que contém o nome de domínio YP/NIS do sistema. |
/proc/sys/kernel/hostname | Arquivo de leitura-gravação que determina o nome do host do sistema. |
/proc/sys/kernel/hung_task_timeout_secs | Arquivo de leitura/gravação que controla o tempo limite usado para determinar quando uma tarefa deixou de responder e deve ser considerada suspensa. Este arquivo é opcional; seu conteúdo e permissões serão verificados no VTS somente se o arquivo estiver presente . |
/proc/sys/kernel/kptr_restrict | Arquivo de leitura/gravação que determina se os ponteiros do kernel são impressos em arquivos proc e outras interfaces. |
/proc/sys/kernel/modules_disabled | Arquivo de leitura/gravação que controla se os módulos do kernel podem ser carregados. |
/proc/sys/kernel/panic_on_oops | Arquivo de leitura-gravação que controla o comportamento do kernel em oops. |
/proc/sys/kernel/perf_event_max_sample_rate | Arquivo de leitura-gravação que controla a taxa de amostragem máxima de eventos de desempenho. |
/proc/sys/kernel/perf_event_paranoid | Arquivo de leitura/gravação que controla o uso do sistema de eventos de desempenho por usuários sem privilégios. |
/proc/sys/kernel/pid_max | Arquivo de leitura-gravação que contém o valor de encapsulamento de alocação de PID. |
/proc/sys/kernel/random/boot_id | Arquivo somente leitura que contém um novo ID aleatório em cada inicialização. |
/proc/sys/kernel/randomize_va_space | Arquivo de leitura-gravação que determina a política de randomização do layout de endereço para o sistema. |
/proc/sys/kernel/sched_child_runs_first | Arquivo de leitura/gravação que controla se as tarefas recém-bifurcadas são favorecidas no agendamento em relação às tarefas pai. |
/proc/sys/kernel/sched_latency_ns | Arquivo de leitura/gravação que contém a latência máxima, em nanossegundos, que uma tarefa pode ocorrer antes de ser agendada. |
/proc/sys/kernel/sched_rt_period_us | Arquivo de leitura/gravação que contém a duração do período usada pelo limite de execução de RT em todo o sistema em microssegundos. |
/proc/sys/kernel/sched_rt_runtime_us | Arquivo de leitura/gravação que contém a quantidade de tempo, relativa a sched_rt_period_us, que o sistema pode executar tarefas RT. |
/proc/sys/kernel/sched_tunable_scaling | Arquivo de leitura/gravação que controla se sched_latency_ns deve ser ajustado automaticamente pelo agendador com base no número de CPUs. |
/proc/sys/kernel/sched_wakeup_granularity_ns | Arquivo de leitura-gravação que contém quanto mais a tarefa de tempo de execução virtual A deve ter do que a tarefa B em nanossegundos para que a tarefa B a anule. |
/proc/sys/kernel/sysrq | Arquivo de leitura/gravação que controla as funções que podem ser invocadas através da chave sysrq. |
/proc/sys/net/* | Diretório contendo uma variedade de parâmetros de pilha de rede. |
/proc/sysrq-trigger | Arquivo somente gravação que pode ser usado para iniciar funções sysrq. |
/proc/sys/vm/dirty_background_ratio | Arquivo de leitura/gravação que contém, como porcentagem do total de memória disponível (páginas livres e páginas recuperáveis), o número de páginas em que os threads de liberação do kernel em segundo plano começarão a gravar dados sujos. |
/proc/sys/vm/dirty_expire_centisecs | Arquivo de leitura-gravação que define quando os dados sujos são antigos o suficiente para serem elegíveis para gravação pelos encadeamentos do kernel flusher. |
/proc/sys/vm/drop_caches | Arquivo de leitura/gravação que pode ser usado para forçar o kernel a descartar caches limpos. |
/proc/sys/vm/extra_free_kbytes | Arquivo de leitura/gravação que pode ser usado para manter memória livre extra entre o limite em que a recuperação em segundo plano (kswapd) é ativada e o limite em que a recuperação direta (por processos de alocação) é ativada. Este arquivo é opcional; seu conteúdo e permissões serão verificados no VTS somente se o arquivo estiver presente . |
/proc/sys/vm/max_map_count | Arquivo de leitura/gravação que contém o número máximo de áreas de mapa de memória que um processo pode ter. |
/proc/sys/vm/mmap_min_addr | Arquivo de leitura-gravação que determina o endereço mínimo que pode ser mmap 'd. |
/proc/sys/vm/mmap_rnd_bits | Arquivo de leitura/gravação que especifica a quantidade de aleatoriedade nos endereços mmap 'd. |
/proc/sys/vm/mmap_rnd_compat_bits | Arquivo de leitura/gravação que especifica a quantidade de aleatoriedade nos endereços mmap 'd. |
/proc/sys/vm/overcommit_memory | Arquivo de leitura-gravação que determina o modo de contabilidade da memória virtual do kernel. |
/proc/sys/vm/page-cluster | Arquivo de leitura-gravação que controla o número de páginas até as quais as páginas consecutivas são lidas da troca em uma única tentativa. |
/proc/uid_cputime/remove_uid_range | Arquivo somente gravação que, quando gravado, remove UIDs de serem mostrados em /proc/uid_cputime/show_uid_stat . |
/proc/uid_cputime/show_uid_stat | Arquivo somente leitura contendo o tempo que os processos de um UID gastaram no espaço do usuário e do kernel. |
/proc/uid_io/stats | Arquivo somente leitura contendo uma lista de estatísticas de E/S para cada UID no sistema |
/proc/uid_procstat/set | Arquivo somente gravação usado para configurar um UID como primeiro ou segundo plano. |
/proc/uid_time_in_state | Arquivo somente leitura contendo o tempo que os processos de cada UID gastam executando em cada frequência disponível. Este arquivo é opcional; seu conteúdo e permissões serão verificados no VTS somente se o arquivo estiver presente . |
/proc/tempo de atividade | Arquivo somente leitura que mostra há quanto tempo o sistema está em execução. |
/proc/versão | Arquivo somente leitura contendo uma string descrevendo a versão do kernel. |
/proc/vmallocinfo | Arquivo somente leitura contendo intervalos vmalloc 'd. |
/proc/vmstat | Arquivo somente leitura contendo estatísticas de memória virtual do kernel. |
/proc/zoneinfo | Arquivo somente leitura contendo informações sobre zonas de memória. |
desenvolvedor
Interface | Descrição |
---|---|
/dev/ashmem | Arquivo de dispositivo de memória compartilhada anônimo. |
/dev/binder | Arquivo de dispositivo de fichário. |
/dev/hwbinder | Arquivo de dispositivo de fichário de hardware. |
/dev/tun | Arquivo de dispositivo universal TUN/TAP. |
/dev/xt_qtaguid | Arquivo de dispositivo QTAGUID netfilter. |
sysfs
Interface | Descrição |
---|---|
/sys/class/net/*/mtu | Arquivo de leitura-gravação contendo a unidade máxima de transmissão para cada interface. |
/sys/class/rtc/*/hctosys | Arquivo somente leitura mostrando se um determinado rtc fornece a hora do sistema na inicialização e na retomada. |
/sys/devices/system/cpu/ | Diretório contendo informações sobre configuração e frequência da CPU. |
/sys/kernel/wakeup_reasons | Diretório de arquivos somente leitura contendo o último tempo de suspensão e motivo de retomada. |
/sys/power/state | Arquivo de leitura-gravação que controla os estados de suspensão do sistema. |
/sys/power/wake_lock | Arquivo de leitura-gravação que contém os wake locks ativos. |
/sys/power/wake_unlock | Arquivo de leitura/gravação que contém wake locks não ativos. |
/sys/power/wakeup_count | Arquivo de leitura/gravação que pode ser usado para colocar o sistema em estado de suspensão, levando em consideração a chegada simultânea de eventos de ativação. |
selinuxfs
A estrutura monta o selinuxfs
em /sys/fs/selinux
.
Caminho | Descrição |
---|---|
/sys/fs/selinux/checkreqprot | Arquivo de leitura/gravação contendo um sinalizador binário que determina como as proteções do selinux são verificadas nas chamadas mmap e mprotect . |
/sys/fs/selinux/null | Dispositivo nulo de leitura/gravação para uso pelo selinux. |
/sys/fs/selinux/policy | Arquivo somente leitura contendo a política do selinux em formato binário. |