Casa > Q > Quais São As Principais Alterações Que O Android Fez No Kernel Do Linux?

Quais são as principais alterações que o Android fez no kernel do Linux?

O que é interessante no design do Android's é o quão pouco modificamos o kernel. A maioria dos sistemas embarcados nos quais eu trabalhei fizeram mudanças drásticas no kernel, apenas para deixar o espaço do usuário sozinho - por exemplo, um kernel "em tempo real" altamente modificado mas X11 para uma GUI.

Android é o oposto: apenas mudanças mínimas no kernel, mas um espaço do usuário totalmente diferente do de qualquer outro sistema Unix. De facto, o espaço de utilizador do Android's é tão diferente do stock Linux, que se pode facilmente dizer que o Android não é de forma alguma um sistema Linux, excepto para o kernel.

Aqui está uma lista concisa das alterações que fizemos ao kernel Linux:

  • ashmem (Android Shared Memory), um sistema de memória partilhada baseado em ficheiros.
  • Binder, um sistema de comunicação inter-processo (IPC) e chamada de procedimento remoto (RPC).>li>logger, um mecanismo de registro de alta velocidade no kernel otimizado para writes.>li>Paranoid Networking, um mecanismo para restringir I/O da rede a certos processos.li>li>pmem (Memória Física), um driver para mapear grandes pedaços de memória física no espaço do usuário.>li>Viking Killer, um substituto do OOM killer que implementa a lógica "kill least recently use process" do Android's sob condições de pouca memória.
    >li>li>wakelocks, Android's solução única de gerenciamento de energia, na qual o estado padrão do dispositivo é o de dormir e é necessária uma ação explícita (via wakelock) para evitar isso.

>br>E, claro, a variedade usual de drivers, portas de arquitetura ARM e outros códigos de baixo nível associados necessários para suportar o Android em qualquer dispositivo.

Desta lista, quase todos os bullets foram implementados como drivers de dispositivos com pouca ou nenhuma alteração necessária no código do núcleo do kernel. A única alteração significativa no espaçamento do subsistema é wakelocks.

(Para os curiosos, da lista acima, eu escrevi ashmem, logger, e Paranoid Networking.)

De Hanni

Qual SO devo usar para usar o Android Studio, Windows 10 ou Ubuntu? :: Qual é um bom sistema operacional para o desenvolvimento do Android, Linux ou Windows 10?