Esta página descreve um subconjunto das interfaces do kernel Linux nas quais o Android depende para funcionar corretamente. A presença e a exatidão dessas interfaces são testadas como parte do Vendor Test Suite (VTS) . Este 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 suportadas, o Android depende de 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 que no kernel Linux upstream. Para interfaces que não existem no upstream, o comportamento apropriado é ditado pela ramificação correspondente do kernel comum do Android.
procf
Interface | Descrição |
---|---|
/proc/asound/ | Arquivo somente leitura mostrando a lista de drivers ALSA atualmente configurados. |
/proc/cmdline | Arquivo somente leitura contendo argumentos de linha de comando passados ao kernel. |
/proc/config.gz | Arquivo somente leitura contendo 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 | Arquivos somente leitura listando sistemas de arquivos atualmente suportados pelo kernel. |
/proc/kmsg | Arquivo somente leitura mostrando mensagens do kernel em tempo real. |
/proc/carregaravg | Arquivo somente leitura mostrando a média de carga de CPU e IO ao longo do tempo. |
/proc/meminfo | Arquivo somente leitura mostrando detalhes do subsistema de memória. |
/proc/misc | Arquivo somente leitura listando diversos drivers registrados nos diversos dispositivos principais. |
/proc/módulos | Arquivo somente leitura contendo informações sobre módulos do kernel carregados. |
/proc/montagens | Link simbólico para /proc/self/mounts , que é um arquivo somente leitura que lista informações sobre os sistemas de arquivos montados. |
/proc/rede | Diretório que contém uma variedade de parâmetros de pilha de rede. |
/proc/net/xt_qtaguid/ | Arquivo de leitura e gravação que fornece informações sobre soquetes marcados. |
/proc/pagetypeinfo | Arquivo somente leitura contendo informações do alocador de páginas. |
/proc/stat | Arquivo somente leitura contendo várias estatísticas do kernel e do sistema. |
/proc/trocas | 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 e gravação que determina o comportamento da instrução ARM obsoleta SWP. |
/proc/sys/fs/pipe-max-size | Arquivo de leitura/gravação que informa o tamanho máximo, em bytes, de um buffer de pipe individual. |
/proc/sys/fs/protected_hardlinks | Arquivo de leitura e gravação que controla o comportamento de criação de links físicos. |
/proc/sys/fs/protected_symlinks | Arquivo de leitura e gravação que controla o comportamento de criação de links simbólicos. |
/proc/sys/fs/suid_dumpable | Arquivo de leitura e gravação que controla o modo de dump principal para setuid ou binários 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 e gravação que define quantos processos de travamento simultâneos podem ser canalizados para aplicativos do usuário em paralelo. |
/proc/sys/kernel/dmesg_restrict | Arquivo de leitura e gravação que controla se usuários sem privilégios podem acessar o dmesg. |
/proc/sys/kernel/nomedodomínio | Arquivo de leitura e gravação que contém o nome de domínio YP/NIS do sistema. |
/proc/sys/kernel/nome do host | Arquivo de leitura e 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 interrompida. 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 e 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 e gravação que controla se os módulos do kernel podem ser carregados. |
/proc/sys/kernel/panic_on_oops | Arquivo de leitura e gravação que controla o comportamento do kernel em oops. |
/proc/sys/kernel/perf_event_max_sample_rate | Arquivo de leitura e gravação que controla a taxa máxima de amostragem de eventos de desempenho. |
/proc/sys/kernel/perf_event_paranoid | Arquivo de leitura e 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 e gravação que contém o valor de quebra de alocação do 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 e gravação que determina a política de randomização de 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 e gravação que contém a latência máxima, em nanossegundos, que uma tarefa pode sofrer 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 usado 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 e 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 preempte. |
/proc/sys/kernel/sysrq | Arquivo de leitura e gravação que controla as funções que podem ser invocadas por meio da chave sysrq. |
/proc/sys/net/* | Diretório que contém 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 uma porcentagem da memória total disponível (páginas livres e páginas recuperáveis), o número de páginas nas quais os threads de limpeza 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 têm idade suficiente para serem elegíveis para gravação pelos threads de liberação do kernel. |
/proc/sys/vm/drop_caches | Arquivo de leitura e 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 extra livre entre o limite onde a recuperação em segundo plano (kswapd) entra em ação e o limite onde a recuperação direta (alocando processos) entra em ação. 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 e gravação que contém o número máximo de áreas do mapa de memória que um processo pode ter. |
/proc/sys/vm/mmap_min_addr | Arquivo de leitura e gravação que determina o endereço mínimo que pode ser mmap 'd. |
/proc/sys/vm/mmap_rnd_bits | Arquivo de leitura e gravação que especifica a quantidade de aleatoriedade nos endereços mmap 'd. |
/proc/sys/vm/mmap_rnd_compat_bits | Arquivo de leitura e gravação que especifica a quantidade de aleatoriedade nos endereços mmap 'd. |
/proc/sys/vm/overcommit_memory | Arquivo de leitura e 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 páginas consecutivas são lidas a partir 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 cada processo do UID gasta em execução 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 que descreve 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 anônimo de dispositivo de memória compartilhada. |
/dev/fichário | Arquivo de dispositivo fichário. |
/dev/hwbinder | Arquivo de dispositivo de ligação de hardware. |
/dev/tun | Arquivo de dispositivo universal TUN/TAP. |
/dev/xt_qtaguid | Arquivo do dispositivo netfilter QTAGUID. |
sysfs
Interface | Descrição |
---|---|
/sys/class/net/*/mtu | Arquivo de leitura e gravação contendo a unidade máxima de transmissão para cada interface. |
/sys/class/rtc/*/hctosys | Arquivo somente leitura que mostra se um determinado rtc fornece a hora do sistema na inicialização e na retomada. |
/sys/dispositivos/sistema/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 horário da última suspensão e o motivo da retomada. |
/sys/potência/estado | Arquivo de leitura e gravação que controla os estados de suspensão do sistema. |
/sys/power/wake_lock | Arquivo de leitura e gravação que contém os wake locks ativos. |
/sys/power/wake_unlock | Arquivo de leitura e 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 selinux em formato binário. |