2

Android フレームワークが起動する前に Android に RAM ディスクをマウントすることは可能ですが、基盤となる Linux カーネルが起動した後ですか? その場合、どのコマンドを使用すればよいですか?

ありがとう!

4

2 に答える 2

2

私が読んだいくつかの参考書に基づいて、Android システムは次の主な手順で起動します。

  1. CPU はハードコードされたアドレスを読み取りますが、これは通常、何らかのブートローダー プログラムを指しています。
  2. ブートローダーは RAM を初期化し、基本的なハードウェアを静止状態にし、カーネルと RAM ディスクをロードして、カーネルにジャンプします。
  3. start_kernel() は、サブシステムを初期化し、組み込みドライバーの init 関数を呼び出します。
  4. カーネルはルート システムを (ramdisk.img から) マウントします。
  5. 次に、init.rc が呼び出されて、システム パスなどの環境変数の設定、他のファイルシステムのマウント、ネイティブ デーモンの開始などを行います。

ここで、あなたの質問に答えるために、「Android フレームワークが開始する前に Android に ramdisk をマウントすることは可能ですが、基盤となる Linux カーネルが開始された後ですか?」--これはまさにアンドロイドがやったことだと思います。

于 2013-08-31T22:07:31.757 に答える
0

init.rc ファイルから呼び出すシェル スクリプトを作成する必要があります。別のアプローチとして、init.rc からデーモンとして起動される C プログラムを作成することもできます。

init は、Android フレームワークが起動しようとしているときに Linux が起動する中間の場所です。

于 2015-04-11T05:16:57.247 に答える