启动流程:
1.启动bootloader,使用uEnv.txt进行系统配置,执行初始化,加载linux kernel,并移交控制权;
2.找到SD卡/eMMC,解压kernel到内存,设置外设、USB、I2C、HDMI等,挂载包括Linux应用程序在内的所有文件系统;
3.条用第一个用户态程序进行初始化,从内核态转到用户态;
kernel的内核模块(LKM)的作用是用那个驱动就加载那个驱动,内核空间可裁剪不会占用大量无用空间,同时不用每次添加新硬件,都必须重建内核;缺点是鼻血为每个设备维护驱动程序文件。
Kernel启动过程的最后一步是调用初始化函数(BeagleBone Black中的 /sbin/init),这是第一个被启动的用户态程序。
LINUX运行:
1.管理的父进程为init,init进程根据运行级别启动相应的服务,先读取/etc/initab,该文件定义了一些细节;
2.根据系统当前运行的级别x,可以查看rcx.d文件中的脚本,这些脚本就是启动时运行的一些脚本;当然我们也可以手动设置这些脚本的运行情况,配置方法如下;
输入ls -ail指令的时候会出一些信息,信息意义如下图: