Esta página descreve um subconjunto das interfaces do kernel do Linux nas quais o Android depende para funcionar corretamente. A presença e a exatidão dessas interfaces são testado como parte do Pacote de testes de fornecedor (VTS). Esse subconjunto crescerá ao longo do tempo para conter uma parte maior Interfaces do kernel do Android.
Chamadas do sistema
Todas as chamadas do sistema devem fornecer as mesmas assinaturas e semânticas que no kernel upstream do Linux da mesma versão.
prctl
Além das operações prctl
upstream para suporte
versões do kernel, o Android depende de outras operações prctl
, a
que pode ser encontrada no kernel android-common.
PR_SET_TIMERSLACK_PID PR_SET_VMA
Sistemas de arquivos
O kernel do Linux exporta interfaces usando vários sistemas de arquivos. O Android espera essas interfaces comunicam as mesmas informações no mesmo formato, e fornecem a mesma semântica do kernel upstream do Linux. Para interfaces que não existem upstream, o comportamento apropriado é determinado pelo sistema 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 que contém a configuração do build do kernel. |
/proc/cpuinfo | Arquivo somente leitura que contém detalhes de CPU específicos da arquitetura. |
/proc/diskstats | Arquivo somente leitura que mostra estatísticas de E/S de dispositivos em bloco. |
/proc/filesystems | Arquivos somente leitura que listam os sistemas de arquivos atualmente compatíveis com a grão |
/proc/kmsg | Arquivo somente leitura que mostra mensagens do kernel em tempo real. |
/proc/loadavg | Arquivo somente leitura que mostra a média da 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 com uma lista dos drivers registrados na dispositivo principal diversos. |
/proc/modules | Arquivo somente leitura contendo informações sobre módulos do kernel carregados. |
/proc/mounts | Link simbólico para /proc/self/mounts , que é um arquivo somente leitura
listando informações sobre os sistemas de arquivos montados. |
/proc/net | Diretório contendo diversos parâmetros de pilha de rede. |
/proc/net/xt_qtaguid/ | Arquivo de leitura e gravação que fornece informações sobre soquetes com tag. |
/proc/pagetypeinfo | Arquivo somente leitura com informações do alocador da 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 forem verificados no VTS somente se o arquivo está presente. |
/proc/sys/abi/swp | Arquivo de leitura e gravação que determina o comportamento do ARM obsoleto instrução SWP. |
/proc/sys/fs/pipe-max-size | Arquivo de leitura/gravação que informa o tamanho máximo, em bytes, de uma buffer de pipe individual. |
/proc/sys/fs/protected_hardlinks | Arquivo de leitura e gravação que controla o comportamento da 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 objetos links. |
/proc/sys/fs/suid_dumpable | Arquivo de leitura e gravação que controla o modo de despejo do núcleo para setuid ou outro binários protegidos/corrompidos. |
/proc/sys/kernel/core_pattern | Arquivo de leitura e gravação que especifica o padrão do nome de arquivo de despejo do núcleo. |
/proc/sys/kernel/core_pipe_limit | Arquivo de leitura/gravação que define quantos processos com falhas simultâneas podem ser encaminhados aos apps do 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 e gravação que determina o nome do host do sistema. |
/proc/sys/kernel/hung_task_timeout_secs | Arquivo de leitura e gravação que controla o tempo limite usado para determinar quando uma tarefa não responde e deve ser considerado travado. Este arquivo é opcional. seu conteúdo e permissões forem verificados no VTS somente se o arquivo está presente. |
/proc/sys/kernel/kptr_restrict | Arquivo de leitura e gravação que determina se os ponteiros do kernel são mostrados
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 operações operacionais. |
/proc/sys/kernel/perf_event_max_sample_rate | Arquivo de leitura e gravação que controla a taxa de amostragem máxima do desempenho eventos. |
/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 encapsulamento da 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 e gravação que determina a política de randomização do layout de endereços para o sistema. |
/proc/sys/kernel/sched_child_runs_first | Arquivo de leitura e gravação que controla se as tarefas recém-ramificadas são favorecidas na agendando as tarefas mãe. |
/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 podem ocorrer antes da programação. |
/proc/sys/kernel/sched_rt_period_us | Arquivo de leitura/gravação que contém a duração do período usado pelo RT em todo o sistema o limite de execução em microssegundos. |
/proc/sys/kernel/sched_rt_runtime_us | Arquivo de leitura/gravação que contém a quantidade de tempo, relativa ao 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_delay_ns deve ser ajustado automaticamente pelo programador com base no número de CPUs. |
/proc/sys/kernel/sched_wakeup_granularity_ns | Arquivo de leitura e gravação que contém a quantidade restante de tarefa A no ambiente de execução virtual que precisa que a tarefa B, em nanossegundos, para que a tarefa B encerre por preempção. |
/proc/sys/kernel/sysrq | Arquivo de leitura e gravação que controla as funções que podem ser invocadas por meio do sysrq. |
/proc/sys/net/* | Diretório contendo diversos 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 recuperáveis), o número de páginas em que o as linhas de execução de limpeza do kernel em segundo plano começam a gravar dados sujos. |
/proc/sys/vm/dirty_expire_centisecs | Arquivo de leitura e gravação que define quando os dados sujos têm idade suficiente para serem qualificados para gravação pelas linhas de execução de limpeza do kernel. |
/proc/sys/vm/drop_caches | Arquivo de leitura e gravação que pode ser usado para forçar o kernel a eliminar armazenamento em cache. |
/proc/sys/vm/extra_free_kbytes | arquivo de leitura/gravação que pode ser usado para manter memória livre extra entre as limite em que a recuperação em segundo plano (kswapd) é iniciada, e o limite quando a reivindicação direta (por meio da alocação de processos) é iniciada. Este arquivo é opcional. seu conteúdo e permissões forem verificados no VTS somente se o arquivo está presente. |
/proc/sys/vm/max_map_count | Arquivo de leitura/gravação que contém o número máximo de áreas do mapa de memória que uma e o processo de transformação de dados pode ter. |
/proc/sys/vm/mmap_min_addr | Arquivo de leitura/gravação que determina o endereço mínimo que pode ser
mmap marcado. |
/proc/sys/vm/mmap_rnd_bits | Arquivo de leitura/gravação que especifica a quantidade de aleatoriedade em
mmap endereços marcados. |
/proc/sys/vm/mmap_rnd_compat_bits | Arquivo de leitura/gravação que especifica a quantidade de aleatoriedade em
mmap endereços marcados. |
/proc/sys/vm/overcommit_memory | Arquivo de leitura e gravação que determina a contabilidade da memória virtual do kernel modo |
/proc/sys/vm/page-cluster | Arquivo de leitura/gravação que controla o número de páginas até o qual 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 os UIDs da exibição
/proc/uid_cputime/show_uid_stat : |
/proc/uid_cputime/show_uid_stat | Arquivo somente leitura que contém o tempo que os processos de um UID passaram nas atividades dos usuários e espaço do kernel. |
/proc/uid_io/stats | Arquivo somente leitura que contém 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 que contém o tempo de execução dos processos de cada UID para cada frequência disponível. Este arquivo é opcional; os conteúdos e as permissões serão verificadas no VTS somente se o arquivo estiver presente. |
/proc/uptime | Arquivo somente leitura que mostra há quanto tempo o sistema está em execução. |
/proc/version | Arquivo somente leitura contendo uma string que descreve a versão do kernel. |
/proc/vmallocinfo | Arquivo somente leitura com intervalos de vmalloc . |
/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. |
dev
Interface | Descrição |
---|---|
/dev/ashmem | Arquivo anônimo do dispositivo de memória compartilhada. |
/dev/binder | Arquivo do dispositivo de vinculação. |
/dev/hwbinder | Arquivo de dispositivo de vinculação de hardware. |
/dev/tun | Arquivo de dispositivo TUN/TAP universal. |
/dev/xt_qtaguid | Arquivo de dispositivo netfilter QTAGUID. |
sysfs
Interface | Descrição |
---|---|
/sys/class/net/*/mtu | Arquivo de leitura/gravação contendo a unidade máxima de transmissão para cada interface gráfica do usuário. |
/sys/class/rtc/*/hctosys | Arquivo somente leitura que mostra se um determinado TC fornece o horário do sistema na inicialização e na retomada. |
/sys/devices/system/cpu/ | Diretório contendo informações sobre configuração de CPU e frequência. |
/sys/kernel/wakeup_reasons | Diretório de arquivos somente leitura contendo o horário da última suspensão e retomada e por um bom motivo. |
/sys/power/state | 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 e gravação que pode ser usado para colocar o sistema em um estado de suspensão considerando a chegada simultânea de eventos de ativação. |
Selinuxfs
O framework monta selinuxfs
em /sys/fs/selinux
.
Caminho | Descrição |
---|---|
/sys/fs/selinux/checkreqprot | Arquivo de leitura/gravação contendo uma sinalização binária que determina como o Linux
são verificadas em chamadas mmap e mprotect .
|
/sys/fs/selinux/null | Dispositivo de leitura/gravação nulo para uso pelo selinux. |
/sys/fs/selinux/policy | Arquivo somente leitura contendo a política selinux em formato binário. |