2013-10-23 211 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