2013-10-23 217 views
0

正如我們所知道的,在Android啓動過程中的init進程啓動階段,它將完成文件系統填充。 Android使用一個ramdisk作爲root('/'),但是把幾乎所有的二進制程序和庫放到一個名爲'system'的分區中,該分區將被init掛載在'/ system'目錄下。但是我對'mount'程序本身駐留在系統分區的'bin'目錄這一事實感到好奇,因此,'掛載'系統分區到/ system needs'/ system/bin/mount'首先工作!它將如何完成?這似乎是一個雞和雞蛋的問題。 ps。我只在'/'下找到包含adbd和uevent兩個程序的'sbin'目錄。如何在系統分區上安裝根(/)掛載系統的系統分區?

+0

請嘗試更改您的問題標題 - 它對另一位讀者沒有意義,並嘗試格式化您的問題文本,以便您的實際問題脫穎而出。 – mavrosxristoforos

+0

我認爲在initrd中有一個mount的副本。 –

+0

謝謝。我不是英語母語的人,這是我第一次使用stackoverflow問技術問題,對我的愚蠢感到抱歉。但是我想我已經知道了答案,它的內核是mount/system,/ cache,/ data分區,內核已經將它們的所有地址硬編碼到MTD_PARTITION表中,因此內核知道如何掛載它們,而不是init進程來執行it – HeweiFu

回答

0

讓我改一下你的問題:

  • 爲了安裝/系統分區,我們需要在首位「安裝」命令。大多數命令實用程序(二進制或符號鏈接),然而,位於其上沒有安裝但在/系統分區

我的回答:

  • 儘管很多init的命令類似的命令行工具箱或其他地方的等價租借,init不會嘗試向命令行發出命令。 init實際上包含一系列命令作爲其詞典的一部分。
+0

非常感謝,你完全理解我。在我指出_mount_實際上是由OS提供的系統調用之後,我認識到了我的愚蠢 – HeweiFu