QNA > C > Come Funziona Il Processo Di Avvio Di Android?

Come funziona il processo di avvio di Android?

Il processo di avvio di Android dall'accensione

main-qimg-4d8e6a5b49838885b8401d6ddd10c92b.webp

Poiché le piattaforme mobili e i sistemi embedded hanno alcune differenze rispetto ai sistemi desktop nel modo in cui si avviano e si avviano inizialmente questo post discuterà le fasi iniziali di avvio di un telefono Android in alcuni dettagli. Dato che abbiamo usato la Beagle Board come riferimento in alcuni esempi precedenti, tutte le specifiche qui sono relative a un sistema simile.

1. Accensione ed esecuzione del codice ROM di avvio

All'accensione la CPU sarà in uno stato in cui non sono state fatte inizializzazioni. Gli orologi interni non sono impostati e l'unica memoria disponibile è la RAM interna. Quando le alimentazioni sono stabili l'esecuzione inizierà con il codice della Boot ROM. Questo è un piccolo pezzo di codice che è hardwired nella CPU ASIC. Per maggiori informazioni sulla ROM di avvio e sulle configurazioni, studiate il capitolo sull'initalizzazione in
il TRM dell'Omap 3530.

  • A. Il codice della Boot ROM rileverà il supporto di avvio usando un registro di sistema che mappa alcune sfere fisiche sull'asic. Questo serve a determinare dove trovare il primo stadio del boot loader.
  • B. Una volta stabilita la sequenza del supporto di avvio, la ROM di avvio cercherà di caricare il primo stadio del boot loader nella RAM interna. Una volta che il boot loader è in posizione il codice della ROM di avvio eseguirà un salto e l'esecuzione continuerà nel boot loader.
  • **2. Il boot loader
    Il boot loader è un programma speciale separato dal kernel Linux che viene utilizzato per impostare le memorie iniziali e caricare il kernel nella RAM. Sui sistemi desktop i boot loader sono programmi come GRUB e in Linux embedded uBoot è spesso il boot loader di scelta. I produttori di dispositivi spesso usano i loro boot loader proprietari. I requisiti di un boot loader per Linux che gira su un sistema ARM possono essere trovati nel documento Booting sotto /Documentation/arm nell'albero dei sorgenti del kernel.
main-qimg-537833427827a96912b1b2561fc4009f.webp
  • A. Il primo stadio del boot loader rileverà e imposterà la RAM esterna.
  • B. Una volta che la RAM esterna è disponibile e il sistema è pronto per eseguire qualcosa di più significativo, il primo stadio caricherà il boot loader principale e lo collocherà nella RAM esterna.
  • C. Il secondo stadio del boot loader è il primo programma principale che verrà eseguito. Questo può contenere codice per impostare file system, memoria aggiuntiva, supporto di rete e altre cose. Su un telefono cellulare può anche essere responsabile del caricamento del codice per la CPU del modem e dell'impostazione delle protezioni di basso livello della memoria e delle opzioni di sicurezza.
  • D. Una volta che il boot loader ha finito qualsiasi compito speciale, cercherà un kernel Linux da avviare. Lo caricherà dal supporto di avvio (o da qualche altra fonte a seconda della configurazione del sistema) e lo metterà nella RAM. Metterà anche alcuni parametri di avvio in memoria affinché il kernel li legga quando si avvia.
  • E. Una volta che il boot loader ha finito, esegue un salto al kernel Linux, di solito qualche routine di decompressione, e il kernel assume la responsabilità del sistema.

Di Riancho Sampley

Qual è il miglior portafoglio mobile Bitcoin? :: Qual è il miglior portafoglio di Bitcoin e criptovalute (in generale) per il mio telefono?
Link utili