Bootprozess: Unterschied zwischen den Versionen

Aus Android Wiki
Keine Bearbeitungszusammenfassung
(Wortwahl, Rechtschreibung, Kategorie)
Zeile 1: Zeile 1:
Der '''Bootrpozess''' beschreibt die Schritte und Vorgänge, die ausgeführt werden, wenn das Android-Gerät durch den EIN-Schalter gestartet werden soll. Für den Startprozess von Android sind insgesamt 7 Schritte notwendig, bis das System vollständig zur Verfügung steht.
Der '''Bootprozess''' beschreibt die Schritte und Vorgänge, die ausgeführt werden, wenn das Android-Gerät mit der Power-Taste gestartet werden soll. Für den Startprozess von Android sind insgesamt 7 Schritte notwendig, bis das System vollständig zur Verfügung steht.


== Die Schritte beim Starten ==
== Die Schritte beim Starten ==
{{Unvollständig}}
{{Unvollständig}}
Im folgenden werden die einzelnen Schritte, die beim Booten des Gerätes durchlaufen werden genauer erklärt.<ref>http://www.mrmad.de/der-android-boot-prozess-0904</ref><ref>http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-de-4/s1-boot-init-shutdown-process.html</ref><ref>http://bootloader.wikidot.com/linux:boot:android</ref>
Im Folgenden werden die einzelnen Schritte, die beim Booten des Gerätes durchlaufen werden, genauer erklärt.<ref>http://www.mrmad.de/der-android-boot-prozess-0904</ref><ref>http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-de-4/s1-boot-init-shutdown-process.html</ref><ref>http://bootloader.wikidot.com/linux:boot:android</ref>


=== Einschalten ===
=== Einschalten ===
Beim Einschalten, also dem betätigen des Powerknopfes, ist die CPU noch nicht initialisiert. Der einzige verfügbare Speicher ist der interne RAM. Sobald die Stromversorgung über den Akku stabil ist, wird der [[Boot ROM Code]] ausgeführt, dessen Aufgabe es im ersten Schritt ist, anhand eines Systemregisters den Speicherort des Bootloaders zu finden. Sobald der Ort des Bootloaders bekannt ist, wird dieser in den RAM geladen und, sobald dies abgeschlossen ist, die Systemkontrolle vom Boot ROM Code an den Bootloader übergeben.
Beim Einschalten, also dem Betätigen der Power-Taste, ist die CPU noch nicht initialisiert. Der einzige verfügbare Speicher ist der interne RAM. Sobald die Stromversorgung über den Akku stabil ist, wird der [[Boot ROM Code]] ausgeführt, dessen Aufgabe es im ersten Schritt ist, anhand eines Systemregisters den Speicherort des Bootloaders zu finden. Sobald der Ort des Bootloaders bekannt ist, wird dieser in den RAM geladen und, sobald dies abgeschlossen ist, die Systemkontrolle vom Boot ROM Code an den Bootloader übergeben.


=== Der Bootloader ===
=== Der Bootloader ===
Der [[Bootloader]] ist ein vom Kernel getrenntes Programm, welches zur Initialisierung von Speicher und dem Laden des Kernels in den RAM dient. Vereinfacht werden dabei folgende Schritte durchlaufen:
Der [[Bootloader]] ist ein vom Kernel getrenntes Programm, welches der Initialisierung von Speicher und dem Laden des Kernels in den RAM dient. Vereinfacht werden dabei folgende Schritte durchlaufen:
* Initialisieren von externem RAM
* Initialisieren von externem RAM
* Laden des Main Bootloaders in den externen RAM
* Laden des Main Bootloaders in den externen RAM
* Ausführen des Hauptprogramms des Bootloaders, zum Laden von beispielsweise weiteren Speichereinheiten, Netzwerkunterstützung oder dem Modem. Auch low level memory protection ([[Security Check]]) und weitere Sicherheitsoptionen werden in diesem Schritt geladen.
* Ausführen des Hauptprogramms des Bootloaders, zum Laden von beispielsweise weiteren Speichereinheiten, Netzwerkunterstützung oder dem Modem. Auch low level memory protection ([[Security Check]]) und weitere Sicherheitsoptionen werden in diesem Schritt geladen.
* Nachdem einige Bootparamter in den Speicher geschrieben wurden, sucht der Bootloader nach einem Linux Kernel vom eingestellten Boomedium und lädt diesen in den RAM.
* Nachdem einige Bootparameter in den Speicher geschrieben wurden, sucht der Bootloader nach einem Linux-Kernel vom eingestellten Bootmedium und lädt diesen in den RAM.
* Sind alle Aufgaben des Bootloaders abgearbeitet, übergibt dieser die Systemverantwortng an den Kernel.
* Sind alle Aufgaben des Bootloaders abgearbeitet, übergibt dieser die Systemverantwortng an den Kernel.


=== Der Kernel ==
=== Der Kernel ==
Der Linux [[Kernel]] hat beim Android-Startprozess die selben Aufgaben wie bei einem normalen Desktop-PC. Neben der Initialisierung von Controllern, Caches und Speicherrestriktionen, ist es dem Kernel nun auch möglich, virtuellen Speicher zu verwalten und Benutzerprozesse zu starten.<ref>http://en.wikipedia.org/wiki/User_space</ref> Im Anschluss zu den Initialisierungen sucht der Kernel nach dem init Prozess und führt diesen als ersten user space Prozess aus.
Der Linux-[[Kernel]] hat beim Android-Startprozess die selben Aufgaben wie bei einem normalen Desktop-PC. Neben der Initialisierung von Controllern, Caches und Speicherrestriktionen ist es dem Kernel nun auch möglich, virtuellen Speicher zu verwalten und Benutzerprozesse zu starten.<ref>http://en.wikipedia.org/wiki/User_space</ref> Im Anschluss an die Initialisierungen sucht der Kernel nach dem Init-Prozess und führt diesen als ersten Userspace-Prozess aus.
 
