什么是busybox?
根文件系统里面其实就是各种应用程序的集合,例如sh、cd、ps这些命令。如果我们要将这些应用程序的源码都拿来进行编译然后再放进根文件系统里面,就会很麻烦不太实际。而busybox就是这些应用程序的集合,我们执行ls命令,实际上是执行busybox ls命令,因为ls命令实际上是指向busybox的链接,如下图。因此当我们想要知道ls命令做了什么事情的时候,就需要找到busybox的源码,去分析它做了什么事情。
busybox里面的init程序
上文我们讲到内核挂载根文件系统以后,会去启动第一个可用的init应用程序。但是init应用程序并不是linux启动的最终归宿,我们的最终目的是启动特定功能的应用程序,但是不同的产品,他们的应用程序肯定是不同的,因此init程序要启动哪个应用程序呢?我们猜测,应该会有一个配置文件,而init程序会读取这个配置文件,再去启动配置文件里面的程序,这样就可以根据不同的用户来启动不同的应用程序了。
上面说的配置文件其实就是/etc/inittab文件,这个文件的格式是:
<id>:<保留