第一个进程init

u-boot启动内核,内核启动应用程序。第1个应用程序就是init。

BusyBox就是许多命令的集合如ls、cd等。

你可以使用如下命令方式来验证

还有init也是busybox的链接

init程序:

   0) 打开/dev/console。标准输入标准输出标准错误

  1)执行第一个应用程序init(要么是命令行参数指定uboot参数init = linuxrc 要么是/sbin/init)

    2)读取配置文件-inittab(指定后续运行的应用程序)

    3)解析配置文件

    4)根据配置文件启动执行用户的程序

配置文件inittab文件(/etc/inittab)

格式<id>:<runlevels>:<action>:<process>

id => /dev/id:用作终端,表示进程要用的控制台(标准输入输出错误)

actions:指定何时执行

process:要执行的程序,可以是可执行程序或是脚本

最小根文件系统:

/dev/console

/sbin/init 启动应用程序,也来源busybox

/etc/inittab 配置文件(定义应用程序

/etc/inittab配置文件指定的应用程序

C库 因为正常应用程序中的printf\scanf。

子目录makefile:

obj-y += xxx.o   //xxx.c最后会编译进内核

obj-m += yyy.o //编译成加载模块

vmlinux = 真正的内核

uImage = 包头 + vmlinux

顶层Makefile包含了/arch/${ARCH}/Makefile。而uImage是在/arch/${ARCH}/Makefile 文件中 

原文地址:https://www.cnblogs.com/dudu1990/p/2953182.html