一、导读
本文描述buildroot中支持的三种系统初始化方式以及buildroot在实际构建过程中是如何工作的。
二、系统初始化的三种方式
我们已经知道,在linux内核启动后期会尝试加载用户空间的init程序,init程序是由内核启动的第一个用户空间程序(PID为1),该程序负责启动用户空间的服务和程序(例如:Web服务、图形应用程序、其他网络服务等)。
在使用buildroot构建linux根文件系统时,其支持三种不同类型的初始化系统,可以在“System configuration”选项下的“Init system”选择项中进行选择:

(1)第一种是“BusyBox”
BusyBox 实现了基本的 init 程序,对于大多数嵌入式系统而言,选择这种方式已经足够了。启用“BR2_INIT_BUSYBOX”将确保 BusyBox 会生成并安装其 init 程序,这是 Buildroot 的默认解决方案。
BusyBox init程序会在启动时去读取/etc/inittab文件。除了挂载一些重要的文件系统之外,默认的 inittab 的主要工作是启动/etc/init.d/rcSshell脚本,并启动一个 getty 程序(用于提供登录提示)。
(2)第二种是“systemV”
该种解决方案使用传统的sysvinit程序,位于Buildroot目录package/sysvinit中,在Upstart或Systemd出现之前,这是大多数桌面Linux发行版使用的解决方案。Sysvinit同样使用inittab文件(其语法与 BusyBox 中的语

本文介绍Buildroot支持的三种系统初始化方式:BusyBox、systemV和systemd,以及Buildroot构建Linux根文件系统的流程。BusyBox适用于大多数嵌入式系统;systemV是传统sysvinit程序;systemd具有强大的并行处理能力。Buildroot通过一系列Makefile文件实现软件包的下载、配置和编译。

4468

被折叠的 条评论
为什么被折叠?



