Como funciona o processo de inicialização do Android?
o processo de boot do Android a partir de power on
Os sistemas embarcados e plataformas móveis têm algumas diferenças em relação aos sistemas Desktop em como eles iniciam e inicializam este post irá discutir as fases iniciais de boot de um telefone Android com algum detalhe. Como usamos o Beagle Board como referência em alguns exemplos anteriores, quaisquer especificações aqui estão relacionadas a um sistema similar.
1. Ligar e iniciar a execução do código da ROM
Na energia da CPU estará em um estado onde nenhuma inicialização foi feita. Os relógios internos não são configurados e a única memória disponível é a RAM interna. Quando as fontes de alimentação estiverem estáveis, a execução começará com o código de inicialização da ROM. Este é um pequeno pedaço de código que está ligado por cabo no ASIC da CPU. Para mais informações sobre a ROM de inicialização e configurações, estude o capítulo de inicialização em
o Omap 3530 TRM.
- A. O código da ROM de inicialização irá detectar a mídia de inicialização usando um registro de sistema que mapeia para algumas bolas físicas no asic. Isto é para determinar onde encontrar o primeiro estágio do carregador de inicialização.
- B. Uma vez estabelecida a sequência da mídia de inicialização, a ROM de inicialização tentará carregar o primeiro estágio do gestor de início para a RAM interna. Uma vez que o gestor de arranque esteja no lugar, o código da ROM de arranque irá executar um salto e a execução continua no gestor de arranque.
- **2. O gestor de arranque
O gestor de arranque é um programa especial separado do kernel Linux que é utilizado para configurar as memórias iniciais e carregar o kernel para a RAM. Em sistemas desktop os gestores de arranque são programas como o GRUB e no Linux embarcado o uBoot é frequentemente o gestor de arranque de eleição. Os fabricantes de dispositivos frequentemente usam seus próprios carregadores de inicialização proprietários. Os requisitos de um gestor de arranque para Linux a correr num sistema ARM podem ser encontrados no documento de arranque em /Documentation/arm na árvore de fontes do kernel.
- A. O primeiro estágio do carregador de inicialização irá detectar e configurar a RAM.
- B externa. Quando a RAM externa estiver disponível e o sistema estiver pronto para rodar algo mais significativo, o primeiro estágio irá carregar o carregador de inicialização principal e colocá-lo na RAM externa.
- li>C. O segundo estágio do gestor de início é o primeiro grande programa que irá rodar. Este pode conter código para configurar sistemas de ficheiros, memória adicional, suporte de rede e outras coisas. Em um telefone celular ele também pode ser responsável por carregar o código para a CPU do modem e configurar as proteções de memória de baixo nível e opções de segurança.
- D. Uma vez que o gestor de arranque esteja pronto com qualquer tarefa especial, ele irá procurar um kernel Linux para arrancar. Ele irá carregá-lo a partir da mídia de inicialização (ou alguma outra fonte, dependendo da configuração do sistema) e colocá-lo na RAM. Ele também irá colocar alguns parâmetros de inicialização na memória para o kernel ler quando ele for iniciado.
- E. Uma vez que o gestor de arranque esteja feito, irá executar um salto para o kernel Linux, normalmente alguma rotina de descompressão, e o kernel assume a responsabilidade do sistema.
Artigos semelhantes
- Onde a Intel fez mal no desenvolvimento do seu processo de 10nm, por que demora muito tempo para a Intel aperfeiçoar seu processo de 10nm?
- Como entrar no modo de recuperação de inicialização no Android sem as teclas de volume
- Após a atualização da Realme UI para o Android 10, o meu Realme 5 ficou preso na tela de inicialização. O que eu devo fazer?
- Não consigo entrar no meu Facebook e o processo de recuperação não funciona, porque não me lembro da senha. O que eu devo fazer?