=== Der Init Prozess ===
Der Init Prozess ist der erste Prozess, von dem aus alle anderen Prozesse als "Tochterprozess" gestartet werden. Der Init Prozess wird in erster Linie nach einer Datei namens init.rc suchen, welche im [[AOSP]] unter ''system/core/rootdir'' zu finden ist. Diese Datei beschreibt die Services und andere Parameter des Systems. Nachdem die Datei geladen wurde,w ird diese interpretiert und die darin befindlichen Aktionen ausgeführt (zum Beispiel Starten von Systemprozessen).


=== Der Init-Prozess ===
Der Init-Prozess ist der erste Prozess, von dem aus alle anderen Prozesse als "Tochterprozesse" gestartet werden. Der Init-Prozess wird in erster Linie nach einer Datei namens init.rc suchen, welche im [[AOSP]] unter ''system/core/rootdir'' zu finden ist. Diese Datei beschreibt die Services und andere Parameter des Systems. Nachdem die Datei geladen wurde, wird diese interpretiert und die darin befindlichen Aktionen ausgeführt (zum Beispiel Starten von Systemprozessen).
<!--http://www.androidenea.com/2009/06/android-boot-process-from-power-on.html-->
<!--http://www.androidenea.com/2009/06/android-boot-process-from-power-on.html-->


== Einzelnachweis ==
== Einzelnachweis ==
<references />
<references />
[[Kategorie:Allgemein]]

Version vom 11. Juni 2013, 13:01 Uhr

Der Bootprozess beschreibt die Schritte und Vorgänge, die ausgeführt werden, wenn das Android-Gerät mit der Power-Taste gestartet werden soll. Für den Startprozess von Android sind insgesamt 7 Schritte notwendig, bis das System vollständig zur Verfügung steht.

Die Schritte beim Starten

In diesem Artikel oder Abschnitt fehlen wichtige Informationen. Hilf DroidWiki, sichte die Diskussion und recherchiere in deinen Quellen zu dem Thema Bootprozess und füge die Informationen ein, aber bitte kopiere keine urheberrechtlich geschützten Inhalt in diesen Artikel.

Die Hauptautoren wurden noch nicht informiert. Bitte benachrichtige sie!

Im Folgenden werden die einzelnen Schritte, die beim Booten des Gerätes durchlaufen werden, genauer erklärt.[1][2][3]

Einschalten

Beim Einschalten, also dem Betätigen der Power-Taste, ist die CPU noch nicht initialisiert. Der einzige verfügbare Speicher ist der interne RAM. Sobald die Stromversorgung über den Akku stabil ist, wird der Boot ROM Code ausgeführt, dessen Aufgabe es im ersten Schritt ist, anhand eines Systemregisters den Speicherort des Bootloaders zu finden. Sobald der Ort des Bootloaders bekannt ist, wird dieser in den RAM geladen und, sobald dies abgeschlossen ist, die Systemkontrolle vom Boot ROM Code an den Bootloader übergeben.

Der Bootloader

Der Bootloader ist ein vom Kernel getrenntes Programm, welches der Initialisierung von Speicher und dem Laden des Kernels in den RAM dient. Vereinfacht werden dabei folgende Schritte durchlaufen:

  • Initialisieren von externem RAM
  • Laden des Main Bootloaders in den externen RAM
  • Ausführen des Hauptprogramms des Bootloaders, zum Laden von beispielsweise weiteren Speichereinheiten, Netzwerkunterstützung oder dem Modem. Auch low level memory protection (Security Check) und weitere Sicherheitsoptionen werden in diesem Schritt geladen.
  • Nachdem einige Bootparameter in den Speicher geschrieben wurden, sucht der Bootloader nach einem Linux-Kernel vom eingestellten Bootmedium und lädt diesen in den RAM.
  • Sind alle Aufgaben des Bootloaders abgearbeitet, übergibt dieser die Systemverantwortng an den Kernel.

= Der Kernel

Der Linux-Kernel hat beim Android-Startprozess die selben Aufgaben wie bei einem normalen Desktop-PC. Neben der Initialisierung von Controllern, Caches und Speicherrestriktionen ist es dem Kernel nun auch möglich, virtuellen Speicher zu verwalten und Benutzerprozesse zu starten.[4] Im Anschluss an die Initialisierungen sucht der Kernel nach dem Init-Prozess und führt diesen als ersten Userspace-Prozess aus.

Der Init-Prozess

Der Init-Prozess ist der erste Prozess, von dem aus alle anderen Prozesse als "Tochterprozesse" gestartet werden. Der Init-Prozess wird in erster Linie nach einer Datei namens init.rc suchen, welche im AOSP unter system/core/rootdir zu finden ist. Diese Datei beschreibt die Services und andere Parameter des Systems. Nachdem die Datei geladen wurde, wird diese interpretiert und die darin befindlichen Aktionen ausgeführt (zum Beispiel Starten von Systemprozessen).

Einzelnachweis