树莓派Linux启动过程简介
1,加载内核
?电脑开机,第一步是BIOS自检,根据BIOS中设置的启动设备(一般是硬盘)开始。在操作系统接管硬件之后,它首先读取/boot目录中的内核文件。树莓派4B的内核是Raspbian GNU/Linux 10(Buster),基于Debian。
2.初始化进程init
?加载内核文件后,运行第一个程序init,它用于初始化系统环境。Init位于目录/sbin中,进程号PID为1,即进程1。所有其他进程都是从init派生的,并且是init的子进程。
同时还有一个0进程,空闲进程,是系统初始化时内核自己从头创建的。通过调用kernel_thread创建一个内核线程来执行init函数,0进程创建一个1进程。
3.操作级别
具体可以参考作者的文章——Linux运行级别入门?但是,如何确定开机时的运行级别呢?
init进程首先读取文件/etc/inittab,这是运行级别的设置文件。但是每个发行版都不一样,init的配置文件也不一样。可以使用/etc/event.d中的配置文件,最新版本改为/etc/init目录。
4、引导程序
有关详细信息,请参考文章-在-linux中设置/etc/init.d。确定运行级别后,执行rcN.d目录下的文件。这些链接文件是连接到init.d目录的程序。Init进程逐个加载引导程序,实际上是在这个目录下运行启动脚本。
例如,当运行级别为5时启动的程序(图形多用户):
5.用户登录
?用户在引导程序加载后登录。用户有三种登录方法:
?命令行登录:init进程调用getty程序。
?Ssh登录:init进程调用sshd程序。
?图形界面登录:init进程调用显示管理器,Gnome图形界面对应的显示管理器是gdm。
6?、登录shell
默认的shell是bash,命令行界面,它允许用户直接与操作系统对话。读环境变量,请参考作者的文章——Linux环境变量设置。